動態主機設定協定(DHCP)

動態主機設定協定(DHCP)

  • Dynamic Host Configuration Protocol
  • 是一個用於IP網路的網路協定,位於OSI模型的應用層,使用UDP協定工作,主要有兩個用途:
    • 用於內部網路或網路服務供應商自動分配IP位址給使用者
    • 用於內部網路管理員對所有電腦作中央管理
  • 甚至對於那些很少改變位址的伺服器來說,DHCP仍然被建議用來設定它們的位址。如果伺服器需要被重新分配位址(RFC 2071)的時候,就盡可能不去做更改。對於一些裝置,如路由器和防火牆,則不應使用DHCP。

原理

  • 動態主機設定協定(DHCP)是一種使網路管理員能夠集中管理和自動分配IP網路位址的通信協定。
    • 在IP網路中,每個連接Internet的裝置都需要分配唯一的IP位址。
    • DHCP使網路管理員能從中心結點監視和分配IP位址。
    • 當某台電腦移到網路中的其它位置時,能自動收到新的IP位址。
  • DHCP使用了租約的概念,或稱為電腦IP位址的有效期。
    • 租用時間是不定的,主要取決於使用者在某地連接Internet需要多久,這對於教育行業和其它使用者頻繁改變的環境是很實用的。
    • 透過較短的租期,DHCP能夠在一個電腦比可用IP位址多的環境中動態地重新組態網路。
    • DHCP支援為電腦分配靜態位址,如需要永久性IP位址的Web伺服器。

structure

協定結構
8 bits 16 bits 24 bits 32 bits
Op Htype Hlen Hops
Xid
Secs Flags
Ciaddr
Yiaddr
Siaddr
Giaddr
Chaddr (16 bytes)
Sname (64 bytes)
File (128 bytes)
Option (variable)
  • Op:訊息操作代碼,既可以是引導請求(BOOTREQUEST)也可以是引導答覆(BOOTREPLY)
  • Htype:硬體位址類型
  • Hlen:硬體位址長度
  • Xid:處理ID
  • Secs:從取得到IP位址或者續約過程開始到現在所消耗的時間
  • Flags:標記
  • Ciaddr:客戶機IP位址
  • Yiaddr:「你的」(客戶機)IP位址
  • Siaddr:在bootstrap中使用的下一台伺服器的IP位址
  • Giaddr:用於匯入的接替代理IP位址
  • Chaddr:客戶機硬體
  • Sname:任意伺服器主機名稱,空終止符
  • File:DHCP發現協定中的引導檔名、空終止符、屬名或者空,DHCP供應協定中的受限目錄路徑名
  • Options:可選參數欄位。參考定義選擇列表中的選擇檔案

protocol

  • DHCP統一使用兩個IANA分配的埠作為BOOTP:伺服器端使用67/udp,客戶端使用68/udp。
  • DHCP執行分為四個基本過程
    • 請求IP租約
    • 提供IP租約
    • 選擇IP租約
    • 確認IP租約。
  • 客戶在獲得了一個IP位址以後,就可以傳送一個ARP請求來避免由於DHCP伺服器位址池重疊而引發的IP衝突。

reference