TCP/IP網絡中每一台主機都需要有一個IP位址,并通過此IP位址來與網絡上其他主機通信。這些主機可以通過DHCP伺服器來自動獲得IP位址與相關的選項設定。 1:主機IP位址的配置 2:DHCP的工作原理 3:DHCP伺服器的授權 4:DHCP伺服器的安裝與測試 5:IP作用域的建立與管理 6:DHCP的選項設定 6:DHCP中繼代理程式 7:超級作用域與多點傳播作用域 8:DHCP資料庫的維護 9:監視DHCP伺服器的運作 10:IPv6位址與DHCPv6的設定
主機IP位址的設定
每一台主機的IP位址可以通過以下兩種方法來設定:
1:手動輸入、這種方式比較容易因為輸入錯誤而影響到主機的網絡通信,而且可能會因為占用其他主機的IP位址而幹擾到該主機的運作,因為會加重系統管理者的負擔。
2:自動向DHCP伺服器申請、使用者的計算機會自動向DHCP伺服器申請IP位址,接收到此請求的DHCP伺服器會配置設定IP位址給使用者的計算機。他可以減輕管理負擔,避免因手動輸入錯誤而造成的困擾。
想要使用DHCP方式來配置設定IP位址的話,整個網絡内必須至少有一個台啟動DHCP服務的伺服器,也就是需要有一台DHCP伺服器,而苦厄虎膽也必須支援自動申請IP位址功能,這些用戶端被成為DHCP用戶端。‘下圖’為一個支援DHCP的網絡示例,圖中甲、乙網絡中各有一台DHCP伺服器,同時乙網絡内分别有DHCP用戶端與非DHCP用戶端(手動輸入IP位址的用戶端)。
<a href="http://www.itchenyi.com/wp-content/uploads/2013/01/dhcpxj1.jpg"></a>
DHCP伺服器知識将IP位址租給DHCP用戶端一段時間而已,若用戶端未及時更新租約的話,在租約到期時,DHCP伺服器會收回該IP位址的使用權。
我們将手動輸入的IP位址為靜态IP位址(static IP address),而想DHCP伺服器租用的IP位址成為動态IP位址(dynamic IP address)。
除了IP位址之外,DHCP伺服器還可以提供其他相關選項設定(options)給DHCP用戶端,列入預設網網關的IP位址、DNS伺服器的IP位址等。
DHCP的工作原理
DHCP用戶端計算機啟動時會搜尋DHCP伺服器,以便向它申請IP位址等。然而它們之間的通信方式,依DHCP用戶端是向DHCP伺服器申請一個新的IP位址、還是更新租約(請求繼續使用原來的IP位址)而有所不同。
向DHCP伺服器申請IP位址
DHCP用戶端在一下幾種情況之下,會向DHCP伺服器申請一個新的IP位址:
1:該用戶端計算機是第一次扮演DHCP用戶端角色,也就是它是第一次向DHCP伺服器請求IP位址。
2:該用戶端原先所租用的IP位址已被DHCP伺服器收回并已租給其他計算機了,是以該用戶端需要重新向DHCP伺服器租用一個新的IP位址。
3:該用戶端自己釋放了原先所租用的IP位址(且此IP位址又已經被伺服器租給其他用戶端),并請求重新租用IP位址。
4:用戶端計算機更換了網卡。
5:用戶端計算機被移動到另外一個網段。
在以上幾種情況下,DHCP用戶端與DHCP伺服器之間會通過一下的四個資料包(packet)來互相通信
<a href="http://www.itchenyi.com/wp-content/uploads/2013/01/dhcpxj2.jpg"></a>
DHCPDISCOVER:DHCP用戶端會先發送一個DHCPDISCOVER廣播(broadcast)消息到網絡搜尋一台能提供IP位址的DHCP伺服器。
DHCPOFFER:當DHCP伺服器收到DHCP的DHCPDISCOVER消息後,它會從IP位址池中選擇一個尚未租出的IP位址,然後用廣播發送給DHCP用戶端(之是以用廣播,是因為此時DHCP用戶端還沒有IP位址)。在尚未與DHCP用戶端完成租用IP位址的過程之前,此IP位址也會暫時被保留,以避免重複更配給其他用戶端。
如果有多台DHCP伺服器也收到DHCP用戶端的DHCPDISCOVER消息,并且也都回應給DHCP用戶端的話(表示它們都可以提供IP位址給此用戶端),則用戶端會選擇第一個收到的DHCPOFFER消息。
DHCPREQUEST:當DHCP用戶端選擇第一個收到的DHCPOFFER消息後,它就利用廣播回應DHCPREQUEST消息給DHCP伺服器。之是以用廣播,是因為它不但要通知所選擇的DHCP伺服器,也必須通知沒有被選上的其他DHCP伺服器,以便這些DHCP伺服器将其原本要配置設定給此用戶端而保留的IP位址,釋放出來供其他用戶端使用。DHCP用戶端收到DHCPOFFER消息後,會先檢查包含在DHCPOFFER資料包内的IP位址是否已經被其他計算機使用[通過發出Address Resolution Protocol request(ARP)消息來檢查],若發現此位址已經被其他計算機占用,則它會發出一個DHCPDECLENT消息給DHCP伺服器,表示拒絕接受此IP位址,然後重新發出DHCPDISCOVER資訊來申請另一個IP位址。
DHCPACK:DHCP伺服器收到DHCP用戶端請求IP位址的DHCPREQUEST消息後,就會利用廣播發出DHCPACK确認消息給DHCP用戶端(之是以用廣播,是因為此時DHCP用戶端仍沒有IP位址),此消息内包含着DHCP用戶端所需的相關設定,例如IP位址、子網路遮罩、預設網關、DNS伺服器等。
DHCP用戶端在收到DHCPACK消息後,就完成了申請IP位址的程式,也就可以開始使用這個IP位址來與其他計算機通信了。
更新IP位址的租約
如果DHCP用戶端想要延長其IP位址使用期限的話,則DHCP用戶端必須更新(renew)其IP位址租約,更新租約時,DHCP用戶端會發出DHCPREQUEST消息給DHCP伺服器。如圖:
<a href="http://www.itchenyi.com/wp-content/uploads/2013/01/dhcpxj3.jpg"></a>
自動更新租約
DHCP用戶端會在下列的情況下,自動向DHCP伺服器提出更新租約請求:
1:DHCP用戶端計算機重新開機時、每一次用戶端計算機重新開機時,都會自動發送DHCPREQUEST廣播消息給DHCP伺服器,以便請求繼續租用原來使用的IP位址,若租約無法更新成功的話,用戶端會嘗試與預設網關通信:
若通信成功且租約并未到期,則用戶端仍然可以繼續使用原來的IP位址,然後等下一次更新時間到達的時候再更新。
若無法與預設網關成功通信,則用戶端會放棄目前的IP位址,使用169.254.0.0/16的IP位址,然後每隔5分鐘再嘗試更新租約
2:IP位址租約期過半時、DHCP用戶端也會在租約過半時,自動發送一個DHCPREQUEST的直接(direct)消息租給此IP位址的DHCP伺服器。
IP位址租約租期過7/8時:若租約過半時無法成功更新租約的話,用戶端仍然可以繼續使用原IP位址,不過用戶端會在租約過7/8(87.5%)時,再使用DHCPREQUEST廣播消息來向任意一台DHCP伺服器更新租約。如果仍然無法更新成功,則此用戶端會放棄其正在使用的IP位址,然後重新向DHCP伺服器申請一個新的IP位址(使用DHCPDISCOVER消息)。
隻要DHCP用戶端能夠成功更新租約,DHCP伺服器就會回應一個DHCPACK消息給它,是以用戶端就可以繼續使用原來的IP位址,且會重新擷取一個新租約,這個新租約的期限視當時DHCP的設定而定。在更新租約時,如果此IP位址已無法再給用戶端使用的話,例如此位址已無效或已被其他計算機占用,則DHCP伺服器會回應一個DHCPNAK消息給用戶端。
手動更新租約與釋放IP位址
DHCP用戶端使用者也可以使用ipconfig /renew指令來更新IP租約。還可以使用ipconfig /release指令自行将IP位址釋放,此時用戶端會發送給DHCP一個DHCPRELEASE消息,釋放後,DHCP用戶端會每隔5分鐘自動去找DHCP伺服器租用IP位址,或由用戶端使用者自行使用ipconfig /renew指令來租用IP位址。
Automatic Private IP Addressing (APIPA)
當windows用戶端無法從DHCP伺服器租到IP位址時,它們會自動建立一個網絡号為169.254.0.0/16的專用IP位址(如下圖),并使用這個IP位址來與其他計算機通信。
<a href="http://www.itchenyi.com/wp-content/uploads/2013/01/dhcpxj4.jpg"></a>
在用戶端計算機開始使用這個IP位址之前,它會先發送一個廣播消息給網絡上其他計算機,以便檢查是否有其他計算機已經使用了這個IP位址,若沒有其他計算機回應此消息,用戶端就将此IP位址配置設定給自己使用,佛則就繼續嘗試其他IP位址。使用169.254.0.0/16位址的計算機仍然會每5分鐘一次來尋找DHCP伺服器,以便向DHCP伺服器租用IP位址,在還沒有租到IP位址之前,用戶端計算機仍然繼續使用這個專用IP位址。
以上動作被成為Automatic Private IP addressing (APIPA),它讓用戶端計算機在尚未向DHCP伺服器租到IP位址之前,仍然能夠有一個臨時的IP位址可用,以便與同一個網絡内也是使用169.254.0.0/16位址的計算機通信。
提示: 若用戶端的IP位址是手動配置,但此IP位址已被其他計算機占用的話,此時該用戶端也會配置設定一個169.254.0.0/16格式的IP位址給自己,讓它可以與同樣是使用169.254.0.0/16的計算機通信,而且若原來手動配置的IP位址有指定預設網關的話,即使現在是使用169.254.0.0/16的IP位址,它還是可以通過預設網關來與同一個網段内其他使用原網絡号的計算機通信,例如原來配置的IP位址為192.168.8.1,則他還是可以與IP位址為192.168.8.X的其他計算機通信。
DHCP伺服器的授權
如果任何使用者都可以随意安裝DHCP伺服器,且其所租出的IP位址是随意設定的,則當有用戶端在向DHCP伺服器租用IP位址時,很有可能就會由這台DHCP伺服器來提供IP位址給用戶端,那麼用戶端所得到的IP位址可能無法使用(例如它是不同網段的IP位址),這樣用戶端可能就無法連結網絡,同時也會增加系統管理者的管理負擔。
是以DHCP伺服器安裝好以後,并不是立刻就可以對DHCP用戶端提供服務,它還必須經過一個授權(authorized)的程式,未經授權的DHCP伺服器不會将IP位址租出給用戶端。
DHCP伺服器授權的原理與注意事項:
1:必須在AD DS域 (Active Directory Domain Services)的環境中,DHCP伺服器才可以被授權。
2:在AD DS域中的DHCP伺服器都必須被授權。
3:隻有Enterprise Admins組内的成員才有權限執行授權操作。
4:已被授權的DHCP伺服器的IP位址會被注冊到域控制器的Active Directory資料庫内。
5:DHCP伺服器啟動時會通過Active Directory資料庫,來查詢其IP位址是否注冊在DHCP伺服器授權清單,若已注冊的話,該伺服器的DHCP服務就可以正常啟動,并對DHCP用戶端提供租出IP位址的服務
6:不是域成員的DHCP獨立伺服器無法被授權,此伺服器的DHCP服務是否可以正常啟動并對DHCP用戶端提供租出IP位址的服務,還得看同一個子網内是否存在任意一台已被授權的DHCP伺服器而定。這台DHCP獨立伺服器在啟動DHCP服務時,會發出DHCPINFORM(DHCP information message)廣播資料包 然後:
如果它收到由被授權的DHCP伺服器所揮發的DHCPACK資料包的話,表示此子網内已經有已被授權的DHCP伺服器,此時它就不會啟動DHCP服務,也不會租出IP位址給DHCP用戶端。
如果它沒有收到DHCPACK資料包、或是收到非域成員的DHCP伺服器所回傳的DHCPACK資料包的話,表示此子網内沒有已被授權的DHCP伺服器,此時它就可以正常啟動DHCP服務,并且可以租出IP位址給DHCP用戶端。
注意: 在AD DS域環境下,建議第一台DHCP伺服器最好是成員伺服器或域控制器,因為如果第一台是獨立伺服器的話,則一旦以後在域成員計算機上安裝DHCP服務,将其授權、并且這台伺服器是在同一個子網内,則獨立伺服器的DHCP服務将無法再啟動。 若尚未建立AD DS域的話,可運作dcpromo.exe來建立....
隻有windows server 2008 R2、windows server 2008、windows server 2003 R2、windows server 2003 與 windows 2000 server的DHCP伺服器可以被授權。Windows NT4.0或更舊的DHCP伺服器、其他供應商所開發的DHCP伺服器無法被授權......
本文轉自 lgpqdwjh 51CTO部落格,原文連結:http://blog.51cto.com/itchenyi/1113723,如需轉載請自行聯系原作者