1. 程式人生 > >第9章 應用層(1)_域名系統DNS

第9章 應用層(1)_域名系統DNS

1. 域名系統DNS

1.1 主機名和域名的關係

(1)完全限定域名(Fully Qualified Domain Name, FQDN) = 主機名 + 域名

  ①一個域名下可以有多個伺服器/主機(如上圖中有3臺伺服器/主機)。

  ②主機名更多的代表一個服務或應用,它物理伺服器並有沒有一一對應的關係。如www、blog、bbs三個服務網站位於同一臺伺服器,而edu在一個獨立的伺服器上。

  ③通常所說的網站域名,嚴格來說是完全限定域名

(2)域名的層次結構

  ①所有的域名都是以英文“.”開始,是域名的根,根下面是頂級域名,然後依次是二級、三級域名、…。如

www.cctv.com.(注意com後面有一個“.”,代表根域名,可以省略)

  ②企業申請域名後,可以在該域名下新增多個主機名,也可以根據需要建立子域名,子域名下又可以有多個主機名。

1.2 域名的解析過程

(1)域名伺服器

  ①每臺域名伺服器並不知道其上一級DNS是誰?但他們都知道根域名伺服器

  ②DNS伺服器可以建立委派,將其下的某個子域名委派給其他DNS伺服器來解析

(2)解析過程(以Client1查詢www.sohu.com為例)

  ①Client1向DNS伺服器(13.2.1.2)傳送域名解析請求

  ②B伺服器只負責net域名解析,並不知道哪個DNS伺服器負責com域名解析,但它知道根DNS伺服器,於是將域名解析的請求轉發給根DNS伺服器

  ③根DNS伺服器返回查詢結果,告訴B去查詢C伺服器

  ④B伺服器將域名解析請求轉發到C伺服器

  ⑤C伺服器只負責com名稱解析,但sohu.com名稱解析委派給了E伺服器,於是C伺服器告訴B去查詢E伺服器

  ⑥B伺服器將域名解析請求轉發到了E伺服器。

  ⑦E伺服器上有sohu.com域名下的www主機記錄,於是www.sohu.com的IP返回給B伺服器

  ⑧B伺服器將費盡周析查詢到的結果快取一份到本地將解析到的www.sohu.com的IP地址返回給Client1。這個查詢結果是B伺服器從其他伺服器查詢得到的(非權威應答)快取解析的結果。

  ⑨Client2的DNS也指向了13.2.1.2,現在Client2也需要解析

www.sohu.com的地址,將域名解析請求傳送給B伺服器。

  ⑩B伺服器將剛剛快取www.sohu.com的查詢結果直接返回給Client2。

(3)其它

  ①權威應答和非權威應答:當Client1向B伺服器查詢www.inhe.net時,由於B伺服器本身存在這條主機記錄,這時它向Client1返回的結果被稱為權威應答。否則,如果B伺服器對域名的解析是從其他伺服器查詢到的,則為非權威應答(如client查詢sohu網站的過程)

  ②client3向E伺服器查詢www.xueit.com域名時,由於E伺服器不存在這條主機記錄,因此會向根伺服器查詢(不是C伺服器)。因為對於E來說他只知道根伺服器,而並不知道其上一級(C)伺服器的存在!

1.3 實戰:在Win2003系統上搭建DNS伺服器

(1)網路拓撲圖

(2)測試環境的搭建

  ①將xp主機和Win2003伺服器放入VMNnet8網路。xp的DNS伺服器設定192.168.80.20。

  Win2003伺服器的“首選的DNS伺服器”也設定為192.168.80.20,即Win2003伺服器除了為區域網內的其他主機提供DNS解析,本身所需要的DNS解析也由自己提供

  ②建立DNS正向查詢區域:如www.abc.com→192.168.80.10→www.abc.com(注意:要選啟用DNS服務:“控制面板”→“管理工具”→“服務”→啟動“DNS Server”)

    A.正向查詢區域:“新建區域”→輸入區域名稱“abc.com”→選擇“建立新檔案”(一個區域用一個檔案記錄),然後一直next。

    B.新建主機:右鍵“abc.com” →“新建主機”→在主機名中填入“www”,IP為192.168.80.10。

  ③建立DNS反向查詢區域:(如192.168.80.10→www.abc.com)

    A.反向查詢區域:“新建區域”→“主要區域”→在“網路ID”填入“192.168.80” →選擇“建立新檔案”。

    B.“新建指標(ptr)” →在主機IP號中填入“10”,主機名為www。

(3)檢視和設定DNS伺服器的“根伺服器”: DNS管理器中選擇伺服器名→“屬性”→“根提示”

(4)測試域名解析

  ①使用ping命令:如ping www.abc.com

  ②檢視快取中的域名解析結果:ipconfig /displaydns

  ③清空DNS快取:ipconfig /flushdns

  ④nslookup測試域名解析:如nslookup www.baidu.com。或輸入nslookup,然後在互動模式下輸入想要查詢的域名,exit退出。

【測試結果】

C:\Documents and Settings\Administrator>nslookup
*** Can't find server name for address 192.1
*** Default servers are not available
Default Server:  UnKnown
Address:  192.168.80.20

> www.abc.com   //正向查詢
Server:  UnKnown
Address:  192.168.80.20

Name:    www.abc.com
Address:  192.168.80.10

> 192.168.80.10    //反向查詢
Server:  UnKnown
Address:  192.168.80.20

Name:    www  
Address:  192.168.80.10

> www.baidu.com   //查詢外網的baidu
Server:  UnKnown
Address:  192.168.80.20

Non-authoritative answer:
Name:    www.a.shifen.com
Addresses:  163.177.151.110, 163.177.151.109
Aliases:  www.baidu.com

>exit

1.4 實戰:抓包分析域名解析過程

(1)在Win2003上執行抓包工具,然後在XP主機ping www.51cto.com

(2)Internet上DNS返回的結果

  ①DNS解析的4種資料包:域名解析請求(第3個數據包)、域名解析請求轉發(第4個數據包)、轉發包的應答(第7個數據包)及最終查詢結果(第9個數據包)

  ②Authoritative nameservers欄位中列舉了負責解析51cto.com的DNS伺服器域名,其IP在Additional record欄位中。

(3)返回給客戶端的域名解析最終結果