390 likes | 646 Vues
DHCP協定. 12-1 DHCP簡介 12-2 DHCP封包格式 12-3 DHCP工作原理 12-4 DHCP擷取封包的分析. 12-1 DHCP 簡介. DHCP 是 Dynamic Host Configuration Protocol 之縮寫,稱為動態主機組態協定,在它之前是 BOOTP(Bootstrap) 協定。. 12-2 DHCP 封包格式. OP (OP Code) 佔 8bitz s 此值等於 1 時,表示這個封包是從客戶端送至伺服端;若為 2 ,表示此封包是由伺服端送至客戶端。 HTYPE (Hardware Type) 佔 8bits
E N D
DHCP協定 • 12-1 DHCP簡介 • 12-2 DHCP封包格式 • 12-3 DHCP工作原理 • 12-4 DHCP擷取封包的分析
12-1 DHCP簡介 • DHCP是Dynamic Host Configuration Protocol之縮寫,稱為動態主機組態協定,在它之前是BOOTP(Bootstrap)協定。
OP (OP Code)佔8bitz s 此值等於1時,表示這個封包是從客戶端送至伺服端;若為2,表示此封包是由伺服端送至客戶端。 • HTYPE (Hardware Type)佔8bits 代表所使用的網路類型。例如:1代表乙太網路;16代表ATM網路(可參考RFC 1700)。 • HLEN (Hardware Address Length)佔8bits MAC位址的長度,以乙太網路為例,其欄位值為6(代表48bits)。 • HOPS佔8bits 若封包在同一網路內傳送,此欄位值設定為0。若需透過DHCP Relay Agent才能將客戶端的DHCP要求轉送至DHCP伺服器時,則將此欄位值加1。 • TRANSACTION ID(簡寫Xid)佔32bits 客戶端送出封包時會隨機被挑選到的代碼值,一旦伺服器收到封包,就以此代碼值回覆,客戶端也是藉由此數值分辨出伺服器到底是回覆哪一個封包。
SECONDS佔16bits 客戶端啟動或更新所花費的時間(秒)。 • FLAGS佔16bits 最左邊「B」位元為1時,表示伺服器以廣播方式傳送封包給客戶端,其餘保留待使用填入0,如圖12-2中的「MBZ(Must Be Zero)」所示。
ciaddr (Client IP Address)佔32bits 目前客戶端所在的IP位址。 • yiaddr (Your IP Address)佔32bitz s 伺服端會將配置給客戶端的IP位址填到回覆訊息( 指DHCPOFFER、DHCPACK)內。 • siaddr(Server IP Address)佔32bits 伺服端回覆DHCPDISCOVER封包時,會將自己的IP位址填入此欄位,接下來,DHCPREQUEST在客戶端送出之前,此位址會填入Option欄位中的Server identifier欄位內。 • giaddr (Relay IP Address)佔32bits 若伺服器和客戶端需透過DHCP Relay Agent來進行跨網域封包的交換時,Relay Agent在此欄位填入自己的IP位址,否則填入0。
chaddr (Client Ethernet Address)佔16bytes 客戶端的硬體位址。 • sname(Server Host Name)佔64bytes 為DHCP伺服器的名稱。 • file (Boot File Name)佔128bytes 當客戶端為一部無硬碟機器,在開機時才會用到。此欄將指出開機程式名稱,以便讓客戶端利用檔案傳輸工具下載此程式,完成開機。 • Options(長度可變,最大值為312bytes) DHCP的選項非常多,請查閱RFC2131,此欄將指出先前提過的租約期限等重要資訊,茲以表12-1及表12-2列出DHCP伺服端及客戶端使用的Options。
Options相關欄位如下說明: 1. Requested IP Address:指出當客戶端送出DHCPDISCOVER封包希望獲得特定IP位址,或更新IP租約時所填入的IP位址(參考RFC 2132)。它的代碼(Code)是50。 2. IP Address Lease Time:指出IP位址租約期限。它的代碼是51。 3. Use file/sname fields:Option欄位規定的最大長度為312bytes,當資料超過此值時,可以延伸去借用「sname」和「file」這兩個欄位。欄位值為1時,代表借用「file」欄;欄位值為2時,代表借用「sname」欄;欄位值為3時,代表兩個欄位都借用。它的代碼是52。 4. DHCP message type:指出所使用的訊息類型,以及編號1至8所代表的訊息,如表12-3所示。注意:DHCPINFORM訊息是假設客戶端事先已透過一些方法得到IP位址(例如手動設定),但其他相關的參數則必須使用DHCP,如圖12-3的工作流程步驟。它的代碼是53。
5. Parameter request list:客戶端要求伺服器提供所需要的組態參數。它的代碼是55。 6. Message:若伺服器接收到不正確的Requested IP Address,則客戶端送出的DHCPREQUEST訊息會使伺服器回覆DHCPNAK訊息給客戶端的管理者,以告知有錯誤。它的代碼是56。 7. Client identifier:為客戶端的MAC位址,伺服器利用此獨一無二的識別資訊可以瞭解是哪一部客戶端發出租用IP位址的要求。它的代碼是61。 8. Server identifier:為伺服器的IP位址, 使用於DHCPOFFER和DHCPREQUEST和DHCPACK訊息內。由於客戶端在還沒有取得IP租約時,所有的封包都是以廣播方式傳送出去,此欄位可被用來辨識哪一部DHCP伺服器是被挑選出來的。它的代碼是54。
9. Vendor class identifier:當一部DHCP伺服器送出DHCPOFFER訊息至客戶端時,此識別資訊包含在DHCPOFFER訊息內,其可以協助客戶端選擇所接受的DHCPOFFER,像客戶端傳送DHCPDISCOVER訊息時,其隨機挑選的Xid值會送到伺服器,一旦伺服器收到訊息,就將Xid值加至DHCPOFFER訊息內,並且將此DHCPOFFER訊息送給所要求的客戶端。它的代碼是60。 10. Maximum DHCP message size:客戶端應該包含此Options欄以便讓伺服器知道它自己可以送出DHCP封包的最大長度,當訊息長度超過Options所容忍的最大值,如在「file/sname」欄位所述,就可以延伸去借用「file」和「sname」這兩個欄位。它的代碼是57。