基于Windows平臺(tái)的實(shí)現(xiàn)虛擬化路由器的方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及路由器虛擬化技術(shù)領(lǐng)域,具體來(lái)講是一種基于Windows平臺(tái)的實(shí)現(xiàn)虛擬化路由器的方法及系統(tǒng)。
【背景技術(shù)】
[0002]在虛擬化和云計(jì)算領(lǐng)域中,比較熱門(mén)的虛擬化技術(shù)是NFV(Network Funct1nVirtualizat1n,網(wǎng)絡(luò)功能虛擬化),就是將網(wǎng)絡(luò)設(shè)備的功能迀移到x86服務(wù)器的虛擬環(huán)境中實(shí)現(xiàn)。虛擬化技術(shù)可以利用通用服務(wù)器上的資源虛擬出多臺(tái)主機(jī),從而提高資源利用率。
[0003]目前,市場(chǎng)對(duì)虛擬化技術(shù)的應(yīng)用,主要專注于如何利用現(xiàn)有虛擬化資源實(shí)現(xiàn)在SDN (Software Defined Network,軟件定義網(wǎng)絡(luò))、云計(jì)算中的應(yīng)用,即虛擬化網(wǎng)絡(luò)產(chǎn)品。對(duì)于虛擬化技術(shù)所依賴的單一網(wǎng)元,如虛擬路由器、虛擬交換機(jī)等,依舊由國(guó)際大型虛擬化廠商(VMware、Vsphere、Xen、KVM等)所壟斷??蛻羰褂没蜷_(kāi)發(fā)自己的虛擬化產(chǎn)品時(shí),必須直接或間接的使用這些虛擬化廠商所提供的虛擬化工具,使用靈活性差、受限條件較多。
[0004]而開(kāi)發(fā)虛擬路由器,更是要考慮如何實(shí)現(xiàn)路由器代碼、虛擬化環(huán)境、底層硬件環(huán)境的最佳適配,虛擬化路由器整體性能的提升等各種問(wèn)題。傳統(tǒng)的虛擬路由器的實(shí)現(xiàn),普遍采用第三方廠商路由組件(例如路由協(xié)議軟件Zebra或Quagga),進(jìn)行統(tǒng)一 API (Applicat1nProgramming Interface,應(yīng)用程序接口)調(diào)用的方式。上述實(shí)現(xiàn)方式不但隱藏了路由代碼的實(shí)現(xiàn)細(xì)節(jié),安全性不易保證,而且由于采用統(tǒng)一 API調(diào)用,使得靈活性不夠,路由效率優(yōu)化困難,且不利于拓展。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的目的是為了克服上述【背景技術(shù)】的不足,提供一種基于Windows平臺(tái)的實(shí)現(xiàn)虛擬化路由器的方法及系統(tǒng),不但達(dá)到了虛擬化技術(shù)底層實(shí)現(xiàn)細(xì)節(jié)的全透明處理,保障了安全性;而且實(shí)現(xiàn)方法靈活、路由效率優(yōu)化簡(jiǎn)單,具有良好的功能拓展性。
[0006]為達(dá)到以上目的,本發(fā)明提供一種基于Windows平臺(tái)的實(shí)現(xiàn)虛擬化路由器的方法,包括以下步驟:
[0007]S1:在基于X86架構(gòu)的服務(wù)器上安裝Windows操作系統(tǒng),轉(zhuǎn)入S2 ;
[0008]S2:在Windows操作系統(tǒng)中安裝虛擬機(jī)軟件,轉(zhuǎn)入S3 ;
[0009]S3:利用虛擬機(jī)軟件創(chuàng)建虛擬機(jī);根據(jù)常規(guī)路由器代碼架構(gòu),通過(guò)對(duì)現(xiàn)有嵌入式操作系統(tǒng)VxWorks進(jìn)行裁剪的方式,開(kāi)發(fā)虛擬化嵌入式操作系統(tǒng);在創(chuàng)建的虛擬機(jī)中運(yùn)行所開(kāi)發(fā)的虛擬化嵌入式操作系統(tǒng),轉(zhuǎn)入S4 ;
[0010]S4:將路由器代碼運(yùn)行于所開(kāi)發(fā)的虛擬化嵌入式操作系統(tǒng)中;對(duì)路由器代碼的運(yùn)行情況進(jìn)行內(nèi)部調(diào)試,確定路由器代碼運(yùn)行順暢。
[0011]在上述技術(shù)方案的基礎(chǔ)上,S3中所述根據(jù)常規(guī)路由器代碼架構(gòu),通過(guò)對(duì)現(xiàn)有嵌入式操作系統(tǒng)VxWorks進(jìn)行裁剪的方式,開(kāi)發(fā)虛擬化嵌入式操作系統(tǒng),具體包括以下步驟:
[0012]S301a:判斷虛擬化路由器的tornado編譯環(huán)境是否與常規(guī)路由器的tornado編譯環(huán)境一致,若是,直接轉(zhuǎn)入S301b;否則,將常規(guī)路由器的編譯環(huán)境文件拷貝到虛擬化路由器中,并使其編譯通過(guò),轉(zhuǎn)入S301b ;
[0013]S301b:根據(jù)上層路由協(xié)議桟的功能需求,對(duì)VxWorks系統(tǒng)中tornado目錄下的有關(guān)虛擬網(wǎng)卡驅(qū)動(dòng)的ln97xEnd.c文件和ln97xEnd.h文件進(jìn)行修改,使修改后的虛擬網(wǎng)卡驅(qū)動(dòng)支持上層路由協(xié)議棧的應(yīng)用,轉(zhuǎn)入S301c ;
[0014]S301c:將VxWorks系統(tǒng)中tornado目錄下的TCP/IP協(xié)議桟代碼拷貝到Windows操作系統(tǒng)中運(yùn)行,并編譯通過(guò),使TCP/IP協(xié)議棧能成功綁定到上層應(yīng)用協(xié)議的MUX接口上,轉(zhuǎn)入S301d ;
[0015]S301d:對(duì)照常規(guī)路由器socket接口代碼,制作與其函數(shù)形式一致的虛擬化路由器的socket接口 ;對(duì)制作的socket接口進(jìn)行調(diào)試,直至通過(guò)。
[0016]在上述技術(shù)方案的基礎(chǔ)上,S3中所述在創(chuàng)建的虛擬機(jī)中運(yùn)行所開(kāi)發(fā)的虛擬化嵌入式操作系統(tǒng),具體包括以下步驟:
[0017]S302a:制作虛擬化嵌入式操作系統(tǒng)的啟動(dòng)文件bootrom,轉(zhuǎn)入S302b ;
[0018]S302b:將開(kāi)發(fā)的虛擬化嵌入式操作系統(tǒng)在tornado編譯環(huán)境里重新編譯,生成虛擬化嵌入式操作系統(tǒng)的鏡像文件,轉(zhuǎn)入S302c ;
[0019]S302c:利用制作的bootrom文件啟動(dòng)所述虛擬化嵌入式操作系統(tǒng)的鏡像文件;在創(chuàng)建的虛擬機(jī)中運(yùn)行所述虛擬化嵌入式操作系統(tǒng)的鏡像文件,并用相關(guān)命令行測(cè)試其功能,判定驅(qū)動(dòng)層和TCP/IP協(xié)議棧層功能順暢后,轉(zhuǎn)入S4。
[0020]在上述技術(shù)方案的基礎(chǔ)上,在S4之后還包括S5:對(duì)調(diào)試好的虛擬化路由器進(jìn)行外部測(cè)試;測(cè)試完成后,對(duì)比常規(guī)路由器和虛擬化路由器的測(cè)試結(jié)果,分析虛擬化路由器的性能,對(duì)其進(jìn)行橫向和縱向的優(yōu)化,結(jié)束。
[0021]在上述技術(shù)方案的基礎(chǔ)上,S5中所述對(duì)調(diào)試好的虛擬化路由器進(jìn)行外部測(cè)試,具體包括以下步驟:
[0022]S501:在創(chuàng)建的虛擬機(jī)中設(shè)置帶外口,通過(guò)secure CRT軟件和設(shè)置的帶外口連接虛擬機(jī),在該虛擬機(jī)中測(cè)試虛擬化路由器的基本命令行,轉(zhuǎn)入S502 ;
[0023]S502:將虛擬化路由器與普通交換機(jī)連接,普通交換機(jī)還與PC終端連接;利用思博倫Test Center儀表設(shè)置簡(jiǎn)單的二層和三層數(shù)據(jù)包;在虛擬機(jī)中輸入命令行,利用所述數(shù)據(jù)包進(jìn)行測(cè)試,觀察虛擬化路由器mac表和路由表的建立情況,轉(zhuǎn)入S503 ;
[0024]S503:利用思博倫Test Center儀表測(cè)試虛擬化路由器的路由協(xié)議桟功能,轉(zhuǎn)入S504 ;
[0025]S504:將openf low交換機(jī)作為接入交換機(jī),將普通交換機(jī)作為匯聚交換機(jī),將虛擬化路由器通過(guò)匯聚交換機(jī)與接入交換機(jī)連接,接入交換機(jī)還與PC終端連接;在虛擬化路由器中運(yùn)行openf low控制器,重復(fù)上述步驟S503的測(cè)試,觀察和分析虛擬化路由器的路由表、openflow交換機(jī)流表等相關(guān)性能參數(shù)。
[0026]在上述技術(shù)方案的基礎(chǔ)上,S2中所述虛擬機(jī)軟件為VMware軟件或Virtualbox軟件。
[0027]在上述技術(shù)方案的基礎(chǔ)上,S2中所述虛擬機(jī)軟件為VMware軟件時(shí),S2具體包括以下步驟:在Windows操作系統(tǒng)中安裝VMware軟件、tornado for Pentium軟件、Ramdisk軟件、winimage軟件和DTLite軟件;其中,tornado for Pentium軟件為嵌入式操作系統(tǒng)VxWorks的開(kāi)發(fā)環(huán)境軟件;Ramdisk軟件用于建立虛擬軟盤(pán),輔助VxWorks系統(tǒng)生成啟動(dòng)文件bootroom ;winimage軟件用于將bootrom文件轉(zhuǎn)化為軟盤(pán)鏡像,并啟動(dòng)VxWorks系統(tǒng);DTlite軟件用于創(chuàng)建虛擬光驅(qū)來(lái)安裝tornado for Pentium軟件。
[0028]在上述技術(shù)方案的基礎(chǔ)上,S3中所述利用虛擬機(jī)軟件創(chuàng)建虛擬機(jī)時(shí),創(chuàng)建的虛擬機(jī)內(nèi)存應(yīng)大于路由器代碼運(yùn)行所需最大內(nèi)存。
[0029]本發(fā)明還提供一種應(yīng)用上述方法的基于Windows平臺(tái)的實(shí)現(xiàn)虛擬化路由器的系統(tǒng),包括系統(tǒng)安裝模塊、虛擬機(jī)軟件安裝模塊、虛擬化嵌入式系統(tǒng)開(kāi)發(fā)模塊和路由器代碼運(yùn)行豐旲塊;
[0030]所述系統(tǒng)安裝模塊用于:在基于X86架構(gòu)的服務(wù)器上安裝Windows操作系統(tǒng),向虛擬機(jī)軟件安裝模塊發(fā)送軟件安裝信號(hào);
[0031]所述虛擬機(jī)軟件安裝模塊用于:收到軟件安裝信號(hào)后,在Windows操作系統(tǒng)中安裝虛擬機(jī)軟件,向虛擬化嵌入式系統(tǒng)開(kāi)發(fā)模塊發(fā)送開(kāi)發(fā)信號(hào);
[0032]所述虛擬化嵌入式系統(tǒng)開(kāi)發(fā)模塊用于:收到開(kāi)發(fā)信號(hào)后,利用虛擬機(jī)軟件創(chuàng)建虛擬機(jī);根據(jù)常規(guī)路由器代碼架構(gòu),通過(guò)對(duì)現(xiàn)有嵌入式操作系統(tǒng)VxWorks進(jìn)行裁剪的方式,開(kāi)發(fā)虛擬化嵌入式操作系統(tǒng);在創(chuàng)建的虛擬機(jī)中運(yùn)行所開(kāi)發(fā)的虛擬化嵌入式操作系統(tǒng),向路由器代碼運(yùn)行模塊發(fā)送運(yùn)行信號(hào);
[0033]所述路由器代碼運(yùn)行模塊用于:收到運(yùn)行信號(hào)后,將路由器代碼運(yùn)行于所開(kāi)發(fā)的虛擬化嵌入式操作系統(tǒng)中;對(duì)路由器代碼的運(yùn)行情況進(jìn)行內(nèi)部調(diào)試,確定路由器代碼運(yùn)行順暢。
[0034]在上述技術(shù)方案的基礎(chǔ)上,該系統(tǒng)還包括外部測(cè)試模塊,所述外部測(cè)試模塊用于:對(duì)調(diào)試好的虛擬化路由器進(jìn)行外部測(cè)試;測(cè)試完成后,對(duì)比常規(guī)路由器和虛擬化路由器的測(cè)試結(jié)果,分析虛擬化路由器的性能,對(duì)其進(jìn)行橫向和縱向的優(yōu)化。
[0035]本發(fā)明的有益效果在于:
[0036](1)本發(fā)明對(duì)VxWorks操作系統(tǒng)的TCP/IP協(xié)議棧進(jìn)行了移植,并進(jìn)一步重新開(kāi)發(fā)了虛擬化網(wǎng)卡驅(qū)動(dòng),然后編譯成虛擬化嵌入式操作系統(tǒng)鏡像,將該鏡像運(yùn)行于VMware虛擬機(jī)里,最后在該虛擬機(jī)里運(yùn)行路由器代碼,從而實(shí)現(xiàn)虛擬化路由器。整個(gè)虛擬化技術(shù)的底層實(shí)現(xiàn)細(xì)節(jié)實(shí)現(xiàn)了全透明處理,安全性和效率可以得到有效保證。
[0037](2)傳統(tǒng)虛擬化路由器要么基于現(xiàn)有的路由協(xié)議軟件做進(jìn)一步開(kāi)發(fā),通用性較好,但虛擬化路由器性能優(yōu)化困難;要么在原有路由器的基礎(chǔ)上增加可編程功能,提高了虛擬化路由器的性能,但功能拓展性弱,且依賴于硬件平臺(tái),通用性不強(qiáng)。而本發(fā)明基于通用x86的Windows平臺(tái),從BSP