1. 程式人生 > >Windows Server 2003 下安裝DHCP服務器

Windows Server 2003 下安裝DHCP服務器

dhcp 服務器

DHCP(Dynamic Host Configuration Protocol,動態主機配置協議)是一個局域網網絡協議,使用UDP協議工作, 主要有兩個用途:給內部網絡或網絡服務供應商自動分配IP地址,給用戶或者內部網絡管理員作為對所有計算機作中央管理的手段。

DHCP是DynamicHostConfigurationProtocol之縮寫﹐它的前身是BOOTP。BOOTP原本是用於無磁碟主機連接的網路上面的:

網路主機使用BOOTROM而不是磁碟起動並連接上網路﹐BOOTP則可以自動地為那些主機設定TCP/IP環境。但BOOTP有一個缺點:您在設定前須事先獲得客戶端的硬體位址,而且,與IP的對應是靜態的。換而言之,BOOTP非常缺乏"動態性",若在有限的IP資源環境中,BOOTP的一對一對應會造成非常可觀的浪費。

DHCP可以說是BOOTP的增強版本﹐它分為兩個部份﹕一個是服務器端﹐而另一個是客戶端。所有的IP網路設定資料都由DHCP伺服器集中管理﹐並負責處理客戶端的DHCP要求﹔而客戶端則會使用從伺服器分配下來的IP環境資料。比較起BOOTP,DHCP透過"租約"的概念,有效且動態的分配客戶端的TCP/IP設定,而且,作為兼容考量,DHCP也完全照顧了BOOTPClient的需求。

似乎客戶端是否第一次登錄網路﹐DHCP的工作形式會有所不同。

第一次登錄的時候﹕

1.尋找Server。當DHCP客戶端第一次登錄網路的時候﹐也就是客戶發現本機上沒有任何IP資料設定﹐它會向網路發出一個DHCPDISCOVER封包。因為客戶端還不知道自己屬於哪一個網路﹐所以封包的來源位址會為0.0.0.0﹐而目的位址則為255.255.255.255﹐然後再附上Dhcpdiscover的信息﹐向網路進行廣播。

在Windows的預設情形下,Dhcpdiscover的等待時間預設為1秒﹐也就是當客戶端將第一個Dhcpdiscover封包送出去之後﹐在1秒之內沒有得到回應的話﹐就會進行第二次Dhcpdiscover廣播。若一直得不到回應的情況下﹐客戶端一共會有四次Dhcpdiscover廣播(包括第一次在內)﹐除了第一次會等待1秒之外﹐其余三次的等待時間分別是9﹑13﹑16秒。如果都沒有得到DHCP伺服器的回應﹐客戶端則會顯示錯誤信息﹐宣告Dhcpdiscover的失敗。之後﹐基於使用者的選擇﹐系統會繼續在5分鐘之後再重復一次Dhcpdiscover的過程。

2.提供IP租用位址。當DHCP伺服器監聽到客戶端發出的Dhcpdiscover廣播後﹐它會從那些還沒有租出的位址範圍內﹐選擇最前面的的空置IP,連同其它TCP/IP設定,回應給客戶端一個DHCPOFFER封包。

由於客戶端在開始的時候還沒有IP位址﹐所以在其Dhcpdiscover封包內會帶有其MAC位址信息﹐並且有一個XID編號來辨別該封包﹐DHCP伺服器回應的Dhcpoffer封包則會根據這些資料傳遞給要求租約的客戶。根據伺服器端的設定﹐Dhcpoffer封包會包含一個租約期限的信息。

3.接受IP租約。如果客戶端收到網路上多臺DHCP伺服器的回應﹐只會挑選其中一個Dhcpoffer而已(通常是最先抵達的那個)﹐並且會向網路發送一個Dhcprequest廣播封包﹐告訴所有DHCP伺服器它將指定接受哪一臺伺服器提供的IP位址。

同時﹐客戶端還會向網路發送一個ARP封包﹐查詢網路上面有沒有其它機器使用該IP位址﹔如果發現該IP已經被占用﹐客戶端則會送出一個DHCPDECLINE封包給DHCP伺服器﹐拒絕接受其Dhcpoffer﹐並重新發送Dhcpdiscover信息。

事實上﹐並不是所有DHCP客戶端都會無條件接受DHCP伺服器的offer﹐尤其這些主機安裝有其它TCP/IP相關的客戶軟體。客戶端也可以用Dhcprequest向伺服器提出DHCP選擇﹐而這些選擇會以不同的號碼填寫在DHCPOptionField裏面﹕

換一句話說﹐在DHCP伺服器上面的設定﹐未必是客戶端全都接受﹐客戶端可以保留自己的一些TCP/IP設定。而主動權永遠在客戶端這邊。

4.租約確認。當DHCP伺服器接收到客戶端的Dhcprequest之後﹐會向客戶端發出一個DHCPACK回應﹐以確認IP租約的正式生效﹐也就結束了一個完整的DHCP工作過程。

本文出自 “安陌離” 博客,謝絕轉載!

Windows Server 2003 下安裝DHCP服務器