文/朱寶林 沈富可
校園網(wǎng)中DHCP的部署研究
文/朱寶林 沈富可
對于有大量主機的校園網(wǎng)內(nèi)網(wǎng),一般采用DHCP動態(tài)地址分配方案。本文描述了三種常見的DHCP實施方案,并比較了其優(yōu)缺點,同時結(jié)合校園網(wǎng)的實際情況找出一種最適合的方案。
早期的保障服務器穩(wěn)定運行方案是配置兩臺以上的DHCP服務器,保證有一定的冗余度,假如其中的一臺DHCP服務器出現(xiàn)故障,另外一臺DHCP服務器就會承擔分配IP地址的任務,但用戶并不會察覺到DHCP服務器的變化。部署另一臺服務器來提供不重復的IP地址服務,如果一臺服務器出了故障,用戶可以從另一臺服務器接收地址。在這種方案下,可以設定主次服務器地址范圍比80:20或者50:50。DHCP協(xié)議有一種內(nèi)在的冗余格式:如果IP地址租用12天,那么與服務器的連接每6天驗證一次。這樣,如果服務器出了故障,客戶還有至少6天的時間使設備恢復正常,以保證租用不受影響。故障只會影響新部署工作站的IP地址。
這種解決方案使得地址范圍增加,并且由于服務器之間沒有交流,因此也不能預測從哪一臺服務器上指派地址租用。由此引入改進的冗余備份實現(xiàn)方式是:安裝一臺次服務器指派與原服務器地址范圍相同。任何添加或遷移只需從次服務器獲得地址。當暫時租用時限過半時,將更新到主服務器。另外,還有一臺在主服務器失效時啟動的DHCP備用服務器,減少主服務器宕機帶來的影響。
采用DHCP冗余備份會存在以下問題:第一,IP地址空間不足。當有一個DHC服務器發(fā)生故障時,只有另外一個服務器的地址空間提供服務,但是為了防止IP地址沖突,兩個服務器地址池一定不一樣,因此另外一個地址空間只能分配給一個網(wǎng)段的一半。第二,主機的連接不能永遠提供在線連接,可能會中斷后再連接。當有一個DHCP服務器發(fā)生故障后,當從此服務器獲的客戶端的IP地址到期時,它不能得到新的I P地址續(xù)用,就會中斷連接,重啟動DISCOVERY 過程,造成一定時間的網(wǎng)絡連接中斷。
由此可見,簡單的DHCP冗余解決服務器安全運行的問題的代價是付出較多的資源。隨著時間的發(fā)展,出現(xiàn)的針對服務器運行安全的DHCP故障恢復草案(RFC2131),允許兩臺或多臺服務器指派相同的地址范圍,定義了主次服務器之間的交流信號,有效地解決了IP地址浪費的問題。
DHCP服務器故障恢復最新草案是相對于方案一的DHCP冗余備份進步,使主服務器和備份服務器之間有了更多的交流。本方案允許兩臺或多臺服務器指派相同的地址范圍。主服務器分發(fā)租用,次服務器監(jiān)視主服務器的狀態(tài)。兩臺服務器在所有時間彼此共享租用信息。為防止復制IP地址的可能性,次服務器有自己的地址庫,以備主服務器失效時使用。主服務器和次服務器使用同步,以保證冗余度。
DHCP故障恢復草案定義了三種類型的服務器到服務器的信號:服務器租用同步信號、操作狀態(tài)信號及“我回來了”信號來同步地址租用信息,以便任何簽約用戶能用任一臺服務器更新。服務器租用同步信號用于主次服務器間交流主服務器地址池內(nèi)地址租用狀況;操作狀態(tài)信號,是主次服務器間傳送的問候包;“我回來了”信號是在主服務器死機恢復后向接管主服務器分發(fā)地址的次服務器發(fā)出的信號,用于協(xié)調(diào)收回地址分發(fā)角色。這些信號都以標準DHCP包編碼。
冗余DHCP服務器遵循DHCP故障恢復草案,通過服務器租用同步信號彼此交流租用信息。當兩臺服務器工作正常時,主次服務器間會有連續(xù)的信息流用來交流租用信息:當有客戶端請求IP地址租用時,由主服務器分發(fā)出一個新租約,主服務器發(fā)送添加信號到次服務器,當租用期到達更新狀態(tài)時,租約會有變化,服務器發(fā)送刷新信號;當租約期滿,服務器收回地址,地址又成為可用的了,服務器發(fā)送刪除信號。在所有情況下,接收方服務器以肯定或否定的認可信號來響應。這些信號只有在請求DHCP客戶處理完畢后才發(fā)送給另一臺服務器。
除了和主服務器同步維護當前的租用信息數(shù)據(jù)庫外,次服務器通過監(jiān)視兩臺服務器的TCP連接來實現(xiàn)來留意主服務器,以便得知何時取代租用的分發(fā)。次服務器使用三個標準以確定它和主服務器的連接是否滿意:一,必須能建立TCP連接;二,必須接收到主服務器發(fā)送的連接信號,并以連接認可響應;三,必須接收到主服務器發(fā)出的狀態(tài)信號,用它來確定自己的操作狀態(tài)。
當主服務器出故障復活了,想收回次服務器的控制權,只需要向次服務器發(fā)送信號,啟動三個信號序列:控制請求、控制恢復初始和控制恢復完成。
DHCP負載平衡算法(RFC3074)最初用來支持特定的DHCP失敗請求協(xié)議的負載平衡優(yōu)化,后來推廣到用來優(yōu)化多個合作的DHCP服務器。
由于客戶機采用UDP廣播來聯(lián)系DHCP 服務器,客戶機的DHCPDISCOVER報文可以被多臺服務器接收到。所有接收到這條廣播的服務器會對客戶機做出響應,于是客戶機會收到多個服務器發(fā)送DHCPOFFER報文,每個響應報文都帶有客戶配置信息,以及服務器向客戶提供的IP地址,由客戶端決定選擇接受哪一臺服務器提供的響應。
在DHCP負載平衡算法中建議了一種實現(xiàn)服務器的負載均衡方法:它讓多個合作的服務器使用散列算法,根據(jù)服務器端散列存儲的客戶機MAC 地址,將不同的MAC地址的DHCP請求發(fā)送給不同的DHCP服務器,由算法決定哪一個服務器來為客戶提供IP地址,而不必在初始設置時作任何信息交換。本方案中,參與服務的服務器都擁有一個SID(可以是服務器的IP地址或者DNS名字),通過散列算法找出響應服務器,直接將客戶端的請求報文送達響應服務器,這種一對一的響應協(xié)商,減少了客戶端選擇服務器的步驟,進而提高了DHCP工作效率。
DHCP負載平衡算法能夠在現(xiàn)有多個服務器之間實現(xiàn)請求的合理分配,避免服務器處理來自客戶端請求的不均衡。為了在主次服務器之間實現(xiàn)負載均衡算法,兩個服務器都必須能夠決定響應哪些客戶端的DHCPDISCOVER,因此要求服務器能夠通過客戶端的請求報文快速決定是否為此客戶端服務。此外,DHCP負載平衡算法還能夠配置主次服務器服務客戶端數(shù)量的百分比,由于客戶機請求的隨機性難以預測,對短期而言,實際的客戶機得到的請求百分比會偏離期望的百分比,但是隨著請求次數(shù)的增加,服務器的負載百分比就會達到設定值,因此很好地實現(xiàn)了DHCP服務器的負載均衡。隨后將使用支持DHCP負載平衡算法和故障恢復草案的CNR7.1來進行部署實驗。
我們準備了兩個裝有CNR7.1的Linux主機當作拓撲中的服務器,一個交換機和四臺客戶機。
具體測試過程如下:
第1步,為兩個服務器設置IP地址Click DHCP , then Failover to open the List DHCP Failover Pairs page.創(chuàng)建 。服務器1的地址192.168.27.2;服務器2的地址192.168.27.102,兩服務器地址池范圍相同:192.168.27.10-192.168.27.100
第 2步,用CNR提供的負載均衡功能配置 DHCP 負載均衡對:CNR提供了配置負載均衡對的功能,需要服務器的地址、登錄用戶名及密碼,設置服務器負載百分比為50:50,在網(wǎng)絡連接通暢的情況下,所設置成負載均衡對的服務器之間就可以使用CNR進行交流,從而由CNR經(jīng)過DHC負載平衡算法,決定將客戶端的請求送給哪個DHCP服務器。
客戶端PC1和PC4從服務器2(IP地址為:192.168.27.102)獲得地址,PC2和PC3從服務器1(IP地址為:192.168.27.2)獲得地址,這里可以看到服務器負載百分比正好是50:50和設定值一樣,但是由于前面所提到的客戶機請求的隨機性,DHCP負載平衡算法并不能保證少量客戶端請求的正確性,但是這個結(jié)果可以證明在使用DHCP負載平衡算法的CNR上進行服務器的負載平衡設置是可行的。
第3步,設置故障轉(zhuǎn)移服務器對,主DHCP服務器地址為Server 1,次服務器為Server 2。當主服務器從網(wǎng)絡斷開是,通過CNR的,次服務器會收到主服務器宕機消息,快速接管主服務器的角色,為其它主機分配地址。
在主次服務器故障轉(zhuǎn)移中,主服務器宕機后,次服務器(IP地址為:192.168.27.102)能夠快速順利地為環(huán)境中的四個客戶機分配地址。由此可見,采用負載均衡算法的CNR7.1能夠很好地將來自客戶端的請求分布到兩個或者多個DHCP服務器上,實現(xiàn)了地址分配的負載均衡。
當一個DHCP工作不正常的時候,次服務器能夠快速、正確地為所有客戶端分配地址,提高了DHCP服務器的工作可靠性。由此可見,故障恢復草案能實現(xiàn)快速的故障轉(zhuǎn)移,減少了校園網(wǎng)絡中DHCP服務器非正常停機帶來的危害。
由實驗結(jié)果可以發(fā)現(xiàn)故障恢復草案的優(yōu)點是,它更好地解決了大量IP地址浪費問題。在多個承擔相同任務的服務器之間的交流信號的定義,讓服務器之間聯(lián)系更加緊密。主次服務器地址租用的同步,使得次服務器在主服務器出現(xiàn)故障時能夠安全快速接管工作,已經(jīng)分配IP地址的客戶機,可以在需要的時候直接續(xù)租地址,從而減輕租用新地址帶來的網(wǎng)絡負擔。
DHCP負載平衡算法的優(yōu)點是能夠在多臺對等的服務器之間實現(xiàn)自定百分比的負載平衡,可自由設定服務器負載百分比,也保障了校園網(wǎng)中DHCP安全可靠運行。同時使用故障恢復草案和DHCP負載平衡算法,可以最好地保障校園網(wǎng)的DHCP服務器的安全運行。
對于高校來說,下一步的工作要從IPv6下的校園網(wǎng)DHCP分配和無線AP與控制器的快速聯(lián)系兩個方面入手,尋找建立安全、快速的校園網(wǎng)動態(tài)地址分配方法。
(作者單位為華東師范大學)