專利名稱:虛擬化的Radius測試系統及方法
技術領域:
本發明專利涉及一種對AAA服務器的測試系統及方法,尤其是針對Radius服務器的功能和性能提出了一套基于虛擬化理論的測試系統和方法。
背景技術:
AAA是認證、授權和計費的統稱,在hternet廣泛普及的今天,網絡安全正處于一個相對薄弱的環節之上,這就需要采用AAA技術進行訪問控制,AAA服務器是能夠提供這些保障的網絡設備。在下一代AAA認證協議Diameter還未完全成熟以及大量使用的情況下,遠程用戶撥號認證協議(Radius)是目前使用最多的認證協議。為了能高效、低成本地使用Radius 協議進行認證、計費和授權,就必須部署一個相對穩定以及功能可擴展的Radius服務器, 使企業相關人員能夠在短時間內根據不斷變化的需求加入相關的功能。大多數企業為了節省軟件購買和維護成本一般都會使用開源方案,或者根據相應的Radius協議標準進行內部開發。但是Radius協議采用C/S的工作模式,即客戶端發送認證或計費請求,服務器通過響應這個請求來完成相應的認證或計費功能。這種工作模式對測試帶來了一定的困難, 即需要另外開發軟件客戶端或者購買相應的儀器來測試基本認證模塊(比如PAP)的功能和性能,而像計費和其它認證方式(比如ΕΑΡ)就需要搭建特定的環境才能對其進行充分地測試,這種方式存在一些問題專業測試儀器或性能軟件不能代替硬件測試環境,它往往只能單方面地充當C/S模式下的客戶端來進行簡單功能和性能的測試,這種測試環境往往是不夠完備的;需要大量成本來為每一種功能購買搭建環境的硬件,并且這些硬件在測試工作結束后往往會很少被再利用,這就造成了投資上不必要的浪費;硬件設備本身的復雜性對測試帶來了一定的困難,需要各種專業人員協同工作才能完成,而不是只需Radius開發人員在短期就能掌握。因此,這種虛擬化的測試系統及其測試方法可以節省項目在測試環節上的成本, 并為測試人員快速搭建測試環境創造了有利的條件。
發明內容
本發明所解決的技術問題是在不依賴專業測試儀器以及不消耗大量資金的情況下,提供一種虛擬化的RADIUS測試系統及其方法,對RADIUS服務器在功能和性能兩個方面提供綜合的測試服務。虛擬化的RADIUS測試系統主要包括兩個部分虛擬化網關模塊,虛擬化網關控制模塊。虛擬化網關模塊主要提供網絡接入訪問服務,即在接收到VPN或PPP的接入請求時,通過將其封裝為標準Radius認證協議包至Radius服務器來完成認證的功能;或在接收到VPN/PPP斷開請求時,通過發送標準Radius計費協議包至Radius服務器端來實現計費功能。它虛擬化了典型的網關硬件環境,并允許在其上運行多個網關實例,共同構建復雜的測試環境。
虛擬化網關控制模塊作為Hypervisor客戶端下的VMM (Virtual MachineMonitor)來控制運行在Hypervisor krver工作狀態下的虛擬化網關子模塊。本發明為控制模塊自定義了一種ini-like測試環境配置文件格式,用來支持快速配置所需的測試環境,即配置所使用到的虛擬機網絡處理引擎(NPE)以及連接它們的網絡接口適配器類型;此模塊還提供具有良好可讀性的CLI控制臺用以控制運行在虛擬網關模塊上的各個虛擬機,并且支持在線測試環境配置的動態修改(OHOnlinehsertion Removal),使得測試過程能夠動態變化而無需被打斷。其中虛擬化網關模塊包括空閑循環檢測子模塊;網絡處理引擎子模塊,它虛擬了網關內部主要的硬件單元,進一步包括虛擬化處理器;虛擬化內存;網絡端口適配器子模塊,進一步包括虛擬化串行(Serial)接口 ;虛擬化以太網 (Ethernet)接口 ;虛擬網絡協議棧,主要包括物理層和鏈路層,其虛擬化的過程隨著網絡適配器單元類型的不同而不同;在實現的過程中,配合開源的網絡庫就能使得虛擬接口和宿主機的網絡適配器接口進行橋接,使得各種虛擬設備與現實設備進行連接,這不僅以零成本的代價搭建所需的各種測試環境,而且還充分利用了現有的網絡設備資源;Hypervisor服務端子模塊;獨立虛擬機子模塊。虛擬化網關控制模塊包括測試環境配置文件;CLI控制臺子模塊,它還進一步包含0IR(0nline Insertion Removal)子模塊;Hypervisor客戶端子模塊。本發明針對Radius服務器的功能和性能提出的一種可行的測試方法,其步驟如下1、通過合法渠道獲得與測試環境相符的網絡操作系統(IOS);2、設計測試環境拓撲圖;3、設定測試環境中相關的參數值;4、啟動虛擬網關實例并進行連接;本發明具有兩種設定測試環境參數和啟動虛擬網關實例的模式 HypervisorDaemon模式禾口獨立工作模式;Hypervisor Daemon 模式下的步驟4-1創建ini-like本文本件;4-2啟動Hypervisor Server工作狀態下的虛擬網關模塊;4-3 以 Hypervisor Client 工作狀態加載 ini-like 文件;4-4使用控制臺啟動各個虛擬網關實例;獨立工作模式下的步驟4-1在虛擬網關模塊中直接加載測試環境參數8 ;5、啟用空閑循環檢測和休眠機制;
6、使用Telnet登錄IOS并設定協議參數;7、準備好feidius服務器;8、使用測試工具進行相應測試。本發明的有益效果是首先,測試環境的大部分以軟件的形式存在,其穩定性決定于虛擬測試系統所在的宿主機,所以基本無需設備維護人員;并且本發明界面友好,測試人員可以在短時間內掌握各種測試環境的搭建,無需大量專業人員協同工作。所以,測試人員可以在沒有或很少的網絡硬件設施的條件下,快速、低成本地搭建Radius測試環境。
下面結合附圖和實施例對本發明進一步說明。圖1是本發明的虛擬測試系統結構2測試環境配置文件格式3是本發明的典型Hypervisor測試環境圖
圖4是本發明的測試流程圖
具體實施例方式本發明中描述的虛擬測試系統分為兩個部分,都是用層次結構來描述的,這種層次結構所遵循的約定與網絡協議棧相同,即上層使用下層提供的接口,不同層次體中相同層次通過協商好的規約進行通信。其中本發明的虛擬網關模塊(1)結構框圖如圖1的上圖所示,包括網絡操作系統I0S(2),實現了多種協議,并為虛擬網關提供了測試所需協議的使用接口 ;空閑循環檢測子模塊(3),此模塊可以正確地分析出正在運行的IOS的idle-loop 的入口地址,并使處于空閑循環中的虛擬網關處理器進行無規律間斷性的休眠,從而降低宿主機中處理器的使用率;網絡處理引擎子模塊G),主要提供了網絡接入訪問服務,虛擬了大部分現實網關硬件單元;網絡端口適配器子模塊(7),它是虛擬網關與外界進行通信的接口,即對網絡適配器的虛擬化;虛擬網絡協議棧(10),主要仿真了物理層和鏈路層,其主要實現隨著網絡適配器單元類型不同而不同;Hypervisor服務端子模塊(11),接收來自控制臺對測試環境的建立和對虛擬網關實例的監控請求;獨立虛擬機子模塊(1 ,支持在非Hypervisor模式下,獨立地創建和連接虛擬機;宿主操作系統(13),支持虛擬網關的運行。本發明所描述的虛擬網關模塊(1)之所以要使用空閑循環檢測子模塊(3),是因為Hypervisor并不知道虛擬網關實例的IOS是否在idle-loop (即處于空閑狀態),它所做的T作就是將虛擬化處理器(5)的指令系統轉換為宿主操作系統(13)所支持的指令系統,
6所以,即使IOS處于idle-loop狀態,其循環指令是被宿主處理器當作正常指令執行,而使得宿主處理器的使用率居高不下。本發明所描述虛擬網關模塊的網絡處理引擎子模塊(4)還包括如下子模塊虛擬化處理器(5),提供IOS(網絡操作系統)對應的指令系統,其所屬的寄存器也是以在宿主內存中分出一塊特殊區域來虛擬的;虛擬化內存(6),包括運行空間RAM、存儲配置文件的NVRAM、和緩沖JIT模式下的宿主指令空間三部分,因為所分配的內存大小以及IOS是否可以在虛擬內存中被共享是可以用參數進行控制的,所以虛擬內存的存在形式為MMAP映射文件。本發明所描述虛擬網關模塊的網絡端口適配器子模塊(7)作為一個I/O設備,其虛擬化工作是通過首先在虛擬內存中開辟一片特殊區域來仿真設備的存儲單元,而后在讀寫數據時向虛擬處理器發送中斷,其中斷被虛擬處理器處理時會調用虛擬網絡端口適配器的驅動程序。這個模塊還進一步包括虛擬化串行接口(8)和虛擬化以太網接口(9);同種接口類型、不同接口數量以及不同帶寬組成了多種可選的網絡端口適配器子模塊(7),為搭建測試環境提供了多種選擇。與真實網絡適配器一樣,這兩種接口都具有虛擬化物理層和鏈路層,即虛擬網絡協議棧(10);其中物理層使用UDP來仿真,而鏈路層在以太網類型適配器上實現了標準的Khernet、在串行適配器上實現了標準的PPP協議。其次,本發明的虛擬網關控制模塊(14)如圖1的下圖所示,包括測試環境配置文件(15),是用來配置測試環境參數的ini-like文件,控制模塊讀取此文件后,根據其內容在以Hypervisor Server工作狀態運行的虛擬網關模塊上加載相應的虛擬機并進行連接;CLI控制臺子模塊(16),以命令行方式對虛擬網關實例進行全面監控;Hypervisor客戶端(18),根據ini-like配置文件中的參數發送監控請求;宿主操作系統(19),支持虛擬網關的運行。本發明所描述的CLI控制子模塊(16)還進一步包含WR子模塊(17),這個子模塊使得CLI控制臺子模塊(16)支持在線測試環境配置的動態修改,對測試環境產生微調的效^ ο本發明使用的測試環境配置文件格式如圖2所示,整個格式與ini文件相似,所以稱為ini-like格式。在Hypervisor Daemon模式下,虛擬網關控制模塊讀取這個文件,并根據其中的參數請求虛擬網關模塊創建一定的測試環境。全局參數定義(1),主要包含如下參數設定1、設定是否當Hypervisor Server在收到建立請求后自動啟動虛擬網關實例;2、設定當啟動多個虛擬網關實例時,虛擬內存中加載的IOS是否被共享,這可以減少虛擬網關實例在宿主機器中占用的真實內存;3、設定是否在宿主虛擬地址空間中將虛擬路由實例所設定的內存空間全部分給它還是按需供給,這可以用來減少虛擬網關實例在宿主虛擬地址空間的占用量,支持建立含有更多虛擬網關實例的測試環境。HypervisorServer_IP{ :port} (2)用來指定虛擬網關Daemon所使用的地址和端口,是控制臺發送建立和監控請求的目的地;如果不指定port,則使用默認值;Model_X(3),指明虛擬網關實例可以仿真的設備型號;
虛擬網關參數(4)定義的參數主要含有1、仿真此型號的虛擬網關實例所加載的網絡操作系統文件絕對路徑;2、仿真此型號的虛擬網關實例所需的內存;3、仿真此型號的虛擬網關實例所使用的網絡處理引擎模塊。Instance_Type_x(5)指明了設備類型(路由器、交換機或其它設備類型);Instance_Name_x (6)指明這個設備的名字,用來標識控制臺CLI控制的對象;虛擬網關實例參數定義(7)主要包含1、所仿真的設備型號;2、Idle-loop入口點,此參數值是在啟動本網關實例后由空閑循環模塊動態設定的;3、所使用的網絡適配器模塊類型;4、與其他虛擬/真實設備的連接設定,其格式為Adapter_typeSlot_num/int_num =Instance_Name_y Adapter_type Slot num/int_num(8);其中 Instance_Name 與上述描述一致,Adapter_type指定是串口還是以太網口,slot_num和int_num分別為使用的網絡適配器模塊在虛擬網關實例中所在插槽和接口編號。圖3所示了本發明中一個典型的Hypervisor測試環境圖,包括測試工具(1)是運行在任意操作系統上的軟件或測試設備,這些可以是現成的或者是臨時開發的軟件,只要能支持PPP協議并且能夠與本地適配器進行橋接或設備本身提供以太網適配器接口就能夠與虛擬網關實例進行橋接。測試工具(1)與虛擬網關實例B(2)借助開源庫(比如libpcap)進行真實橋接, 接收并識別PPP連接請求,它同時作為VPN隧道的一個Peer,將PPP連接請求封裝在隧道中傳至虛擬網關實例A (3);它是VPN的另一個Peer,從VPN隧道中接收PPP連接請求,并從中析取出認證信息,用Radius認證請求協議包進行封裝后發送給Radius服務器G) ,Radius 服務器(4)根據設定參數回送Radius認證響應包,虛擬網關實例AC3)根據回送的認證響應給測試工具(1)提供一定的服務或反饋一定的性能參數。在整個測試環境中,虛擬網關實例A(3)和B(2)它們作為運行在虛擬測試系統上的虛擬機是可控的,虛擬網關模塊作為Hypervisor的服務端接收來自虛擬網關控制器(5) 的監控請求。圖4所示了本發明中的一個測試流程,包括如下步驟1、通過合法渠道獲得與測試環境相符的網絡操作系統IOS(I)雖然所需的網絡操作系統并不屬于本發明之中,但是本發明所提出的虛擬化是建立在某一類IOS所支持的處理器架構之上來進行的;再者,網絡操作系統主要提供各種協議功能模塊,在進行Radius服務器測試的過程中,至少需要提供充當Radius客戶端所需要的各種協議;最后,各種測試環境都建立在相應的協議之上,所以在測試當中,選擇恰當的 IOS是非常重要的一個環節。2、設計測試環境拓撲圖O)可以參照圖2設計測試環境。3、設定測試環境中相關的參數值(3)相關的參數包括
測試工具的參數主要隨所使用工具類型(軟件和硬件)及其目的(性能或功能) 的不同而不同;測試環境中各個設備之間所使用的協議;Hypervisor Server 地址和端口號;IOS文件的絕對路徑;虛擬網關實例所仿真的網絡設備型號、使用的NPE類型、內存大小;虛擬網關實例使用的網絡端口適配器接口類型、插槽號和子接口號、帶寬類型;虛擬網關之間或網關與真實設備之間的連接設定,主要為真實設備的 NIODescriptor,連接兩端使用的UDP連接地址和端口號(物理連接使用UDP連接來仿真)。4、啟動虛擬網關實例并進行連接本發明具有兩種設定測試環境參數和啟動虛擬網關實例的模式 HypervisorDaemon模式和獨立工作模式,在不同模式下其啟動實例和連接的步驟是存在差異的。在Hypervisor Daemon工作模式下,虛擬網關實例在控制臺的控制下來創建測試環境;而在獨立工作模式中虛擬網關模塊并不受控,為是一個虛擬機整體,與傳統 Hypervisor類型虛擬機結構一樣。其連接設定可以在控制臺創建測試環境時以參數的形式傳入,也可以在獨立工作模式下以命令行的形式傳入,即告訴Hypervisor UDP連接兩端的地址和端口。Hypervisor Daemon 模式下的步驟4-1創建ini-like本文本件(9),此文本文件的格式如圖4所示,所需的參數為步驟3中所述參數的子集;4-2啟動Hypervisor ServerT作狀態下的虛擬網關模塊(10),接收來自控制臺對測試環境的建立和對虛擬網關實例的監控請求;4-3 以 Hypervisor ClientT 作狀態加載 ini-like 文件(11),根據 ini-like 配置文件中的參數發送測試環境的建立和監控請求;4-4使用控制臺啟動各個虛擬網關實例(12)。獨立工作模式的步驟4-1在虛擬網關模塊中直接加載測試環境參數(1 ,即步驟3中所述相關參數的子集。5、啟用空閑循環檢測和休眠機制(5),即檢測出各虛擬網關實例中加載的 IOSidle-loop,減小宿主處理器的使用率。6、使用Telnet登錄IOS并設定協議參數(6),使得在操作系統層面上的體驗和使用真實網絡設備一樣。7、準備好Radius服務器(7),即做好被測功能或性能的配置。使用測試工具進行相應測試(8)。通過發送認證請求來驗證Radius服務器的功能和性能,其結果通過測試工具顯示。
權利要求
1.一種虛擬化的Radius測試系統,其特征在于,所述虛擬化的Radius測試系統包括 虛擬網關模塊,用于提供網絡接入訪問服務;虛擬網關控制模塊,作為Hypervisor客戶端下的VMM來控制運行在Hypervisor Server工作狀態下的虛擬化網關子模塊; 其中,所述的虛擬網關模塊包括網絡操作系統,實現了多種協議,用于為虛擬網關提供測試所需協議的使用接口 ; 空閑循環檢測子模塊,用于盡可能地分析出正在運行的IOS的idle-loop的地址,并使處于空閑循環中的虛擬網關處理器進行無規律間斷性的休眠,從而降低宿主機中處理器的使用率;網絡處理引擎(NPE)子模塊,用于提供網絡接入訪問服務,虛擬了大部分現實網關硬件單元;網絡端口適配器子模塊,是網關模塊上與外部通信的接口,即對網絡適配器的虛擬化;虛擬網絡協議棧,主要仿真了物理層和鏈路層,其主要實現隨著網絡適配器單元類型不同而不同;Hypervisor服務端子模塊,接收來自控制臺對測試環境的建立和對虛擬網關實例的監控請求;獨立虛擬機子模塊,支持非Hypervisor模式下獨立地創建和連接虛擬機; 宿主操作系統,支持虛擬網關的運行。 所述的虛擬網關控制器模塊包括測試環境配置文件,是用來配置測試環境參數的ini-like文件; CLI控制臺子模塊,以命令行方式對虛擬網關實例進行全面監控; Hypervisor客戶端子模塊,根據ini-like配置文件中的參數發送監控請求; 宿主操作系統,支持虛擬網關的運行。
2.根據權利要求1所述的虛擬化的Radius測試系統,其特征在于,所述的空閑循環檢測子模塊可以正確地分析出正在運行的IOS的idle-loop的入口地址,并使處于空閑循環中的虛擬網關處理器進行無規律間斷性的休眠,從而達到降低宿主處理器的使用率。
3.根據權利要求1所述的虛擬化的Radius測試系統,其特征在于,所述的網絡處理引擎子模塊還包括如下子模塊虛擬化處理器,用于提供ios(網絡操作系統)對應的指令系統,其所屬的寄存器也是以在宿主內存中分出一塊特殊區域來虛擬的。
4.根據權利要求1所述的虛擬化的Radius測試系統,其特征在于,所述的網絡處理引擎子模塊還包括如下子模塊虛擬化內存,包括運行空間RAM、存儲配置文件的NVRAM、和緩沖JIT模式下的宿主指令空間三部分,由于所分配的內存大小以及IOS是否可以在虛擬內存中被共享是可以用參數進行控制的,所以虛擬內存的存在形式為MMAP映射文件。
5.根據權利要求1所述的虛擬化的Radius測試系統,其特征在于,所描述虛擬網關模塊的網絡端口適配器子模塊(7)作為一個I/O設備,其虛擬化工作是通過首先在虛擬內存中開辟一片特殊區域來仿真設備的存儲單元,而后在讀寫數據時向虛擬處理器發送中斷, 其中斷被虛擬處理器處理時會調用虛擬網絡端口適配器的驅動程序。
6.根據權利要求1所述的虛擬化的Radius測試系統,其特征在于,所述的網絡端口適配器子模塊還進一步包括虛擬化串行接口和虛擬化以太網接口 ;同種接口類型、不同接口數量以及不同帶寬組成了多種可選的網絡端口適配器子模塊,為搭建測試環境提供了多種選擇。與真實網絡適配器一樣,這兩種接口都具有虛擬化物理層和鏈路層,即虛擬網絡協議棧;其中物理層使用UDP來仿真,而鏈路層在以太網類型適配器上實現了標準的Ethernet、 在串行適配器上實現了標準的PPP協議。
7.根據權利要求1所述的虛擬化的Radius測試系統,其特征在于,所述的CLI控制子模塊還進一步包含0 子模塊,這個子模塊使得CLI控制臺子模塊支持在線測試環境配置的動態修改,對測試環境產生微調的效果。
8.根據權利要求1所述的虛擬化的Radius測試系統,其特征在于,所述的測試環境配置文件,其內容由控制模塊讀取,然后在以Hypervisor krver工作狀態運行的虛擬網關模塊上加載相應的虛擬機并進行連接。
9.一種虛擬化的Radius測試方法,其特征在于,包括以下步驟(1)通過合法渠道獲得網絡操作系統IOS;(2)設計測試環境拓撲圖;(3)設定測試環境中相關的參數值;(4)啟動虛擬網關實例并進行連接;(5)啟用空閑循環檢測和休眠機制,即檢測出各虛擬網關實例中加載的 IOSidle-loop,減小宿主處理器的使用率;(6)使用Telnet登錄IOS并設定協議參數,使得在操作系統層面上的體驗和使用真實網絡設備一樣;(7)準備好Radius服務器,即做好被測功能或性能的配置;(8)使用測試工具進行相應測試,通過發送認證請求來驗證Radius服務器的功能和性能,其結果通過測試工具顯示。
10.根據權利要求9所述的虛擬化的Radius測試方法,其特征在于,在啟動虛擬網關實例并進行連接中,可以使用Hypervisor Daemon模式設定測試環境參數和啟動虛擬網關實例的模式,步驟如下(1)創建ini-like文本文件,此文本文件的格式如圖4所示,所需的參數為設計測試環境時所設定的參數;(2)啟動Hypervisorkrver工作狀態下的虛擬網關模塊,接收來自控制臺對測試環境的建立和對虛擬網關實例的監控請求;(3)以HypervisorClient工作狀態加載ini-like文件,根據ini-like配置文件中的參數發送測試環境的建立和監控請;(4)使用控制臺啟動各個虛擬網關實例。
11.根據權利要求9所述的虛擬化的Radius測試方法,其特征在于,在步驟啟動虛擬網關實例并進行連接中,還可以使用獨立模式設定測試環境參數和啟動虛擬網關實例的模式,步驟如下(1)在虛擬網關模塊中直接加載測試環境參數,即設計測試環境時所設定的參數。
全文摘要
本發明針對Radius服務器提出了一套基于虛擬化理論的測試系統和方法。所述測試系統包括兩部分提供網絡接入訪問服務、仿真網關硬件環境的虛擬化網關模塊和作為Hypervisor客戶端來控制虛擬網關實例的虛擬化網關控制模塊。虛擬網關模塊包含空閑循環檢測子模塊,網絡處理引擎(NPE)子模塊,網絡端口適配器子模塊,虛擬網絡協議棧,Hypervisor服務端子模塊和獨立虛擬機子模塊;而虛擬網關控制模塊包含測試環境配置文件,CLI控制臺子模塊,Hypervisor客戶端子模塊。本發明可以在不依賴真實網絡設備的基礎上大大減少測試成本,并支持環境的快速搭建;其所提出的測試系統和方法可以在任意計算機上安裝使用,從而能夠讓測試人員對Radius服務器進行快速、靈活、低成本的測試。
文檔編號H04L12/24GK102571474SQ201010613379
公開日2012年7月11日 申請日期2010年12月30日 優先權日2010年12月30日
發明者周鋒, 李彧, 李振 申請人:北京首信科技股份有限公司