天天看點

松勤軟體測試:當伺服器無法通路,如何快速定位問題點

作者:松勤小豬

工作和生活中,我們難免會遇到這樣的問題:

松勤軟體測試:當伺服器無法通路,如何快速定位問題點

這種情況出現時,如何快速定位排查呢?

一、了解什麼是域名 VS IP

1、什麼是域名?

    • http://www.baidu.com

2、為什麼用域名通信,不直接用IP通信?

    • ip位址不好記憶,如:124.56.78.333

3、為什麼又要轉化為IP位址呢?

    • ip位址長度固定,域名不固定

總結:IP位址是面向主機的,而域名則是面向使用者的。

二、DNS協定概念

1、在沒有 DNS 協定的時候我們用什麼來進行 IP 和 域名位址轉換

  • 在沒有 DNS 協定的時候,電腦上都會有一個 hosts 檔案
  • 主機有個 hosts 檔案可以儲存域名和 IP 的對應關系
    • C:Windows\System32\drivers\etc
    • 可以自己編輯一些 IP 位址 和 域名 的比對綁定,如下圖;綁定之後我們的電腦在通路域名:www.某.com 的時候就會去優先去查找這個檔案中有沒有比對的映射 IP位址,那麼通路 域名:www.某.com 就相當于通路 對應的 IP位址
  • 作用
    • 加快域名解析:對于經常通路的網站,直接将映射關系添加在 Hosts 檔案中,不需請求網絡上的 DNS 伺服器
    • 友善區域網路使用者:區域網路很少假設DNS伺服器,為了通路友善直接建立 Hosts 檔案
    • 可以自己編輯一些 IP 位址 和 域名 的比對,如下圖

但是如果有很多的域名和IP位址那就要長期的維護這個檔案很不友善,才有了 DNS 協定

2、DNS協定工作原理

DNS:域名系統(Domain Name System)是一個 應用層 協定,人類可讀的域名(如,http://www.qq.com) 轉換為機器可讀的IP位址(如:119.147.15.13)  DNS協定建立在 UDP 或 TCP 協定 之上,預設使用 UDP 協定的 53 号端口

松勤軟體測試:當伺服器無法通路,如何快速定位問題點

問題:www.http://baidu.com每個點隔開的代表什麼呢?

域名是分層結構,域名伺服器也是對應的層級結構。根域:最高層次的伺服器,本地伺服器無法解析時會找根伺服器。頂級域名:用來訓示某個國家、地區或者組織。如com-商業公司,edu-教育機構,,mil-軍事部門,net-網絡, org-非盈利組織; 中國-cn,美國-us,二級域名:個人或者組織在Internet使用的注冊名稱

松勤軟體測試:當伺服器無法通路,如何快速定位問題點

3、DNS協定互動過程

松勤軟體測試:當伺服器無法通路,如何快速定位問題點

使用者希望通過用戶端浏覽器通路百度伺服器域名為www.baidu.com:1.使用者在浏覽器裡輸入http://www.baidu.com域名,預設優先查找浏覽器緩存,看緩存中是否含有域名對應的IP位址;2.當浏覽器中找不到時,會檢測系統中的Hosts檔案中是否有對應的IP位址;3.如果hosts裡沒有這個域名的映射,則查找本地DNS伺服器;4.若沒有,通過DNS伺服器就向根域名伺服器中進行查找;根域名服務傳回可供查詢的頂級域名伺服器IP位址;;5.頂級域名伺服器傳回DNS響應消息;6.主機收到響應消息後,可以正常通路該伺服器了;并将結果儲存,已備下一次使用。

4、DNS 解析過程

松勤軟體測試:當伺服器無法通路,如何快速定位問題點

(1)輸入域名後,先查找自己主機對應的域名伺服器,域名伺服器先查找自己的資料庫中的資料;(2)如果沒有,就向上級域名伺服器進行查找,依次類推;(3)最多回溯到根域名伺服器,肯定能找到這個域名的IP位址;(4)域名伺服器自身也會進行一些緩存, 把曾經通路過的 域名 和 對應的 IP位址 緩存起來, 可以加速查找過程;優先級:浏覽器緩存 > Hosts > DNS緩存 > 本地DNS伺服器

5、DNS查詢方法

  • 遞歸查詢:本機向本地域名伺服器發出一次查詢請求,就靜待最終的結果。如果本地域名伺服器無法解析,自己會以DNS客戶機的身份向根域名伺服器查詢,根域名如果不知道,會自己去向頂級域名伺服器查詢;直到得到最終的IP位址告訴本機;
  • 疊代查詢:本地域名伺服器向根域名伺服器查詢,根域名伺服器告訴它下一.步到哪裡去查詢,然.後它再去查,每次它都是以客戶機的身份去各個伺服器查詢。
松勤軟體測試:當伺服器無法通路,如何快速定位問題點
松勤軟體測試:當伺服器無法通路,如何快速定位問題點

總結:通常情況下,主機向本地域名伺服器的查詢一般都是采用遞歸查詢,本地域名伺服器向根域名伺服器的查詢通常采用疊代查詢。