DHCP動態主機配置協議


DHCP動態主機配置協議

  • 連接在互聯網上的計算機的協議軟件需要配置的項目包括:
  1. IP地址
  2. 子網掩碼
  3. 默認路由器的IP地址
  4. 域名服務器的IP地址
  • 為了省去給計算機配置IP地址的麻煩,應當采用自動協議配置的方法,互聯網上使用廣泛的是動態主機配置協議DHCP(Dynamic Host Configuration Protocol),它提供了一種機制,稱為即插即用聯網(plug and play networking)。這種機制允許一台計算機加入新的網絡和獲取IP地址並不需要手工參入,DHCP最新的RFC文檔是RFC 2131和RFC2132,目前還是互聯網草案標准。
  • DHCP使用客戶服務器方式。需要IP地址的主機在啟動的時候就向DHCP服務器廣播發送發現報文(DHCPDISCOVER)(將目的IP地址設置為1,即255.255.255.255),這時候該主機就成為DHCP客戶,發送廣播報文是因為你現在還不知道DHCP客戶在哪個地方,因此要發現(DISCOVER)DHCP服務器的地址。這丫為主機還沒有自己的IP地址,因此它把IP數據報的源IP地址全部設置為全0,這樣,在本地網絡上的所有主機都可以收到這個廣播報文,但只有DHCP服務器才會對此做出應答。DHCP服務器現在其數據庫中查找該計算機的配置信息,如果找到,則返回找到的信息。如果找不到,則從DHCP服務器的地址池(Address Pool)中取出一個地址分配給這個計算機。DHCP服務器的回答報文叫做提供報文(DHCPOFFER),表示“提供”了IP地址等配置信息。
  • 但是我們並不願意為每一個網絡都設置一個DHCP服務器,因為這樣會使得DHCP服務器數量太多。因此現在是使每一個網絡至少擁有一個DHCP中繼代理(relay agent)(通常是一個路由器),它配置了DHCP服務器的IP地址信息
  • image
  • 當DHCP中繼代理收到主機A 以廣播形式發送的報文后,就以單播的形式向DHCP服務器轉發此報文,並等待回答,收到DHCP回答的提供報文后,DHCP中繼代理再把此提供報文發回給主機A。需要注意的是,實際上,DHCP報文只是UDP用戶數據報的數據,他還要加上UDP首部,IP數據報的首部,以及以太網MAC幀的首部和尾部,才能在鏈路上傳送。
  • DHCP服務器分配個客戶端的IP地址是臨時的,因為DHCP客戶只能在一段有限的時間使用這個分配到的IP地址。DHCP協議稱這段時間為租用期(lease period),但是並沒有規定這個租用期到底有多長,這個數值由DHCP服務器自己決定。
  • DHCP客戶常使用的UDP端口號為68,DHCP服務器使用的UDP端口號為67。
  • DHCP詳細工作過程:
    • image
      1. DHCP服務器被動打開UDP 67號端口,等待客戶端發來的報文。
      2. DHCP客戶端從UDP 68端口發送DHCP發現報文。
      3. 凡是收到DHCP發現報文的DHCP服務器都發出DHCP提供報文,因此DHCP客戶端可能會收到多個DHCP提供報文。
      4. DHCP客戶端從幾個DHCP服務器中選擇其中的一個,並向所選擇的DHCP服務器發送DHCP請求報文。
      5. 被選擇的DHCP服務器發送確認報文DHCPACK,從這時候起,DHCP客戶就可以使用這個IP地址了,這種狀態叫做已綁定狀態。因為DHCP客戶端MAC地址和IP地址已經完成了綁定,並且現在可以使用這個臨時的DHCP地址了。DHCP客戶現在要根據服務器提供的租用期T設置兩個計時器T1和T2,它們的超時時間分別為0.5T和0.875T,當超時時間到了就用更新租用期。
      6. 租用期過了一半(T1時間到),DHCP客戶就發送DHCP請求報文(DHCPREQUEST)要求更新租用期。
      7. DHCP服務器若同意,則發回確認報文DHCPACK。DHCP客戶端就得到了新的租用期,重新和值租用期。
      8. DHCP服務器若不同意,則發送否認報文DHCPNACK,這時候DHCP客戶端就必須停止使用現在的IP地址,並重新申請IP地址。(回到步驟2)。若DHCP服務器不響應T1時間的請求報文,則在租用期過了T2時間,DHCP就必須向DHCP服務器重新發送DHCP請求報文(DHCPREQUEST),重復步驟6。
      9. DHCP可以提前終止服務器提供的租用期,這時候只需要向DHCP服務器發送釋放報文(DHCPRELEASE)就可以了。
    • DHCP很適合經常移動的計算機。一般在windows系統中網絡設置采用自動獲取IP地址和自動獲取DNS地址就是采用的是DHCP協議。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM