1. 程式人生 > >網路中存在2臺DHCP伺服器問題

網路中存在2臺DHCP伺服器問題

網路中存在2臺DHCP伺服器,客戶機是通過UDP廣播尋找伺服器:源地址為0.0.0.0目的地址為255.255.255.255,  按照邏輯 哪臺server響應快,使用哪個IP。

DHCP獲取IP原理:

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

  在DHCP過程中有兩個物件DHCP客戶端和DHCP服務端,而且DHCP在三層是通過UDP協議實現,DHCP服務執行在67和68埠。

DHCP實現的簡單過程,如圖1所示,

                        圖1

文字描述:

1.發現階段

    在DHCP服務配置完成後,DHCP Client啟動時,由於沒有IP地址,會自動傳送以discover的廣播報文,源地址為0.0.0.0目的地址為255.255.255.255。網路上的所有支援TCP/IP的主機都會收到該DHCP Discovery報文,但是隻有DHCP Server會響應該報文。

2.DHCP Server offer響應階段

    DHCP Server收到discover報文後,通過解析報文,查詢dhcpd.conf配置檔案,如果在地址池中能找到合適的IP地址,DHCP Server會給DHCP Client傳送offer報文,告訴DHCP Client,該DHCP Server擁有資源,可以提供DHCP服務。

3.DHCP Client請求使用階段

當DHCP Client收到offer報文時,知道在本網段中有可用的DHCP Server可以提供DHCP服務,因此,它會發送一個request請求報文,向該DHCP Server請求IP地址、掩碼、閘道器、DNS等資訊,以便登陸網路。

4.DHCP Server確認使用階段(獲得IP地址)

當DHCP Server收到DHCP Client傳送的DHCP Request後,確認要為該DHCP Client提供的IP地址後,便向該DHCP Client響應一個包含該IP地址以及其他Option的報文,來告訴DHCP Client可以使用該IP地址了。然後DHCP Client即可以將該IP地址與網絡卡繫結。另外其他DHCP Server都將收回自己之前為DHCP Client提供的IP地址。

5. DHCP Client重新登入網路階段

當DHCP Client重新登入後,傳送一個以前的DHCP Server分配的IP地址資訊的DHCP Request報文,當DHCP Server收到該請求後,會嘗試讓DHCP客戶端繼續使用該IP地址。並回答一個ACK報文。

如果該IP地址無法再次分配給該DHCP Client後,DHCP回覆一個NAK報文,當DHCP Client收到該NAK報文後,會重新發送DHCP Discovery報文來重新獲取IP地址。

6. DHCP Client續約階段

DHCP獲取到的IP地址都有一個租約,租約過期後,DHCP Server將回收該IP地址,所以如果DHCP Client如果想繼續使用該IP地址,則必須更新器租約。更新的方式就是,噹噹前租約期限過了一半後,DHCP Client都會發送DHCP Renew報文來續約租期。

通過wireshark抓包也可以看到DHCP的工作過程,如圖2

 

                        圖2