協議分析 - DHCP協議解碼詳解

來源:互聯網
上載者:User
DHCP協議簡介

DHCP,全稱是 Dynamic Host Configuration Protocol﹐中文名為動態主機設定通訊協定,它的前身是 BOOTP,它工作在OSI的應用程式層,是一種協助電腦從指定的DHCP伺服器擷取它們的配置資訊的自舉協議。
DHCP使用用戶端/伺服器模式,請求配置資訊的電腦叫做DHCP用戶端,而提供資訊的叫做DHCP的伺服器。DHCP為用戶端分配地址的方法有三種:手工配置、自動設定、動態配置。
DHCP最重要的功能就是動態分配。除了IP地址,DHCP分組還為用戶端提供其他的配置資訊,比如子網路遮罩。這使得用戶端無需使用者動手就能自動設定串連網路。

DHCP的工作流程

發現階段,即DHCP客戶機尋找DHCP伺服器的階段。DHCP客戶機以廣播方式(因為DHCP伺服器的IP地址對於客戶機來說是未知的)發送 DHCP discover發現資訊來尋找DHCP伺服器,即向地址255.255.255.255發送特定的廣播資訊。網路上每一台安裝了TCP/IP 協議的主機都會接收到這種廣播資訊,但只有DHCP伺服器才會做出響應。
提供階段,即DHCP伺服器提供IP地址的階段。在網路中接收到DHCP discover發現資訊的DHCP伺服器都會做出響應,它從尚未出租的IP地址中挑選一個分配給DHCP客戶機,向DHCP客戶機發送一個包含出租的IP地址和其他設定的DHCP offer提供資訊。
選擇階段,即DHCP客戶機選擇某台DHCP伺服器提供的IP地址的階段。如果有多台DHCP伺服器向DHCP客戶機發來的DHCP offer提供資訊,則 DHCP客戶機只接受第一個收到的DHCP offer提供資訊,然後它就以廣播方式回答一個DHCP request請求資訊,該資訊中包含向它所選定的DHCP伺服器請求IP地址的內容。之所以要以廣播方式回答,是為了通知所有的DHCP伺服器,他將選擇某台DHCP伺服器所提供的IP地址。
確認階段,即DHCP伺服器確認所提供的IP地址的階段。當DHCP伺服器收到DHCP客戶機回答的DHCP request請求資訊之後,它便向DHCP客戶機發送一個包含它所提供的IP地址和其他設定的DHCP ACK確認資訊,告訴DHCP客戶機可以使用它所提供的IP地址。然後DHCP客戶機便將其 TCP/IP協議與網卡綁定,另外,除DHCP客戶機選中的伺服器外,其他的DHCP伺服器都將收回曾提供的IP地址。
重新登入,以後DHCP客戶機每次重新登入網路時,就不需要再發送DHCP discover發現資訊了,而是直接發送包含前一次所分配的IP地址的 DHCP request請求資訊。當DHCP伺服器收到這一資訊後,它會嘗試讓DHCP客戶機繼續使用原來的IP地址,並回答一個DHCP ACK確認資訊。如果此IP地址已無法再分配給原來的DHCP客戶機使用時(比如此IP地址已指派給其它DHCP客戶機使用),則DHCP伺服器給DHCP客戶機回答一個DHCP NACK否認資訊。當原來的DHCP客戶機收到此DHCP NACK否認資訊後,它就必須重新發送DHCP discover發現資訊來請求新的IP地址。
更新租約,DHCP伺服器向DHCP客戶機出租的IP地址一般都有一個租借期限,期滿後DHCP伺服器便會收回出租的IP地址。如果DHCP客戶機要延長其IP租約,則必須更新其IP租約。DHCP客戶機啟動時和 IP租約期限過一半時,DHCP客戶機都會自動向DHCP伺服器發送更新其IP租約的資訊。

DHCP的報文格式

我們來介紹一下DHCP的報文格式,1,

OP(1)

Htype(1)

Hlen(1)

Hops(1)

Transaction ID(4)

Seconds(2)

Flags(2)

Ciaddr(4)

Yiaddr(4)

Siaddr(4)

Giaddr(4)

Chaddr(16)

Sname(64)

File(128)

Options(variable)

(圖1 DHCP的 報文格式)

  1. OP:若是client送給server的封包,設為1,反向為2;
  2. Htype:硬體類別,ethernet為1;
  3. Hlen:硬體長度,ethernet為6;
  4. Hops:若資料包需經過router傳送,每站加1,若在同一網內,為0;
  5. Transaction ID:事務ID,是個隨機數,用於客戶和伺服器之間匹配請求和相應訊息;
  6. Seconds:由使用者指定的時間,指開始地址擷取和更新進行後的時間;
  7. Flags:從0-15bits,最左一bit為1時表示server將以廣播方式傳送封包給 client,其餘尚未使用;
  8. Ciaddr:使用者IP地址;
  9. Yiaddr:客戶IP地址;
  10. Siaddr:用於bootstrap過程中的IP地址;
  11. Giaddr:轉送 Proxy(網關)IP地址;
  12. Chaddr:client的硬體地址;
  13. Sname:可選server的名稱,以0x00結尾;
  14. File:開機檔案名;
  15. Options:,廠商標識,可選的參數欄位

解碼資訊

通過DHCP的 工作流程,我們知道從DHCP伺服器擷取配置資訊的4個階段中,DHCP用戶端會出現有4種報文(DHCPDISCOVERY,DHCPOFFER,DHCPREQUEST,DHCPACK)。我們分別來看看4報文的解碼內容:

發現階段

使用網路分析系統捕獲DHCP DISCOVERY 資料包,2,


(圖2 DHCP DISCOVERY資料包解碼)
由圖2可以看到DHCP DISCOVERY包的解碼資訊,由於DHCP是BOOTP的以個擴充,,DHCP相容BOOTP,我們可以看到BOOTP和DHCP的解碼。

提供階段

使用網路分析系統捕獲DHCP OFFER資料包,3,


(圖3 DHCP OFFER資料包解碼)

選擇階段

使用網路分析系統捕獲DHCP REQUEST資料包,4,


(圖4 DHCP REQUEST資料包解碼)

確認階段

使用網路分析系統捕獲DHCP ACK資料包,5,


(圖5 DHCP ACK資料包解碼)

以上為DHCP工作的4種資料包,每種資料包都是有區別的。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.