73
1 DNS & DHCP (1) Ren-Jie Wang, 王 王 王 , Ph.D. [email protected] http://www.scs.ntit.edu.tw/rjwang/

DNS & DHCP (1)

  • Upload
    airell

  • View
    87

  • Download
    8

Embed Size (px)

DESCRIPTION

DNS & DHCP (1). Ren-Jie Wang, 王 仁 傑 , Ph.D. [email protected] http:// www.scs.ntit.edu.tw/rjwang/. OSI & DoD. FQDN ( 完整網域名稱 ). Fully Qualified Domain Name 。 『 主機名稱 』 + 『 網域名稱 』 + 『.』 如: www.flag.com.tw w ww :該伺服器的主機名稱。 flag.com.tw. :該伺服器所在的網域名稱。 DNS 的工作就是 IP ←→ FQDN 的轉換. - PowerPoint PPT Presentation

Citation preview

Page 1: DNS & DHCP (1)

1

DNS & DHCP (1)

Ren-Jie Wang,王 仁 傑 , Ph.D. [email protected] http://www.scs.ntit.edu.tw/rjwang/

Page 2: DNS & DHCP (1)

2

OSI & DoD

Page 3: DNS & DHCP (1)

3

FQDN ( 完整網域名稱 )

Fully Qualified Domain Name 。 『主機名稱 』 + 『網域名稱 』 + 『 . 』 如: www.flag.com.tw

www :該伺服器的主機名稱。 flag.com.tw. :該伺服器所在的網域名稱。

DNS 的工作就是 IP ←→ FQDN 的轉換Domain Name System

Page 4: DNS & DHCP (1)

4

名稱查詢與名稱解析Forward Name Query & Forward Name Resolution

名稱查詢 Forward Name Query :用戶端要求 DNS 伺服器由 FQDN 查出 IP 位址。

名稱解析 Forward Name Resolution : DNS 伺服器查出 IP 位址並回傳給用戶端。

由 IP 位址查詢 FQDN 稱為反向查詢 Reverse

Name Query 。而伺服器所對應的動作稱為反向解析 Reverse Name Resolution 。

Page 5: DNS & DHCP (1)

5

DNS 的架構 根網域

頂層網域

第二層網域

主機

Page 6: DNS & DHCP (1)

6

Root Domain ( 根網域 )

DNS 架構的最上層。 當下層的任何一台 DNS 伺服器無法解析某個

DNS 名稱時 , 便可以向 Root DNS 伺服器尋求協助。

Page 7: DNS & DHCP (1)

7

Top Level Domain ( 頂層網域 )-1 在美國以外的國家 , 大多以 ISO 3116 所制定

的『國碼 』 (Country Code) 來區分:

Page 8: DNS & DHCP (1)

8

Top Level Domain ( 頂層網域 )-2

在美國以『組織性質』來區分 , 較少用國碼:

Page 9: DNS & DHCP (1)

9

Second Level Domain ( 第二層網域 )

台灣採用 ccTLD 命名方式 , 這一層即為 .com 、 .net 等以組織性質區分的網域

這些類別網域之下開放給所有人申請 , 名稱則由申請者自訂。

每個網域名稱在這一層必須是唯一的。 “.com.tw” “.edu.tw” “.flag.com.tw”

“.ntit.edu.tw”

Page 10: DNS & DHCP (1)

10

Host ( 主機 )

由各個網域的管理員自行建立 , 不需要透過管理網域名稱的機構。

例如可以在 『 .flag.com.tw. 』 這個網域下再建立 『 www.flag.com.tw. 』。

Page 11: DNS & DHCP (1)

11

區域 (Zone) -1 『區域』是 DNS 伺服器的實際管轄範圍。 有上下層緊臨的隸屬關係

才能併入同一區域

例如 flag 網域的下層若沒有子網域:

Page 12: DNS & DHCP (1)

12

區域 (Zone) -2 若 flag 網域的下層有子網域:

Page 13: DNS & DHCP (1)

13

區域 (Zone) -3 如果 flag 的

子網域更多 , 而且每個子網域都自成一個區域:

Page 14: DNS & DHCP (1)

14

區域 (Zone) -4

Page 15: DNS & DHCP (1)

15

DNS 伺服器類型 主要名稱伺服器

每一區域一定要有而且唯一 次要名稱伺服器

可以沒有 , 但為了容錯考量 , 可以有一部或多部 快取伺服器

沒有管理任何區域 , 只提供 DNS 快取查訽

Page 16: DNS & DHCP (1)

16

DNS 的查詢流程

以上分為兩種查詢模式: 用戶端對伺服器的查詢 ( 第 3 、 4 步驟 ) 。 伺服器和伺服器之間的查詢 ( 第 5 步驟 ) 。

Page 17: DNS & DHCP (1)

17

遞迴查詢 用戶端要求 DNS 伺服器解析 DNS 名稱時 ,

採用的多是『遞迴查詢 』 (Recursive Query) 。 DNS server 收到遞迴查詢時 , 必然回應用戶

端查詢的 IP 或找不到資料 , 絶不會告知用戶端去查詢另一部 DNS server.

Page 18: DNS & DHCP (1)

18

反覆查詢 反覆查詢 (Iterative Query) 一般多用在伺服器對伺服器

之間的查詢動作。

Page 19: DNS & DHCP (1)

19

轉送程式 Forwarder

為節省頻寬及安全考量 , 不直接查詢 Root DNS server, 而將用戶端的要求導向特定的 DNS 伺服器

Page 20: DNS & DHCP (1)

20

完整的查詢流程

Page 21: DNS & DHCP (1)

21

DNS 資源記錄 SOA (Start of Authority, 起始授權 ) NS (Name Server, 名稱伺服器 ) A (Address, 位址 ), AAAA (IPv6 位址 ) CNAME (Canonical Name, 別名 ) MX (Mail Exchanger, 郵件交換器 ) PTR (Pointer, 反向查詢指標 ) HINFO (Host Information, 主機資訊 )

Page 22: DNS & DHCP (1)

22

SOA ( 起始授權 ) -1

記錄此區域的授權資訊 , 包含主要名稱伺服器與管理此區域的負責人之電子郵件帳號…等。

Page 23: DNS & DHCP (1)

23

SOA ( 起始授權 ) -2

『 @ 』 :此區域的名稱。 1 ; serial number :此記錄的版次。 36000 ; refresh [10h] : Secondary DNS 伺

服器每次比對、複製區域檔案的間隔時間。 600 ; retry [10m] :當 Secondary DNS 伺服

器無法順利比對、複製區域檔案時 , 重試的間隔時間。

86400 ; expire [1d] :此區域檔案的有效期間 3600 ; min TTL [1h] :最小的 TTL 時間。

Page 24: DNS & DHCP (1)

24

NS ( 名稱伺服器 )

記錄管轄此區域的名稱伺服器 , 它包含了主要名稱伺服器和次要名稱伺服器:

Page 25: DNS & DHCP (1)

25

A ( 位址 )

表示 FQDN 所對應的 IP 位址。

Page 26: DNS & DHCP (1)

26

CNAME ( 別名 )

記錄某台主機的別名。 一台主機可以設定多個別名。

Page 27: DNS & DHCP (1)

27

MX ( 郵件交換器 )

設定此一網域所使用的郵件伺服器。

Page 28: DNS & DHCP (1)

28

PTR ( 反向查詢指標 )

當我們在做反向查詢 ( 由 IP 位址查出 FQDN) 時 , 便會利用此種記錄類型。

IP 位址的寫法是將原本的數字由右向左寫回來:

Page 29: DNS & DHCP (1)

29

HINFO ( 主機資訊 )

儲存某一主機的軟硬體資料 , 例如 CPU 的類型、作業系統的類型等。

Page 30: DNS & DHCP (1)

30

DNS 的封包格式

Page 31: DNS & DHCP (1)

31

DNS 封包表頭 (1)

Page 32: DNS & DHCP (1)

32

DNS 封包表頭 (2) Query Identifier (Query ID, 查詢編號 )

DNS 的封包編號 Request/Response (QR, 要求 / 回覆 )

0 表示 Request 封包 , 1 表示 Response封包

Operation Code (OP Code, 操作代碼 )

Page 33: DNS & DHCP (1)

33

DNS 封包表頭 (3)

Flags

Page 34: DNS & DHCP (1)

34

DNS 封包表頭 (4)

Reserved 保留未使用 , 欄位值全為 0 。

Return Code (R Code, 回覆代碼 )

Page 35: DNS & DHCP (1)

35

DNS 封包表頭 (5)

Question count 存放 Question Section 欄位的資料筆數。

Answer RR Count 存放 Answer Section 欄位的資料筆數。

Authority RR Count 存放 Authority Section 欄位的資料筆數。

Additional RR Count 存放 Additional Section 欄位的資料筆數。

Page 36: DNS & DHCP (1)

36

Question Section ( 查詢部分 ) -1

Question Name 存放所要解析的 FQDN 。

Page 37: DNS & DHCP (1)

37

Question Section ( 查詢部分 ) -2 Question Type

表示要查詢的資源記錄類型。

Question Class 表示要在哪一類的網路上做 DNS 查詢。

Page 38: DNS & DHCP (1)

38

Answer Section ( 回應部分 ) -1

Page 39: DNS & DHCP (1)

39

Answer Section ( 回應部分 ) -2 Resource Name ( 資源名稱 )

存放查詢的 FQDN 。 Resource Type ( 資源記錄類型 )

存放此次查詢的資源記錄類型。 Resource Class ( 資源類型 )

表示查詢的 FQDN 所屬的網路類型。 TTL (存活時間 )

此筆資料保留在 DNS 伺服器 Cache 中的時間。 Resource Data Length

存放 Resource Data 欄位的長度。 Resource Data

存放查詢的結果 , 通常是存放 IP 位址或 FQDN 。

Page 40: DNS & DHCP (1)

40

Authority Section ( 授權部分 )

表示在查詢 FQDN 時 , 所找到可供查詢的 DNS 伺服器資訊。

除最後 Resource Data 存放的不是 IP 位址 , 而是 DNS 伺服器的 FQDN 之外 , 其餘欄位都和 Answer Section 相同。

Page 41: DNS & DHCP (1)

41

Additional Records Section ( 額外記錄部分 )

當 Authority Section 有存放資料時 , 此欄位就會有相對應的資料。

包含 6 個欄位 , 意義同前。

Page 42: DNS & DHCP (1)

13-6 實作練習:擷取 DNS 封包 本節以 Windows Vista 為 DNS 用戶端 , IP 位

址為 192.168.0.135;以 Linux 為預設的 DNS 伺服器(後文簡稱為 Local 伺服器) ,IP 位址為 192.168.0.36 。在 DNS 用戶端向 Local 伺服器查詢『 www.flag.com.tw 』 的 IP 位址時 , 擷取到的封包經分析過濾後得知哪些封包為配對的查詢 / 回覆封包。

在 Linux 所使用的 DNS 伺服器 (Bind9) 執行反覆 (Iterative) 查詢時 , 每個階段均會詢問一部以上的 DNS 伺服器 , 但是在後文的每個階段僅說明詢問其中一部的過程。

42

Page 43: DNS & DHCP (1)

實作練習:擷取 DNS 封包

43

Page 44: DNS & DHCP (1)

13-6-1 用戶端向 Local 伺服器查詢

44

Page 45: DNS & DHCP (1)

用戶端向 Local 伺服器查詢1. 此封包為查詢封包(在 Wireshark 係以

query 、而不以 Request 代表查詢封包)。2. 此封包為標準查詢封包。3. 此封包為完整封包。4. 使用遞迴( Recursive)查詢 , 這是用戶端

對 DNS 伺服器最常採用的方式。5. 所要查詢的 FQDN 。6. 要查詢該 FQDN 對應的 IP 位址。7. 此查詢是在 Internet 進行。

45

Page 46: DNS & DHCP (1)

13-6-2 Local 伺服器詢問其它 DNS 伺服器 Local DNS Server 首先詢問 Root DNS

Server - 192.228.79.201 。 RootDNS Server 告知管轄 .tw 網域的各 DNS Server 的 IP 位址 , 請 Local DNS Server改問管轄 .tw 網域的其中一部 DNS Server 。

46

Page 47: DNS & DHCP (1)

Local 伺服器詢問其它 DNS 伺服器

47

Page 48: DNS & DHCP (1)

Local 伺服器詢問其它 DNS 伺服器

48

Page 49: DNS & DHCP (1)

Local 伺服器詢問其它 DNS 伺服器1. Transaction ID 相同 , 表示兩者為配對的查

詢 / 回覆封包。2. 此封包為查詢封包。3. 此封包為回覆封包。4. 不使用遞迴( Recursive)查詢 , 意即使用

反覆( Iterative)查詢。這是 DNS 伺服器彼此之間最常採用的方式。

5. 要查詢『 www.flag.com.tw 』這個 FQDN 對應的 IP 位址。

49

Page 50: DNS & DHCP (1)

Local 伺服器詢問其它 DNS 伺服器6. Root DNS 伺服器告知 Local DNS 伺服器 ,

應該向這些 DNS 伺服器其中之一查詢。這些 DNS 伺服器的 FQDN 在 Authoritative name servers 和 Additional records 都會出現 , 但 IP 位址只出現在 Additional records 。

50

Page 51: DNS & DHCP (1)

如何知道 Root DNS Server 的 IP 位址?曾經有讀者詢問:既然 Local DNS Server 找不

到某個 FQDN 的 IP 位址時 , 會去問 Root DNS Server, 那它怎麼知道 Root DNS Server 的 IP 位址呢?畢竟 Root DNS Server 已經在最頂層了 , 不可能再問更上層的 DNS Server 了。

其實在每一部 DNS Server 上都有一個特殊用途的檔案 , 專門記載著 Root DNS Server 的 FQDN 和 IP 位址 , 所以毋需外部協助就可知道 Root DNS Server 的 IP 位址。以 Windows NT/2000/2003 為例 , 該檔案為 %systemroot%\system32\dns\cache.dns 。

51

Page 52: DNS & DHCP (1)

如何知道 Root DNS Server 的 IP 位址?目前全球共有 13 部 Root DNS Server, 其

FQDN 依序為:『 A.ROOT-SERVERS.NET. 』、『 B.ROOTSERVERS.NET. 』、『 C.ROOT-SERVERS.NET. 』 .. 『 . M.ROOT-SERVERS.NET. 』 , 前文提到的 192.228.79.201 就是 B.ROOT-SERVERS.NET. 的 IP 位址。

雖然 Root DNS Server 的 IP 位址很少變動。但是 INTERNIC 組織仍建議 DNS 伺服器管理員定期更新記錄 Root DNS Server 的檔案內容 , 該檔案可到 ftp://ftp.internic.net/domain/ 下載。檔名或許不同 , 只要下載之後更改檔名 , 覆蓋原有的檔案 , 並重新啟動 DNS 服務即可。

52

Page 53: DNS & DHCP (1)

Local 伺服器詢問其它 DNS 伺服器 Local DNS Server 詢問管轄 .tw 網域的其中

一部 DNS Server - B.DNS.TW, 但是 B.DNS.TW 告知管轄 .com.tw 網域的各 DNS Server 的 IP 位址 , 請 Local DNS Server 改問管轄 .com.tw 網域的其中一部 DNS Server 。

53

Page 54: DNS & DHCP (1)

Local 伺服器詢問其它 DNS 伺服器

54

Page 55: DNS & DHCP (1)

Local 伺服器詢問其它 DNS 伺服器

55

Page 56: DNS & DHCP (1)

Local 伺服器詢問其它 DNS 伺服器1. Local DNS 伺服器向 B.DNS.TW 這部伺服

器查詢(根據圖 13-21 可知 210.201.138.58 為 B.DNS.TW 的 IP 位址)。

2. Transaction ID 相同 , 表示兩者為配對的查詢 / 回覆封包。

3. 此封包為查詢封包。4. 此封包為回覆封包。5. 不使用遞迴( Recursive)查詢 , 意即使用

反覆( Iterative)查詢。56

Page 57: DNS & DHCP (1)

Local 伺服器詢問其它 DNS 伺服器6. 要查詢『 www.flag.com.tw 』這部主機的 IP

位址。7. B.DNS.TW 伺服器告知 Local DNS 伺服器 ,

應該向這些 DNS 伺服器其中之一查詢。8. 這是 IPv6 表示 IP 位址的方式。

57

Page 58: DNS & DHCP (1)

如何在 DNS 伺服器中登記 IPv6 位址? 為了避免混淆 , 若要在 DNS 伺服器中登記

IPv6 位址 , 並不是使用『 A 』這個資源紀錄 , 而是用『 AAAA 』 , 其格式為:

FQDN AAAA IPv6 位址 例如:

58

Page 59: DNS & DHCP (1)

如何在 DNS 伺服器中登記 IPv6 位址? 換言之 , 『 AAAA 』這個資源紀錄係專門用來

將 FQDN 對應到 128 bits 的 IPv6 位址。所以在圖 13-23 的 8 號圖說裡 , 顯示的是『 Type AAAA 』 , 而不是一般 IPv4 位址的『 Type A 』。

59

Page 60: DNS & DHCP (1)

Local 伺服器詢問其它 DNS 伺服器 Local DNS Server 詢問管轄 .com.tw 網域的

DNS Server - D.TWNIC.NET.TW, 但是 D.TWNIC.NET.TW 告知管轄 flag.com.tw 網域的兩部 DNS Server 的 IP 位址 , 請 Local DNS Server 改問這兩部 DNS Server 的其中一部。

60

Page 61: DNS & DHCP (1)

Local 伺服器詢問其它 DNS 伺服器

61

Page 62: DNS & DHCP (1)

Local 伺服器詢問其它 DNS 伺服器

62

Page 63: DNS & DHCP (1)

Local 伺服器詢問其它 DNS 伺服器1. Local DNS 伺服器向 D.TWNIC.NET.TW 這部

伺服器查詢(根據圖 13-23 可知 210.17.9.229 為 D.TWNIC.NET.TW 的 IP 位址)。

2. Transaction ID 相同 , 表示兩者為配對的查詢 / 回覆封包。

3. 此封包為查詢封包。4. 此封包為回覆封包。5. 不使用遞迴( Recursive)查詢 , 意即使用反覆

( Iterative)查詢。6. D.TWNIC.NET.TW 伺服器告知 Local DNS 伺

服器 , 應該向這兩部 DNS 伺服器其中之一查詢。63

Page 64: DNS & DHCP (1)

每個查詢過程未必完全相同 !

雖然本節的整個查詢流程都完全符合先前的推論 , 但是讀者在實作時未必能有相同的查詢流程。這是因為管轄網域的機構或業者 , 為了避免因一部 DNS Server 當機 , 而使整個查詢工作停擺 , 通常都會以多部 DNS Server 共同管轄一個網域 , 譬如光是 Root DNS Server 就有 13 部之多。

而 Local DNS Server 如何在這些管轄同一個網域的 DNS Server 中 , 選定其中一部作為查詢對象 , 則會因該 Server 程式的設計而異。有的固定選 Additional records 的第 1 部 DNS Server;有的則是隨機選取。

64

Page 65: DNS & DHCP (1)

每個查詢過程未必完全相同 !

在上例中是依序向 『 B.ROOT-SERVERS.NET. 』、『 B.DNS.TW 』、『 D.TWNIC.NET.TW 』 這 3 部 DNS Server 查詢 , 可是讀者實作時未必會詢問相同的 DNS Server 。因此在分析封包時 , 不要因為詢問的 DNS Server 不同而懷疑。

65

Page 66: DNS & DHCP (1)

Local 伺服器詢問其它 DNS 伺服器 最後 , Local DNS Server 詢問管

轄 .flag.com.tw 網域的 DNS Server -203.73.24.198, 該 DNS Server 總算找到答案 , 告知 www.flag.com.tw 的 IP 位址為 192.72.83.76 。

66

Page 67: DNS & DHCP (1)

Local 伺服器詢問其它 DNS 伺服器

67

Page 68: DNS & DHCP (1)

Local 伺服器詢問其它 DNS 伺服器

68

Page 69: DNS & DHCP (1)

Local 伺服器詢問其它 DNS 伺服器1. Local DNS 伺服器向 nsll.twnic.net.tw 這部

伺服器查詢(根據圖 13-26 可知 203.73.24.198 為 nsll.twnic.net.tw 的 IP 位址)。

2. Transaction ID 相同 , 表示兩者為配對的查詢 / 回覆封包。

3. 此封包為查詢封包。4. 此封包為回覆封包。5. 不使用遞迴( Recursive)查詢 , 意即使用

反覆( Iterative)查詢。69

Page 70: DNS & DHCP (1)

Local 伺服器詢問其它 DNS 伺服器6. 此欄位值為 1, 代表在 Answer Section 有 1 筆查到的資料。

7. 所查到的 IP 位址與相關資料。

70

Page 71: DNS & DHCP (1)

為何從 Answer Section 的出現就可以看出有答案了! DNS Server 會將答案放在 DNS 封包的 Answer

Section (在 Wireshark 是以 Answers 表示) , 所以從圖 13-20 到圖 13-25 的封包都沒有 Answers, 因為它們並沒有真的給答案 , 只是不斷地要求 Local DNS Server 再去問別台 DNS Server 。一直到了圖 13-27 的封包 , 因為有了答案 , 所以才出現 Answers 。

但是有答案並非一定是找到對應的 IP 位址 , 『找不到查詢的 FQDN 所對應的 IP 位址』也是一種答案。

71

Page 72: DNS & DHCP (1)

13-6-3 Local 伺服器回覆 DNS 用戶端

72

Page 73: DNS & DHCP (1)

Local 伺服器回覆 DNS 用戶端1. 此 Transaction ID 與第 13-25 頁、圖 13-

19 的查詢封包相同 , 代表此封包是回覆用戶端向 Local 伺服器的查詢。

2. 在 Answer Section 有 1 筆查到的資料。3. 查到的是主機的 IP 位址。4. 這筆紀錄在 DNS 伺服器快取中的存活時間。5. 查到的 IP 位址長度為 4 Bytes 。6. 這就是用戶端所要查詢的 IP 位址。

73