一、測試環境:
ns1為新搭建的DNS服務器作本地DNS客戶機,沒有任何域名信息記錄,它的LDNS(Local DNS,本地DNS服務器)IP地址為192.168.2.2。現假定LDNS沒有主機www.baidu.com的緩存記錄,要求ns1解析得到www.baidu.com的IP地址,並且將解析過程顯示出來。
二、實驗數據:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 [root@ns1 ~]# dig +trace -t A www.baidu.com ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.23.rc1.el6_5.1 <<>> +trace -t A www.baidu.com ;; global options: +cmd . 3600 IN NS m.root-servers.net. . 3600 IN NS l.root-servers.net. . 3600 IN NS k.root-servers.net. . 3600 IN NS j.root-servers.net. . 3600 IN NS i.root-servers.net. . 3600 IN NS h.root-servers.net. . 3600 IN NS g.root-servers.net. . 3600 IN NS f.root-servers.net. . 3600 IN NS e.root-servers.net. . 3600 IN NS d.root-servers.net. . 3600 IN NS c.root-servers.net. . 3600 IN NS b.root-servers.net. . 3600 IN NS a.root-servers.net. ;; Received 449 bytes from 192.168.2.2#53(192.168.2.2) in 3545 ms com. 172800 IN NS m.gtld-servers.net. com. 172800 IN NS h.gtld-servers.net. com. 172800 IN NS g.gtld-servers.net. com. 172800 IN NS c.gtld-servers.net. com. 172800 IN NS j.gtld-servers.net. com. 172800 IN NS i.gtld-servers.net. com. 172800 IN NS b.gtld-servers.net. com. 172800 IN NS a.gtld-servers.net. com. 172800 IN NS k.gtld-servers.net. com. 172800 IN NS d.gtld-servers.net. com. 172800 IN NS f.gtld-servers.net. com. 172800 IN NS e.gtld-servers.net. com. 172800 IN NS l.gtld-servers.net. ;; Received 491 bytes from 199.7.91.13#53(199.7.91.13) in 4095 ms baidu.com. 172800 IN NS dns.baidu.com. baidu.com. 172800 IN NS ns2.baidu.com. baidu.com. 172800 IN NS ns3.baidu.com. baidu.com. 172800 IN NS ns4.baidu.com. baidu.com. 172800 IN NS ns7.baidu.com. ;; Received 201 bytes from 192.33.14.30#53(192.33.14.30) in 195 ms www.baidu.com. 1200 IN CNAME www.a.shifen.com. a.shifen.com. 1200 IN NS ns1.a.shifen.com. a.shifen.com. 1200 IN NS ns3.a.shifen.com. a.shifen.com. 1200 IN NS ns5.a.shifen.com. a.shifen.com. 1200 IN NS ns4.a.shifen.com. a.shifen.com. 1200 IN NS ns2.a.shifen.com. ;; Received 228 bytes from 119.75.219.82#53(119.75.219.82) in 28 ms [root@ns1 ~]# nslookup www.baidu.com Server: 192.168.2.2 Address: 192.168.2.2#53 Non-authoritative answer: www.baidu.com canonical name = www.a.shifen.com. Name: www.a.shifen.com Address: 115.239.210.27
三、結果分析:
ns1准備訪問www.baidu.com,並向LDNS提交一個遞歸查詢。收到地址解析查詢的域名服務器將會采用迭代查詢的方式,依次查詢每個相關的域名服務器,直至獲得一個滿意的答案,最後返回ns1。整個地址解析的查詢過程如下:
1)當因訪問www.baidu.com而生成一個IP地址查詢請求時,ns1將根據DNS配置文件(/etc/resolv.conf)的定義,向LDNS域名服務器提交一個遞歸的地址解析查詢請求。
1 2 3 4 [root@ns1 ~]# cat /etc/resolv.conf nameserver 192.168.2.2 nameserver 192.168.1.12)LDNS域名服務器(IP: 192.168.2.2/ Hostname: DC01,以下簡稱DC01)收到遞歸查詢後,發現自己的域名地址數據庫中沒有匹配www.baidu.com的檢索結果。於是,DC01向負責根域地址解析的域名服務器發送一個迭代查詢。
3)負責根域地址解析的域名服務器(IP: 199.7.91.13/ Hostname: d.root-servers.net.)收到迭代查詢請求之後,發現自己的域名地址數據庫中也沒有匹配www.baidu.com的檢索結果。於是,d.root-servers.net.向查詢服務器DC01返回一個負責com域地址解析的DNS域名服務器的IP地址:192.33.14.30(Hostname:b.gtld-servers.net.)。
4)在收到DNS域名服務器的IP地址之後,承擔遞歸查詢的服務器DC01接著向負責com域地址解析的域名服務器發送一個迭代查詢請求。
5)負責com域地址解析的域名服務器:b.gtld-servers.net.收到迭代查詢請求之後,發現自己的域名地址數據庫中也沒有匹配www.baidu.com的檢索結果。於是,服務器b.gtld-servers.net.向查詢服務器DC01返回一個負責baidu.com域地址解析的域名服務器的IP地址:119.75.219.82(Hostname:ns7.baidu.com.)。
6)在收到另一個DNS域名服務器的IP地址之後,承擔遞歸查詢的服務器DC01接著向負責baidu.com域地址解析的域名服務器發送一個迭代查詢請求。
7)負責baidu.com域地址解析的域名服務器:ns7.baidu.com.收到迭代查詢請求之後,發現自己的域名地址數據庫中確實存在匹配www.baidu.com的檢索結果。於是,服務器:ns7.baidu.com.向查詢服務器DC01返回一個www.baidu.com的IP地址:115.239.210.27(Hostname: www.a.shifen.com./ CName/Alias: www.baidu.com )。
8)在收到www.baidu.com的IP地址之後,承擔遞歸查詢的服務器DC01向ns1返回最終的查詢結果。
附圖:DNS域名地址解析的過程
本文出自 “小鬼的地盤” 博客,請務必保留此出處http://zhoufwind.blog.51cto.com/1029821/1436905