DHCP工作原理簡述

? ? ? ?什么是DHCP呢?百度百科上面的解釋是Dynamic Host Configuration Protocol,動態主機配置協議,是一個局域網的網絡協議,使用UDP協議工作, 主要有兩個用途:給內部網絡或網絡服務供應商自動分配IP地址,給用戶或者內部網絡管理員作為對所有計算機作中央管理的手段,在RFC 2131中有詳細的描述。DHCP有3個端口,其中UDP67和UDP68為正常的DHCP服務端口,分別作為DHCP Server和DHCP Client的服務端口;546號端口用于DHCPv6 Client,而不用于DHCPv4,是為DHCP failover服務,這是需要特別開啟的服務,DHCP failover是用來做“雙機熱備”的。

? ? “小編”所在的工作單位用戶數量較大,公網ip地址數量有限,很顯然,手動分配ip地址的方案肯定是不可行的。因為dhcp不會擔心有重復的ip地址,不用擔心用戶因為配置不對導致無法上網的問題,更重要的一點是dhcp能夠從上往下有一個合理的規劃,不會導致ip地址段混亂。綜上所述,有必要在園區網內部署一臺dhcp服務器。

部署dhcp服務器之前,需要先搞懂dhcp的工作原理,下面小編簡單談一下對于dhcp工作原理的解讀。DHCP 是基于C/S(服務器客戶端)模式的 ,Client使用UDP 68,server使用UDP 67,dhcp有幾個基本的概念需要掌握;

1、dhcp客戶端:通過DHCP協議請求IP地址的客戶端。DHCP客戶端是接口級的概念,如果一個主機有多個以太接口,則該主機上的每個接口都可以配置成一個DHCP 客戶端。

2、DHCP Server:DHCP 服務端,負責為DHCP客戶端提供IP地址,并且負責管理分配的IP地址。

3、DHCP Relay:DHCP中繼器,DHCP客戶端跨網段申請IP地址的時候,實現DHCP報文的轉發功能。

dhcp的工作過程可以用下圖表示:

1、當客戶端接入網絡的時候,即啟用了dhcp-client后,客戶端會發送一個dhcp discover廣播報文來發現局域網內的dhcp服務器。因此,第一階段為dhcp發現階段,主要意思即為尋找局域網內的dhcp服務器。

2、在局域網內,某個dhcp服務器接收到第一階段發送過來的報文后,根據自己的地址池內剩下的ip地址,依然以廣播方式分配給客戶端一個ip地址,分配的dhcp offer報文中還包含了一些其他的字段,如dns地址,網關,掩碼等。如果這一階段內存在多個dhcp服務器,依然會發送多個dhcp offer報文給該客戶端。

3、CLient根據先收到的Offer報文來決定選用哪個服務器提供的DHCP的地址(存在多個回應的話,先來的優先),然后根據這個Offer提供的地址信息,發送Request報文請求。

?(1)、客戶端初始化時,發送廣播的DHCP Request報文來回應服務器的DHCP offer報文

?? (2)、客戶端重啟初始后,發送廣播的DHCP的DCHP Request報文來確認先前被分配的IP地址等配置信息。

?? (3)、當客戶端已知和某個IP地址綁定后,發送單播的DHCP Request報文來延長IP地址租期

4、服務器收到request報文以后,確認地址池中的這個地址沒有被分配,如果沒有被分配就回復ACK報文,如果被分配了 ,就會回復DHCP-NAK報文,告訴CLient 地址已經被分配了。

5、當CLient收到服務器分配的地址后,會向這個廣播域內發送一個免費ARP的請求,如果沒有人響應這個請求,CLient才正式使用這個地址,如果有人回應的話,會返回一個DHCP-Decline報文,要求服務器重新獲取地址。

6、當CLient的IP租期到達一半的時候,會單播發送DHCP-Request報文,請求服務器更新租期,服務器收到以后,如果可以繼續使用該IP地址的話,會響應CLient DHCP-ACK,如果該IP不能繼續分配,則響應CLient DHCP-NAK。此時Client會在租期的75%再次詢問server 進行續約,如果該IP地址可用則回復ACK,反則回復NAK。

7、如果客戶端重啟后,會自動發送DHCPREQUEST廣播給DHCP服務器以便請求繼續租用原來使用的IP地址,如果服務器收到這個消息,確認客戶端可以使用該地址,則回答一個DHCP ACK確認消息,如果此IP地址已經無法再分配,則返回一個DHCP NCK否認信息,客戶端收到這個信息以后,則必須重新發送DHCP Discovery消息獲取新的地址。 若沒有得到響應,則嘗試與網關通信,如果通信正常,這個租期還沒到期的話,則可以繼續使用,但是不能和網關通信的話,則會獲得169.254.0.1~169.254.255.254之間的IP地址,然后每隔5min嘗試更新租約。

8、當客戶端已經獲得了IP地址,發送DHCP INFORM報文來獲取其他一些網絡配置信息,比如網關、DNS服務器

9、當客戶端可通過DHCP RELEASE報文主動釋放服務器分配給它的地址,當服務器收到此報文后,可將這個IP地址分配給其他客戶端。

? ? 免費ARP,它實現的原理是,當機子重啟或者設置了IP地址的時候,這個主機會通過免費ARP來詢問這個局域網中是否有相同的IP存在(這個ARP詢問的就是自己本身的IP地址,看是否有人回應),如果有人回復這個ARP的請求,那么就會得到一個錯誤的消息“以太網地址 a:b:c:d:e:f發送來重復的IP地址”,通常情況下,是沒人回應的,因為沒有沖突存在,如果有人回應了這個ARP的請求,那么說明該IP地址已經被使用了,對方回應了這個ARP的響應,它會通過操作系統顯示提示出來,說該IP地址存在沖突問題。在現在的DHCP服務器中,已經也引入了這個機制了,它會在分配給客戶端這個IP地址之前,會先發送一個Ping,或者ARP等機制來查看該局域網中是否已經有該IP地址存在了,如果有得話,那么DHCP會分配其他IP給請求的客戶端,如果沒有人回應,那么則把該IP地址讓客戶端使用,所以很多情況下,看到設備上面,沒有做地址排除的時候,而且有些IP地址已經在使用了,但是服務器能夠很好的分配不沖突的地址給客戶端,不造成地址沖突。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容