DHCP詳解

DHCP作用:
我們知道在TCP/IP網絡應用中,網絡用戶PC只有在獲取了一個網絡地址,纔可以和其他的網絡用戶進行通訊,在實際應用中,我們經常會遇到一些問題:比如IP地址發生衝突、由於網關或DNS服務器地址的設置出現錯誤而無法訪問網絡中的其他主機、由於機器的經常變動位置而不得不頻繁地修改IP地址。基於這些在網絡管理中所存在的種種問題,解決的方法是引入DHCP服務,以動態的方式實現客戶機器的信息配置。下面從DHCP原理出發並結合本人在授課過程的實際經驗爲依據,對DHCP的應用以及在實際應用中我們會遇到的各類問題和相應的解決方法做深入的探討。
 
 一、DHCP服務是什麼
DHCP稱爲動態主機配置協議。DHCP服務允許工作站連接到網絡並且自動獲取一個IP地址。配置DHCP服務的服務器可以爲每一個網絡客戶提供一個IP地址、子網掩碼、缺省網關、一個WINS服務器的IP地址,以及一個DNS服務器的IP地址。
 
二、DHCP服務在實際應用中的常見問題
1、在一個子網內是否可以存在多臺DHCP服務器,如果存在的話,那麼該子網中的客戶機能否正確獲取地址,將會獲取哪個DHCP服務器所分配的地址,是否能控制客戶機器能從管理人員所設置的DHCP服務器中獲取地址而不會從一些非法用戶自建的DHCP服務器中取得非法得IP
2、如果網絡中存在多個子網,而子網的客戶機需要DHCP服務器提供地址配置,那麼是採取在各個子網都安裝一臺DHCP服務器,還是隻在某一個子網中安裝DHCP服務器,讓它爲多個子網的客戶機分配IP地址,應該如何實現?
3、如果採取在一個子網中安裝DHCP服務器,讓它爲多個子網的客戶機分配IP地址,那麼應該需要在一臺DHCP服務器中創建多個不同範圍的作用域,而我們如何可以準確地保證相應範圍的地址分配給相應子網地主機呢?
 4、如果客戶機器無法從DHCP服務器中獲取IP地址,那麼Windows2000客戶機器將會如何處理自己的TCP/IP設置?
 
 三、DHCP的工作原理
要解析第二點中所提的問題,首先要搞清楚DHCP的實際的工作過程及原理,下面就對此做簡單介紹:
 
DHCP是一個基於廣播的協議,它的操作可以歸結爲四個階段,這些階段是IP租用請求、IP租用提供、IP租用選擇、IP租用確認。
 
 1IP租用請求:在任何時候,客戶計算機如果設置爲自動獲取IP地址,那麼在它開機時,就會檢查自己當前是否租用了一個IP地址,如果沒有,它就向DCHP請求一個租用,由於該客戶計算機並不知道DHCP服務器的地址,所以會用255.255.255.255作爲目標地址,源地址使用0.0.0.0,在網絡上廣播一個DHCPDISCOVER消息,消息包含客戶計算機的媒體訪問控制(MAC)地址(網卡上內建的硬件地址)以及它的NetBIOS名字。
 
2IP租用提供:當DHCP服務器接收到一個來自客戶的IP租用請求時,它會根據自己的作用域地址池爲該客戶保留一個IP地址並且在網絡上廣播一個來實現,該消息包含客戶的MAC地址、服務器所能提供的IP地址、子網掩碼、租用期限,以及提供該租用的DHCP服務器本身的IP地址。
 
3IP租用選擇:如果子網還存在其它DHCP服務器,那麼客戶機在接受了某個DHCP服務器的DHCPOFFER消息後,它會廣播一條包含提供租用的服務器的IP地址的DHCPREQUEST消息,在該子網中通告所有其它DHCP服務器它已經接受了一個地址的提供,其他DHCP服務器在接收到這條消息後,就會撤銷爲該客戶提供的租用。然後把爲該客戶分配的租用地址返回到地址池中,該地址將可以重新作爲一個有效地址提供給別的計算機使用。
 
4IP租用確認: DHCP服務器接收到來自客戶的DHCPREQUEST消息,它就開始配置過程的最後一個階段,這個確認階段由DHCP服務器發送一個DHCPACK包給客戶,該包包括一個租用期限和客戶所請求的所有其它配置信息,至此,完成TCP/IP配置。
 
四、DHCP服務常見問題的解決方案
 
本文第二點中我們所提出的問題有四點,以下就此4個問題做相應的分析並給出我個人的一些解決方案,相信可以對學習DHCP服務的自學者會有一定的幫助,這些問題也是在實際教學中學生提出疑問最多的知識難點。
 
1、根據客戶計算機的IP租用原理可以知道,在一個子網內,如果存在多臺DHCP服務器來提供地址配置信息,這是不違反請求、分配原則的,因爲只要中有一臺客戶計算機在該子網中提出IP地址租約請求,由於請求是廣播形式的,所以在子網中可以有任意數量的特定DHCP服務器響應一個IP租用請求,而客戶請求後選中的是這些任意特定DHCP服務器中的某一臺,這個選擇具有隨機性,但有一點要注意的是客戶只能爲每一張網絡接口卡接受一個租用提供,上面所謂特定的DHCP服務器是指那些經過系統授權的DHCP服務器,而非授權的DHCP服務器將無法在網絡中提供正常的地址分配服務,這一點非常重要,因爲這樣一來客戶機器將只會在管理員設定的地址範圍中取得地址,Windows 2000操作系統的這一新增功能,通過對DHCP服務器進行認證避免了非法DHCP服務器分配非法IP地址造成的IP地址衝突,在實際應用中,客戶機器獲取非法的地址經常是造成網絡癱瘓和無法正常通訊的一大原因。綜合上面的分析可以做出第一個問題的結論:在一個子網中可以存在多臺DHCP服務器來提供地址分配,但能夠作爲地址提供的不是任意的DHCP服務器,而應該是經過系統認證的那些,客戶機請求地址時最終從那一臺經過認證機器中獲取時隨機的。此外,從另一個角度看,在相同子網上使用多個 DHCP 服務器,將爲它所服務的 DHCP 客戶機提供更強的容錯能力,如 在一個子網內(網絡號爲192.168.1.0 掩碼爲255.255.255.0)共用兩個 DHCP 服務器,其中的DHCP服務器1不可用的話,DHCP服務器2可以取代它並繼續租用新的地址或續訂現有客戶機。可以建議採用的解決方案是使用 80/20 規則來劃分兩個 DHCP 服務器之間的作用域地址,具體做法可以是將服務器 1 配置成可使用大多數地址(約 80%),服務器 2 可以配置成讓客戶機使用其他地址(約 20%)。
 
2、如果在一個網絡中存在多個子網,而多個子網的主機都需要DHCP服務器來提供地址配置信息,那麼我們可以採用的方法是在每一個子網中安裝一臺DHCP服務器,讓它們來爲各個子網分配IP地址,但從節約資源利用出發,我們一般情況下不這樣做,可以採取在一個子網中安裝DHCP服務器,讓它來爲多個子網分配IP地址,實現多子網地址分配可以藉助DHCP的中繼代理功能實現,而作爲中繼代理的設備可以是一臺提供中繼代理程序的Windows2000服務器或是一個符合RFC1542規定的路由器,具備 DHCP/ BOOTP Relay Agent 的功能(DHCP relay agent能夠把 DHCP/BOOTP 廣播信息從一個網段轉播到另一個網段上)。
 
以管理的局域網分爲三個子網,用Win2000服務器連接爲例。 下面是實現跨子網使用DHCP服務器的具體解決方案:
1)安裝DHCP中繼代理程序:在Windows2000服務器的路由和遠程訪問窗口中,依次展開本地服務器→IP路由選擇常規選項,右鍵點擊常規選項,在彈出的菜單中選擇新增路由協議,然後在新路由協議窗口中選擇“DHCP中繼代理程序,接着點擊確定按鈕。
2)指定DHCP服務器:右鍵點擊剛剛添加的“DHCP中繼代理程序選項,在彈出菜單中選擇屬性,進入“DHCP中繼代理程序屬性對話框,在常規標籤頁的服務器地址欄中輸入子網1DHCP服務器的IP地址:192.168.1.2,然後點擊添加按鈕,最後點擊確定按鈕關閉該對話框。
3)配置訪問接口:右鍵點擊“DHCP中繼代理程序選項,在彈出菜單中選擇新增接口,然後在“DHCP中繼代理程序的新接口對話框中的接口列表框中選中可以訪問子網1中的DHCP服務器的接口,這裏新增的接口應該是接口二和接口三,接着點擊確定按鈕。然後在彈出的“DHCP中繼站屬性對話框中,選中中繼DHCP數據包選項,這樣就啓用了它的中繼功能,最後點擊確定按鈕。
4DHCP服務器中配置一個超級作用域,其中包含三個普通作用域,作用域地址範圍可以分別設置爲192.168.1.10~192.168.1.254(分配給子網1PC使用);192.168.2.10~192.168.2.254(分配給子網2PC使用);192.168.3.10~192.168.3.254(分配給子網3PC使用),必須記住DHCP只能爲每一個子網分配一個範圍。
完成以上配置後,子網2和子網3中的DHCP客戶機PC2PC3就可以通過主機ADHCP中繼代理程序訪問子網1中的DHCP服務器。
 
 3、解決了單臺DHCP服務器爲多個子網分配IP地址後,我們還要搞清楚的一個問題是,如果某一個子網的PC如子網2中的PC2或子網3中的PC3發出地址請求信息後,主機A可以作爲中繼代理對他們的請求傳達子網1中的DHCP服務器,但該DHCP服務器如何可以確定並準確地將作用域192.168.2.0網段的地址分給PC2而把作用域192.168.3.0網段的地址分給PC3呢?這個是多數學生可能存在的疑問,要搞清楚這個問題,可以參考以下的原理分析來找答案:
 
以子網2中的主機PC2爲例,DHCP 客戶機PC2在子網2 上廣播 DHCP/BOOTP discover 消息 (DHCPDISCOVER),廣播是將消息以 UDP (User Datagram Protocol)數據包的形式通過 67 端口發出,當中繼代理(relay agent)主機A接收到這個消息後,它檢查包含在這個消息報頭中的網關IP 地址,如果網關IP 地址爲 0.0.0.0 ,則用 relay agent主機A的接口二的IP地址192.168.2.1替換它,然後將其轉發到 DHCP 服務器所在的子網1上(主機A還擔任路由器功能)。當在子網1中的 DHCP服務器收到這個消息後,它開始檢查消息中的網關IP地址,然後判斷該網關地址是否包含在DHCP的某一個作用域範圍內,從而決定它是否可以使用相應的作用域的地址來提供IP地址租約,當然,本例中DHCP服務器將會從作用域192.168.2.10~192.168.2.254選取一個地址來配置PC2;也就是說DHCP客戶機的請求地址消息中的網關IP地址 (GIADDR) 將是DHCP服務器用來確定從那個DHCP 範圍中挑選IP地址來配置客戶機的依據。
 
4、如果DHCP客戶機無法找到DHCP服務器,則它從微軟保留的 B 類網段 169.254.0.0 中挑選一個 IP 地址作爲自己的 IP 地址,子網掩碼爲 255.255.0.0 ,所挑選的地址由DHCP客戶機利用ARP 廣播來確定自己所挑選的 IP 地址是否已被網絡上的其它設備使用,如果該 IP 地址已被使用,那麼客戶機會再挑選另一個IP地址重新進行測試,而且最多可以重試十個IP 地址,直到成功獲取配置。在此之後,客戶機會在後臺繼續每隔 5 分鐘嘗試與DHCP服務器進行通信,一旦與服務器取得聯絡,則客戶機放棄自動設置的 IP 地址,而使用服務器分配的 IP 地址和其它配製信息。所以當你在某一天發現你的PCIP地址是個B類的地址169.254.0.0/16網段的地址時,你就應該知道那是怎麼一回事了吧。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章