目錄
DNS協議
DNS背景
域名簡介
域名解析過程
使用dig工具分析DNS過程
DNS(Domain Name System,域名系統)協議,是一個用來將域名轉化為IP地址的應用層協議。
DNS背景
TCP/IP中通過IP地址和端口號的方式,來確定網絡中一個主機上的一個程序。但IP地址是一長串數字,并不便于人們記憶,于是人們發明了一種叫做主機名的東西,并用hosts文件夾來描述主機名和IP地址之間的對應關系。
最初,這個hosts文件是由互聯網信息中心(SRI-NIC)來管理的。
- 如果一個新計算機要接入網絡,或者某個計算機IP變更,都需要到信息中心申請變更hosts文件。
- 其他計算機也需要定期下載更新新版本的hosts文件才能正確上網。
- 當用戶通過域名訪問互聯網服務時,會先通過域名在本地的hosts文件中找到其對應的IP地址,然后再用這個IP地址去訪問對應的服務。
但這樣太麻煩了,于是產生了DNS系統。
- 由一個組織的系統管理機構,維護系統內的每個主機的IP和主機名的對應關系。
- 如果新計算機要接入網絡,或者某個計算機IP變更,就需要將對應信息注冊到數據庫中。
- 當用戶通過域名訪問互聯網服務時,會自動查詢DNS服務器,由DNS服務器檢索數據庫,得到對應的IP地址。
至今,我們的計算機上仍然保留了hosts文件,這個hosts文件當中一般存儲的是主機名與IP地址之間的映射,用戶也可以在hosts文件中自主添加域名和IP映射關系,在域名解析的過程中會優先查找hosts文件的內容。
通過cat /etc/hosts
可以查看hosts文件當中的內容。
域名簡介
域名是用來識別主機名稱和主機所屬的組織機構的一種分層結構的名稱,例如www.baidu.com
。?
- com:一級域名,表示這是一個工商企業域名。同級的還有
.net
(網絡提供商)和.org
(開源組織或非盈利組織)等。 - baidu:二級域名,一般對應的就是公司名。
- www:只是一種習慣用法,之前人們在使用域名時,往往命名成類似于
ftp.xxx.xxx/www.xxx.xxx
這樣的格式,來表示主機支持的協議。
域名解析過程
在瀏覽器中輸入url
后,如果url
當中包含域名,則需要進行域名解析。
- 首先會在瀏覽器的DNS緩存中去查詢是否有對應的記錄,如果查詢到記錄就可以直接得到對應的IP地址,完成解析。
- 如果在瀏覽器的DNS緩存中沒有找到,就會去查詢操作系統中的DNS緩存,如果查詢到對應的IP地址則完成解析。
- 如果在操作系統的DNS緩存中沒有找到,就會去查找本地的hosts文件,如果查詢到對應的IP地址則完成解析。
- 如果在本地的hosts文件中也沒有找到,就會去本地DNS服務器中查找。本地DNS服務器IP地址一般由本地網絡服務商提供,如電信、移動等公司,一般通過DHCP自動分配。目前使用的比較多的是谷歌提供的公用NDS 8.8.8.8和國內公用DNS 114.114.114.114。如果在本地DNS服務器中有對應域名的緩存,則直接返回對應的IP地址,完成解析。
- 如果本地DNS服務器中仍然沒有找到,那么本地DNS服務器就會拿著域名去根DNS服務器中詢問,根DNS服務器會告訴本地DNS頂級域名服務器的IP地址。
- 本地DNS拿到頂級域名服務器的IP地址后,就會拿著域名去找頂級DNS服務器,頂級域名服務器會告訴本地DNS權威域名服務器的IP地址。
- 本地DNS服務器拿著域名去權威域名服務器中,查詢域名對應的IP地址,最終將該域名對應的IP地址返回給瀏覽器,此時整個域名解析過程就完成了。
使用dig工具分析DNS過程
我們可以使用dig工具來查看域名解析的過程,例如查看百度域名www.baidu.com
的解析過程。
dig工具的分析結果如下:
結果解釋:
- 開頭位置是dig工具的版本號。
- 第二部分是服務器返回的詳情,其中status參數為NOERROR表示查詢成功。
- QUESTION SECTION表示待查詢的域名。
- ANSWER SECTION表示查詢的結果,首先
www.baidu.com
被查詢成了www.a.shifen.com
,而最終www.a.shifen.com
被查詢成了兩個具體的IP地址。 - 最下面是一些結果統計,包含查詢時間和DNS服務器的地址等。
參考文獻:
http://t.csdn.cn/gwHLE