目前路由器進行IP指派主要有DHCP和BOOTP,DHCP也就是動態主機分配協議,它的前身是BOOTP,BOOTP原本是用於無磁盤主機連接的網絡上面的,以下分析這兩種方式的不同之處。
一、DHCP可以說是BOOTP的增強版本,它分為兩個部份:一個是服務器端,而另一個是客戶端。所有的IP網絡設定數據都由DHCP服務器集中管理,並負責處理客戶端的DHCP要求;
而客戶端則會使用從服務器分配下來的IP環境數據。比較起BOOTP,DHCP透過"租約"的概念,有效且動態的分配客戶端的TCP/IP設定,而且,作為兼容考慮,DHCP也完全照顧了BOOTP Client的需求。
二、必須至少有一台DHCP工作在網絡上面,它會監聽網絡的DHCP請求,並與客戶端搓商TCP/IP的設定環境。它提供兩種IP定位方式:
1、自動分配,其情形是:一旦DHCP客戶端第一次成功的從DHCP服務器端租用到IP地址之後,就永遠使用這個地址。
2、動態分配,當DHCP第一次從HDCP服務器端租用到IP地址之後,並非永久的使用該地址,只要租約到期,客戶端就得釋放(release)這個IP地址,以給其它工作站使用。當然,客戶端可以比其它主機更優先的更新(renew)租約,或是租用其它的IP地址。
三、DHCP除了能動態的設定IP地址之外,還可以將一些IP保留下來給一些特殊用途的機器使用,它可以按照硬件地址來固定的分配IP地址,這樣可以給您更大的設計空間。
同時,DHCP還可以幫客戶端指定router、netmask、DNS Server、WINS Server、等等項目,您在客戶端上面,除了將DHCP選項打勾之外,幾乎無需做任何的IP環境設定。
四、尋找Server,當DHCP客戶端第一次登錄網絡的時候,也就是客戶發現本機上沒有任何IP數據設定,它會向網絡發出一個DHCP DISCOVER封包。
因為客戶端還不知道自己屬於哪一個網絡,所以封包的來源地址會為0.0.0.0,而目的地址則為255.255.255.255,然後再附上DHCP discover的信息,向網絡進行廣播。
五、提供IP租用地址。當DHCP 服務器監聽到客戶端發出的 DHCP discover 廣播後,它會從那些還沒有租出的地址范圍內,選擇最前面的空置IP,連同其它TCP/IP設定,響應給客戶端一個DHCP OFFER封包,由於客戶端在開始的時候還沒有IP地址,所以在其DHCP discover封包內會帶有其MAC地址信息。
六、接受IP租約。如果客戶端收到網絡上多台DHCP服務器的響應,只會挑選其中一個DHCP offer而已,並且會向網絡發送一個DHCP request廣播封包,告訴所有DHCP服務器它將指定接受哪一台服務器提供的IP地址,客戶端還會向路由器發送一個ARP封包,查詢網絡上面有沒有其 它機器使用該IP地址;
如果發現該IP已經被占用,客戶端則會送出一個DHCPDECLINE封包給DHCP服務器,拒絕接受其DHCP offer,並重新發送DHCP discover信息。
七、當DHCP服務器接收到客戶端的DHCP request之後,會向客戶端發出一個DHCPACK響應,以確認IP租約的正式生效,也就結束了一個完整的DHCP工作過程,一旦DHCP客戶端成功 地從服務器哪裡取得DHCP租約之後,除非其租約已經失效並且IP地址也重新設定回0.0.0.0,否則就無需再發送DHCP discover信息了,而會直接使用已經租用到的IP地址向之前之DHCP服務器發出DHCP request信息,DHCP服務器會盡量讓客戶端使用原來的IP地址,如果沒問題的話,直接響應DHCPack來確認則可。
從前面描述的過程中,我們不難發現:DHCDISCOVER是以廣播方式進行的,其情形只能在同一網絡之內進行,因為router是不會將廣播傳送出去的。但如果DHCP服務器安設在其它的網絡上面呢?