DHCP原理

ringoo_ming發表於2019-05-28

這幾天面試經常被問起DHCP的原理

 

1.     啥是DHCP?

DHCP 全稱Dynamic Host configuration protocol, 動態主機配置協議。 它可以為客戶機自動分配IP地址、子網掩碼以及預設閘道器、DNS伺服器的IP地址等TCP/IP引數, 簡單來說, 就是在DHCP伺服器上有一個資料庫, 存放著IP地址、閘道器、DNS等引數。 當客戶端請求使用時, 伺服器則負責將相應的引數分配個客戶端,避免客戶端手動指定IP地址等。特別是在一些大規模的網路中。客戶端數目較多,使用DHCP可以方便對這些機器進行管理,為客戶機提供TCP/IP引數配置,如IP地址、閘道器地址和DNS伺服器等,不僅效率高,而且不存在IP地址衝突的情況現在的無線路由器預設都帶有DHCP功能,也就是說一個無線路由器同時也是一個DHCP伺服器。

2.     他的原理或者說是怎麼工作的?

 

 

       DHCP DISCOVER: 尋找 DHCP服務

當DHCP客戶端第一次登入網路的時候或者是開機的時候, 此裝置發現本機上沒有任何IP設定,就會網路廣播去尋找DHCP伺服器。網路上每一臺安裝了TCP/IP協議的主機都會接收到這種廣播資訊,但只有DHCP伺服器才會做出響應。

     DHCP OFFER: 分配IP地址

DHCP 伺服器監聽到客戶端發出的 DHCP Discover 廣播後, 會針對這個客戶端的硬體地址 (MAC) 與本身的設定資料來進行下列工作:

1. 到伺服器的登入檔案中尋找該使用者之前是否曾經用過某個 IP ,若有且該 IP 目前無人使用,則提供此 IP 給客戶機;

2. 若配置檔案針對該 MAC 提供額外的固定 IP (static IP) 時,則提供該固定 IP 給客戶機;

3. 若不符合上述兩個條件, 則隨機取用目前沒有被使用的 IP 引數給客戶端,並記錄下來。回應給客戶端一個DHCP OFFER封包,由於客戶端在開始的時候還沒有IP地址﹐所以在其DHCP Discover封包內會帶有其MAC地址資訊﹐並且有一個XID編號來辨別該封包﹐DHCP伺服器回應的DHCP Offer封包則會根據這些資料傳遞給要求租約的客戶。根據伺服器端的設定﹐DHCP Offer封包會包含一個租約期限的資訊。但這裡僅僅是分配, 客戶端還沒有真正的使用

DHCP REQUEST: 請求使用

如果客戶端收到網路上多臺DHCP伺服器的回應﹐只會挑選其中一個DHCP Offer(通常是最先抵達的那個)並且向網路傳送一個DHCP Request廣播封包,告訴所有DHCP伺服器它將指定接受哪一臺伺服器提供的IP位址。之所以要以廣播方式回答,是為了通知所有的DHCP伺服器,他將選擇某臺DHCP伺服器所提供的IP地址, 同時,客戶端還會傳送一個ARP封包, 查詢網路上有沒有其他機器使用該IP地址, 如果發現該IP被佔用, 客戶端會傳送一個DHCP Decline封包給DHCP伺服器, 拒絕接受其DHCP Offer,並重新開始傳送DHCP Discover資訊。

     DHCP ACK  IP 地址分配確認

當DHCP伺服器收到DHCP客戶機回答的DHCP Request請求資訊之後, 它便向DHCP客戶機傳送一個包含它所提供的IP地址和其他設定的DHCP Ack確認資訊。以確認IP地址的正式生效。然後DHCP客戶機便將其TCP/IP協議與網路卡繫結,另外,除DHCP客戶機選中的伺服器外,其他的DHCP伺服器都將收回之前提供的IP地址。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31442725/viewspace-2645914/,如需轉載,請註明出處,否則將追究法律責任。

相關文章