本發(fā)明涉及虛擬專用網絡領域,特別涉及用于ip地址分配的方法、裝置、系統(tǒng)和計算機程序產品。
背景技術:
在驗證、授權和記賬(aaa:authentication、authorization、accounting)認證中,遠程用戶撥號認證系統(tǒng)(radius:remoteauthenticationdialinuserservice)是被廣泛使用的一種協(xié)議。radius服務器除aaa認證功能外,還具有為radius客戶端分配ip地址的功能,即能夠基于一個ip地址池或者多個ip地址池實現(xiàn)基于網絡接入服務(nas:networkaccessservice)協(xié)議的ip地址分配?,F(xiàn)有技術中,當有多個ip地址池時,radius服務器能夠采用如下方法實現(xiàn)ip地址的分配,具體為:
1)利用radius協(xié)議中的分幀池屬性(framed-pool);
2)利用特定供應商屬性(vsa:vendor-specificattributes);
3)利用radius服務器端ip地址池合用。
在第一種方法中,需要在nas上定義ip地址池標識poolname,同時,nas需要符合radius擴展協(xié)議rfc2869,radius服務器才能在“訪問-接收”信息包(類型為88屬性)中發(fā)送分幀池屬性,而系統(tǒng)管理員需要手動為用戶配置nas并更新授權屬性。
在第二種方法中,獨立軟件供應商(isv:independentsoftwarevendors)不能使用分幀池屬性,但可以定義ip地址池,即利用vsa模型,由radius服務器使用所定義的ip地址池。此外,該方法與各isv的實現(xiàn)有關,比如思科,是利用ciscoav-pair屬性發(fā)送ip地址池信息。
在第三種方法中,radius服務器根據(jù)radius客戶端的nas-ip-address、nas-port屬性匹配所配置的ip地址池。一旦radius服務器啟動后,將無法更改radius服務器的ip地址池配置信息,除非停止radius認證服務。
在實現(xiàn)本發(fā)明的過程中,本發(fā)明的發(fā)明人發(fā)現(xiàn):第一種方法需要在每臺nas上配置ip地址池,集中管理能力較差;第二種方法與各isv設備有關,導致私有屬性由各isv掌握,兼容性較差;第三種方法需要重新啟動radius認證服務,才能使ip地址池的修改生效,操作靈活性較差。
技術實現(xiàn)要素:
本發(fā)明實施例提出了用于ip地址分配的方法、裝置、系統(tǒng)和計算機程序產品,以解決在不停止認證服務的情況下,基于開放源碼的虛擬專用網絡(openvpn:openvirtualprivatenetwork)認證服務的ip地址分配與接入節(jié)點的ip地址間的耦合性較強,以及基于接入節(jié)點擴展的彈性部署能力較差的技術問題。
在一個方面,本發(fā)明實施例提供了一種用于ip地址分配的方法,用于接入節(jié)點中,包括:
在接收到客戶端發(fā)送的連接請求時,將接入節(jié)點的區(qū)域代碼發(fā)送給認證服務器,所述區(qū)域代碼用于表示所述接入節(jié)點所在的區(qū)域;
接收所述認證服務器從所述區(qū)域代碼對應的ip地址池中選擇的ip地址,并轉發(fā)給所述客戶端。
在另一個方面,本發(fā)明實施例提供了一種用于ip地址分配的方法,包括:
根據(jù)來自接入節(jié)點的認證請求消息中的區(qū)域代碼,從所述區(qū)域代碼對應的ip地址池中選擇ip地址并發(fā)送給所述接入節(jié)點,所述區(qū)域代碼用于表示所述接入節(jié)點所在的區(qū)域。
在另一個方面,本發(fā)明實施例提供了一種用于ip地址分配的裝置,包括:
發(fā)送模塊,用于在接收到客戶端發(fā)送的連接請求時,將接入節(jié)點的區(qū)域代碼發(fā)送給認證服務器,所述區(qū)域代碼用于表示所述接入節(jié)點所在的區(qū)域;
接收模塊,用于接收所述認證服務器從所述區(qū)域代碼對應的ip地址池中選擇的ip地址,并轉發(fā)給所述客戶端。
在另一個方面,本發(fā)明實施例提供了一種用于ip地址分配的裝置,包括:
分配模塊,用于根據(jù)來自接入節(jié)點的認證請求消息中的區(qū)域代碼,從所述區(qū)域代碼對應的ip地址池中選擇ip地址并發(fā)送給所述接入節(jié)點,所述區(qū)域代碼用于表示所述接入節(jié)點所在的區(qū)域。
另一個方面,本發(fā)明實施例提供了一種用于ip地址分配的系統(tǒng),包括:
接入裝置,用于在接收到客戶端發(fā)送的連接請求時,將接入裝置的區(qū)域代碼發(fā)送給認證裝置,接收所述認證裝置根據(jù)所述區(qū)域代碼發(fā)送的ip地址,并轉發(fā)給所述客戶端;
認證裝置,用于從所述區(qū)域代碼對應的ip地址池中選擇ip地址并發(fā)送給所述接入裝置。
在另一個方面,本發(fā)明實施例提供了一種與用于ip地址分配的裝置結合使用的計算機程序產品,所述計算機程序產品包括計算機可讀的存儲介質和內嵌于其中的計算機程序機制,所述計算機程序機制包括用于執(zhí)行上述任一方法中各個步驟的指令。
有益效果如下:
本發(fā)明接入節(jié)點側接收認證服務器根據(jù)區(qū)域代碼發(fā)送的用戶ip地址,使得在進行接入節(jié)點擴展時,無需改動認證服務器的配置,就能夠實現(xiàn)ip地址分配與接入節(jié)點的ip地址間的解耦,以及接入節(jié)點的彈性部署。
附圖說明
下面將參照附圖描述本發(fā)明的具體實施例,其中:
圖1為本發(fā)明實施例一中vpn節(jié)點側用于ip地址分配的方法原理圖;
圖2為本發(fā)明實施例二中用于ip地址分配的應用場景示意圖;
圖3為本發(fā)明實施例二中用于ip地址分配的方法流程圖;
圖4為本發(fā)明實施例三中用于ip地址分配的應用場景示意圖;
圖5為本發(fā)明實施例三中用于ip地址分配的方法流程圖;
圖6為本發(fā)明實施例三中用于ip地址分配的工作流程圖;
圖7為本發(fā)明實施例四中vpn節(jié)點側用于ip地址分配的裝置結構圖;
圖8為本發(fā)明實施例五中用于ip地址分配的系統(tǒng)結構圖。
具體實施方式
為了使本發(fā)明的技術方案及優(yōu)點更加清楚明白,以下結合附圖對本發(fā)明的示例性實施例進行進一步詳細的說明,顯然,所描述的實施例僅是本發(fā)明的一部分實施例,而不是所有實施例的窮舉。并且在不沖突的情況下,本說明中的實施例及實施例中的特征可以互相結合。
發(fā)明人在發(fā)明過程中注意到:現(xiàn)有的radius服務器在選擇ip地址池后,需要重新啟動radius服務器,才能使ip地址池的修改生效??梢姡诓煌V箁adius認證服務的情況下,基于openvpn認證服務的ip地址分配與openvpn服務器的ip地址間的耦合性較強,基于openvpn服務器擴展的彈性部署能力較差。
針對上述不足,本發(fā)明提出了vpn節(jié)點將包含區(qū)域代碼的認證請求消息發(fā)送給radius服務器;接收來自所述radius服務器在對所述認證請求消息認證成功后,根據(jù)所述認證請求消息中的區(qū)域代碼發(fā)送的用戶ip地址,并將接收到的用戶ip地址發(fā)送給vpn客戶端,以使vpn節(jié)點將來自所述vpn客戶端的包含用戶ip地址的訪問請求消息發(fā)送給網關,再由網關根據(jù)所述訪問請求消息中的用戶ip地址,將所述訪問請求消息經由隧道路由給目的ip地址。
本發(fā)明通過將radius協(xié)議中的某一擴展屬性值配置為區(qū)域代碼,以及在radius服務器側的配置文件中配置區(qū)域代碼與ip地址池標識的對應關系,使得在進行openvpn服務器擴展時,radius服務器能夠根據(jù)區(qū)域代碼值動態(tài)選擇ip地址池,從而實現(xiàn)在無需改動radius服務器配置的情況下,彈性部署openvpn服務器,即當需要增加openvpn服務器時,實現(xiàn)openvpn服務器的快速擴展,以及當現(xiàn)有openvpn服務器不可用時,實現(xiàn)openvpn服務器的快速替換。下面進行具體說明。
實施例一、
圖1示出了本發(fā)明實施例一中vpn節(jié)點側用于ip地址分配的方法原理圖,如圖1所示,用于接入節(jié)點中,該方法包括:
步驟101、在接收到客戶端發(fā)送的連接請求時,將接入節(jié)點的區(qū)域代碼發(fā)送給認證服務器,所述區(qū)域代碼用于表示所述接入節(jié)點所在的區(qū)域。
步驟102、接收所述認證服務器從所述區(qū)域代碼對應的ip地址池中選擇的ip地址,并轉發(fā)給所述客戶端。
在步驟101中,vpn節(jié)點接收到來自用戶的連接請求(如,登錄請求)后,將區(qū)域代碼信息攜帶在認證請求消息中,一并發(fā)送給radius服務器。其中,用于認證服務網絡中的接入節(jié)點為vpn節(jié)點,認證服務器為radius服務器,客戶端為vpn客戶端,而來自用戶的登錄請求也可以是來自用戶的接入請求,即用于radius服務器認證該用戶是否具有接入權限。
在步驟102中,vpn節(jié)點將自身的區(qū)域代碼攜帶在認證請求消息中發(fā)送至radius服務器。radius服務器對認證請求消息進行認證,并在認證成功后,發(fā)送與區(qū)域代碼對應的ip地址池中的可用用戶ip地址給vpn節(jié)點,vpn節(jié)點再將該用戶ip地址發(fā)送給vpn客戶端,以便vpn客戶端在后續(xù)的訪問請求消息中攜帶該用戶ip地址。
當vpn節(jié)點接收到來自vpn客戶端的包含用戶ip地址的訪問請求消息后,直接將訪問請求消息轉發(fā)給網關,由網關對該訪問請求消息進行解析,得到訪問請求消息中的用戶ip地址。網關根據(jù)得到的用戶ip地址,利用網關側預存的用戶ip地址與目的ip地址的對應關系,將訪問請求消息經由隧道路由給與該用戶ip地址對應的目的ip地址,從而實現(xiàn)消息的互通。其中,網關可以是路由器,即在路由器上設置路由規(guī)則,如預存的用戶ip地址與目的ip地址的對應關系。
本實施例通過對radius服務器進行改造,即在radius的數(shù)據(jù)庫中增加自定義擴展屬性字段,以及在配置文件中配置自定義擴展屬性與ip地址池的對應關系。配置完成后,在對openvpn客戶端認證成功后,radius服務器根據(jù)openvpn服務的區(qū)域代碼動態(tài)選擇ip地址池,并將與區(qū)域代碼對應的源ip地址經由vpn節(jié)點返回給vpn客戶端。從而在進行vpn節(jié)點的擴展以及替換時,實現(xiàn)ip地址分配與openvpn服務器的ip地址間的解耦。
優(yōu)選的,還包括:
當所屬的接入節(jié)點的負載率超過設定值時,創(chuàng)建新的接入節(jié)點。
對vpn節(jié)點的cpu占用率進行檢測,cpu占用率的設定值可以根據(jù)實際情況進行設定,當vpn節(jié)點的cpu占用率超過設定值時,利用鏡像創(chuàng)建新的vpn節(jié)點。其中,節(jié)點實例(instance)預先制作一個鏡像,即通過鏡像的方式啟動新的vpn節(jié)點。
優(yōu)選的,還包括:
在檢測到所屬的接入節(jié)點被創(chuàng)建時,從已有的接入節(jié)點中獲取區(qū)域代碼,并為所屬的接入節(jié)點配置獲取到的區(qū)域代碼。
當所屬的vpn節(jié)點檢測到自身已被創(chuàng)建時,獲取原有vpn節(jié)點中的區(qū)域代碼和radius服務器標識,根據(jù)所述區(qū)域代碼和radius服務器標識分別設置自身的區(qū)域代碼和radius服務器標識,新的vpn節(jié)點中的區(qū)域代碼和radius服務器標識與原有vpn節(jié)點中的區(qū)域代碼和radius服務器標識一致。其中,新的vpn節(jié)點為原有vpn節(jié)點的擴展vpn節(jié)點。
新的vpn節(jié)點將包含區(qū)域代碼的認證請求消息發(fā)送給radius服務器,接收radius服務器根據(jù)認證請求消息中的區(qū)域代碼發(fā)送的用戶ip地址,并將接收到的用戶ip地址發(fā)送給vpn客戶端。以使新的vpn節(jié)點將來自vpn客戶端的包含用戶ip地址的訪問請求消息發(fā)送給網關,再由網關根據(jù)訪問請求消息中的用戶ip地址,將訪問請求消息經由隧道路由給目的ip地址。
其中,新的vpn節(jié)點的具體實現(xiàn)方法與原有vpn節(jié)點的具體實現(xiàn)方法一致,因此,此處不再贅述。
優(yōu)選的,從已有的vpn節(jié)點中獲取區(qū)域代碼,并為所屬的vpn節(jié)點配置獲取到的區(qū)域代碼,包括:
從已有的vpn節(jié)點的radius插件的保留屬性中獲取區(qū)域代碼,并將獲取到的區(qū)域代碼配置到所屬的vpn節(jié)點的radius插件的保留屬性中。針對radius擴展協(xié)議rfc2869中的radius保留屬性進行說明,具體如下:
可擴展認證協(xié)議(eap:extensibleauthenticationprotocol)是對點到點協(xié)議(ppp:pointtopointprotocol)的擴展,通過eap能夠在ppp內支持額外的認證方法,radius協(xié)議能夠利用eap-message和message-authenticator屬性支持eap,其中,屬性由type-length-value三元組組成,能夠用于添加新的屬性值而又不影響協(xié)議的實現(xiàn)。
radius屬性攜帶著認證、授權和計費請求與響應的詳細信息,通常建議相同類型的屬性保持順序不變,而對于不同類型的屬性其順序則不必保持。此外,通常將radius報文的長度在屬性列表的末尾指明,為引用方便,此處列出屬性格式,按照從左至右的順序傳輸各域,具體為:
type域占一個字節(jié),目前最新的radiustype域值在最新的rfc中分配。屬性值192-223保留給實驗用,屬性值224-240保留給特定實現(xiàn)用,屬性值241-255保留不用。
radiusplugin為開源軟件,可作為openvpn的radius客戶端,radiusplugin主要包括兩個功能,分別是:
1)radius認證和openvpn的記賬支持;
2)radius屬性分析:
①ip地址類型;
②路由類型;
③實時計費間隔時間;
④來自其他腳本的特定供應商屬性。
通常,radius協(xié)議會提供一些保留屬性給客戶進行自定義,因此,利用radius協(xié)議中的擴展屬性值224-240,將openvpn服務器的自定義區(qū)域代碼添加到擴展屬性值中,利用openvpn的radiusplugin作為radius客戶端,以及利用freeradius作為radius服務器,對freeradius進行改造,即在freeradius的數(shù)據(jù)庫中增加自定義擴展屬性字段,以及在配置文件中配置自定義擴展屬性與ip地址池的對應關系。配置完成后,在對openvpn客戶端認證成功后,freeradius能夠根據(jù)openvpn服務的區(qū)域代碼來動態(tài)選擇ip地址池,并返回一個與服務相關的ip地址給vpn客戶端。
此外,radius服務器側用于ip地址分配的具體實現(xiàn)方法為:根據(jù)來自接入節(jié)點的認證請求消息中的區(qū)域代碼,從所述區(qū)域代碼對應的ip地址池中選擇ip地址并發(fā)送給所述接入節(jié)點,所述區(qū)域代碼用于表示所述接入節(jié)點所在的區(qū)域。
radius服務器接收來自openvpn節(jié)點的認證請求消息,對認證請求消息中的用戶登錄信息(即連接請求)進行認證,確定該用戶是否具有登錄權限(即連接權限),若該用戶不具有登錄權限,則認證失敗,經由openvpn節(jié)點返回認證失敗消息給vpn客戶端;若該用戶具有登錄權限,則認證成功,繼續(xù)根據(jù)認證請求消息中的區(qū)域代碼,利用預設區(qū)域代碼與ip地址池標識的對應關系,獲取與認證請求消息中的區(qū)域代碼對應的ip地址池標識,根據(jù)獲取到的ip地址池標識,從相應的ip地址池中獲取可用ip地址,并發(fā)送該可用ip地址給openvpn節(jié)點。
優(yōu)選地,還包括:
對所述認證請求消息進行認證,若認證失敗,則發(fā)送認證失敗消息給所述vpn節(jié)點。
本實施例基于openvpn服務的區(qū)域代碼進行ip地址池的動態(tài)選擇,實現(xiàn)openvpn客戶端得到的ip地址與openvpn服務器(即openvpn節(jié)點)解耦,即通過預先配置多個ip地址池,多個區(qū)域代碼,以便在進行openvpn服務器擴展時,無需改動radius服務器的配置,就能實現(xiàn)openvpn服務器的快速擴展以及替換。此外,根據(jù)不同的ip地址池,還能夠在每個openvpn服務器上實現(xiàn)個性化防火墻策略以及針對不同區(qū)域用戶應用不同的路由策略。
為了便于本發(fā)明的實施,下面以實例進行說明。
實施例二、
圖2示出了本發(fā)明實施例二中用于ip地址分配的應用場景示意圖,如圖2所示,在北京,上海,廣州三地搭建openvpn節(jié)點,組建openvpn服務網絡,并為每個openvpn節(jié)點分別分配一個區(qū)域代碼。在radius服務器側設置與為每個openvpn節(jié)點所分配的區(qū)域代碼對應的ip地址池。在路由器側設置業(yè)務規(guī)則,具體為,北京的openvpn用戶能夠與廣州、上海的openvpn用戶交互,廣州的openvpn用戶只能與北京的openvpn用戶交互,上海的openvpn用戶只能與北京的openvpn用戶交互,上海的openvpn用戶與廣州的openvpn用戶不能交互。
假定利用radius擴展協(xié)議的保留屬性type域存儲區(qū)域代碼,即設置openvpn的radius插件(radiusplugin)的保留屬性(如type域屬性值224)為area_code,在北京的openvpn接入點,radiusplugin的area_code屬性值為area_bj;在廣州的openvpn接入點,radiusplugin的area_code屬性值為area_gz;在上海的openvpn接入點,radiusplugin的area_code屬性值為area_sh。
在radius服務器中,配置area_code屬性值為area_bj的ip地址池為bj_pool,area_code屬性值為area_gz的ip地址池為gz_pool,area_code屬性值為area_sh的ip地址池為sh_pool。bj_pool的可用ip地址為10.100.0.0/16,gz_pool的可用ip地址為10.101.0.0/16,sh_pool的可用ip地址為10.102.0.0/16。
在openvpn網絡的核心路由器中配置路由規(guī)則,并建立和openvpn服務器的隧道,即將源ip地址為10.100.0.0/16,目的ip地址為10.101.0.0/16,10.102.0.0/16的路徑路由到相應的廣州、上海的openvpn服務器。將源ip地址為10.101.0.0/16,目的ip地址為10.100.0.0/16的路徑路由到北京的openvpn服務器,將源ip地址為10.102.0.0/16,目的ip地址為10.100.0.0/16的路徑路由到北京的openvpn服務器。利用所配置的路由規(guī)則,實現(xiàn)北京的openvpn用戶能夠與上海,廣州的openvpn用戶交互,廣州的openvpn用戶只能與北京的openvpn用戶交互,上海的openvpn用戶只能與北京的openvpn用戶交互,上海的openvpn用戶與廣州的openvpn用戶不能交互。
將不同地區(qū)的用戶接入到不同的openvpn服務器,針對訪問權限設置的方法具體為:
在radius服務器上配置區(qū)域代碼和ip地址池的對應關系,以及ip地址池中的可用ip地址。與區(qū)域代碼area_bj匹配的ip地址池為bj_pool,可用ip地址為10.100.0.0/16;與區(qū)域代碼area_gz匹配的ip地址池為gz_pool,可用ip地址為10.101.0.0/16;與區(qū)域代碼area_sh匹配的ip地址池為sh_pool,可用ip地址為10.102.0.0/16。
在北京的openvpn服務器上配置radiusplugin的保留屬性area_code(如type域屬性值224)為區(qū)域代碼area_bj;在廣州的openvpn服務器上配置radiusplugin的保留屬性area_code(如type域屬性值224)為區(qū)域代碼area_gz;在上海的openvpn服務器上配置radiusplugin的保留屬性area_code(如type域屬性值224)為區(qū)域代碼area_sh。
基于所設定的區(qū)域代碼,在openvpn網絡的核心路由器中配置相應的路由規(guī)則,并建立和openvpnserver的隧道。即使用北京openvpn接入的用戶能夠與使用廣州、上海openvpn接入的用戶交互,而使用廣州openvpn接入與使用上海openvpn接入的用戶不能交互。
當北京(上海/廣州)的openvpn用戶出現(xiàn)爆發(fā)式增長時,通過快速部署多臺openvpn服務器,將新部署的openvpn服務器上的radiusplugin的保留屬性area_code的屬性值設置為area_bj(area_sh/area_gz),即可在不需要修改radius服務器配置的情況下,實現(xiàn)openvpn的彈性部署。
圖3示出了本發(fā)明實施例二中用于ip地址分配的方法流程圖,如圖3所示,針對openvpn服務網絡中,某一熱點的用戶接入量陡增,如openvpnserverbj無法滿足用戶的接入需求時,通過快速部署北京openvpn接入服務,滿足用戶的爆發(fā)式接入。快速部署openvpn接入服務的具體實現(xiàn)方法如下:
步驟301:第一openvpn服務器擴展第二openvpn服務器。當?shù)谝籵penvpn服務器的cpu占有率達到設定值時,第一openvpn服務器利用鏡像在云平臺或者互聯(lián)網數(shù)據(jù)中心(idc:internetdatacenter)創(chuàng)建一臺新的openvpn服務器,并設定第二openvpn服務器名稱為openvpnserverbj02。
步驟302:第一openvpn服務器利用鏡像在第二openvpn服務器上配置radiusplugin。第一openvpn服務器利用鏡像在openvpnserverbj02上安裝openvpn服務器的radiusplugin,再由第二openvpn服務器通過獲取第一openvpn服務器的區(qū)域代碼和radius服務器標識,設置自身radiusplugin的保留屬性(如type域屬性值224)為area_code,設置area_code屬性值為區(qū)域代碼area_bj,設置radius認證服務為radiusserver。
步驟303:啟動第二openvpn服務器的openvpn服務。在無需修改radiusserver配置的情況下,基于預先設置的業(yè)務規(guī)則,實現(xiàn)openvpn接入服務的彈性擴充。
本實施例中,利用openvpn服務器的radiusplugin作為radius客戶端,通過對radius服務器(如freeradius服務器)進行相應的改造,即將openvpn服務的區(qū)域代碼附加到radius擴展協(xié)議的保留屬性(224-240)中,以使radius服務器能夠根據(jù)區(qū)域代碼,并利用配置的區(qū)域代碼與ip地址池標識的對應關系動態(tài)選擇ip地址池。此外,在openvpn網絡中的路由器中預先設定業(yè)務規(guī)則,并建立和openvpn服務器的隧道,用于實現(xiàn)openvpn用戶在使用不同的ip地址池時,所具備的訪問權限不同。當openvpn用戶群體出現(xiàn)集中使用時,通過快速部署openvpn服務器,以及集中的radius認證,實現(xiàn)在不中斷radius服務器工作的情況下,彈性提供openvpn服務。
實施例三、
在openvpn服務網絡中,當某一熱點的用戶接入量陡增,如北京區(qū)域的openvpnserverbj和廣州區(qū)域的openvpnservergz無法滿足用戶的接入需求時,通過快速部署北京區(qū)域和廣州區(qū)域的openvpn接入服務,滿足用戶的爆發(fā)式接入。
圖4示出了本發(fā)明實施例三中用于ip地址分配的應用場景示意圖,如圖4(a)所示,為北京區(qū)域的云平臺cloudbj(即openvpnserverbj)和廣州區(qū)域的云平臺cloudgz(即openvpnservergz)未擴充openvpn接入服務的openvpn拓撲示意圖,如圖4(b)所示,為北京區(qū)域的云平臺cloudbj和廣州區(qū)域的云平臺cloudgz擴充openvpn接入服務后的openvpn拓撲示意圖。圖5示出了本發(fā)明實施例三中用于ip地址分配的方法流程圖,如圖5所示,為快速實現(xiàn)云平臺的彈性擴充,在對外提供openvpn接入服務前,需要技術人員對radiusserver進行一定的改造,快速部署前期配置具體包括:
步驟501:在radiusserver側設置區(qū)域代碼和ip地址池的對應關系。區(qū)域代碼為area_bj的ip地址池為bj_pool,可用ip地址為10.100.0.0/16;區(qū)域代碼為area_gz的ip地址池為gz_pool,可用ip地址為10.101.0.0/16。
步驟502:在云平臺側部署openvpn服務器。在云平臺cloudbj上部署一個openvpnserver,公網ip地址為202.106.1.1,配置radiusplugin的保留屬性area_code(如type域屬性值224)為區(qū)域代碼area_bj。在云平臺cloudgz上部署一臺openvpnserver,公網ip地址為202.106.2.1,配置radiusplugin的保留屬性area_code(如type域屬性值224)為區(qū)域代碼area_gz。此外,分別為云平臺cloudbj的openvpnserver實例(instance)制作一個鏡像vpn_image_bj;為云平臺cloudgz的openvpnserver實例制作一個鏡像vpn_image_gz。
步驟503:在路由器上配置區(qū)域代碼area_bj和area_gz的路由,并建立和云平臺的隧道。即可用ip地址10.100.0.0/16和10.101.0.0/16的互聯(lián)互通。
步驟504:在dnsserver側配置域名的a記錄。在openvpn服務網絡中的域名系統(tǒng)服務器(dnsserver:domainnamesystemserver)上配置設定的域名bj.pop.cloudvpn.com的a記錄為202.106.1.1,域名gz.pop.cloudvpn.com的a記錄為202.106.2.1。
技術人員通過上述四個步驟的配置后,北京區(qū)域的openvpnclient就可以使用bj.pop.cloudvpn.com這個域名連接openvpn服務,廣州區(qū)域的openvpnclient就可以使用gz.pop.cloudvpn.com這個域名連接openvpn服務。
當業(yè)務快速發(fā)展時,單臺openvpn服務器的cpu占用率經常達到70%以上,此處可以設定cpu占用率的設定值為70%。為保證服務體驗,針對openvpn接入進行彈性擴充,具體實現(xiàn)方法如下:
步驟505:云平臺側openvpn服務器使用鏡像的方式開啟實例。在云平臺cloudbj上,openvpn服務器使用鏡像vpn_image_bj開啟兩個openvpn實例,實例的ip地址分別為202.106.1.2,202.106.1.3。在云平臺cloudgz上,使用鏡像vpn_image_gz開啟兩個openvpn實例,實例的ip地址分別為202.106.2.2,202.106.2.3。
步驟506:dns服務器增加解析記錄。即dns服務器增加域名bj.pop.cloudvpn.com的a記錄202.106.1.2和202.106.1.3,以及域名gz.pop.cloudvpn.com的a記錄202.106.2.2和202.106.2.3。
通過上述兩個步驟的配置,能夠有效提升北京區(qū)域的openvpn接入服務能力和廣州區(qū)域的openvpn接入服務能力,在無需修改radius服務器配置,以及遵循預先設定的業(yè)務規(guī)則的情況下,實現(xiàn)openvpn接入服務彈性擴充的便利性。
圖6示出了本發(fā)明實施例三中ip地址分配的工作流程圖,如圖6所示,當完成上述所有配置后,針對openvpn接入服務,彈性擴充的具體工作流程如下:
步驟601:clientbj獲取公網ip地址,并根據(jù)公網ip地址發(fā)送認證請求消息給cloudbj。clientbj發(fā)送接入請求消息給dns服務器,dns服務器根據(jù)接收到的接入請求消息中的域名解析出公網ip地址202.106.1.1,并將公網ip地址202.106.1.2發(fā)送給clientbj。clientbj根據(jù)接收到的公網ip地址202.106.1.2,將認證請求消息發(fā)送給公網ip地址202.106.1.2,即cloudbj的openvpn實例。
步驟602:cloudbj接收來自radius服務器在對認證請求消息認證成功后,根據(jù)區(qū)域代碼發(fā)送的源ip地址,并將接收到的源ip地址發(fā)送給clientbj。cloudbj的openvpn實例將區(qū)域代碼攜帶在認證請求消息中,并發(fā)送給radius服務器。radius服務器對接收到的認證請求消息進行認證,并在認證成功后,根據(jù)認證請求消息中攜帶的區(qū)域代碼確定與該區(qū)域代碼相對應的ip地址池。根據(jù)所確定的ip地址池獲取可用ip地址,即源ip地址,將獲取到的源ip地址發(fā)送給cloudbj的openvpn實例。cloudbj的openvpn實例將包含源ip地址的認證成功的消息發(fā)送給clientbj。
步驟603:clientbj將包含源ip地址的訪問請求消息經由cloudbj發(fā)送給路由器,以便路由器根據(jù)源ip地址,將訪問請求消息經由隧道路由給目的ip地址。clientbj將包含源ip地址的訪問請求消息經由cloudbj的openvpn實例經由隧道發(fā)送給路由器。路由器根據(jù)訪問請求消息中的源ip地址,利用預設的業(yè)務規(guī)則,將訪問請求消息經由隧道路由給與源ip地址相對應的目的ip地址,實現(xiàn)用戶間的信息交互。
具體實施時,本領域技術人員可以根據(jù)實際需要適應不同的應用場景,如clientbj既能夠訪問互聯(lián)網資源,也能夠與clientgz進行點到點的訪問,或其他應用場景,本申請對此不作限制。
此外,當現(xiàn)有cloudbj中的某一openvpn服務器出現(xiàn)故障,不可用時,也可以部署新的openvpn服務器,將不可用openvpn服務器的相關信息全部配置給新的openvpn服務器,啟動新的openvpn服務器,就可以實現(xiàn)不可用openvpn服務器的替換,修復openvpn的接入服務,而無需修改radius服務器的配置,從而實現(xiàn)openvpn服務器的快速替換。
實施例四、
基于同一發(fā)明構思,本發(fā)明實施例中還提供了一種用于ip地址分配的裝置,由于這些設備解決問題的原理與一種ip地址分配的方法相似,因此這些設備的實施可以參見方法的實施,重復之處不再贅述。
圖7示出了本發(fā)明實施例四中vpn節(jié)點側用于ip地址分配的裝置結構圖,如圖7所示,裝置可以包括:
發(fā)送模塊701,用于在接收到客戶端發(fā)送的連接請求時,將接入節(jié)點的區(qū)域代碼發(fā)送給radius服務器。
接收模塊702,用于接收所述認證服務器從所述區(qū)域代碼對應的ip地址池中選擇的ip地址,并轉發(fā)給所述客戶端。
創(chuàng)建模塊703,用于當所屬的接入節(jié)點的負載率超過設定值時,創(chuàng)建新的接入節(jié)點。
配置模塊704,用于在檢測到所屬的接入節(jié)點被創(chuàng)建時,從已有的接入節(jié)點中獲取區(qū)域代碼,并為所屬的接入節(jié)點配置獲取到的區(qū)域代碼。
優(yōu)選地,用于認證服務網絡中的接入節(jié)點為vpn節(jié)點,認證服務器為radius服務器,客戶端為vpn客戶端。
優(yōu)選地,所述發(fā)送模塊包括:
將vpn節(jié)點的區(qū)域代碼攜帶在認證請求消息中發(fā)送至radius服務器。
優(yōu)選地,所述配置模塊還包括:
從已有的vpn節(jié)點的radius插件的保留屬性中獲取區(qū)域代碼,并將獲取到的區(qū)域代碼配置到所屬的vpn節(jié)點的radius插件的保留屬性中。
基于同一發(fā)明構思,本發(fā)明實施例中還提供了一種用于ip地址分配的裝置,由于這些設備解決問題的原理與一種ip地址分配的方法相似,因此這些設備的實施可以參見方法的實施,重復之處不再贅述。
本發(fā)明實施例四中radius服務器側用于ip地址分配的裝置可以包括:
分配模塊,用于根據(jù)來自接入節(jié)點的認證請求消息中的區(qū)域代碼,從所述區(qū)域代碼對應的ip地址池中選擇ip地址并發(fā)送給所述接入節(jié)點,所述區(qū)域代碼用于表示所述接入節(jié)點所在的區(qū)域。
實施例五、
基于同一發(fā)明構思,本發(fā)明實施例中還提供了一種用于ip地址分配的系統(tǒng),由于該系統(tǒng)解決問題的原理與一種用于ip地址分配的方法相似,因此該系統(tǒng)的實施可以參見方法的實施,重復之處不再贅述。
圖8示出了本發(fā)明實施例五中用于ip地址分配的系統(tǒng)結構圖,如圖8所示,系統(tǒng)可以包括:
接入裝置801,用于在接收到客戶端發(fā)送的連接請求時,將接入裝置的區(qū)域代碼發(fā)送給認證裝置802,接收所述認證裝置802根據(jù)所述區(qū)域代碼發(fā)送的ip地址,并轉發(fā)給所述客戶端。
認證裝置802,用于從所述區(qū)域代碼對應的ip地址池中選擇ip地址并發(fā)送給所述接入裝置801。
實施例六、
基于同一發(fā)明構思,本發(fā)明實施例還提供了一種與用于ip地址分配的系統(tǒng)結合使用的用于ip地址分配的計算機程序產品,由于其原理與一種用于ip地址分配的方法相似,因此其實施可以參見方法的實施,重復之處不再贅述。所述計算機程序產品包括計算機可讀的存儲介質和內嵌于其中的計算機程序機制,所述計算機程序機制包括用于執(zhí)行任一前述方法中各個步驟的指令。
為了描述的方便,以上所述裝置的各部分以功能分為各種模塊或單元分別描述。當然,在實施本發(fā)明時可以把各模塊或單元的功能在同一個或多個軟件或硬件中實現(xiàn)。
本領域內的技術人員應明白,本發(fā)明的實施例可提供為方法、系統(tǒng)、或計算機程序產品。因此,本發(fā)明可采用完全硬件實施例、完全軟件實施例、或結合軟件和硬件方面的實施例的形式。而且,本發(fā)明可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(包括但不限于磁盤存儲器、cd-rom、光學存儲器等)上實施的計算機程序產品的形式。
本發(fā)明是參照根據(jù)本發(fā)明實施例的方法、設備(系統(tǒng))、和計算機程序產品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合??商峁┻@些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設備的處理器以產生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設備的處理器執(zhí)行的指令產生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些計算機程序指令也可存儲在能引導計算機或其他可編程數(shù)據(jù)處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設備上,使得在計算機或其他可編程設備上執(zhí)行一系列操作步驟以產生計算機實現(xiàn)的處理,從而在計算機或其他可編程設備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
盡管已描述了本發(fā)明的優(yōu)選實施例,但本領域內的技術人員一旦得知了基本創(chuàng)造性概念,則可對這些實施例作出另外的變更和修改。所以,所附權利要求意欲解釋為包括優(yōu)選實施例以及落入本發(fā)明范圍的所有變更和修改。