DHCP詳解


轉載:https://blog.csdn.net/lm409/article/details/80298225

 

 

1.DHCP簡介

DHCP(Dynamic Host Configuration Protocol,動態主機配置協議),是一個應用層協議,通常被應用在大型的局域網絡環境中,主要作用是集中的管理、分配IP地址,使網絡環境中的主機動態的獲得IP地址、Gateway地址、DNS服務器地址等信息,並能夠提升地址的使用率。

DHCP協議采用客戶端/服務器模型,主機地址的動態分配任務由網絡主機驅動。當DHCP服務器接收到來自網絡主機申請地址的信息時,才會向網絡主機發送相關的地址配置等信息,以實現網絡主機地址信息的動態配置。

2.DHCP工作流程

這里寫圖片描述

2.1 DHCP Client發現階段

DHCP客戶機尋找DHCP服務器的階段。DHCP客戶機以廣播方式(因為DHCP服務器的IP地址對於客戶機來說是未知的)發送 DHCP discover發現信息來尋找DHCP服務器,源地址為0.0.0.0目的地址為255.255.255.255。網絡上每一台安裝了TCP/IP協議的主機 都會接收到這種廣播信息,但只有DHCP服務器才會做出響應。

2.2 DHCP Server提供階段

DHCP服務器提供IP地址的階段。在網絡中接收到DHCP discover發現信息的DHCP服務器都會做出響應,它從尚未出租的IP地址中挑選一個分配給DHCP客戶機,向DHCP客戶機發送一個包含出租的 IP地址和其他設置的DHCP offer信息。

2.3 DHCP Client選擇階段

DHCP客戶機選擇某台DHCP服務器提供的IP地址的階段。如果有多台DHCP服務器向DHCP客戶機發來的DHCP offer提供信息,則DHCP客戶機只接受第一個收到的DHCP offer提供信息,然后它就以廣播方式回答一個DHCP request請求信息,該信息中包含向它所選定的DHCP服務器請求IP地址的內容。之所以要以廣播方式回答,是為了通知所有的DHCP服務器,他將選擇某台DHCP服務器所提供的IP地址。

2.4 DHCP Server確認階段

DHCP服務器確認所提供的IP地址的階段。當DHCP服務器收到DHCP客戶機回答的DHCP request請求信息之后,它便向DHCP客戶機發送一個包含它所提供的IP地址和其他設置的DHCP ack確認信息,告訴DHCP客戶機可以使用它所提供的IP地址。然后DHCP客戶機便將其TCP/IP協議與網卡綁定。
另外,除DHCP客戶機選中的服務器外,其他的DHCP服務器都將收回之前為其提供的IP地址。

2.5 DHCP Client重新登錄

以后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地址。

2.6 DHCP Client更新租約

DHCP服務器向DHCP客戶機出租的IP地址一般都有一個租借期限,期滿后DHCP服務器便會收回出租的IP地址。如果DHCP客戶 機要延長其IP租約,則必須更新其IP租約。DHCP客戶機啟動時和IP租約期限過一半時,DHCP客戶機都會自動向DHCP服務器發送更新其IP租約的 信息。

3.DHCP報文

這里寫圖片描述

3.1 報文內容

Op: 報文類型,分為 兩大類: Request(1) 和 Reply(2)
HW Type: 硬件類型,一般是以太網:1
HW Len: 硬件地址長度,單位字節。對應以太網:6(mac地址長度為6字節48bit)
Transaction ID:事務ID,隨機數,有客戶端生成,服務器Reply時,會把Request中的Transaction拷貝到Reply報文中。
Secs: 距離第一次發射IP請求或Renew請求過去的秒數
Flags:標志位,目前僅第一個bit有使用,置1 標明廣播
Client IP Address:當前客戶端的IP地址,如果當前客戶端沒有IP地址,則置0
Your IP Address: 服務器想客戶端提供IP地址時,會把IP地址填入本字段
(Next)Server IP Address:客戶端引導時需要的另一個服務器的IP地址
Gateway (Relay) IP Address: 網關(中繼)IP地址,有DHCP 中繼器在轉發DHCP報文的時候填入
Server Name: Server名字,有64bytes,一般不使用,填充為0
Boot File name: boot file的路徑,128bytes, 一般不使用,填充為0
Option: 選項,不定長度。

3.2 Option字段

Option 名稱 描述
0 Pad 填充位
1 Subnet Mask 子網 掩碼
3 Router Address 路由器地址
6 DNS DNS server
15 DN 域名
50 Requested IP Address 請求的IP地址
51 Address Lease Time 地址租約時間
53 DHCP Message Type DHCP消息類型,如Discover、Request、Offer、ACK等
54 Server Identifier 服務器標識
55 Parameter Request List 參數請求列表
56 DHCP Error Message DHCP 錯誤消息
58 Lease Renewal Time 租約續期時間
59 Lease Rebinding Time 租約重新設定的時間
61 Client Identifier 客戶標識
119 Domain Search List 域名查找列表
255 End 結束

3.3 DHCP Message Type(53)

在DHCP Option中,我們着重看下DHCP Message Type(53),DHCP Message Type標識DHCP消息類型,主要有一下類型:

DHCP 消息類型 對應的Option值
DHCPDISCOVER 1
DHCPOFFER 2
DHCPREQUEST 3
DHCPDECLINE 4
DHCPACK 5
DHCPNAK 6
DHCPRELEASE 7
DHCPINFORM 8
DHCPFORCERENEW 9
DHCPLEASEQUERY 10
DHCPLEASEUNASSIGNED 11
DHCPLEASEUNKNOWN 12
DHCPLEASEACTIVE 13

4.抓包分析

詳細的抓包分析可以參見Wireshark分析DHCP
舉例:服務器用DHCP ACK包對DHCP請求進行響應
這里寫圖片描述
從上圖可以看出,在數據包中包含以下信息,表示將這些資源信息分配給Client.
Your(client) IP address:分配給Client的可用IP。
DHCP Message Type(53):DHCP服務器發送的消息類型(ACK)
Subnet Mask:Client端分配到的IP的子網掩碼;
Router:路由器
Domain Name Server:DNS,域名服務器
IP Address Lease Time:IP租用期

參考

DHCP通信原理詳解
DHCP的基本實現原理
DHCP協議 詳解
Wireshark分析DHCP

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM