本申請涉及網絡配置校驗技術領域,更具體地,涉及云環(huán)境下網絡配置校驗方法及相關設備。
背景技術:
租戶可以向云平臺申請網絡資源,云平臺根據該租戶的需求,組建相應結構的虛擬網絡。虛擬網絡,如同物理網絡一樣包含各種設備,但虛擬網絡中的網絡設備是虛擬設備,如虛擬交換機、虛擬路由器等。與同一虛擬網絡相連的VM(Virtual Manufacturing,虛擬主機)可以通過虛擬的網絡設備進行通信。
云平臺為復雜的分布式系統(tǒng),可能由于系統(tǒng)等原因導致虛擬網絡設備配置出錯,從而導致VM不能互通等問題。因此,需要對虛擬網絡中的配置進行檢驗。
現(xiàn)有的配置檢驗方式,收集虛擬網絡中所有的配置信息上傳至校驗工具,上傳的數據量較大,校驗效率較低。
技術實現(xiàn)要素:
本申請?zhí)岢鲆环N云環(huán)境下網絡配置校驗方法及相關設備,用以減少網絡配置校驗過程中上傳的數據量,提高校驗效率。
為實現(xiàn)以上發(fā)明目的,本申請?zhí)峁┑募夹g方案如下:
一方面,本申請的實施例提供了一種云環(huán)境下網絡配置校驗系統(tǒng),用于校驗云環(huán)境中主機上運行的虛擬機的地址,該系統(tǒng)包括:配置搜集模塊、配置比較模塊以及運行在所述主機上的配置分析模塊;其中:所述配置分析模塊,與所述主機上運行的虛擬網絡設備相連,用于從所述虛擬網絡設備中,查詢與所述虛擬網絡設備相連的虛擬機的地址,并將所述虛擬機關聯(lián)的虛擬網絡的標識及所述虛擬機的地址發(fā)送至所述配置搜集模塊;所述配置搜集模塊,用于將所述配置分析模塊發(fā)送的所述虛擬網絡的標識及虛擬機的地址,生成轉發(fā)向量,并將所述轉發(fā)向量發(fā)送至所述配置比較模塊;所述配置比較模塊,用于從預設數據庫中,查詢所述虛擬網絡中所有端口關聯(lián)的虛擬機的地址,將所述虛擬網絡的標識及查詢到的虛擬機的地址生成配置信息集合,并比較所述配置信息集合與所述轉發(fā)向量,以校驗所述轉發(fā)向量中的虛擬機的地址。通過本實施例提供的方案,配置分析模塊上傳與虛擬機的地址相關的配置信息,配置搜集模塊將各個配置信息匯總為轉發(fā)向量發(fā)送至配置比較模塊進行比較,該過程中傳輸及比較的數據量較小,校驗效率較高。
在一個可能的設計中,云環(huán)境下網絡配置校驗系統(tǒng)還包括:調度器;所述調度器,用于確定所述虛擬網絡中的虛擬網絡設備所在的主機,向所述主機上的配置分析模塊發(fā)送校驗指令,以使所述配置分析模塊從所述虛擬網絡設備中,查詢與所述虛擬網絡設備相連的虛擬機的地址。通過本實施例中的調度器,可以實現(xiàn)對整個校驗方法的控制,若需要對通過某虛擬網絡互連的虛擬機的地址進行校驗,便通過調度器為本次校驗確定所涉及的主機,并通過校驗指令觸發(fā)校驗的開始執(zhí)行。
在一個可能的設計中,所述調度器監(jiān)測所述虛擬網絡設備的性能,根據所述性能確定間隔時長,并根據所述間隔時長周期性地向所述主機上的配置分析模塊發(fā)送校驗指令。在本方案中,調度器自動周期性地觸發(fā)校驗流程的執(zhí)行,并且可以根據虛擬網絡設備的資源使用情況,確定相適應的流程執(zhí)行周期,例如可用資源較少則延遲執(zhí)行周期,可用資源較多則縮短執(zhí)行周期,使得校驗流程更加靈活,避免資源浪費等情況。
在一個可能的設計中,所述虛擬網絡中的虛擬網絡設備為虛擬交換機,所述配置搜集模塊具體用于:從所述虛擬交換機的流表及端口表中,查詢與所述虛擬交換機相連的虛擬機的MAC地址。在本實施例中,虛擬網絡為二層虛擬網絡,通過本實施例的方案可以通過同一個二層虛擬網絡進行互連的虛擬機的MAC地址的校驗。
在一個可能的設計中,所述虛擬網絡中的虛擬網絡設備為虛擬路由器,所述配置搜集模塊具體用于:從所述虛擬路由器的路由表及鄰居表中,查詢與所述虛擬路由器相連的虛擬機的IP地址。在本實施例中,虛擬網絡為三層虛擬網絡,通過本實施例的方案可以通過同一個三層虛擬網絡進行互連的虛擬機的IP地址的校驗。
另一方面,本申請還提供了一種云環(huán)境下網絡配置校驗方法,用于校驗云環(huán)境中主機上運行的虛擬機的地址,該方法包括:從與所述虛擬機相連的虛擬網絡設備中,查詢所述虛擬機的地址;將所述虛擬網絡的標識及所述虛擬機的地址,生成轉發(fā)向量;從預設數據庫中,查詢與所述虛擬機關聯(lián)的虛擬網絡中所有端口關聯(lián)的虛擬機的地址,將所述虛擬網絡的標識及查詢到的虛擬機的地址生成配置信息集合;比較所述配置信息集合與所述轉發(fā)向量,以校驗所述轉發(fā)向量中的虛擬機的地址。
在一個可能的設計中,所述從與所述虛擬機相連的虛擬網絡設備中,查詢所述虛擬機的地址具體包括:確定所述虛擬網絡中的虛擬網絡設備所在的主機;從所述主機上的虛擬網絡設備中,查詢與所述虛擬網絡設備相連的虛擬機的地址。
在一個可能的設計中,所述從與所述虛擬機相連的虛擬網絡設備中,查詢所述虛擬機的地址具體包括:監(jiān)測所述虛擬網絡設備的性能,根據所述性能確定間隔時長;根據所述間隔時長周期性地從與所述虛擬機相連的虛擬網絡設備中,查詢所述虛擬機的地址。
在一個可能的設計中,所述虛擬網絡中的虛擬網絡設備為虛擬交換機;相應地,所述從與所述虛擬機相連的虛擬網絡設備中,查詢所述虛擬機的地址具體包括:從所述虛擬交換機的流表及端口表中,查詢與所述虛擬交換機相連的虛擬機的MAC地址。
在一個可能的設計中,所述虛擬網絡中的虛擬網絡設備為虛擬路由器;相應地,所述從與所述虛擬機相連的虛擬網絡設備中,查詢所述虛擬機的地址具體包括:從所述虛擬路由器的路由表及鄰居表中,查詢與所述虛擬路由器相連的虛擬機的IP地址。
又一方面,本申請?zhí)峁┝艘环N主機,包括處理器及通信接口;其中:所述處理器,用于從虛擬網絡的虛擬網絡設備中,查詢與所述虛擬網絡設備相連的虛擬機的地址;所述通信接口,用于發(fā)送所述虛擬網絡的標識及所述虛擬機的地址。
又一方面,本申請?zhí)峁┝肆硪环N主機,包括處理器及通信接口;其中:所述通信接口,用于接收虛擬網絡的標識及虛擬機的地址;所述處理器,用于將所述虛擬網絡的標識及所述虛擬機的地址,生成轉發(fā)向量;從預設數據庫中,查詢所述虛擬網絡中所有端口關聯(lián)的虛擬機的地址,將所述虛擬網絡的標識及查詢到的虛擬機的地址生成配置信息集合;比較所述配置信息集合與所述轉發(fā)向量,以校驗所述轉發(fā)向量中的虛擬機的地址。
附圖說明
為了更清楚地說明本申請實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請的實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據提供的附圖獲得其它的附圖。
圖1為本申請?zhí)峁┑奶摂M網絡的一個示例圖;
圖2為現(xiàn)有技術中的網絡配置校驗方法流程圖;
圖3為本申請?zhí)峁┑呐c二層虛擬網絡結合的網絡配置校驗系統(tǒng)的示例圖;
圖4為本申請?zhí)峁┑木W絡配置校驗方法實施例1的流程圖;
圖5為本申請?zhí)峁┑呐c三層虛擬網絡結合的網絡配置校驗系統(tǒng)的示例圖;
圖6為本申請?zhí)峁┑木W絡配置校驗方法實施例2的流程圖;
圖7為本申請?zhí)峁┑闹鳈C通用計算機架構示意圖。
具體實施方式
首先介紹本申請可能使用到的術語及概念。
網絡虛擬化,是在一個物理網絡上模擬出多個邏輯網絡來,如虛擬局域網、虛擬網絡設備等;
邊緣虛擬化,一種網絡虛擬化方案,是在最靠近服務器的一級交換機上實現(xiàn)網絡虛擬化的功能;
轉發(fā)配置,交換設備的轉發(fā)規(guī)則;
轉發(fā)向量,將轉發(fā)配置抽象后得到的數據模型;
EMS,Element Management System(網元管理系統(tǒng))的簡稱,指的是管理特定類型的電信網絡單元NE的系統(tǒng);
OVS,open vSwitch(虛擬交換機)的簡寫,是一個基于Apache 2.0license的交換機軟件;
Openflow,用于描述控制器和交換機之間交互所用信息的標準、以及控制器和交換機的接口標準。
本申請應用在基于云平臺的虛擬網絡中,為了便于理解,首先對此應用場景進行介紹。
租戶可以向云平臺申請網絡資源,云平臺根據該租戶的需求,組建相應結構的虛擬網絡。虛擬網絡,如同物理網絡一樣包含各種設備,但虛擬網絡中的設備是虛擬網絡設備(其中,虛擬網絡設備可以簡稱為虛擬設備),如虛擬交換機、虛擬路由器等。與同一虛擬網絡相連的VM(Virtual Machine,虛擬主機或虛擬機)可以通過虛擬網絡設備進行通信。
組建過程中,云平臺首先創(chuàng)建虛擬設備,并生成虛擬網絡的數據模型,數據模型用于描述虛擬設備的配置信息,如虛擬交換機的端口、端口與VM的MAC(Media Access Control,媒體訪問控制)地址的對應關系等。云平臺將數據模型轉化為實際的網絡拓撲配置,并配置到虛擬網絡的虛擬設備中,如將端口與VM的對應關系配置到虛擬交換機上,完成VM的報文轉發(fā)路徑配置。
見圖1,其示出了虛擬網絡的一個示例。如圖1所示,該虛擬網絡中包括多個虛擬交換機br-int,分布在多個不同的主機上。不同的VM與不同的虛擬交換機br-int相連,在對虛擬交換機br-int進行網絡配置后,VM之間可以通過虛擬交換機br-int進行通信。
云平臺為復雜的分布式系統(tǒng),可能由于系統(tǒng)等原因導致虛擬設備配置出錯,從而導致VM不能互通等問題。因此,需要對虛擬網絡中的配置進行檢驗。
現(xiàn)有的配置檢驗方式是,收集AP(Access Point,接入點)如虛擬設備上的配置信息,直接將收集到的配置信息與云平臺中保存的配置記錄進行比對,從而得出配置是否正確的結果。
具體的一種校驗流程見圖2。如圖2所示,當接收到EMS的啟動宏網配置參數上報指令后,AP1、AP2及AP3各自均將自身的宏網配置參數上報給EMS,由EMS將各個AP上報的宏網配置參數進行匯總后,生成宏網配置參數表上報給校驗工具進行校驗。
需要說明的是,EMS進行匯總時,并未對宏網配置參數進行壓縮整理,僅僅是將各個AP上報的宏網配置參數羅列在一張參數表中。因此,上報給校驗工具的宏網配置參數并無數據量上的減少,該數據量與AP的個數相關,AP設備越多,則上報的宏網配置參數表中的數據量越大。
另外,上述校驗過程中,每個網絡設備需要將自身所有的網絡配置均上傳至校驗工具,校驗工具需要將各條網絡配置,逐個與云平臺中保存的配置記錄進行比較。在云平臺場景中,虛擬網絡中的網絡設備數量較多,且每個網絡設備上的配置數據量也較大,現(xiàn)有的校驗方式數據交互量及計算量較大,檢驗效率較低,及時性較差。
為解決上述問題,本申請?zhí)峁┝艘环N網絡配置校驗方法,該校驗方法可以檢驗特定類型的網絡配置,并不需要每個網絡設備上傳全部的配置信息。并且,將收集到的配置信息壓縮后再上傳,以進一步減少數據量。
以下對本申請?zhí)峁┑膬煞N具體網絡配置校驗方法實施例進行說明。
實施例一
本實施例針對的是二層的虛擬網絡VLAN(Virtual Local Area Network,虛擬局域網)。二層的虛擬網絡中,虛擬交換機根據VM的MAC地址,實現(xiàn)VM之間的通信。本實施例提供的網絡配置校驗方法,用于校驗為VM配置的MAC地址是否準確,因此,校驗內容為VM的MAC地址(物理地址)。
需要說明的是,VM及虛擬網絡中虛擬交換機的數量,根據虛擬網絡的規(guī)模來設置。為了簡化,本申請以2個虛擬交換機組成的虛擬網絡且3個VM連接該虛擬網絡的結構為例說明。當然,實際應用中虛擬網絡可以包括多個虛擬交換機,并且可以有大量的VM通過該虛擬網絡互通,對其進行的網絡配置校驗仍可以使用以下提供的校驗方案。
見圖3,其是云平臺創(chuàng)建的虛擬網絡的一種示例。如圖3所示,主機1上創(chuàng)建有2個VM及1個br-int(虛擬網橋,功能上類似交換機,也可以稱為虛擬交換機)。其中,VM1使用主機1上的虛擬交換機br-int上的端口1,VM2使用主機1上的虛擬交換機br-int上的端口2。主機2上創(chuàng)建有1個VM,為VM3。其中,VM3使用主機2上的虛擬交換機br-int上的端口3。
為實現(xiàn)網絡配置校驗方法,本申請?zhí)峁┝艘环N網絡配置校驗系統(tǒng),如圖3所示,網絡配置校驗系統(tǒng)包括:配置分析模塊、配置搜集模塊、調度器及配置比較模塊。其中,配置分析模塊與虛擬設備數量相同,且配置分析模塊設置在虛擬設備所在的主機上。配置搜集模塊、調度器及配置比較模塊可以設置在同一主機上,也可以分別設置在不同主機上。
見圖4,網絡配置校驗方法實施例1的流程具體包括如下步驟。
S41:校驗開始后,調度器確定虛擬網絡中待校驗的主機范圍。
其中,調度器可以根據管理員的請求或者自動周期性地執(zhí)行網絡配置校驗流程。
校驗內容不同,則涉及的主機范圍可能不同,因此調度器需要首先根據校驗內容,為待校驗的虛擬網絡確定主機范圍。本實施例中,校驗內容為VM的MAC地址,而MAC地址需要從虛擬交換機中搜集到。因此,確定的主機范圍是虛擬交換機所在的主機范圍。
例如,管理員請求檢測租戶A的網絡配置,假設租戶A的虛擬網絡結構如圖3所示,每個主機上均設置有虛擬交換機,因此,調度器確定出的主機范圍包括主機1及主機2。
另外,調度器還可以進一步確定校驗內容,校驗內容表示需要校驗虛擬網絡哪一方面的配置,例如,在本實施中,校驗內容為VM的MAC地址。根據校驗內容,其他模塊可以確定出需要分析、搜集及比較哪一方面的內容。當然,調度器也可以不必確定校驗內容,只需發(fā)送校驗指令即可,其他模塊按照預先設定的校驗內容進行校驗即可。
S42:調度器向配置搜集模塊發(fā)送校驗指令。
其中,校驗指令中包含主機范圍,以指示配置搜集需要搜集哪些主機上的配置信息。若調度器周期性地執(zhí)行網絡配置校驗任務,則調度器還可以監(jiān)測云平臺及虛擬網絡中虛擬設備的性能,根據云平臺或虛擬設備的資源使用情況,對校驗任務進行調整。
若發(fā)現(xiàn)云平臺或虛擬絡設備的資源緊張,例如,大部分資源用于執(zhí)行業(yè)務生產,剩余的可用資源低于一定資源閾值,則可以延長校驗任務執(zhí)行的周期時長,以避免正常業(yè)務生產的進行。
S43:配置搜集模塊根據校驗指令,向校驗指令所指示的主機上的配置分析模塊發(fā)送分析指令。
其中,配置分析模塊設置在虛擬交換機所在的主機上。前一步驟中,配置搜集模塊接收到的校驗指令中包含主機范圍,該范圍內的主機表示的是虛擬交換機所在的主機,則向這些主機上的配置分析模塊發(fā)送分析指令,從而,配置分析模塊可以根據自身主機上的虛擬交換機上的流表及端口表,生成配置信息集合。
需要說明的是,各個配置分析模塊是獨立的,配置分析模塊接收到分析指令后,搜集各自所在主機上的配置信息。
配置搜集模塊向配置分析模塊發(fā)送的分析指令中,可以包含校驗內容,以使配置分析模塊搜集校驗內容所指示的特定方面的配置?;蛘撸r炛噶罴胺治鲋噶钭陨砜梢灾甘拘r瀮热??;蛘?,校驗指令及分析指令也可以并不包含或指示校驗內容,配置分析模塊及配置搜集模塊中可以設置校驗內容,只要接收到指令后,便執(zhí)行該預先設置的校驗內容。
在本實施例的應用場景中,校驗內容為VM的MAC地址,當然,在其他實施例中,校驗內容可以是其他。
S44:配置分析模塊根據虛擬交換機上的流表及端口表,查找屬于同一VLAN的MAC地址,生成配置信息集合{MAC,VLAN}。
其中,虛擬交換機上配置有流表,用來轉發(fā)各個VM之間的數據包。
主機1上的虛擬交換機br-int上的流表包括:
in_port=1,dl_vlan=100actions=NORMAL;
in_port=2,dl_vlan=100actions=NORMAL。
主機2上的虛擬交換機br-int上的流表包括:
in_port=3,dl_vlan=100actions=NORMAL。
其中,in_port表示虛擬交換機br-int上的端口,dl_vlan表示VLAN的編號,actions表示轉發(fā)方式。從流表中的記錄可以得出端口與VLAN的對應關系,進一步地,還可以從該對應關系得出屬于同一VLAN的端口有哪些??梢岳斫獾氖牵瑢儆谕籚LAN的端口可以互通,例如,從上述兩個流表中可以看出,端口為1且VLAN為100的數據包可以被轉發(fā)至端口2及端口3。
另外,虛擬交換機上設置有數據庫,數據庫中的端口表中記錄了端口的多個屬性。具體地,端口表的一個字段為MAC地址,該字段用來記錄端口與VM的MAC地址的對應關系。針對圖3所示的虛擬網絡,端口表中的port(即in_port)與MAC地址的對應關系包括:1-mac1、2-mac2、3-mac3,其中,mac1、mac2及mac3表示的是物理地址的數值,此處為了便于描述,使用mac1、mac2及mac3這種標識而已。
根據上述VLAN與端口的對應關系,以及端口與MAC地址的對應關系可以得出,MAC地址與VLAN的對應關系。
例如,云平臺為租戶A所創(chuàng)建的虛擬網絡如圖3所示,云平臺為租戶A創(chuàng)建該虛擬網絡時,會保存虛擬網絡的編號(VLAN=100)與租戶A的對應關系。在需要校驗租戶A的網絡配置時,調度器可以確定出租戶A的VLAN編號為100,則調度器向配置搜集模塊發(fā)送的校驗指令中包含VLAN=100的標識,以及配置搜集模塊向配置分析模塊發(fā)送的分析指令中也包含該標識。
進而,配置分析模塊從流表中查找VLAN=100的端口in_port,并從端口表中查找端口in_port所對應的MAC地址,從而生成配置信息集合{MAC,VLAN}。
以上述流表為例,主機1上的配置分析模塊生成的配置信息集合為[{mac1,100}、{mac2,100}],主機2上的配置分析模塊生成的配置信息集合為[{mac3,100}]。
S45:各個配置分析模塊將配置信息集合發(fā)送至配置搜集模塊。
其中,待校驗的主機上的配置分析模塊獲得配置信息集合后,將各自的配置信息集合發(fā)送至配置搜集模塊。
S46:配置搜集模塊根據各個配置信息集合,生成轉發(fā)向量,并將轉發(fā)向量發(fā)送至配置比較模塊。
其中,轉發(fā)向量表示的是通過同一虛擬網絡互連的VM的MAC地址。仍以上述示例為例,將主機1及主機2上的配置分析模塊發(fā)送的配置信息集合生成的轉發(fā)向量為[{mac1,100},{mac2,100},{mac3,100}]。
S47:配置比較模塊從云平臺的數據模型中,獲取虛擬網絡中所有端口的MAC地址,并生成配置信息集合{vlan,[mac]}。
前已述及,數據模型是云平臺配置虛擬網絡的依據,虛擬網絡中的配置信息均是根據數據模型配置的。數據模型可以是云平臺的數據庫中的數據表。
云平臺的數據庫中保存有多張數據表,數據表記錄虛擬網絡的各種配置信息,數據表之間具有關聯(lián)關系。數據表中記錄的配置信息可以認為是數據模型。配置比較模塊通過關聯(lián)關系從多張數據表中,查找與校驗內容相關的配置信息。需要說明的是,調度器向配置比較模塊發(fā)送調度指令,該調度指令中指示配置比較模塊需要搜集的虛擬網絡為哪一虛擬網絡。
在本實施例中,網絡表network記錄各個VLAN的配置信息,端口表port記錄端口的配置信息。因此,首先從網絡表network中,查詢到編號為100的VLAN的network id,然后從端口表prot中,查詢所有關聯(lián)到該network id的端口,并進一步獲取端口對應的MAC地址,進而得到配置信息集合,如配置信息集合為{100,[mac1,mac2,mac3]}。
S48:配置比較模塊將配置信息集合{vlan,[mac]}與轉發(fā)向量進行比較,以確定網絡配置是否準確。
其中,轉發(fā)向量表示虛擬網絡按照數據模型進行配置后的實際配置信息,而配置信息集合{vlan,[mac]}是從數據模型中提取出的,因此,將配置信息集合{vlan,[mac]}與轉發(fā)向量進行比較,可以得出虛擬網絡的配置是否準確的結果。
如上所述,轉發(fā)向量為[{mac1,100},{mac2,100},{mac3,100}],配置信息集合為{100,[mac1,mac2,mac3]},兩者比較結果為相同,則可以確定虛擬網絡的配置準確。
若與配置信息集合{vlan,[mac]}相比,轉發(fā)向量中的MAC地址出現(xiàn)增多、減少或者不同中的任意一種情況,則認為網絡配置出現(xiàn)問題。例如,若由于系統(tǒng)故障導致VM1的MAC地址錯誤配置為mac4,則配置搜集模塊生成的轉發(fā)向量為[{mac4,100},{mac2,100},{mac3,100}],該轉發(fā)向量與配置信息集合{100,[mac1,mac2,mac3]}相比,mac4與mac1不同,則可以確定網絡配置錯誤。
進一步地,配置比較模塊還可以確定出錯的MAC屬于哪一主機上的VM。具體地,根據配置信息集合與轉發(fā)向量的比較結果,可以確定出mac4配置錯誤,該MAC地址的正確配置為mac1。云平臺的端口表中記錄有與端口相連的MAC地址及端口所在的主機,從而可以查找到mac1連接的端口為端口1,且該端口設置在主機1上。并且,根據端口1可以還確定配置出錯的VM為VM1。
與現(xiàn)有技術相比,配置分析模塊上傳到配置搜集模塊的配置信息并非虛擬設備上的所有配置信息,而僅提取與校驗內容相關的配置信息,在本實施例中,僅僅提取通過特定虛擬網絡互連的VM的MAC地址,從而,配置搜集模塊生成的轉發(fā)向量的數據量較小,配置比較模塊進行比較的數據量也較小,傳輸及計算的數據量減少,校驗的效率較高,及時性較好。
實施例二
本實施例針對的是三層的虛擬網絡。三層虛擬網絡中,虛擬路由器根據路由表,通過識別VM發(fā)送的數據包中的IP地址來轉發(fā)路由,以實現(xiàn)VM之間的通信。本實施例提供的網絡配置校驗方法,用于校驗為VM配置的IP地址是否準確,因此,校驗內容為VM的IP地址(網絡地址)。
與實施例一相同,為了簡化說明,本實施例使用圖5所示的結構簡單的虛擬網絡,對本實施例的方案進行介紹。如圖5所示,虛擬網絡中包含兩個虛擬交換機br-int及一個虛擬路由器。虛擬機VM1的網卡設備tap1連接在虛擬交換機br-int1上,虛擬機VM2的網卡設備tap2連接在虛擬交換機br-int2上。
虛擬交換機br-int上設置有網關端口,例如,虛擬交換機br-int1的網關端口為qr1,虛擬交換機br-int2的網關端口為qr2。網關端口加入到虛擬路由器的網絡命名空間namespace中。配置虛擬路由器時,在網絡命名空間中添加路由表及鄰居表,以完成對虛擬路由器的配置。
其中,關于圖5所示的虛擬網絡結構,虛擬路由器中的鄰居表包括:
182.81.81.2dev qr1lladdr fa:16:3e:59:b9:05PERMANENT;
182.82.82.2dev qr2lladdr fa:16:3e:25:a9:24PERMANENT。
其中,182.81.81.2、fa:16:3e:59:b9:05分別為VM1的IP地址及MAC地址,因此,可以確定VM1發(fā)送的數據包可以通過網關qr1。182.82.82.2、fa:16:3e:25:a9:24分別為VM2的IP地址及MAC地址,因此,可以確定VM2發(fā)送的數據包可以通過網關qr2。
關于圖5所示的虛擬網絡結構,虛擬路由器中的路由表中的路由包括:
181.81.81.0/24dev qr1proto kernel scope link src 181.81.81.1;
182.82.82.0/24dev qr2proto kernel scope link src 182.82.82.1。
根據該路由表可以得出,目的IP地址在181.81.81.0/24子網范圍內的數據包通過網關qr1發(fā)送,目的IP地址在182.82.82.0/24子網范圍內的數據包通過網關qr2發(fā)送。
VM1屬于181.81.81.0/24這一子網范圍,VM2屬于182.82.82.0/24這一子網范圍。根據以上路由表及鄰居表可以得知,VM1向VM2發(fā)送的數據包可以通過網關qr1達到虛擬路由器,虛擬路由器通過匹配路由表,將該數據包轉發(fā)給網關qr2,網關qr2將數據包轉發(fā)給VM2。
在上述結構的虛擬網絡中,若VM的IP地址配置錯誤,則數據包不能正常轉發(fā),影響VM之間的互通性。本申請?zhí)峁┑木W絡配置校驗方法,用來校驗上述虛擬網絡中的VM的IP地址是否配置準確。
見圖6,網絡配置校驗方法實施例2的流程具體包括以下步驟。需要說明的是,有關本實施例中各個步驟的說明可以參見上述實施例一,以下僅對本實施例與實施例一的不同之處進行說明。
S61:校驗開始后,調度器確定虛擬網絡中待校驗的主機范圍。
本實施例中,校驗內容為VM的IP地址,而IP地址需要從虛擬路由器中搜集到。因此,確定的主機范圍是虛擬路由器所在的主機范圍。如圖5所示,虛擬路由器設置在主機3上,則確定出的主機范圍為主機3。
S62:調度器向配置搜集模塊發(fā)送校驗指令,校驗指令中包含主機范圍。
S63:配置搜集模塊根據校驗指令,向校驗指令所指示的主機上的配置分析模塊發(fā)送分析指令。
其中,虛擬路由器所在的主機上設置有配置分析模塊,配置搜集模塊向配置分析模塊發(fā)送分析指令,以使配置分析模塊從虛擬路由器上獲得配置信息。
S64:配置分析模塊根據虛擬路由器上的路由表表及鄰居表,查找屬于同一subnet的ip地址,生成配置信息集合[{subnet,[ip]}]。
其中,subnet是從路由表中獲得的,ip是從鄰居表中獲得的,兩者的關聯(lián)關系是通過路由表與鄰居表中的相同項即網關qr建立的。
具體地,subnet為路由表中的目標地址所在的子網,從路由表中查找網關所對應的子網,并且從鄰居表中查找網關關聯(lián)的VM的ip地址,進而將查找到的ip地址與其所在的subnet生成配置信息集合[{subnet,[ip]}]??梢岳斫獾氖?,配置信息集合[{subnet,[ip]}]表示的是,網關所管理的子網中的ip地址的集合。
以圖5為例,從上述路由表中查找到的網關包括qr1及qr2,且網關qr1對應的子網為181.81.81.0/24,網關qr2對應的子網為182.82.82.0/24。從上述鄰居表中查找到,網關qr1關聯(lián)的VM的ip地址為182.81.81.2,網關qr2關聯(lián)的VM的ip地址為182.82.82.2。
對于網關qr1而言,ip地址182.81.81.2屬于該網關所對應的子網181.81.81.0/24,因此,生成的配置信息為{181.81.81.0/24,[182.81.81.2]}。
對于網關qr2而言,ip地址182.82.82.2屬于該網關所對應的子網181.81.82.0/24,因此,生成的配置信息為{182.82.82.0/24,[182.82.82.2]}。
將上述兩個網關的的配置信息整理后,配置分析模塊生成的配置信息集合為[{181.81.81.0/24,[182.81.81.2]},{182.82.82.0/24,[182.82.82.2]}]。
S65:各個配置分析模塊將配置信息集合發(fā)送至配置搜集模塊。
S66:配置搜集模塊根據各個配置信息集合,生成轉發(fā)向量,并將轉發(fā)向量發(fā)送至配置比較模塊。
以圖5為例,配置分析模塊為一個,則配置搜集模塊生成的轉發(fā)向量僅包括該配置分析模塊發(fā)送的配置信息集合。當然,若配置分析模塊為多個,則配置搜集模塊將多個配置分析模塊發(fā)送的配置信息集合,整合為一個轉發(fā)向量。
S67:配置比較模塊從云平臺的數據模型中,獲取虛擬網絡中所有網關對應的子網subnet中端口對應的ip地址,生成配置信息集合[{subnet,[ip]}]。
調度器向配置比較模塊發(fā)送的調度指令中包含虛擬網絡標識,用于指示配置比較模塊獲取哪一虛擬網絡的配置信息。
在本實施例中,云平臺的數據模型可以包含多張數據表如網關表、端口表及路由器表等。配置比較模塊從路由器表中查詢虛擬網絡包含的網關,進一步地,從網關表中查詢到網關對應的子網subnet,從端口表中查詢子網subnet包含的所有端口的ip地址。從而,將ip地址與子網subnet保存為配置信息集合[{subnet,[ip]}]。
例如,根據云平臺上數據模型生成的配置信息集合包括[{181.81.81.0/24,[182.81.81.2,182.81.81.3]},{182.82.82.0/24,[182.82.82.2]}]。
S68:配置比較模塊將配置信息集合[{subnet,[ip]}]與轉發(fā)向量進行比較,以確定網絡配置是否準確。
其中,若轉發(fā)向量中的ip地址與配置信息集合中的ip地址完全相同,則表明網絡配置準確,若轉發(fā)向量中的ip地址增加、缺少或者與配置集合中的ip地址不同,則表明網絡配置不準確。
例如,配置搜集模塊生成的轉發(fā)向量包括[{181.81.81.0/24,[182.81.81.2]},{182.82.82.0/24,[182.82.82.2]}],配置比較模塊生成的配置信息集合包括[{181.81.81.0/24,[182.81.81.2,182.81.81.3]},{182.82.82.0/24,[182.82.82.2]}],則可以確定虛擬網絡中配置的ip缺少一個。
進一步地,可以根據云平臺中的數據模型,查找該ip地址所對應的主機,進而確定出缺少配置的主機為哪一主機,并且,可以根據ip地址與端口及端口與VM的對應關系,查找到該主機上的哪一VM的ip地址出現(xiàn)錯誤。
通過以上兩個具體實施例可以得出,本申請在虛擬網絡中虛擬設備所在的主機上設置配置分析模塊,配置分析模塊可以根據虛擬設備的配置信息,確定通過該虛擬網絡互連的虛擬機的地址(物理地址或網絡地址),并將地址與虛擬網絡的標識生成配置信息集合,進而將配置信息集合上傳至配置搜集模塊。
例如,在實施例一中,配置分析模塊上傳的是包含MAC地址與虛擬局域網VLAN的對應關系的配置信息集合{vlan,[mac]},在實施例二中,配置分析模塊上傳的是包含ip地址與子網subnet的對應關系的配置信息集合[{subnet,[ip]}]。
配置搜集模塊將各個主機的配置分析模塊上傳的配置信息集合整理在同一轉發(fā)向量中,并將該轉發(fā)向量上傳至配置比較模塊。配置比較模塊從云平臺的數據模型中,查找該虛擬網絡包含的虛擬機的地址,同樣生成虛擬機的地址與虛擬網絡的標識的對應關系。將該對應關系與轉發(fā)向量進行比較。
由于虛擬網絡是根據云平臺的數據模型配置的,因此,通過上述比較可以校驗虛擬網絡中的配置是否出錯,具體校驗的是虛擬機的地址是否出錯??梢岳斫獾氖?,虛擬機的地址配置錯誤,則虛擬機不能正常通信,因此可以在虛擬網絡中的虛擬機出現(xiàn)通信故障時,執(zhí)行上述校驗方法,以校驗是否由于地址配置錯誤原因導致虛擬機不能正常通信。
本申請還提供了一種主機,該主機可以實現(xiàn)上述配置分析模塊的功能,為了與下文的主機區(qū)分,可以將該主機稱為第一主機。本申請還提供了另一種主機,該主機可以實現(xiàn)上述調度器、配置搜集模塊及配置比較模塊的功能,可以將該主機稱為第二主機。
見圖7,其示出了第一主機/第二主機的一種可能的結構示意,包括:
總線、控制器/處理器1、存儲器2、通信接口3、輸入設備4和輸出設備5。處理器1、存儲器2、通信接口3、輸入設備4和輸出設備5通過總線相互連接。其中:
總線可包括一通路,在計算機系統(tǒng)各個部件之間傳送信息。
控制器/處理器1可以是通用處理器,例如通用中央處理器(CPU)、網絡處理器(Network Processor,簡稱NP)、微處理器等,也可以是特定應用集成電路(application-specific integrated circuit,ASIC),或一個或多個用于控制本發(fā)明方案程序執(zhí)行的集成電路。還可以是數字信號處理器(DSP)、專用集成電路(ASIC)、現(xiàn)成可編程門陣列(FPGA)或者其他可編程邏輯器件、分立門或者晶體管邏輯器件、分立硬件組件??刂破?處理器1也可以是實現(xiàn)計算功能的組合,例如包含一個或多個微處理器組合,DSP和微處理器的組合等等。具體地:
第一主機的控制器/處理器可用于執(zhí)行圖4及圖6中涉及配置分析模塊的處理過程(即圖4中的S44及圖6中的S64)和/或用于本申請所描述的技術的其他過程。
第二主機的控制器/處理器可用于執(zhí)行圖4及圖6中涉及調度器、配置搜集模塊及配置比較模塊的處理過程(執(zhí)行圖4中的S41-S43、S46-S48及圖6中的S61-S63、S66-S68)和/或用于本申請所描述的技術的其他過程。
存儲器2中保存有執(zhí)行本申請技術方案的程序,還可以保存有操作系統(tǒng)和其他應用程序。具體地,程序可以包括程序代碼,程序代碼包括計算機操作指令。更具體的,存儲器2可以是只讀存儲器(read-only memory,ROM)、可存儲靜態(tài)信息和指令的其他類型的靜態(tài)存儲設備、隨機存取存儲器(randomaccess memory,RAM)、可存儲信息和指令的其他類型的動態(tài)存儲設備、磁盤存儲器等等。
通信接口3可包括使用任何收發(fā)器一類的裝置,以便與其他設備或通信網絡通信,如以太網,無線接入網(RAN),無線局域網(WLAN)等。
其中,第一主機的通信接口3可用于執(zhí)行圖4中的S45、圖6中的S65,以發(fā)送網絡配置信息,第二主機的通信接口3用于接收第一主機發(fā)送的網絡配置信息。
輸入設備4可包括接收用戶輸入的數據和信息的裝置,例如鍵盤、鼠標、攝像頭、掃描儀、光筆、語音輸入裝置、觸摸屏等。
輸出設備5可包括允許輸出信息給用戶的裝置,例如顯示屏、打印機、揚聲器等。
結合本發(fā)明公開內容所描述的方法或者算法的步驟可以硬件的方式來實現(xiàn),也可以是由處理器執(zhí)行軟件指令的方式來實現(xiàn)。軟件指令可以由相應的軟件模塊組成,軟件模塊可以被存放于RAM存儲器、閃存、ROM存儲器、EPROM存儲器、EEPROM存儲器、寄存器、硬盤、移動硬盤、CD-ROM或者本領域熟知的任何其它形式的存儲介質中。一種示例性的存儲介質耦合至處理器,從而使處理器能夠從該存儲介質讀取信息,且可向該存儲介質寫入信息。當然,存儲介質也可以是處理器的組成部分。處理器和存儲介質可以位于ASIC中。另外,該ASIC可以位于用戶設備中。當然,處理器和存儲介質也可以作為分立組件存在于用戶設備中。
本領域技術人員應該可以意識到,在上述一個或多個示例中,本發(fā)明所描述的功能可以用硬件、軟件、固件或它們的任意組合來實現(xiàn)。當使用軟件實現(xiàn)時,可以將這些功能存儲在計算機可讀介質中或者作為計算機可讀介質上的一個或多個指令或代碼進行傳輸。計算機可讀介質包括計算機存儲介質和通信介質,其中通信介質包括便于從一個地方向另一個地方傳送計算機程序的任何介質。存儲介質可以是通用或專用計算機能夠存取的任何可用介質。
以上所述的具體實施方式,對本發(fā)明的目的、技術方案和有益效果進行了進一步詳細說明,所應理解的是,以上所述僅為本發(fā)明的具體實施方式而已,并不用于限定本發(fā)明的保護范圍,凡在本發(fā)明的技術方案的基礎之上,所做的任何修改、等同替換、改進等,均應包括在本發(fā)明的保護范圍之內。