專利名稱:一種ip地址分配方法
技術領域:
本發明涉及網絡技術領域,尤其涉及一種IP地址分配方法。
背景技術:
動態地址分配是互聯網的一種地址分配方法。如目前普遍使用的DHCP協議,通過該協議,客戶端可以自動從DHCP服務器獲得IP地址、網關、DNS服務器等基本網絡配置信息,從而實現即插即用的上網方式,避免了復雜的網絡參數配置。圖 1 是目前傳統 DHCP (Dynamic Host Configuration Protocol,動態主機設置協議)服務器的基本工作模式。DHCP服務器在分配地址時,每次會直接從備選地址池中選取一個地址分配給客戶端。在這種模式下,管理員通過配置文件靜態定義“備選地址池”空間, 備選地址池中的所有地址都可以作為有效地址分配給客戶端。為了擴展DHCP服務器功能,還可以通過標準OPTION選項向客戶端分配特殊的地址參數,如IETF RFC2132規定的0PTI0N43可以為客戶端分配預先定義好的無線網控制器地址。但是在IPv6環境下,某些應用對IPv6地址格式有特殊要求,這使得DHCP服務器必須能夠按照策略對備選地址池空間進行過濾和篩選,從中選出符合要求的有效地址分配給客戶端,而目前的傳統DHCP服務器是不支持這種工作模式的。
發明內容
(一)要解決的技術問題本發明要解決的技術問題是如何為客戶端分配特殊形式的地址。( 二 )技術方案為解決上述技術問題,本發明提供了 IP地址分配方法,包括以下步驟Si、根據動態策略從備選地址池中選擇一個或一段地址作為有效地址放入有效地址池中,所述動態策略是DHCP服務器所調用的一段預先制定的對備選地址池進行篩選的
程序算法。優選地,在步驟Sl之后還包括步驟S2 調用負載均衡算法從有效地址池中選取有效地址分配給客戶端。優選地,步驟Sl中,在將有效地址放入有效地址池中的同時,調用負載均衡算法從有效地址池中選取有效地址分配給客戶端。優選地,當選取有效地址分配給客戶端的同時,將所選的有效地址標記為已分配。優選地,當有客戶端釋放了地址,則將所釋放的地址回收到有效地址池中,且將所回收的地址標記為未分配,后續客戶端的地址請求則從有效地址池的未分配地址中選取。優選地,步驟Sl和步驟S2均由DHCP服務器來執行。優選地,所述備選地址池是通過配置文件靜態定義的初始地址分配空間。優選地,所述負載均衡算法為輪詢算法、隨機算法或散列算法。
(三)有益效果本發明通過加入地址篩選步驟,擴展了 DHCP服務器的功能,可按照策略為客戶端分配特殊格式的地址,從而滿足客戶端對復雜格式地址分配的需求。
圖1示出了現有技術中使用DHCP協議進行地址分配的工作模式;圖2示出了本發明中使用DHCP協議進行地址分配的工作模式。
具體實施例方式下面結合附圖和實施例,對本發明的具體實施方式
作進一步詳細描述。以下實施例用于說明本發明,但不用來限制本發明的范圍。在IPv6網絡環境下,某些應用對IPv6地址有特殊要求(如特殊的地址組成格式),本發明即是針對這種情況,由DHCP服務器在運行時動態調用一種“策略”,對初始地址池進行篩選,從中選出符合要求的有效地址分配給客戶端,滿足客戶端對特殊形式地址的分配需求。首先對本發明中用到的有關術語進行說明。備選地址池由管理員通過配置文件靜態定義的初始地址分配空間,其中的地址稱為“備選地址”。有效地址池由備選地址池中的地址按照動態策略篩選出來的地址或地址塊組成,這些按照動態策略篩選出來的地址或地址塊稱為“有效地址”,是能夠分配給客戶端的合法地址。動態策略由管理員通過程序算法定義的篩選備選地址的方法,該程序算法由 DHCP服務器在進行地址分配時動態調用。有效地址是通過調用動態策略這個程序算法得到的。DHCP服務器指支持IPv4和IPv6動態地址分配的DHCP/DHCPv6服務器。本發明中所述“地址”是指IPv4和IPv6地址。本發明中所述“地址分配”是指IPv4和IPv6地址分配。如圖2所示,本發明與傳統DHCP服務器不同之處是增加了 “動態策略”模塊。通過動態調用該模塊,DHCP服務器可以從備選地址池中按照策略選出符合要求的有效地址。 同時,該模塊還可以將選出的有效地址放入有效地址池以備后續分配之需。一般情況下,為了使地址分配更加均勻平衡,傳統的DHCP服務器會采用負載均衡算法(如輪詢、隨機或散列等算法)來選取地址,這種方法與本發明有本質不同在傳統 DHCP服務器中,備選地址池中的所有地址都是有效地址,負載均衡算法只是為了使地址選擇分布得更均勻;而在本發明中,備選地址池中的地址并不都是有效地址,動態策略的作用是從備選地址池中將有效地址篩選出來。在本發明中,動態策略與負載均衡算法并不沖突,DHCP服務器可同樣調用負載均衡算法從有效地址池中均勻地選取有效地址分配給客戶端。實施例一備選地址池2001:2000::/32
動態策略要求返回給客戶端的地址中第32-39位(最左端為0位,最右端為127 位)全為1,第48-127位全為0,地址順序為由低到高。執行過程當客戶端第一次請求地址時,DHCP服務器調用動態策略,從備選地址池中選出有效地址2001:2000:FFOl 返回給客戶端,同時將該地址放入有效地址池,并標記為“已分配”;當客戶端第二次請求地址時,DHCP服務器調用動態策略,從備選地址池中選出有效地址2001:2000:FF02:返回給客戶端,同時將該地址放入有效地址池,并標記為“已分配”;如此類推,直到將備選地址池全部篩選一遍。若此期間有客戶端釋放了地址,則在有效地址池中將該地址進行回收,標記為“未分配”。當又有新的客戶端請求地址時,服務器檢查有效地址池中是否有“未分配”地址,并參照傳統DHCP服務器的分配方法進行地址分配。實施例二備選地址池2001:2000::/32動態策略將客戶端MAC地址嵌入到返回地址的最右邊48位,其他位全為0。執行過程當客戶端00:26:c6:3a:釙36請求地址時,DHCP服務器調用動態策略,從備選地址池中選出有效地址2001:2000: :0026:c63a:5b36分配給客戶端;當客戶端44:2a :60:72 99: e7請求地址時,DHCP服務器調用動態策略,從備選地址池中選出有效地址2001:2000: :442a:6072:99e7分配給客戶端;如此類推。實施例三備選地址池2001:2000::/32動態策略按照由低到高的順序將10. 0. 0. 0/24網段的v4地址嵌入到自左至右第 32-63位,其他位全為0。要求每次分配返回給客戶端一個v4地址對應的大小為/64的v6 地址段。執行過程當客戶端第一次請求地址時,DHCP服務器調用動態策略,從備選地址池中選出 2001:2000:A0:1::/64返回給客戶端,同時將該地址放入有效地址池,標記為“已分配”;當客戶端第二次請求地址時,DHCP服務器調用動態策略,從備選地址池中選出 2001:2000:A0:2: :/64返回給客戶端,同時將該地址放入有效地址池,標記為“已分配”;如此類推,直至將10. 0. 0. 0/24這個網段對應的V6地址段全部篩選完畢。若此期間有客戶端釋放了地址,則在有效地址池中將該地址進行回收,標記為“未分配”;后續客戶端的地址請求將從有效地址池“未分配”地址中選取。實施例四備選地址池2001:2000::/32動態策略要求按照由低到高的順序每次返回給客戶端一塊大小為/48的地址段。執行過程當客戶端第一次請求地址時,DHCP服務器調用動態策略,從備選地址池中選出2001:2000:0001::/48返回給客戶端,同時將該地址放入有效地址池,標記為“已分配”;當客戶端第二次請求地址時,DHCP服務器調用動態策略,從備選地址池中選出 2001:2000:0002: :/48返回給客戶端,同時將該地址放入有效地址池,標記為“已分配”;如此類推,直至將2001:2000: :/32這個備選地址池全部分配完畢。在以上實施例中,備選地址池全部使用了 “地址前綴/掩碼長度”的表示方法, 在具體實施中還可采用其他表示方式,只要能夠表示出一段地址空間即可。例如若采用 “低端地址邊界,高端地址邊界”表示法,則以上實施例中的備選地址池空間可以表示為 “ 20012000:,2001:2000FFFFFFFFFFFFFFFFFFFFFFFF”。在以上實施例中,有效地址的選取都沒有包括低端地址邊界。在實際實施中,可以定義是否包含低端或高端地址邊界。例如,在實施例一和實施例四中,若包含低端地址邊界,則第一次返回給客戶端的地址應為2001:2000:FFOO和2001:2000:0000: :/48。在具體實現中,DHCP服務器出于優化需要,可能采用與以上實施例不完全相同的步驟例如,在實施例一和實施例三中,DHCP服務器可以在第一次分配地址時將整個備選地址池篩選完畢,將符合動態策略的所有有效地址一次性放入有效地址池,以后所有分配給客戶端的地址都直接從有效地址池中選取。再例如,在實施例一和實施例三中,DHCP服務器在第一次和第二次,及后續分配地址時,不一定必須按照順序分配,也可以按照散列、 隨機等負載均衡方法進行分配。再例如,在實施例二中,為了防止具有相同MAC地址的不同客戶端分配到相同的地址,可以將已經選出的有效地址放入有效地址池并做好標記。在傳統DHCP服務器中,有效地址池是通過配置文件或配置參數靜態定義的,其中的有效地址在服務器運行之前都已經定義好了 ;但是在本發明中,配置文件和配置參數定義的僅僅是備選地址池空間,服務器必須在運行的時候通過調用執行動態策略算法,才可篩選出有效地址。本發明中的動態策略與傳統DHCP服務器中的OPTION擴展也有本質不同在傳統DHCP服務器中,管理員可以通過OPTION選項向客戶端分配擴展意義的地址參數,不過這些OPTION擴展參數同樣是通過配置文件或配置參數預先靜態定義好的,在服務器運行之前這些參數就是明確的。而本發明中的動態策略,是由程序算法定義的,必須由服務器在運行時動態調用執行才可確定最終結果。事實上,本發明中的動態策略與傳統服務器中的OPTION擴展并不矛盾,在本發明中仍可以通過靜態定義OPTION擴展,在服務器通過調用動態策略確定有效地址后,與預先定義好的OPTION擴展參數同時傳遞給客戶端。以上所述僅是本發明的實施方式,應當指出,對于本技術領域的普通技術人員來說,在不脫離本發明技術原理的前提下,還可以做出若干改進和變型,這些改進和變型也應視為本發明的保護范圍。
權利要求
1.一種IP地址分配方法,其特征在于,包括以下步驟Si、根據動態策略從備選地址池中選擇一個或一段地址作為有效地址放入有效地址池中,所述動態策略是DHCP服務器所調用的一段預先制定的對備選地址池進行篩選的程序算法。
2.如權利要求1所述的方法,其特征在于,在步驟Sl之后還包括步驟S2調用負載均衡算法從有效地址池中選取有效地址分配給客戶端。
3.如權利要求1所述的方法,其特征在于,步驟Sl中,在將有效地址放入有效地址池中的同時,調用負載均衡算法從有效地址池中選取有效地址分配給客戶端。
4.如權利要求2或3所述的方法,其特征在于,當選取有效地址分配給客戶端的同時, 將所選的有效地址標記為已分配。
5.如權利要求4所述的方法,其特征在于,當有客戶端釋放了地址,則將所釋放的地址回收到有效地址池中,且將所回收的地址標記為未分配,后續客戶端的地址請求則從有效地址池的未分配地址中選取。
6.如權利要求2所述的方法,其特征在于,步驟Sl和步驟S2均由DHCP服務器來執行。
7.如權利要求1所述的方法,其特征在于,所述備選地址池是通過配置文件靜態定義的初始地址分配空間。
8.如權利要求1 3、6、7中任一項所述的方法,其特征在于,所述負載均衡算法為輪詢算法、隨機算法或散列算法。
全文摘要
本發明涉及網絡技術領域,公開了一種IP地址分配方法,包括以下步驟S1、根據動態策略從備選地址池中選擇一個或一段地址作為有效地址放入有效地址池中,所述動態策略是DHCP服務器所調用的一段預先制定的對備選地址池進行篩選的程序算法。本發明通過加入地址篩選步驟,擴展了DHCP服務器的功能,可按照策略為客戶端分配特殊格式的地址,從而滿足客戶端對復雜格式地址分配的需求。
文檔編號H04L29/12GK102291470SQ20111023670
公開日2011年12月21日 申請日期2011年8月17日 優先權日2011年8月17日
發明者李子木, 潘麗 申請人:清華大學