DHCP詳細解析——DHCP 協議工作原理

DHCP工作原理
一、什麼是DHCP ?
DHCP,動態主機配置協議,前身是BOOTP協議,是一個局域網的網絡協議,使用UDP協議工作,常用的2個端口:67(DHCP server),68(DHCP client)。DHCP通常被用於局域網環境,主要作用是集中的管理、分配IP地址,使client動態的獲得IP地址、Gateway地址、DNS服務器地址等信息,並能夠提升地址的使用率。簡單來說,DHCP就是一個不需要賬號密碼登錄的、自動給內網機器分配IP地址等信息的協議。

二、DHCP協議中的報文
DHCP報文共有一下幾種:

DHCP DISCOVER :客戶端開始DHCP過程發送的包,是DHCP協議的開始
DHCP OFFER :服務器接收到DHCP DISCOVER之後做出的響應,它包括了給予客戶端的IP(yiaddr)、客戶端的MAC地址、租約過期時間、服務器的識別符以及其他信息
DHCP REQUEST :客戶端對於服務器發出的DHCP OFFER所做出的響應。在續約租期的時候同樣會使用。
DHCP ACK :服務器在接收到客戶端發來的DHCP REQUEST之後發出的成功確認的報文。在建立連接的時候,客戶端在接收到這個報文之後纔會確認分配給它的IP和其他信息可以被允許使用。
DHCP NAK :DHCP ACK的相反的報文,表示服務器拒絕了客戶端的請求。
DHCP RELEASE :一般出現在客戶端關機、下線等狀況。這個報文將會使DHCP服務器釋放發出此報文的客戶端的IP地址
DHCP INFORM :客戶端發出的向服務器請求一些信息的報文
DHCP DECLINE :當客戶端發現服務器分配的IP地址無法使用(如IP地址衝突時),將發出此報文,通知服務器禁止使用該IP地址。
DHCP 的 工作流程:
DHCP詳細解析——DHCP 協議工作原理
3、DHCP 協議包的組成
Xid :隨機生成的一段字符串,兩個數據包擁有相同的xid說明他們屬於同一次會話
Ciaddr :客戶端會在發送請求時將自己的ip地址放在此處
Yiaddr :服務器會將想要分配給客戶端的ip地址放在此處
Siaddr :一般來說是服務器的ip地址.但是注意!根據openwrt源碼給出的註釋,當報文的源地址、siaddr、option­>server_id字段不一致(有經過跨子網轉發)時,通常認爲option­>srever_id字段爲真正的服務器ip,siaddr有可能是多次路由跳轉中的某一個路由的ip (下圖中wireshark抓包中也有標明siaddr爲nextserver ip address)
Chaddr :客戶端的mac地址
Giaddr :如果需要跨子網進行DHCP地址發放,則在此處填入經過的路由器的ip地址
Sname :服務器主域名
Options :可以自由添加的部分,用於存放客戶端向服務器請求信息和服務器的應答信息
DHCP詳細解析——DHCP 協議工作原理

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