廣東白云職業(yè)技術(shù)學(xué)院計算機系網(wǎng)絡(luò)教研室 王海峰
我們知道在TCP/IP網(wǎng)絡(luò)應(yīng)用中,網(wǎng)絡(luò)用戶PC只有在獲取了一個網(wǎng)絡(luò)地址,才可以和其他的網(wǎng)絡(luò)用戶進行通訊,在實際應(yīng)用中,我們經(jīng)常會遇到一些問題:比如IP地址發(fā)生沖突、由于網(wǎng)關(guān)或DNS服務(wù)器地址的設(shè)置出現(xiàn)錯誤而無法訪問網(wǎng)絡(luò)中的其他主機、由于機器的經(jīng)常變動位置而不得不頻繁地修改IP地址;谶@些在網(wǎng)絡(luò)管理中所存在的種種問題,解決的方法是引入DHCP服務(wù),以動態(tài)的方式實現(xiàn)客戶機器的信息配置。下面從DHCP原理出發(fā)并結(jié)合本人在授課過程的實際經(jīng)驗為依據(jù),對DHCP的應(yīng)用以及在實際應(yīng)用中我們會遇到的各類問題和相應(yīng)的解決方法做深入的探討。
一、DHCP服務(wù)是什么
DHCP稱為動態(tài)主機配置協(xié)議。DHCP服務(wù)允許工作站連接到網(wǎng)絡(luò)并且自動獲取一個IP地址。配置DHCP服務(wù)的服務(wù)器可以為每一個網(wǎng)絡(luò)客戶提供一個IP地址、子網(wǎng)掩碼、缺省網(wǎng)關(guān)、一個WINS服務(wù)器的IP地址,以及一個DNS服務(wù)器的IP地址。
二、DHCP服務(wù)在實際應(yīng)用中的常見問題
1、在一個子網(wǎng)內(nèi)是否可以存在多臺DHCP服務(wù)器,如果存在的話,那么該子網(wǎng)中的客戶機能否正確獲取地址,將會獲取哪個DHCP服務(wù)器所分配的地址,是否能控制客戶機器能從管理人員所設(shè)置的DHCP服務(wù)器中獲取地址而不會從一些非法用戶自建的DHCP服務(wù)器中取得非法得IP?
2、如果網(wǎng)絡(luò)中存在多個子網(wǎng),而子網(wǎng)的客戶機需要DHCP服務(wù)器提供地址配置,那么是采取在各個子網(wǎng)都安裝一臺DHCP服務(wù)器,還是只在某一個子網(wǎng)中安裝DHCP服務(wù)器,讓它為多個子網(wǎng)的客戶機分配IP地址,應(yīng)該如何實現(xiàn)?
3、如果采取在一個子網(wǎng)中安裝DHCP服務(wù)器,讓它為多個子網(wǎng)的客戶機分配IP地址,那么應(yīng)該需要在一臺DHCP服務(wù)器中創(chuàng)建多個不同范圍的作用域,而我們?nèi)绾慰梢詼蚀_地保證相應(yīng)范圍的地址分配給相應(yīng)子網(wǎng)地主機呢?
4、如果客戶機器無法從DHCP服務(wù)器中獲取IP地址,那么Windows2000客戶機器將會如何處理自己的TCP/IP設(shè)置?
三、DHCP的工作原理
要解析第二點中所提的問題,首先要搞清楚DHCP的實際的工作過程及原理,下面就對此做簡單介紹:DHCP是一個基于廣播的協(xié)議,它的操作可以歸結(jié)為四個階段,這些階段是IP租用請求、IP租用提供、IP租用選擇、IP租用確認。
1、IP租用請求:在任何時候,客戶計算機如果設(shè)置為自動獲取IP地址,那么在它開機時,就會檢查自己當(dāng)前是否租用了一個IP地址,如果沒有,它就向DCHP請求一個租用,由于該客戶計算機并不知道DHCP服務(wù)器的地址,所以會用255.255.255.255作為目標(biāo)地址,源地址使用0.0.0.0,在網(wǎng)絡(luò)上廣播一個DHCPDISCOVER消息,消息包含客戶計算機的媒體訪問控制(MAC)地址(網(wǎng)卡上內(nèi)建的硬件地址)以及它的NetBIOS名字。
2、IP租用提供:當(dāng)DHCP服務(wù)器接收到一個來自客戶的IP租用請求時,它會根據(jù)自己的作用域地址池為該客戶保留一個IP地址并且在網(wǎng)絡(luò)上廣播一個來實現(xiàn),該消息包含客戶的MAC地址、服務(wù)器所能提供的IP地址、子網(wǎng)掩碼、租用期限,以及提供該租用的DHCP服務(wù)器本身的IP地址。
3、IP租用選擇:如果子網(wǎng)還存在其它DHCP服務(wù)器,那么客戶機在接受了某個DHCP服務(wù)器的DHCPOFFER消息后,它會廣播一條包含提供租用的服務(wù)器的IP地址的DHCPREQUEST消息,在該子網(wǎng)中通告所有其它DHCP服務(wù)器它已經(jīng)接受了一個地址的提供,其他DHCP服務(wù)器在接收到這條消息后,就會撤銷為該客戶提供的租用。然后把為該客戶分配的租用地址返回到地址池中,該地址將可以重新作為一個有效地址提供給別的計算機使用。
4、IP租用確認: DHCP服務(wù)器接收到來自客戶的DHCPREQUEST消息,它就開始配置過程的最后一個階段,這個確認階段由DHCP服務(wù)器發(fā)送一個DHCPACK包給客戶,該包包括一個租用期限和客戶所請求的所有其它配置信息,至此,完成TCP/IP配置。
四、DHCP服務(wù)常見問題的解決方案
本文第二點中我們所提出的問題有四點,以下就此4個問題做相應(yīng)的分析并給出我個人的一些解決方案,相信可以對學(xué)習(xí)DHCP服務(wù)的自學(xué)者會有一定的幫助,這些問題也是在實際教學(xué)中學(xué)生提出疑問最多的知識難點。
1、根據(jù)客戶計算機的IP租用原理可以知道,在一個子網(wǎng)內(nèi),如果存在多臺DHCP服務(wù)器來提供地址配置信息,這是不違反請求、分配原則的,因為只要中有一臺客戶計算機在該子網(wǎng)中提出IP地址租約請求,由于請求是廣播形式的,所以在子網(wǎng)中可以有任意數(shù)量的特定DHCP服務(wù)器響應(yīng)一個IP租用請求,而客戶請求后選中的是這些任意特定DHCP服務(wù)器中的某一臺,這個選擇具有隨機性,但有一點要注意的是客戶只能為每一張網(wǎng)絡(luò)接口卡接受一個租用提供,上面所謂特定的DHCP服務(wù)器是指那些經(jīng)過系統(tǒng)授權(quán)的DHCP服務(wù)器,而非授權(quán)的DHCP服務(wù)器將無法在網(wǎng)絡(luò)中提供正常的地址分配服務(wù),這一點非常重要,因為這樣一來客戶機器將只會在管理員設(shè)定的地址范圍中取得地址,Windows 2000操作系統(tǒng)的這一新增功能,通過對DHCP服務(wù)器進行認證避免了非法DHCP服務(wù)器分配非法IP地址造成的IP地址沖突,在實際應(yīng)用中,客戶機器獲取非法的地址經(jīng)常是造成網(wǎng)絡(luò)癱瘓和無法正常通訊的一大原因。綜合上面的分析可以做出第一個問題的結(jié)論:在一個子網(wǎng)中可以存在多臺DHCP服務(wù)器來提供地址分配,但能夠作為地址提供的不是任意的DHCP服務(wù)器,而應(yīng)該是經(jīng)過系統(tǒng)認證的那些,客戶機請求地址時最終從那一臺經(jīng)過認證機器中獲取時隨機的。此外,從另一個角度看,在相同子網(wǎng)上使用多個 DHCP 服務(wù)器,將為它所服務(wù)的 DHCP 客戶機提供更強的容錯能力,如下圖所示,在一個子網(wǎng)內(nèi)(網(wǎng)絡(luò)號為192.168.1.0 掩碼為255.255.255.0)共用兩個 DHCP 服務(wù)器,其中的DHCP服務(wù)器1不可用的話,DHCP服務(wù)器2可以取代它并繼續(xù)租用新的地址或續(xù)訂現(xiàn)有客戶機?梢越ㄗh采用的解決方案是使用 80/20 規(guī)則來劃分兩個 DHCP 服務(wù)器之間的作用域地址,具體做法可以是將服務(wù)器 1 配置成可使用大多數(shù)地址(約 80%),服務(wù)器 2 可以配置成讓客戶機使用其他地址(約 20%)。
2、如果在一個網(wǎng)絡(luò)中存在多個子網(wǎng),而多個子網(wǎng)的主機都需要DHCP服務(wù)器來提供地址配置信息,那么我們可以采用的方法是在每一個子網(wǎng)中安裝一臺DHCP服務(wù)器,讓它們來為各個子網(wǎng)分配IP地址,但從節(jié)約資源利用出發(fā),我們一般情況下不這樣做,可以采取在一個子網(wǎng)中安裝DHCP服務(wù)器,讓它來為多個子網(wǎng)分配IP地址,實現(xiàn)多子網(wǎng)地址分配可以借助DHCP的中繼代理功能實現(xiàn),而作為中繼代理的設(shè)備可以是一臺提供中繼代理程序的Windows2000服務(wù)器或是一個符合RFC1542規(guī)定的路由器,具備 DHCP/ BOOTP Relay Agent 的功能(DHCP relay agent能夠把 DHCP/BOOTP 廣播信息從一個網(wǎng)段轉(zhuǎn)播到另一個網(wǎng)段上)。以管理的局域網(wǎng)分為三個子網(wǎng),用Win2000服務(wù)器連接,可以參考圖二:
下面是實現(xiàn)跨子網(wǎng)使用DHCP服務(wù)器的具體解決方案:
。1)安裝DHCP中繼代理程序:在Windows2000服務(wù)器的“路由和遠程訪問”窗口中,依次展開“本地服務(wù)器→IP路由選擇→常規(guī)”選項,右鍵點擊“常規(guī)”選項,在彈出的菜單中選擇“新增路由協(xié)議”,然后在“新路由協(xié)議”窗口中選擇“DHCP中繼代理程序”,接著點擊“確定”按鈕。
。2)指定DHCP服務(wù)器:右鍵點擊剛剛添加的“DHCP中繼代理程序”選項,在彈出菜單中選擇“屬性”,進入“DHCP中繼代理程序?qū)傩浴睂υ捒,在“常?guī)”標(biāo)簽頁的“服務(wù)器地址”欄中輸入子網(wǎng)1中DHCP服務(wù)器的IP地址:192.168.1.2,然后點擊“添加”按鈕,最后點擊“確定”按鈕關(guān)閉該對話框。
。3)配置訪問接口:右鍵點擊“DHCP中繼代理程序”選項,在彈出菜單中選擇“新增接口”,然后在“DHCP中繼代理程序的新接口”對話框中的“接口”列表框中選中可以訪問子網(wǎng)1中的DHCP服務(wù)器的接口,這里新增的接口應(yīng)該是接口二和接口三,接著點擊“確定”按鈕。然后在彈出的“DHCP中繼站屬性”對話框中,選中“中繼DHCP數(shù)據(jù)包”選項,這樣就啟用了它的中繼功能,最后點擊“確定”按鈕。
。4)DHCP服務(wù)器中配置一個超級作用域,其中包含三個普通作用域,作用域地址范圍可以分別設(shè)置為192.168.1.10~192.168.1.254(分配給子網(wǎng)1的PC使用);192.168.2.10~192.168.2.254(分配給子網(wǎng)2的PC使用);192.168.3.10~192.168.3.254(分配給子網(wǎng)3的PC使用),必須記住DHCP只能為每一個子網(wǎng)分配一個范圍。
完成以上配置后,子網(wǎng)2和子網(wǎng)3中的DHCP客戶機PC2及PC3就可以通過主機A的DHCP中繼代理程序訪問子網(wǎng)1中的DHCP服務(wù)器。
3、解決了單臺DHCP服務(wù)器為多個子網(wǎng)分配IP地址后,我們還要搞清楚的一個問題是,如果某一個子網(wǎng)的PC如子網(wǎng)2中的PC2或子網(wǎng)3中的PC3發(fā)出地址請求信息后,主機A可以作為中繼代理對他們的請求傳達子網(wǎng)1中的DHCP服務(wù)器,但該DHCP服務(wù)器如何可以確定并準確地將作用域192.168.2.0網(wǎng)段的地址分給PC2而把作用域192.168.3.0網(wǎng)段的地址分給PC3呢?這個是多數(shù)學(xué)生可能存在的疑問,要搞清楚這個問題,可以參考以下的原理分析來找答案:以子網(wǎng)2中的主機PC2為例,DHCP 客戶機PC2在子網(wǎng)2 上廣播 DHCP/BOOTP discover 消息 (DHCPDISCOVER),廣播是將消息以 UDP (User Datagram Protocol)數(shù)據(jù)包的形式通過 67 端口發(fā)出,當(dāng)中繼代理(relay agent)主機A接收到這個消息后,它檢查包含在這個消息報頭中的網(wǎng)關(guān)IP 地址,如果網(wǎng)關(guān)IP 地址為 0.0.0.0 ,則用 relay agent主機A的接口二的IP地址192.168.2.1替換它,然后將其轉(zhuǎn)發(fā)到 DHCP 服務(wù)器所在的子網(wǎng)1上(主機A還擔(dān)任路由器功能)。當(dāng)在子網(wǎng)1中的 DHCP服務(wù)器收到這個消息后,它開始檢查消息中的網(wǎng)關(guān)IP地址,然后判斷該網(wǎng)關(guān)地址是否包含在DHCP的某一個作用域范圍內(nèi),從而決定它是否可以使用相應(yīng)的作用域的地址來提供IP地址租約,當(dāng)然,本例中DHCP服務(wù)器將會從作用域192.168.2.10~192.168.2.254選取一個地址來配置PC2;也就是說DHCP客戶機的請求地址消息中的網(wǎng)關(guān)IP地址 (GIADDR) 將是DHCP服務(wù)器用來確定從那個DHCP 范圍中挑選IP地址來配置客戶機的依據(jù)。
4、如果DHCP客戶機無法找到DHCP服務(wù)器,則它從微軟保留的 B 類網(wǎng)段 169.254.0.0 中挑選一個 IP 地址作為自己的 IP 地址,子網(wǎng)掩碼為 255.255.0.0 ,所挑選的地址由DHCP客戶機利用ARP 廣播來確定自己所挑選的 IP 地址是否已被網(wǎng)絡(luò)上的其它設(shè)備使用,如果該 IP 地址已被使用,那么客戶機會再挑選另一個IP地址重新進行測試,而且最多可以重試十個IP 地址,直到成功獲取配置。在此之后,客戶機會在后臺繼續(xù)每隔 5 分鐘嘗試與DHCP服務(wù)器進行通信,一旦與服務(wù)器取得聯(lián)絡(luò),則客戶機放棄自動設(shè)置的 IP 地址,而使用服務(wù)器分配的 IP 地址和其它配制信息。所以當(dāng)你在某一天發(fā)現(xiàn)你的PC的IP地址是個B類的地址169.254.0.0/16網(wǎng)段的地址時,你就應(yīng)該知道那是怎么一回事了吧。
至此,我們分析了幾個關(guān)于DHCP服務(wù)的應(yīng)用方面的疑難問題,并且給出了相應(yīng)的解決方案,對于DHCP服務(wù)在教學(xué)中我們還遇到許多一些其他問題,比如說DHCP服務(wù)器本身的地址是否一定要由管理員靜態(tài)指定,設(shè)置為自動獲取將會有什么后果?為什么把客戶機器向DHCP服務(wù)器請求地址稱為地址租用,租用時間的長短對網(wǎng)絡(luò)中IP地址的管理與應(yīng)用有哪些幫助?如何可以使用DHCP服務(wù)讓一個自動獲取IP的主機能在任何時候都能取得指定的一個固定地址?這些問題都要求教師在教學(xué)當(dāng)中要認真地去探究該服務(wù)的每一個細節(jié)的知識點,才可以對該知識點的原理以及在實際中的應(yīng)用進行透徹的講授,也是我們熟練掌握和使用DHCP服務(wù)的前提。
摘自 通信市場