1. 程式人生 > >001.DHCP簡介

001.DHCP簡介

一 DHCP概念

DHCP指動態主機配置協議,是一個區域網的網路協議,使用UDP協議工作。

二 應用

  • 為大量客戶機自動分配地址,提供集中管理
  • 減輕管理和維護成本,提高網路配置效率

三 分配的主要資訊

  • 網絡卡的IP地址、子網掩碼
  • 對應的網路地址、廣播地址
  • 預設閘道器地址
  • DNS伺服器地址
  • 引導檔案、TFTP伺服器地址

四 DHCP流程

順序 協議 形式 備註
客戶端尋找伺服器 DISCOVER   廣播   源地址為0.0.0.0,目標地址為255.255.255.255
伺服器提供地址資訊   OFFER 廣播  
接受並廣播 DHCP REQUEST 廣播
源地址為0.0.0.0,目標地址為255.255.255.255
伺服器確認 ACK 廣播  
客戶端重新登入 REQUEST 廣播 續租目的地址為DHCP伺服器地址
伺服器確認
ACK 單播 續約應答

 

4.1 DHCP客戶機初始化

1. 尋找DHCP Server

當DHCP客戶機第一次登入網路的時候(也就是客戶機上沒有任何IP地址資料時),它會通過UDP 67埠向網路上發出一個DHCPDISCOVER資料包(包中包含客戶機的MAC地址和計算機名等資訊)。因為客戶機還不知道自己屬於哪一個網路,所以封包的源地址為0.0.0.0,目標地址為255.255.255.255,然後再附上DHCP discover的資訊,向網路進行廣播。

DHCP discover的等待時間預設為1秒,也就是當客戶機將第一個DHCP discover封包送出去之後,在1秒之內沒有得到迴應的話,就會進行第二次DHCP discover廣播。若一直沒有得到迴應,客戶機會將這一廣播包重新發送四次(以2,4,8,16秒為間隔,加上1-1000毫秒之間隨機長度的時間)。如果都沒有得到DHCP Server的迴應,客戶機會從169.254.0.0/16這個自動保留的私有IP地址中選用一個IP地址。並且每隔5分鐘重新廣播一次,如果收到某個伺服器的響應,則繼續IP租用過程。

2. 提供IP地址租用

當DHCP Server監聽到客戶機發出的DHCP discover廣播後,它會從那些還沒有租出去的地址中,選擇最前面的空置IP,連同其它TCP/IP設定,通過UDP 68埠響應給客戶機一個DHCP OFFER資料包(包中包含IP地址、子網掩碼、地址租期等資訊)。此時還是使用廣播進行通訊,源IP地址為DHCP Server的IP地址,目標地址為255.255.255.255。同時,DHCP Server為此客戶保留它提供的IP地址,從而不會為其他DHCP客戶分配此IP地址。

由於客戶機在開始的時候還沒有IP地址,所以在其DHCP discover封包內會帶有其MAC地址資訊,並且有一個XID編號來辨別該封包,DHCP Server響應的DHCP OFFER封包則會根據這些資料傳遞給要求租約的客戶。

3. 接受IP租約

如果客戶機收到網路上多臺DHCP伺服器的響應,只會挑選其中一個DHCP OFFER(一般是最先到達的那個),並且會向網路傳送一個DHCP REQUEST廣播資料包(包中包含客戶端的MAC地址、接受的租約中的IP地址、提供此租約的DHCP伺服器地址等),告訴所有DHCP Server它將接受哪一臺伺服器提供的IP地址,所有其他的DHCP伺服器撤銷它們的提供以便將IP地址提供給下一次IP租用請求。此時,由於還沒有得到DHCP Server的最後確認,客戶端仍然使用0.0.0.0為源IP地址,255.255.255.255為目標地址進行廣播。

事實上,並不是所有DHCP客戶機都會無條件接受DHCP Server的OFFER,特別是如果這些主機上安裝有其它TCP/IP相關的客戶機軟體。客戶機也可以用DHCP REQUEST向伺服器提出DHCP選擇,這些選擇會以不同的號碼填寫在DHCP Option Field裡面。客戶機可以保留自己的一些TCP/IP設定。

4. 租約確認

當DHCP Server接收到客戶機的DHCP REQUEST之後,會廣播返回給客戶機一個DHCP ACK訊息包,表明已經接受客戶機的選擇,並將這一IP地址的合法租用以及其他的配置資訊都放入該廣播包發給客戶機。

客戶機在接收到DHCP ACK廣播後,會向網路傳送三個針對此IP地址的ARP解析請求以執行衝突檢測,查詢網路上有沒有其它機器使用該IP地址;如果發現該IP地址已經被使用,客戶機會發出一個DHCP DECLINE資料包給DHCP Server,拒絕此IP地址租約,並重新發送DHCP discover資訊。此時,在DHCP伺服器管理控制檯中,會顯示此IP地址為BAD_ADDRESS。

如果網路上沒有其它主機使用此IP地址,則客戶機的TCP/IP使用租約中提供的IP地址完成初始化,從而可以和其他網路中的主機進行通訊。

4.2 DHCP客戶機租期續約

客戶機會在租期過去50%的時候,直接向為其提供IP地址的DHCP Server傳送DHCP REQUEST訊息包。如果客戶機接收到該伺服器迴應的DHCP ACK訊息包,客戶機就根據包中所提供的新的租期以及其它已經更新的TCP/IP引數,更新自己的配置,IP租用更新完成。如果沒有收到該伺服器的回覆,則客戶機繼續使用現有的IP地址,因為當前租期還有50%。

如果在租期過去50%的時候沒有更新,則客戶機將在租期過去87.5%的時候再次向為其提供IP地址的DHCP聯絡。如果還不成功,到租約的100%時候,客戶機必須放棄這個IP地址,重新申請。如果此時無DHCP可用,客戶機會使用169.254.0.0/16中隨機的一個地址,並且每隔5分鐘再進行嘗試。