DHCP協議介紹及啓動過程講解

DHCP協議介紹

在常見的小型網絡中(例如家庭網絡和學生宿舍網),網絡管理員都是採用手工分配IP地址的方法,而到了中、大型網絡,這種方法就不太適用了。在中、大型網絡,特別是大型網絡中,往往有超過100臺的客戶機,手動分配IP地址的方法就不太合適了,不僅效率太低而且容易出錯。因此,我們必須引入一種高效的IP地址分配方法;DHCP協議爲我們解決這一難題提供高效方法。

DHCP(Dynamic Host Configuration Protocol,動態主機配置協議):DHCP協議的前身是BOOTP協議,是一個局域網的網絡協議,位於TCP/IP模型的應用層,使用UDP協議工作,常用的2個端口:67(DHCP server),68(DHCP client)。其主要功能就是爲客戶端分配IP信息(IP地址、Gateway地址、DNS服務器地址)

DHCP啓動流程

DHCP主要啓動流程如下,主要有以下幾個階段:

  1. DHCP發現(DISCOVER)
  2. DHCP提供(OFFER)
  3. DHCP請求(REQUEST)
  4. DHCP確認(Acknowledge,ACK)
  5. DHCP釋放(RELEASE)
    在這裏插入圖片描述

DHCP請求IP地址的過程如下:

1)主機發送DHCP DISCOVER廣播包在網絡上尋找DHCP服務器;
2)DHCP服務器向主機發送DHCP OFFER單播數據包,包含IP地址、MAC地址、域名信息以及地址租期;
3)主機發送DHCP REQUEST廣播包,正式向服務器請求分配已提供的IP地址;
4)DHCP服務器向主機發送DHCP ACK單播包,確認主機的請求
5)租約到期,客戶機發送DHCP Release報文,DHCP服務器回收被分配的IP地址

DHCP流程講解

1. DHCP Discover階段

發現階段,即DHCP客戶機尋找DHCP服務器的階段。DHCP客戶機以廣播方式(因爲DHCP服務器的IP地址對於客戶機來說是未知的)發送DHCP discover發現信息來尋找DHCP服務器,即向地址爲255.255.255.255,端口號爲67發送特定的廣播信息。網絡上每一臺安裝了TCP/IP協議的主機都會接收到這種廣播信息,但只有DHCP服務器纔會做出響應。

在Discover階段客戶端也可以請求它使用的最後一個IP地址作爲將要分配的IP,我這裏最後使用的IP爲192.168.0.110.
在這裏插入圖片描述
2. DHCP OFFER階段

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

在offer階段的Dst地址可以是255.255.255.255或者是DISCOVER階段附加的Requested 地址,這裏爲第二種。
在這裏插入圖片描述
3. DHCP REQUEST階段

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

4. DHCP ACK階段

確認階段,即DHCP服務器確認所提供的IP地址的階段。當DHCP服務器收到DHCP客戶機回答的DHCP request請求信息之後,它便向DHCP客戶機發送一個包含它所提供的IP地址和其他設置的DHCP ack確認信息,告訴DHCP客戶機可以使用它所提供的IP地址。然後DHCP客戶機便將其TCP/IP協議與網卡綁定,另外,除DHCP客戶機選中的服務器外,其他的DHCP服務器都將收回曾提供的IP地址.
在這裏插入圖片描述
5. DHCP RELEASE階段

釋放階段,即客戶機租約到期,客戶機發送DHCP Release報文給DHCP服務器,DHCP服務器回收被分配的IP地址。
在這裏插入圖片描述
此外,在實際過程中可能還存在着兩個階段:重新登錄階段以及更新租約階段

重新登錄,以後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地址。

當客戶端獲取到IP信息時,在cmd命令衝執行ipconfig /renew客戶機‘192.168.0.110’則會發起Request請求,如果該地址沒有被其他機器使用,DHCP服務器則發起ACK信息,如下圖所示:
在這裏插入圖片描述
更新租約, DHCP服務器向DHCP客戶機出租的IP地址一般都有一個租借期限,期滿後DHCP服務器便會收回出租的IP地址。如果DHCP客戶機要延長其IP租約,則必須更新其IP租約。DHCP客戶機啓動時和IP租約期限過一半時,DHCP客戶機都會自動向DHCP服務器發送更新其IP租約的信息。

DHCP協議的不足

DHCP協議在給大量客戶機分配IP信息提供了便利性,但是該協議在某些場景也有其缺點:

  • DHCP服務器提供IP地址具有隨機性,具有不確定性
  • DHCP服務器只能管理通過DHCP協議分配的IP地址,若用戶手動分配IP,可能存在兩臺IP地址衝突
  • 若在一個局域網中存在兩個DHCP服務器,客戶機獲取的IP地址可能衝突或者獲取非預期IP地址。

DHCP服務器和測試命令

本臺pc機器是通過路由器接入家庭網絡,而該臺TPLink則充當DHCP服務器,實現客戶端機的IP分配。

爲了分析DHCP協議啓動過程需要使用ipconfig命令以及wireshark工具進行抓包分析。

wireshark抓包
在這裏插入圖片描述

ipconfig命令

其中ipconfig /release 爲釋放IPV4地址信息,ipconfig /renew爲更新IPV4地址信息
在這裏插入圖片描述

如果不足,歡迎指正~~

參考文章:
https://zh.wikipedia.org/wiki/動態主機設置協議
http://www.elecfans.com/baike/wangluo/luyouqi/20180306643883.html

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