網路基本功(三十一):細說DHCP
來自專欄計算機網路學習筆記4 人贊了文章
轉載請在文首保留原文出處:EMC中文支持論壇https://community.emc.com/go/chinese
介紹
動態主機設置協議(Dynamic Host Configuration Protocol, DHCP)是一個區域網的網路協議,使用UDP協議工作,主要有兩個用途:
- 給內部網路或網路服務供應商自動分配IP地址給用戶
- 給內部網路管理員作為對所有電腦作中央管理的手段
本文介紹DHCP的工作原理。
更多信息
DHCP工作原理:
DHCP從一個IP地址池中提供IP地址,該池有DHCP伺服器資料庫定義,稱為scope。如果客戶端接受這一地址,則它可在一個預定義的期限內使用該地址,稱為租約。如果客戶端無法從DHCP伺服器獲取IP地址,它就無法正常初始化TCP/IP。
在DHCP為客戶端配置TCP/IP參數時,DHCP伺服器和客戶端都需要經歷四步過程。注意到很多通訊是通過廣播的方式來完成的。如果路由器無法轉發這些DHCP消息時,廣播通信可能會造成問題。
當客戶端處於以下四種狀態之一時,必須使用IP租約進程:
- 配置使用DHCP的客戶端第一次初始化TCP/IP;
- 客戶端請求特定的IP地址但伺服器拒絕了該地址,在DHCP丟棄租約時即會發生。
- 客戶端之前租約了一個IP地址,但之後釋放了該IP地址,現申請一個新的租約。這種情況發生於用戶輸入ipconfig /release和ipconfig /renew命令時。
客戶機請求IP地址(DHCPDISCOVER):
當一個IPv4客戶機啟動時監測到需要IP地址,它會初始化一個TCP/IP的限制版本,之後廣播一個報文請求尋找DHCP伺服器的地址。該廣播報文告知監聽伺服器客戶端需要IP地址信息。DHCP客戶端發送的報文這一階段包括租約請求,客戶端源地址,0.0.0.0,目的地址,即廣播地址255.255.255.255。報文也包括客戶端硬體MAC地址和機器名,該信息也指明了向DHCP伺服器發起請求的設備。
客戶端向DHCP伺服器發送請求IP地址的真實報文稱為DHCPDISCOVER報文。網路上每一台安裝了TCP/IP協議的主機都會接收到這種廣播信息,但只有DHCP伺服器才會做出響應。
伺服器提供IP地址(DHCPOFFER):
所有擁有有效IP地址的DHCP伺服器都會向DHCP客戶端提供IP地址信息。它響應以地址池中一個未分配的IP地址供請求主機使用。要能夠響應DHCPDISCOVER報文,DHCP伺服器必須擁有客戶端的有效IP配置信息。DHCP伺服器回復的DHCPOFFER報文包含以下信息:
- 客戶端的硬體地址
- 提供的IP地址
- 合適的子網掩碼
- 租約有效期
- 伺服器ID,即DHCP伺服器的IP地址
客戶機選擇IP地址(DHCPREQUEST):
DHCP客戶端選擇它所接收到的第一個DHCPOFFER報文提供的IP地址。之後,它把這一信息廣播至網路。該報文中,客戶端請求伺服器提供給它的IP地址。這是因為客戶端可能收到不止一個DHCP伺服器發送的offer。通過廣播這一請求,客戶端告知其他DHCP伺服器不會再接受其他offer。為了進一步確保客戶端接受的伺服器offer沒有疑義,DHCPREQUEST報文中還包含以下信息:
- 提供所接受offer的伺服器IP地址
- 客戶端硬體地址
- 客戶端接受的IP地址
伺服器確認IP租約(DHCPACK):
DHCP伺服器對客戶端作出響應,將IP地址分配給客戶端。之後,它發送DHCPACK確認信息給客戶端。該信息包含IP地址的有效租約以及其他配置信息。
有時,在客戶端接收伺服器提供的租約後,DHCP租約請求仍可能不成功。可能有以下幾種情況:
- 由於客戶端移動至其他子網,IP地址無效
- 客戶端嘗試租約它之前的IP地址但該IP地址不再可用
在上述情況下,伺服器會發送一條不成功信息DHCPNACK。收到DHCPNACK的客戶端必須重新開始整個DHCP初始化進程。也就是說,它必須發送另一個DHCPDISCOVER報文查找新的IP地址。
PS:在gitbook上看到一本好書,但是無奈gitbook不掛梯子訪問太慢了。為了方便自己查閱,也方便知識共享,將文章轉載到知乎專欄,由於沒有聯繫到作者(據說是個女神)冒昧掛上來,如果有冒犯的地方,聯繫我我隨時進行刪除。謝謝。
作者:Zhang Jiawen
來源:網路基本功系列:細說網路那些事兒
推薦閱讀:
※入門到放棄node系列之網路模塊(一)
※rstp協議
※BA網路matlab代碼及度分布可視化1
※讓 CPU 告訴你硬碟和網路到底有多慢
※誰在擅自佔用 1.1.1.1?又是誰在 DDoS 它?
TAG:計算機網路 |