DHCP協(xié)議的IP分配
今天我們主要講解的是DHCP協(xié)議的工作原理和IP的相關(guān)解析內(nèi)容??纯淳唧w的IP分配,DHCP協(xié)議是如何實現(xiàn)的吧。首先讓我們從尋找Server的角度出發(fā)吧。
DHCP協(xié)議的工作原理
根據(jù)客戶端是否***次登錄網(wǎng)絡(luò),DHCP的工作形式會有所不同。 ***次登錄的時候:
尋找 Server
當 DHCP客戶端***次登錄網(wǎng)絡(luò)的時候,也就是客戶發(fā)現(xiàn)本機上沒有任何IP數(shù)據(jù)設(shè)定,它會向網(wǎng)絡(luò)發(fā)出一個 DHCPDISCOVER 封包。因為客戶端還不知道自己屬于哪一個網(wǎng)絡(luò),所以封包的來源地址會為 0.0.0.0 ,而目的地址則為 255.255.255.255 ,然后再附上 DHCPdiscover 的信息,向網(wǎng)絡(luò)進行廣播。
在 Windows 的預(yù)設(shè)情形下,DHCPdiscover 的等待時間預(yù)設(shè)為 1 秒,也就是當客戶端將***個 DHCPdiscover 封包送出去之后,在 1 秒之內(nèi)沒有得到響應(yīng)的話,就會進行第二次 DHCPdiscover 廣播。若一直得不到響應(yīng)的情況下,客戶端一共會有四次 DHCPdiscover 廣播(包括***次在內(nèi)),除了***次會等待 1 秒之外,其余三次的等待時間分別是 9、13、16 秒。如果都沒有得到 DHCP服務(wù)器的響應(yīng),客戶端則會顯示錯誤信息,宣告 DHCPdiscover 的失敗。之后,基于使用者的選擇,系統(tǒng)會繼續(xù)在 5 分鐘之后再重復(fù)一次 DHCPdiscover 的過程。
提供IP租用地址
當DHCP協(xié)議服務(wù)器監(jiān)聽到客戶端發(fā)出的 DHCPdiscover 廣播后,它會從那些還沒有租出的地址范圍內(nèi),選擇最前面的空置IP,連同其它TCP/IP設(shè)定,響應(yīng)給客戶端一個DHCPOFFER封包。
由于客戶端在開始的時候還沒有IP地址,所以在其 DHCPdiscover 封包內(nèi)會帶有其 MAC 地址信息,并且有一個 XID 編號來辨別該封包,DHCP服務(wù)器響應(yīng)的 DHCPoffer 封包則會根據(jù)這些資料傳遞給要求租約的客戶。根據(jù)服務(wù)器端的設(shè)定,DHCPoffer 封包會包含一個租約期限的信息。
接受IP租約
如果客戶端收到網(wǎng)絡(luò)上多臺DHCP協(xié)議服務(wù)器的響應(yīng),只會挑選其中一個 DHCPoffer 而已(通常是***抵達的那個),并且會向網(wǎng)絡(luò)發(fā)送一個DHCPrequest廣播封包,告訴所有 DHCP服務(wù)器它將指定接受哪一臺服務(wù)器提供的IP地址。
同時,客戶端還會向網(wǎng)絡(luò)發(fā)送一個 ARP 封包,查詢網(wǎng)絡(luò)上面有沒有其它機器使用該IP地址;如果發(fā)現(xiàn)該IP已經(jīng)被占用,客戶端則會送出一個 DHCPDECLIENT 封包給 DHCP服務(wù)器,拒絕接受其 DHCPoffer ,并重新發(fā)送 DHCPdiscover 信息。
事實上,并不是所有 DHCP客戶端都會無條件接受 DHCP服務(wù)器的 offer ,尤其這些主機安裝有其它TCP/IP相關(guān)的客戶軟件。客戶端也可以用 DHCPrequest 向服務(wù)器提出 DHCP選擇,而這些選擇會以不同的號碼填寫在 DHCPOption Field 里面: 換一句話說,在 DHCP服務(wù)器上面的設(shè)定,未必是客戶端全都接受,客戶端可以保留自己的一些TCP/IP設(shè)定。而主動權(quán)永遠在客戶端這邊。