天天看點

DHCP封包抓包分析DHCP(Dynamic Host Configuration Protocol)

DHCP(Dynamic Host Configuration Protocol)

2020年9月10日 by: Bob

一、簡介

​ DHCP(Dynamic Host Configuration Protocol),動态主機配置協定,是一個應用層協定。當我們将客戶主機ip位址設定為動态擷取方式時,DHCP伺服器就會根據DHCP協定給用戶端配置設定IP,使得客戶機能夠利用這個IP上網。

  1. DHCP封包格式
    DHCP封包抓包分析DHCP(Dynamic Host Configuration Protocol)
  2. 封包各字段詳細介紹
字段

長度

(位元組)

含義
OP 1

表示封包的類型:

1:用戶端請求封包

2:伺服器響應封包

htype 1 表示硬體位址的類型。對于以太網,該類型的值為“1”。
hlen 1 表示硬體位址的長度,機關是位元組。對于以太網,該值為6。
Hops 1 跳數。用戶端設定為0,也能被一個代理伺服器設定。
xid 4 事務ID,由用戶端選擇的一個随機數,被伺服器和用戶端用來在它們之間交流請求和響應,用戶端用它對請求和應答進行比對。該ID由用戶端設定并由伺服器傳回,為32位整數。
secs 2 由用戶端填充,表示從用戶端開始獲得IP位址或IP位址續借後所使用了的秒數。
flags 2 此字段在BOOTP中保留未用,在DHCP中表示标志字段。
DHCP封包抓包分析DHCP(Dynamic Host Configuration Protocol)

隻有标志字段的最高位才有意義,其餘的位均被置為0。

最左邊的字段被解釋為廣播響應标志位,内容如下所示:

0:用戶端請求伺服器以單點傳播形式發送響應封包

1:用戶端請求伺服器以廣播形式發送響應封包

ciaddr 4 用戶端的IP位址。隻有用戶端是Bound、Renew、Rebinding狀态,并且能響應ARP請求時,才能被填充。
yiaddr 4 "你自己的"或用戶端的IP位址。
siaddr 4 表明DHCP協定流程的下一個階段要使用的伺服器的IP位址。
giaddr 4

該字段表示第一個DHCP中繼的IP位址(注意:不是位址池中定義的網關)。當用戶端發出DHCP請求時,如果伺服器和用戶端不在同一個網絡中,那麼第一個DHCP中繼在轉發這個DHCP請求封包時會把自己的IP位址填入此字段。伺服器會根據此字段來判斷出網段位址,進而選擇為使用者配置設定位址的位址池。伺服器還會根據此位址将響應封包發送給此DHCP中繼,再由DHCP中繼将此封包轉發給用戶端。

若在到達DHCP伺服器前經過了不止一個DHCP中繼,那麼第一個DHCP中繼後的中繼不會改變此字段,隻是把Hops的數目加1。

chaddr 16 該字段表示用戶端的MAC位址,此字段與前面的“Hardware Type”和“Hardware Length”保持一緻。當用戶端發出DHCP請求時,将自己的硬體位址填入此字段。對于以太網,當“Hardware Type”和“Hardware Length”分别為“1”和“6”時,此字段必須填入6位元組的以太網MAC位址。
sname 64 該字段表示用戶端擷取配置資訊的伺服器名字。此字段由DHCP Server填寫,是可選的。如果填寫,必須是一個以0結尾的字元串。
file 128 該字段表示用戶端的啟動配置檔案名。此字段由DHCP Server填寫,是可選的,如果填寫,必須是一個以0結尾的字元串。
options 可變 該字段表示DHCP的選項字段,至少為312位元組,格式為"代碼+長度+資料"。DHCP通過此字段包含了伺服器配置設定給終端的配置資訊,如網關IP位址,DNS伺服器的IP位址,用戶端可以使用IP位址的有效租期等資訊。
  1. DHCP封包類型

    在DHCP Options中,Option id為53的選項用于差別DHCP封包類型,如下表。

    本文重點介紹一次成功DHCP請求使用到的DISCOVER、OFFER、REQUEST、ACK4種封包

    Value Message type:
    1 DHCPDISCOVER
    2 DHCPOFFER
    3 DHCPREQUEST
    4 DHCPDECLINE
    5 DHCPACK
    6 DHCPNAK
    7 DHCPRELEASE
    8 DHCPINFORM

二、利用Wireshark抓取DHCP包

1. 準備

  1. 先将網卡配置為DHCP用戶端
DHCP封包抓包分析DHCP(Dynamic Host Configuration Protocol)
DHCP封包抓包分析DHCP(Dynamic Host Configuration Protocol)
  1. 将網卡連接配接釋放,而不是禁用網卡,禁用網卡會導緻wireshark無法及時抓取此網卡上的資料包

    在cmd中輸入指令,因為我是多張網卡,我隻希望在

    以太網 3

    上研究DHCP報 文,是以隻釋放此網卡的連接配接,單網卡可以不加此參數,輸入

    ipconfig.exe

    可以檢視所有接口的資訊
DHCP封包抓包分析DHCP(Dynamic Host Configuration Protocol)

2. 啟動wireshark進行抓包

  1. 選擇要進行抓包的網卡:“以太網 3”
    DHCP封包抓包分析DHCP(Dynamic Host Configuration Protocol)
  2. 過濾dhcp封包
    DHCP封包抓包分析DHCP(Dynamic Host Configuration Protocol)
  3. 啟動網卡連接配接

    經過上述步驟之後,稍等片刻即可在wireshark中看到DHCP的資料包

DHCP封包抓包分析DHCP(Dynamic Host Configuration Protocol)

這裡産生了4個資料包,類型分别為DHCPDISCOVER、DHCPOFFER、DHCPREQUEST、DHCPACK,下面将分别展示

三、封包分析

1. 抓到的4個資料包分析

  1. DHCPDISCOVER

    此資料包由DHCP Client發送,采用廣播的形式通知網絡内的DHCP伺服器自己需要獲得一個IP位址,資料如下。

    Dynamic Host Configuration Protocol (Discover)
        Message type: Boot Request (1)
        Hardware type: Ethernet (0x01)
        Hardware address length: 6
        Hops: 0
        Transaction ID: 0x8edf68a8
        Seconds elapsed: 0
        Bootp flags: 0x0000 (Unicast)
        Client IP address: 0.0.0.0
        Your (client) IP address: 0.0.0.0
        Next server IP address: 0.0.0.0
        Relay agent IP address: 0.0.0.0
        Client MAC address: 64:6e:97:0d:73:b4 (64:6e:97:0d:73:b4)
        Client hardware address padding: 00000000000000000000
        Server host name not given
        Boot file name not given
        Magic cookie: DHCP
        Option: (53) DHCP Message Type (Discover)
            Length: 1
            DHCP: Discover (1)
        Option: (61) Client identifier
            Length: 7
            Hardware type: Ethernet (0x01)
            Client MAC address: 64:6e:97:0d:73:b4 (64:6e:97:0d:73:b4)
        Option: (50) Requested IP Address (192.168.1.120)
            Length: 4
            Requested IP Address: 192.168.1.120
        Option: (12) Host Name
            Length: 15
            Host Name: DESKTOP-1DM67I6
        Option: (60) Vendor class identifier
            Length: 8
            Vendor class identifier: MSFT 5.0
        Option: (55) Parameter Request List
            Length: 14
    
    		...(省略)
    
        Option: (255) End
            Option End: 255
               
  2. DHCPOFFER

    DHCP伺服器傳回的DHCP offer,此封包攜帶了各種配置資訊,包含了一個可以配置設定的IP位址,也可以包含DNS伺服器的位址。

    網絡内可能有多個DHCP伺服器,是以也可能收到多個offer,本主機所在網絡内隻有一個DHCP伺服器,收到如下封包

    Dynamic Host Configuration Protocol (Offer)
        Message type: Boot Reply (2)
        Hardware type: Ethernet (0x01)
        Hardware address length: 6
        Hops: 0
        Transaction ID: 0x8edf68a8
        Seconds elapsed: 0
        Bootp flags: 0x0000 (Unicast)
        Client IP address: 0.0.0.0
        Your (client) IP address: 192.168.1.120
        Next server IP address: 192.168.1.1
        Relay agent IP address: 0.0.0.0
        Client MAC address: 64:6e:97:0d:73:b4 (64:6e:97:0d:73:b4)
        Client hardware address padding: 00000000000000000000
        Server host name not given
        Boot file name not given
        Magic cookie: DHCP
        Option: (53) DHCP Message Type (Offer)
            Length: 1
            DHCP: Offer (2)
        Option: (54) DHCP Server Identifier (192.168.1.1)
            Length: 4
            DHCP Server Identifier: 192.168.1.1
        Option: (51) IP Address Lease Time
            Length: 4
            IP Address Lease Time: (86400s) 1 day
        Option: (58) Renewal Time Value
            Length: 4
            Renewal Time Value: (43200s) 12 hours
        Option: (59) Rebinding Time Value
            Length: 4
            Rebinding Time Value: (75600s) 21 hours
        Option: (1) Subnet Mask (255.255.255.0)
            Length: 4
            Subnet Mask: 255.255.255.0
        Option: (28) Broadcast Address (192.168.1.255)
            Length: 4
            Broadcast Address: 192.168.1.255
        Option: (3) Router
            Length: 4
            Router: 192.168.1.1
        Option: (6) Domain Name Server
            Length: 8
            Domain Name Server: 192.168.81.1
            Domain Name Server: 61.139.2.69
        Option: (255) End
            Option End: 255
        Padding: 00000000   
               
  3. DHCPREQUEST

    request資料包用于申請offer中給出的IP位址,此時仍然沒有真正獲得IP位址,是以仍然是廣播形式發送。

    Dynamic Host Configuration Protocol (Request)
        Message type: Boot Request (1)
        Hardware type: Ethernet (0x01)
        Hardware address length: 6
        Hops: 0
        Transaction ID: 0x8edf68a8
        Seconds elapsed: 0
        Bootp flags: 0x0000 (Unicast)
        Client IP address: 0.0.0.0
        Your (client) IP address: 0.0.0.0
        Next server IP address: 0.0.0.0
        Relay agent IP address: 0.0.0.0
        Client MAC address: 64:6e:97:0d:73:b4 (64:6e:97:0d:73:b4)
        Client hardware address padding: 00000000000000000000
        Server host name not given
        Boot file name not given
        Magic cookie: DHCP
        Option: (53) DHCP Message Type (Request)
            Length: 1
            DHCP: Request (3)
        Option: (61) Client identifier
            Length: 7
            Hardware type: Ethernet (0x01)
            Client MAC address: 64:6e:97:0d:73:b4 (64:6e:97:0d:73:b4)
        Option: (50) Requested IP Address (192.168.1.120)
            Length: 4
            Requested IP Address: 192.168.1.120
        Option: (54) DHCP Server Identifier (192.168.1.1)
            Length: 4
            DHCP Server Identifier: 192.168.1.1
        Option: (12) Host Name
            Length: 15
            Host Name: DESKTOP-1DM67I6
        Option: (81) Client Fully Qualified Domain Name
            Length: 18
            Flags: 0x00
            A-RR result: 0
            PTR-RR result: 0
            Client name: DESKTOP-1DM67I6
        Option: (60) Vendor class identifier
            Length: 8
            Vendor class identifier: MSFT 5.0
        Option: (55) Parameter Request List
            Length: 14
            
    		...(省略)
    		
        Option: (255) End
        Option End: 255
               
  4. DHCPACK

    DHCP伺服器對用戶端的REQUEST封包的确認,用戶端收到此封包後,才算獲得了 IP 位址和相關的配置資訊。

    Dynamic Host Configuration Protocol (ACK)
         Message type: Boot Reply (2)
         Hardware type: Ethernet (0x01)
         Hardware address length: 6
         Hops: 0
         Transaction ID: 0x8edf68a8
         Seconds elapsed: 0
         Bootp flags: 0x0000 (Unicast)
         Client IP address: 0.0.0.0
         Your (client) IP address: 192.168.1.120
         Next server IP address: 192.168.1.1
         Relay agent IP address: 0.0.0.0
         Client MAC address: 64:6e:97:0d:73:b4 (64:6e:97:0d:73:b4)
         Client hardware address padding: 00000000000000000000
         Server host name not given
         Boot file name not given
         Magic cookie: DHCP
         Option: (53) DHCP Message Type (ACK)
             Length: 1
             DHCP: ACK (5)
         Option: (54) DHCP Server Identifier (192.168.1.1)
             Length: 4
             DHCP Server Identifier: 192.168.1.1
         Option: (51) IP Address Lease Time
             Length: 4
             IP Address Lease Time: (86400s) 1 day
         Option: (58) Renewal Time Value
             Length: 4
             Renewal Time Value: (43200s) 12 hours
         Option: (59) Rebinding Time Value
             Length: 4
             Rebinding Time Value: (75600s) 21 hours
         Option: (1) Subnet Mask (255.255.255.0)
             Length: 4
             Subnet Mask: 255.255.255.0
         Option: (28) Broadcast Address (192.168.1.255)
             Length: 4
             Broadcast Address: 192.168.1.255
         Option: (3) Router
             Length: 4
             Router: 192.168.1.1
         Option: (6) Domain Name Server
             Length: 8
             Domain Name Server: 192.168.81.1
             Domain Name Server: 61.139.2.69
         Option: (81) Client Fully Qualified Domain Name
             Length: 18
             Flags: 0x03, Server overrides, Server
             A-RR result: 255
             PTR-RR result: 255
             Client name: DESKTOP-1DM67I6
         Option: (255) End
             Option End: 255
               

    2. 另外4種封包介紹

  5. DHCP NAK:

    伺服器對用戶端的 DHCP REQUEST 封包的拒絕響應封包,比如伺服器對客戶

    端配置設定的 IP 位址已超過使用租借期限(伺服器沒有找到相應的租約記錄)或者由于某些原

    因無法正常配置設定 IP 位址,則發送 DHCP NAK 封包作為應答(用戶端移到了另一個新的網絡)。

    通知 DHCP 用戶端無法配置設定合适 IP 位址。DHCP 用戶端需要重新發送

    DHCP DISCOVERY 封包

    來申請新的 IP 位址。

  6. DHCP DECLINE:

    當用戶端發現伺服器配置設定給它的 IP 位址發生沖突時會通過發送此封包

    來通知伺服器,并且會重新向伺服器申請位址。

  7. DHCP RELEASE:

    用戶端可通過發送此封包主動釋放伺服器配置設定給它的 IP 位址,當服務

    器收到此封包後,可将這個 IP 位址配置設定給其它的用戶端。

  8. DHCP INFORM:

    用戶端已經獲得了 IP 位址,發送此封包的目的是為了從伺服器獲得其

    他的一些網絡配置資訊,比如網關位址、DNS 伺服器位址等。

繼續閱讀