1 / 73

第 14 章

第 14 章. DHCP. 本章提要. 14-1 DHCP 基礎 14-2 DHCP 運作流程 14-3 DHCP 封包格式 14-4 擷取 DHCP 封包. 前言.

sonya-welch
Download Presentation

第 14 章

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第 14 章 DHCP

  2. 本章提要 • 14-1 DHCP 基礎 • 14-2 DHCP 運作流程 • 14-3 DHCP 封包格式 • 14-4 擷取 DHCP 封包

  3. 前言 • 在 TCP/IP 的網路中, 每一台電腦都必須有一個 IP 位址, 而且這個 IP 位址必須是唯一的, 不可和網路中其它電腦重複!因此, 對於網路管理員而言, 如何確保每台電腦 IP 位址的唯一性, 實在是讓人傷透腦筋。另外, 如果要變更 TCP/IP 的相關設定時, 也必須到每台電腦去修改。如果網路中只有一、二十台電腦, 這尚可接受;但若是上百台電腦的網路, 要如何維護每台電腦的 TCP/IP 設定, 絕對是個令人頭疼的問題。

  4. 前言 • DHCP (Dynamic Host Configuration Protocol, 動態主機設定協定) 的出現,可以有效解決這個問題。DHCP 可以動態的分配 IP 位址給每台網路上的電腦, 而且也能指定 TCP/IP 的其它參數, 大幅減少網路管理員的負擔。

  5. 14-1 DHCP 基礎 • 14-1-1 DHCP 原理 • 14-1-2 採用 DHCP 服務的優點

  6. 14-1-1 DHCP 原理 • 當 DHCP 用戶端開機時, 會透過廣播方式尋找 DHCP 伺服器並要求指派 IP位址, 這時伺服器就會傳回一個尚未被使用的 IP 位址, 同時也可以將相關參數一併傳送給用戶端。

  7. DHCP 原理 • 當 DHCP 用戶端獲得一個 IP 位址時, 並不能永久使用 (除非 DHCP 伺服器有特別設定)。在正常的情況下, 每個分配給 DHCP 用戶端的 IP 位址都有使用期限,這個期限就是 IP 位址的租約期限 (Lease Time)。租約期限長短是依各家的 DHCP 伺服器而異。

  8. 14-1-2 採用DHCP服務的優點 • DHCP 服務的用途如同本章一開始所言, 可以自動的分配 IP 位址給予 DHCP用戶端, 但其實另一項更大的好處在於方便管理。 • 基於以下幾點原因, 就可以很清楚的了解在網路中佈署 DHCP 伺服器, 絕對可以讓我們在管理上有事半功倍之效果:

  9. 採用DHCP服務的優點 • 不易出錯 • 因為 DHCP 伺服器每出租一個 IP 位址時, 都會在資料庫中建立一筆相對應的租用資料, 因此幾乎不可能發生 IP 重複租用的狀況。而且這個出租、登記作業, 不需要人力介入, 更可以避免人為的錯誤 (例如:輸入錯誤)。

  10. 採用DHCP服務的優點 • 易於維護 • DHCP 不但可以自動分配 IP 位址, 而且還可以指定各項 TCP/IP 參數(例如:DNS 伺服器和預設閘道的 IP 位址), 因此, 當我們要變更相關的參數時,只要從 DHCP 伺服器上修改, 就可以讓所有 DHCP 用戶端都自動更新, 大幅節省維護成本。

  11. 採用DHCP服務的優點 • 用戶端不需要繁瑣的設定 • 只要 DHCP 伺服器設定妥當, 用戶端只需設定為使用 DHCP 分配 IP 位址, 即可完成 TCP/IP 的設定, 快速又方便。 • IP 位址可重複使用 • 每當 DHCP 用戶端開機時, DHCP 伺服器便會分配 1 個 IP 位址給予使用, 當用戶端租約到期或取消租約後, 伺服器又可以將此 IP 位址分配給其他的 DHCP用戶端使用, 能有效的節省 IP 位址的數量。

  12. 14-2 DHCP 運作流程 • 從 DHCP 用戶端向 DHCP 伺服器要求租用 IP 位址開始, 直到完成用戶端的 TCP/IP 設定, 簡單來說是由 4 個階段所組成:

  13. DHCP 運作流程

  14. DHCP 運作流程 • 以下將逐一說明運作流程中的 4 個步驟。 • 要求租用 IP 位址 • 提供可租用的 IP 位址 • 確認 IP 租約 • 同意 IP 租約 • 更新租約 • 撤銷租約

  15. 1.要求租用 IP 位址 • 當我們將電腦設定成 DHCP 用戶端後, 第一次啟動電腦時即會進入此階段。 • 首先由 DHCP 用戶端廣播一個 DHCPDiscover (尋找) 封包, 要求任一部 DHCP 伺服器提供 IP 租約。

  16. 2.提供可租用的 IP 位址 • 因為 DHCPDiscover 是以廣播方式送出, 所以網路上所有的 DHCP 伺服器都會收到此封包, 而每一台 DHCP 伺服器收到此封包時, 都會從本身的領域中, 找出一個可用的 IP 位址, 設定租約期限後記錄在 DHCPOffer (提議) 封包, 再以廣播方式送給用戶端。

  17. 3.確認 IP 租約 • 因為每一台 DHCP 伺服器都會送出 DHCPOffer 封包, 因此 DHCP 用戶端會收到多個 DHCPOffer 封包, 用戶端預設會接受最先收到的 DHCPOffer 封包, 其他陸續收到的 DHCPOffer 封包則不予理會。

  18. 3.確認 IP 租約 • 用戶端接著以廣播方式送出 DHCPRequest (要求) 封包, 除了向選定的伺服器申請租用 IP 位址之外, 也讓其他曾送出 DHCPOffer 封包、但未雀屏中選的伺服器知道:「你們所提供的 IP 位址落選了。不必為我保留, 可以租用給其它的用戶端啦!」

  19. 3.確認 IP 租約 • 不過, 如果 DHCP 用戶端不接受 DHCP 伺服器所提供的參數, 就會廣播一個DHCPDecline (拒絕) 封包, 告知伺服器:「我不接受你建議的 IP 位址 (或租用期限…等)。」然後回到第一階段, 再度廣播 DHCPDiscover 封包, 重新執行整個取得租約的流程。

  20. 3.確認 IP 租約 • 用戶端為何會不同意呢?最常見的原因是 IP 位址重複。因為用戶端收到伺服器建議的 IP 位址時, 通常會以 ARP 協定檢查該位址是否已被使用, 倘若有其它粗心的使用者, 手動設定 IP 位址時也佔用了相同的位址, 用戶端當然就要拒絕租用此 IP 位址。

  21. 4.同意 IP 租約 • 當被選中的 DHCP 伺服器收到 DHCPRequest 封包時, 假如同意用戶端的租用要求, 便會廣播 DHCPAck (承認) 封包給 DHCP 用戶端, 告知可以將設定值寫入TCP/IP 中, 並開始計算租用的時間。

  22. 4.同意 IP 租約 • 當然, 可能也會有不同意的狀況出現, 倘若 DHCP 伺服器不能給予 DHCP 用戶端所要求的資訊 (例如:要求租用的 IP 已被佔用, 或者不能給予用戶端所要求的租約期限等), 則會發出 DHCPNack (拒絕承認) 封包。當用戶端收到 DHCPNack封包時, 便直接回到第一階段, 重新執行整個流程。

  23. 更新租約 • 取得 IP 租約後, DHCP 用戶端必須定期更新 (Renew) 租約, 否則當租約到期, 就不能再使用此 IP 位址。依照 RFC 2131 的敘述, 每當租用時間超過租約期限的1/2 (50%) 及 7/8 (87.5%) 時, 用戶端就必須發出 DHCPRequest 封包, 向 DHCP 伺服器要求更新租約。但是各家廠商在設計產品時, 未必採用 RFC 2131 的數據, 因此每種產品的更新租約期限可能不同。

  24. 更新租約 • 但是要注意一點,更新租約時是以單點傳送(Unicast)方式發出 DHCPRequest封包, 也就是會指名那一台 DHCP 伺服器應該要處理此封包, 和前面確認 IP 租約階段中, 使用廣播方式發送 DHCPRequest 封包是不同的!

  25. 更新租約 • 以 Windows 2000 DHCP伺服器為例, 預設的租約期限為 8 天, 當租用時間超過 4 天時, DHCP 用戶端 會向 DHCP伺服器要求續約, 將租約期限再恢復為原本的期限 (也就是 8 天)。

  26. 更新租約 • 若不幸在重試 3 次之後, 依然無法取得 DHCP伺服器的回應 (也就是無法和 DHCP伺服器取得連繫), 則 DHCP 用戶端將會繼續使用此租約, 直到租用時間超過 7 天時, 會再度向 DHCP伺服器要求續約, 若仍然無法取得續約的訊息 (一樣會重試 3 次), 則 DHCP 用戶端改以廣播方式送出 DHCPRequest封包, 要求 DHCP 的服務。

  27. 更新租約 • 當然, 我們也可以在租約期限內, 手動更新租約。 • 在 Windows NT/2000/XP 中, 手動更新租約的方式是在命令提示字元模式下, 執行 Ipconfig /renew命令即可進行更新。

  28. 撤銷租約 • 以 Windows 2000/XP 為例, 除了在重新啟動、關機均會送出 DHCPRelease封包撤銷租約外。在命令提示字元輸入"IPCONFIG/RELEASE"、按 Enter 鍵, 也會送出 DHCPRelease 封包撤銷租約。

  29. 撤銷租約 • 但如果我們的 Windows XP 電腦安裝了多張網路卡 , 當我們直接執行 Ipconfig / release命令時 , 預設是會撤銷所有網路卡的 IP 租約。若只想要撤銷特定網路卡的 IP 租約 , 則請執行 Ipconfig / release連線名稱命令。 • 連線名稱指的是我們在網路連線視窗中看到的連線名稱 , 例如:『區域連線』、『區域連線 2 』等名稱。

  30. 14-3 DHCP 封包格式 • DHCP 封包在傳輸層 (Transport Layer) 是採用 UDP 協定, 而當用戶端 傳送給封包給伺服器時, 採用的是 UDP 67 Port, 從伺服器傳送給用戶端則是使用 UDP68 Port。DHCP 的封包格式如下圖:

  31. DHCP 封包格式

  32. 14-3-1 封包欄位說明 • 以下我們擇要說明各重要欄位的意義, 至於某些目前已經罕用的欄位, 請讀者自行參考 RFC 2131 和 2939。 • Op Code (Op) • 若為 1, 表示這個封包是從用戶端送出的, 若為 2, 表示此封包是由伺服器所送出的。 • Hardware Type (Htype) • 表示網路類型, 例如:1 表示 Ethernet, 7 代表 ARCNET。其它代碼請參閱 RFC1700 關於 ARP 的部分。

  33. 封包欄位說明 • Hardware Address Length (Hlen) • MAC 位址的長度, 以 Byte 為單位, 以 Ethernet 來說, 其欄位值為 6。 • Hops (Hops) • 當 DHCP 用戶端將封包送出時, 會將此欄位值設為 0。而 Relay Agent 要轉送封包到 DHCP 伺服器時, 則將此值加 1。

  34. 封包欄位說明 • Transaction ID (Xid) • 當用戶端傳送封包時, 會隨機分配一組數字置於此欄位中。伺服器收到封包並回覆時, 會將此欄位值原封不動的寫在回覆封包裡, 而用戶端就是借由此組數字分辨伺服器所回應的是那一個封包。 • Client IP Address (Ciaddr) • 目前用戶端所使用的 IP 位址。

  35. 封包欄位說明 • Your IP Address (Yiaddr) • 伺服器傳送 DHCPOffer、DHCPAck 封包時, 會將欲分配給用戶端的 IP 位址填入此欄位。 • Server IP Address (Siaddr) • 當伺服器回應 DHCPDiscover 封包時, 會將自己的 IP 位址填入此欄位, 讓用戶端可以在稍後的 Request 封包中, 將此 IP 位址填入 Option Field 中的 Server Identifier欄位。

  36. 封包欄位說明 • Relay IP Address (Giaddr) • 若伺服器和用戶端需透過 Relay Agent 交換封包時, Relay Agent 會在此欄位填入自己的 IP 位址。 • Client Ethernet Address (Chaddr) • 此欄位值為用戶端的 MAC Address 。 • Server Host Name (Sname) • 此欄位存放的是 DHCP 伺服器的名稱, 但 Windows 2000 不使用此欄位。

  37. 封包欄位說明 • Boot File Name (File) • 這是當用戶端為 Diskless Workstation (無磁碟工作站) 時才會用到的欄位。此欄位由伺服器提供, 填入用戶端開機所需要的檔案名稱, 讓用戶端利用檔案傳輸工具下載此檔案, 並藉以完成開機程序。 • Option Field (Options) • 上一節所提過的租約期限等重要資訊, 都是放在這個欄位中, 請參見以下的說明。

  38. DHCP Relay Agent 的用途 • 在第 3 章介紹路由器時提到, 路由器會阻隔廣播封包。所以若 DHCP 用戶端和 DHCP 伺服器分別位於路由器 2 邊的區域網路時, DHCP 用戶端要尋找伺服器的廣播封包將會被路由器擋住, 導致用戶端無法取得 DHCP 伺服器的服務。 • 解決方法之一就是在路由器 2 邊都架設 DHCP 伺服器;若不想多架設一台 DHCP 伺服器,則可使用 Relay Agent (轉送代理伺服器) 的方式。

  39. DHCP Relay Agent 的用途 • Relay Agent 會記錄路由器另一端的DHCP 伺服器的 IP 位址, 當 Relay Agent 發現區域網路中有 DHCPDiscover 或 DHCPRequest 廣播封包時, 它會收下該封包, 並將封包的目的位址改成 DHCP 伺服器的 IP 位址重新送出, 此修改過的封包將可由路由器送到 DHCP 伺服器所在的網路, 讓 DHCP 伺服器可提供其服務。

  40. DHCP Relay Agent 的用途

  41. 14-3-2 Option Field (非必要性欄位) • Option Field 不是單指一個欄位, 而是代表一組欄位。這組欄位由許多欄位組成, 它們有個共同特性-非必要性 (Optional)。換言之, 不是每個 DHCP 封包都會有完整的整組欄位, 大部份只是有其中的部份欄位。例如:DHCPDiscover 封包和 DHCPAck 封包均有 IP Address Lease Time (租約期限) 欄位, 但其它封包則沒有該欄位。根據 RFC 2131 整理出下列兩份表格, 說明這些 Option Field 在各種封包出現的時機。

  42. Option Field (非必要性欄位)

  43. Option Field (非必要性欄位)

  44. Option Field (非必要性欄位) • 現在我們針對每個欄位加以說明: • Requested Address • 用戶端希望伺服器能分配某一特定 IP 位址或是要更新 IP 租約時, 會在此欄位填入 IP 位址。通常這個欄位會在回覆 DHCPOffer 封包的 DHCPRequest封包, 及重開機時發出的 DHCPRequest 封包中出現。

  45. Option Field (非必要性欄位) • IP Address Lease Time (含 T1、T2) • 其實這是由 3 個欄位組成:IP Address Lease Time、Renewal Time Value(T1)、Rebinding Time Value (T2)。 • 這 3 個欄位分別代表租約期限、更新租約時間 (T1, 預設是租約期限的 1/2) 及最後更新時間 (T2, 預設是租約期限的 7/8)。

  46. Option Field (非必要性欄位) • Option Overload • 當 Option 欄位的資料過多, 超過規定的最大長度時 (312 Bytes), 可以利用此欄位去設定借用 Sname和 File這兩個欄位。欄位值為 1 時, 表示借用 File 欄, 欄位值為 2 時, 表示借用 Sname 欄, 若為 3, 表示兩個欄位都借來使用。

  47. Option Field (非必要性欄位) • DHCP Message Type • 此欄位值表示目前所使用的是那一種封包類型, 欄位值與封包類型的對照表如右:

  48. Option Field (非必要性欄位) • Parameter Request List • 用戶端可以利用此欄位要求伺服器提供所需要的參數, 例如:要求 DNS 伺服器的IP 位址等。 • Message • 用來告知對方額外的訊息, 通常是錯誤訊息。

  49. Option Field (非必要性欄位) • Server Identifier • 伺服器的 IP 位址, 當用戶端還未取得 IP 租約時, 所有的封包都是採用廣播方式傳送, 所以需要此欄位來辨視那一台 DHCP伺服器才是要配合的伺服器。另外,在 DHCP Release 封包中也會包含此欄位。 • Client Identifier • 用戶端的 MAC 位址, 讓伺服器知道是那一台用戶端發出租用 IP 位址的要求。

  50. Option Field (非必要性欄位) • Maximum Message Size • 用戶端告知伺服器自己可以接受的封包長度, 通常是伺服器和用戶端分別位在異質的網路, 才會使用到此欄位。 • 其實 Option Field這部分, 各家廠商在實作時, 或多或少都會有改變, 因此, 讀者在使用不同軟體實作時, 若發現與上述有所出入, 皆屬正常現象, 不必懷疑。

More Related