1. 程式人生 > >DHCP完整過程詳解及Wireshark抓包分析

DHCP完整過程詳解及Wireshark抓包分析

DHCP,Dynamic Host Configuration Protocol,動態主機配置協議,簡單來說就是主機獲取IP地址的過程,屬於應用層協議。
DHCP採用UDP的68(客戶端)和67(伺服器)埠進行通訊。

【過程】
DHCP過程主要為DHCP Discover-->DHCP Offer-->DHCP Request-->DHCP Ack四個過程。
通過Wireshark抓取DHCP獲取IP過程的資料報文。
1、開Wireshark抓包
2、PC當前已有IP,使用cmd命令釋放IP(ipconfig /release),並重新獲取IP(ipconfig /renew)

3、停止抓包,使用bootp過濾報文。

4、可以看到圖中的5個報文,其中DHCP Release報文為PC釋放IP時發出的報文。

獲取IP時,PC會發送DHCP Discover廣播報文,由於當前PC沒有IP,故源IP為0.0.0.0;特別要注意到的是,PC會隨機出一個Transaction ID,如果之後收到的Offer報文中的Transaction ID與PC模擬出的不同,PC會將該Offer報文直接丟棄。

DHCP Offer報文

DHCP Request報文

DHCP Ack報文

【模擬伺服器傳送Offer報文的過程及注意事項】
1、保證伺服器與客戶端的連通性
2、準備好一個Offer報文(可編輯)
3、使用Wireshark抓取客戶端發出的Discover報文,確定當前客戶端隨機出的Transaction ID
4、更改Offer報文中的Transaction ID與Discover報文中一致
5、使用發包軟體傳送Offer報文

注:Transaction ID

【地址租期】
DHCP伺服器提供的每個IP地址都有相應的租用期,在Offer報文中的IP Address Lease Time中可以看到。地址租期時間過長會導致地址資源長期被佔用,租期過短會導致DHCP請求包過多,增加網路負擔。還要結合當前使用場景來設定。一般來說,對DHCP客戶端數量較大,且斷開網路比較頻繁的場所,如機場、商鋪等,一般把DHCP租期配置較短,這樣IP地址能很快被回收。

【IP續租過程】
客戶端會在地址租期還有1/2的時候,向DHCP伺服器傳送DHCP Request報文;如果收到伺服器的DHCP Ack後,客戶端的IP地址租期重新回滿。
如果未收到Ack,可繼續使用該IP,在租期還有1/4時發出第二次Request報文;如果收到Ack,租期回滿;
如果未收到Ack,在租期還有1/8時發出第三次Request報文,如果收到Ack,租期回滿
如果未收到Ack,租期結束後IP被回收