DHCP協議報文分析

DHCP協議分析


一、DHCP簡介

    DHCPDynamic Host Configuration Protocol,動態主機配置協議)用來爲網絡設備動態地分配 IP地址等網絡配置參數。

DHCP 採用客戶端/服務器通信模式,由客戶端向服務器提出請求分配網絡配置參數的申請,服務器返回爲客戶端分配的 IP 地址等配置信息,以實現 IP 地址等信息的動態配置。

 


二、DHCP工作過程

  1.IP 地址動態獲取過程

     141509602398.png

   2.主要通過四個階段進行:

A.發現階段,即 DHCP 客戶端尋找 DHCP 服務器的階段。客戶端以廣播方式發送DHCP-DISCOVER 報文。

 

B.提供階段,即 DHCP 服務器提供 IP 地址的階段。DHCP 服務器接收到客戶端的DHCP-DISCOVER 報文後,根據 IP 地址分配的優先次序選出一個 IP 地址,與其他參數一起通過 DHCP-OFFER 報文發送給客戶端。

 

C.選擇階段,即 DHCP 客戶端選擇 IP 地址的階段。如果有多臺 DHCP 服務器向該客戶端發來DHCP-OFFER 報文,客戶端只接受第一個收到的 DHCP-OFFER 報文,然後以廣播方式發送DHCP-REQUEST 報文,該報文中包含 DHCP 服務器在 DHCP-OFFER 報文中分配的 IP 地址。

 

D.確認階段,即 DHCP 服務器確認 IP 地址的階段。DHCP 服務器收到 DHCP 客戶端發來的DHCP-REQUEST 報文後,只有 DHCP 客戶端選擇的服務器會進行如下操作:如果確認將地址分配給該客戶端,則返回 DHCP-ACK 報文;否則返回 DHCP-NAK 報文,表明地址不能分配給該客戶端。

 

 

三、實驗環境

  141509602351.png

RT2DHCP服務器,RT1是客戶端;RT2 GE0/0端口配置IP地址10.0.0.254/24,地址池爲10.0.0.0/24RT1 GE0/0端口配置IP地址自動獲取。

 

 

 

三、實驗內容

  1.RT2配置

  [Rt2]interface GigabitEthernet 0/0

  [Rt2-GigabitEthernet0/0]ip address 10.0.0.254 24

  [Rt2-GigabitEthernet0/0]quit

  [Rt2]dhcp enable       \\開啓DHCP服務

  [Rt2]dhcp server ip-pool 10     \\創建DHCP地址池

  [Rt2-dhcp-pool-10]network 10.0.0.0 24      \\配置爲客戶端分配的IP地址

  [Rt2-dhcp-pool-10]gateway-list 10.0.0.254   \\配置DHCP客戶端使用的網關地址

  [Rt2-dhcp-pool-10]quit

  [Rt2]dhcp server forbidden-ip 10.0.0.254  \\配置DHCP地址池中不參與自動分配的IP地址

  

  2.RT1配置

  [RT1]interface GigabitEthernet 0/0

  [RT1-GigabitEthernet0/0]ip address dhcp-alloc   \IP地址自動獲取

 

  3.現在RT1已經獲取到IP地址。

  [RT1]display ip interface GigabitEthernet 0/0 brief

  (s): spoofing  (l): loopback

  Interface                Physical Protocol IP Address      Description

  GE0/0                    up       up       10.0.0.1        --

 

 4.RT1路由表裏多了一條優先級爲70的默認路由

  [RT1]display ip routing-table

  Destinations : 13       Routes : 13

  Destination/Mask   Proto   Pre Cost        NextHop         Interface

  0.0.0.0/0          Static  70  0           10.0.0.254      GE0/0

  0.0.0.0/32         Direct  0   0           127.0.0.1       InLoop0

  10.0.0.0/24        Direct  0   0           10.0.0.1        GE0/0

  10.0.0.0/32        Direct  0   0           10.0.0.1        GE0/0

  10.0.0.1/32        Direct  0   0           127.0.0.1       InLoop0

  10.0.0.255/32      Direct  0   0           10.0.0.1        GE0/0

  127.0.0.0/8        Direct  0   0           127.0.0.1       InLoop0

  127.0.0.0/32       Direct  0   0           127.0.0.1       InLoop0

  127.0.0.1/32       Direct  0   0           127.0.0.1       InLoop0

  127.255.255.255/32 Direct  0   0           127.0.0.1       InLoop0

  224.0.0.0/4        Direct  0   0           0.0.0.0         NULL0

  224.0.0.0/24       Direct  0   0           0.0.0.0         NULL0

  255.255.255.255/32 Direct  0   0           127.0.0.1       InLoop0

原因是在RT2配置了gateway-list 10.0.0.254,如果配置這條命令,RT1裏就會存在這條默認路由。





四、實驗分析

 1.DHCP報文格式

141509602436.png

各字段的解釋如下:

a. op:報文的操作類型,分爲請求報文和響應報文,爲請求報文;爲響應報文。具體的報文類型在 options 字段中標識。

b. htypehlenDHCP 客戶端的硬件地址類型及長度。

c. hopsDHCP 報文經過的 DHCP 中繼的數目。DHCP 請求報文每經過一個 DHCP 中繼,該字段就會增加 1

d. xid:客戶端發起一次請求時選擇的隨機數,用來標識一次地址請求過程。

e. secsDHCP 客戶端開始 DHCP 請求後所經過的時間。目前沒有使用,固定爲 0

f. flags:第一個比特爲廣播響應標識位,用來標識 DHCP 服務器響應報文是採用單播還是廣播方式發送,表示採用單播方式,表示採用廣播方式。其餘比特保留不用。

g. ciaddrDHCP 客戶端的 IP 地址。如果客戶端有合法和可用的 IP 地址,則將其添加到此字段,否則字段設置爲 0。此字段不用於客戶端申請某個特定的 IP 地址。

h. yiaddrDHCP 服務器分配給客戶端的 IP 地址。

i. siaddrDHCP 客戶端獲取啓動配置信息的服務器 IP 地址。

j. giaddrDHCP 客戶端發出請求報文後經過的第一個 DHCP 中繼的 IP 地址。

k. chaddrDHCP 客戶端的硬件地址。

l. snameDHCP 客戶端獲取啓動配置信息的服務器名稱。

m. fileDHCP 服務器爲 DHCP 客戶端指定的啓動配置文件名稱及路徑信息。

n. options:可選變長選項字段,包含報文的類型、有效租期、DNS 服務器的 IP 地址、WINS 服務器的 IP 地址等配置信息。

 

2.抓包分析

  141509602485.png

 

 a.首先RT1以廣播方式發送DHCP-DISCOVER 報文。

  141509602529.png

   源地址全0

 

b.RT2收到後回覆DHCP-OFFER,以廣播的方式。

  141509601569.png

  報文包含申請到的IP地址  

 

c.RT1發送DHCP-REQUEST報文請求使用申請到的地址。

  141509601613.png

  此時RT1還沒有使用申請到的地址,源地址還是全0,目的地址是依然是廣播地址。

 

d.RT2回覆DHCP-ACK 

  141509601669.png

   RT2廣播發送DHCP-ACK,確認分配10.0.0.1

 

 

 

七、實驗補充

    客戶端收到服務器返回的 DHCP-ACK 確認報文後,會以廣播的方式發送免費 ARP 報文,探測是否有主機使用服務器分配的 IP 地址,如果在規定的時間內沒有收到迴應,客戶端才使用此地址。否則,客戶端會發送 DHCP-DECLINE 報文給 DHCP 服務器,並重新申請 IP 地址。




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章