專利名稱:一種基于局部虛擬化的虛擬網(wǎng)構(gòu)建方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種虛擬網(wǎng)構(gòu)建方法和系統(tǒng),特別是涉及一種基于局部虛擬化的虛擬網(wǎng)構(gòu)建方法和系統(tǒng)。
背景技術(shù):
隨著科學(xué)技術(shù)的不斷發(fā)展,網(wǎng)絡(luò)規(guī)模的不斷擴(kuò)大,傳統(tǒng)互聯(lián)網(wǎng)由于自身體系結(jié)構(gòu)的限制,難以適應(yīng)新型業(yè)務(wù)不斷的發(fā)展。例如針對服務(wù)質(zhì)量提出的InteServ/RSVP和DiffServ兩種不同的體系機(jī)構(gòu)模型、IP組播技術(shù)等,這些技術(shù)經(jīng)過長時間的研究,均未得到大規(guī)模的部署。究其原因ー是網(wǎng)絡(luò)的僵化;ニ是資源的共享性,服務(wù)之間彼此干擾。為此,提出了網(wǎng)絡(luò)虛擬化技木。在未來互聯(lián)網(wǎng)體系 結(jié)構(gòu)中,主要分為基礎(chǔ)設(shè)施提供商和虛擬網(wǎng)提供商。虛擬路由器,即VR(Virtual Router),是實現(xiàn)網(wǎng)絡(luò)虛擬化技術(shù)的關(guān)鍵設(shè)備,用來構(gòu)建虛擬網(wǎng)的基礎(chǔ)設(shè)施。VR是在軟件和硬件層實現(xiàn)的路由器功能的仿真,VR是ー種邏輯設(shè)備。每個虛擬路由器有自己獨立的路由表和轉(zhuǎn)發(fā)表、自己專用的I/O端ロ、緩存空間和網(wǎng)絡(luò)管理軟件。虛擬路由器在支持虛擬化的物理路由器中生成,每個物理路由器中可以同時存在多個虛擬路由器。所有的虛擬路由器共享所有的物理路由器端ロ。多個支持虛擬化的物理路由器互連,組成ー個物理網(wǎng)絡(luò),構(gòu)成了虛擬網(wǎng)的基礎(chǔ)設(shè)施。虛擬網(wǎng)管理中心VNC (Virtual Network Center)用來對虛擬網(wǎng)進(jìn)行集中式管理,提高虛擬網(wǎng)管理員對虛擬環(huán)境的控制。VNC收集整個物理網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)、每個路由器的狀態(tài)信息。當(dāng)有新的建立虛擬網(wǎng)的請求的時候,VNC根據(jù)相關(guān)的映射算法,將虛擬網(wǎng)映射到物理網(wǎng)絡(luò)上。VLAN (Virtual Local Area Network),是一種將局域網(wǎng)設(shè)備從邏輯上劃分成一個個的網(wǎng)段,從而實現(xiàn)虛擬工作組的新興數(shù)據(jù)交換技木。VLAN的協(xié)議字段有12bits,由于O和4095有特殊用途,因此,最多支持4094個虛擬局域網(wǎng)。在物理路由器中,區(qū)分不同的虛擬網(wǎng)有多種途徑,VLAN是其中ー種非常重要的方式,本專利是基于VLAN的區(qū)分方式?,F(xiàn)有的基于VLAN的虛擬網(wǎng)構(gòu)建方法中,VNID(Virtual Network ID)與對應(yīng)的虛擬網(wǎng)中所有虛擬鏈路的VLANID相同,VLANID為12bits的長度,所以全網(wǎng)可構(gòu)建的虛擬網(wǎng)的數(shù)量為4094。如圖I所示,VNID為3的虛擬網(wǎng)的虛擬路由器映射到物理路由器B、D和E,虛擬網(wǎng)所有虛擬鏈路的VLANID都為3。VNID為I的虛擬網(wǎng)(圖I中未標(biāo)出)的虛擬路由器映射到物理路由器A、B和E,虛擬網(wǎng)所有虛擬鏈路的VLANID都為I。VNID為2的虛擬網(wǎng)(圖I中未標(biāo)出)的虛擬路由器映射到物理路由器B、C和D,虛擬網(wǎng)所有虛擬鏈路的VLANID都為2。VNID為3的虛擬網(wǎng)中,虛擬網(wǎng)由a、b和c三臺虛擬路由器組成,虛擬網(wǎng)鏈路為ab、be和ac三條,其中,虛擬鏈路ab映射到物理鏈路BE,虛擬鏈路be映射到物理鏈路ED,虛擬鏈路ac映射到物理鏈路BD。在對每個虛擬網(wǎng)中VNID和所有VLANID進(jìn)行統(tǒng)一映射的過程中,VNID為3的虛擬網(wǎng)的所有虛擬鏈路的VLANID都是3。從圖I中,可以明顯的看出,整個物理網(wǎng)絡(luò)映射的最大規(guī)模為4094,整個網(wǎng)絡(luò)的可擴(kuò)展性受到了限制。
發(fā)明內(nèi)容
本發(fā)明的主要目的是為了増加物理網(wǎng)絡(luò)的可擴(kuò)展性,消除由于VLAN的協(xié)議字段有12bits,而帶來的整個物理網(wǎng)絡(luò)映射的最大規(guī)模為4094的限制。為實現(xiàn)上述目的,本發(fā)明公開了ー種基于局部虛擬化的虛擬網(wǎng)構(gòu)建方法,步驟如下步驟ー用于對虛擬網(wǎng)進(jìn)行管理的虛擬網(wǎng)管理中心獲得物理網(wǎng)絡(luò)中每個物理路由器的狀態(tài)信息,所述虛擬網(wǎng)管理中心建立物理網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu);
步驟ニ 所述虛擬網(wǎng)管理中心獲得建立虛擬網(wǎng)的請求消息,生成虛擬網(wǎng)標(biāo)識;步驟三所述虛擬網(wǎng)管理中心經(jīng)過映射算法的計算,將所述虛擬網(wǎng)的虛擬路由器映射到所述物理路由器,將所述虛擬網(wǎng)的虛擬鏈路映射到物理鏈路,將兩種映射關(guān)系發(fā)送到所述虛擬路由器映射到的所述物理路由器;步驟四所述虛擬網(wǎng)管理中心計算每條所述虛擬網(wǎng)的所述虛擬鏈路的鏈路標(biāo)識,并將所述虛擬網(wǎng)的所述虛擬鏈路的所述鏈路標(biāo)識、所述虛擬鏈路上的每個所述虛擬路由器映射到的所述物理路由器的端ロ信息和所述虛擬網(wǎng)標(biāo)識的對應(yīng)關(guān)系分別發(fā)送到所述虛擬鏈路上的每個所述虛擬路由器映射到的所述物理路由器,所述虛擬網(wǎng)的生命周期開始。所述建立虛擬網(wǎng)的請求消息可以是用戶向所述虛擬網(wǎng)管理中心發(fā)送的,也可以是所述虛擬網(wǎng)管理中心自己生成的。所述映射算法可以是將所述虛擬網(wǎng)中的每條所述虛擬鏈路分別映射到所述物理網(wǎng)絡(luò)中的一條所述物理鏈路的子圖同構(gòu)算法、將所述虛擬網(wǎng)中的每條所述虛擬鏈路分別映射到所述物理網(wǎng)絡(luò)中的一條物理路徑的分步映射算法、將所述虛擬網(wǎng)中的每條所述虛擬鏈路分別映射到所述物理網(wǎng)絡(luò)中的多條所述物理路徑的分步映射算法。所述虛擬網(wǎng)的所述虛擬鏈路的所述鏈路標(biāo)識可以根據(jù)當(dāng)時與所述虛擬鏈路映射到的所述物理鏈路上的所有所述虛擬鏈路的計數(shù)值而獲得,也可以是小干與所述物理鏈路有所述映射關(guān)系的所有所述虛擬鏈路的最大鏈路標(biāo)識且當(dāng)前不是所述鏈路標(biāo)識的數(shù)值中的最小的數(shù)值。當(dāng)所述虛擬網(wǎng)的生命周期結(jié)束時,所述虛擬網(wǎng)管理中心獲得虛擬網(wǎng)生命周期結(jié)束的請求消息,所述虛擬網(wǎng)管理中心向所述虛擬網(wǎng)映射到的所述物理路由器發(fā)送虛擬網(wǎng)注銷消息,收回相應(yīng)的物理資源,所述物理路由器接收所述虛擬網(wǎng)注銷消息后,將與所述虛擬網(wǎng)相關(guān)的所述虛擬路由器注銷。所述虛擬網(wǎng)生命周期結(jié)束的請求消息可以是用戶向所述虛擬網(wǎng)管理中心發(fā)送的,也可以是所述虛擬網(wǎng)管理中心自己生成的。本發(fā)明還公開了ー種基于局部虛擬化的虛擬網(wǎng)構(gòu)建系統(tǒng),其特征在于,包括物理網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)建立模塊、請求消息獲得模塊、映射模塊和鏈路標(biāo)識計算模塊所述物理網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)建立模塊,接收每個所述物理路由器發(fā)送的各自的所述狀態(tài)信息,根據(jù)所述狀態(tài)信息建立物理網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),將所述物理網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)發(fā)送給所述映射模塊;所述請求消息獲得模塊,獲得建立虛擬網(wǎng)的請求消息,生成虛擬網(wǎng)標(biāo)識,將所述建立虛擬網(wǎng)的請求消息和所述虛擬網(wǎng)標(biāo)識發(fā)送給所述映射模塊;
所述映射模塊,經(jīng)過映射算法的計算,將所述虛擬網(wǎng)的虛擬路由器映射到所述物理路由器,將所述虛擬網(wǎng)的虛擬鏈路映射到物理鏈路,將兩種映射關(guān)系發(fā)送到所述虛擬路由器映射到的所述物理路由器和所述鏈路標(biāo)識計算模塊;所述鏈路標(biāo)識計算模塊,計算所述虛擬網(wǎng)的所述虛擬鏈路的鏈路標(biāo)識,并將所述虛擬網(wǎng)的所述虛擬鏈路的所述鏈路標(biāo)識、所述虛擬鏈路上的每個所述虛擬路由器映射到的所述物理路由器的端ロ信息和所述虛擬網(wǎng)標(biāo)識的對應(yīng)關(guān)系分別發(fā)送到所述虛擬鏈路上的每個所述虛擬路由器映射到的所述物理路由器,所述虛擬網(wǎng)的生命周期開始。所述建立虛擬網(wǎng)的請求消息可以是用戶向 所述虛擬網(wǎng)管理中心發(fā)送的,也可以是所述虛擬網(wǎng)管理中心自己生成的。所述映射算法可以是將所述虛擬網(wǎng)中的每條所述虛擬鏈路分別映射到所述物理網(wǎng)絡(luò)中的一條所述物理鏈路的子圖同構(gòu)算法、將所述虛擬網(wǎng)中的每條所述虛擬鏈路分別映射到所述物理網(wǎng)絡(luò)中的一條物理路徑的分步映射算法、將所述虛擬網(wǎng)中的每條所述虛擬鏈路分別映射到所述物理網(wǎng)絡(luò)中的多條所述物理路徑的分步映射算法。所述虛擬網(wǎng)的所述虛擬鏈路的所述鏈路標(biāo)識可以根據(jù)當(dāng)時與所述虛擬鏈路映射到的所述物理鏈路上的所有所述虛擬鏈路的計數(shù)值而獲得,也可以是小干與所述物理鏈路有所述映射關(guān)系的所有所述虛擬鏈路的最大鏈路標(biāo)識且當(dāng)前不是所述鏈路標(biāo)識的數(shù)值中的最小的數(shù)值。本發(fā)明的有益效果在于根據(jù)物理鏈路當(dāng)時的映射計數(shù)為虛擬網(wǎng)的每條虛擬鏈路分配VLANID。因為本發(fā)明實現(xiàn)了 VLANID與虛擬網(wǎng)的VNID分離映射,所以突破了構(gòu)建虛擬網(wǎng)4094個數(shù)的限制,提高了物理網(wǎng)絡(luò)的利用率,增強(qiáng)了網(wǎng)絡(luò)的可擴(kuò)展性。
圖I為現(xiàn)有技術(shù)中VNID與VLANID統(tǒng)一映射的虛擬網(wǎng)構(gòu)建示意圖;圖2為本發(fā)明的虛擬網(wǎng)構(gòu)建流程圖;圖3為將虛擬網(wǎng)的每條虛擬鏈路分別映射到物理網(wǎng)絡(luò)中的一條物理鏈路的子圖同構(gòu)算法的示意圖;圖4為將虛擬網(wǎng)的每條虛擬鏈路分別映射到物理網(wǎng)絡(luò)中的一條物理路徑的分步映射算法的示意圖;圖5為將虛擬網(wǎng)中的每條虛擬鏈路分別映射到物理網(wǎng)絡(luò)中的多條物理路徑的分步映射算法的示意圖;圖6為本發(fā)明的實現(xiàn)VNID與VLANID分離映射的虛擬網(wǎng)構(gòu)建示意圖;圖7為本發(fā)明的虛擬網(wǎng)構(gòu)建系統(tǒng)結(jié)構(gòu)圖。其中,附圖標(biāo)記虛擬網(wǎng)10虛擬路由器a/b/c虛擬鏈路ab/ac/bc/cd/ef物理網(wǎng)絡(luò)20物理路由器A/B/C/D/E 物理鏈路 AB/AE/BC/BD/BE/CD/DE物理鏈路201物理路徑202/203/204
客戶端 m/n/k
具體實施例方式為使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,下面參照附圖并舉實施例,對本發(fā)明做進(jìn)ー步詳細(xì)說明。如圖2所示,本發(fā)明構(gòu)建虛擬網(wǎng)的步驟如下步驟ー S21 =VNC獲得物理網(wǎng)絡(luò)中每個物理路由器的狀態(tài)信息,建立物理網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。
VNC管理整個物理網(wǎng)絡(luò),維護(hù)著整個網(wǎng)絡(luò)的配置信息。狀態(tài)信息包括端ロ個數(shù),端ロ轉(zhuǎn)發(fā)能力,鏈路連接狀態(tài)。當(dāng)整個物理網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)建好之后,VNC為每個物理路由器設(shè)置定時器,物理路由器定時向VNC發(fā)送報告自己運(yùn)行狀態(tài)的心跳數(shù)據(jù),當(dāng)在規(guī)定的時間內(nèi)VNC沒有收到物理路由器的心跳數(shù)據(jù)時,VNC向物理路由器發(fā)送探測包,檢測物理路由器的狀態(tài)。如果定時器超吋,VNC檢查物理路由器的超時原因。如果物理路由器不可達(dá),VNC更新物理網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。對物理路由器相關(guān)的虛擬網(wǎng),進(jìn)行重新映射。心跳數(shù)據(jù)是物理路由器用來向VNC (Virtual Network Center)發(fā)送的數(shù)據(jù)包,該數(shù)據(jù)包主要目的是向VNC報告“自己現(xiàn)在仍然正常工作”。數(shù)據(jù)包的內(nèi)容包括虛擬路由器的編號,比如VR0, VRl, VR2等。一較佳實施例,VNC檢查物理路由器的超時原因是物理路由器宕機(jī),那么VNC將宕機(jī)物理路由器從物理網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)中刪除,再重新生成物理網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),重新部署與物理路由器相關(guān)的虛擬網(wǎng)。步驟ニ S22 :VNC獲得建立虛擬網(wǎng)的請求消息,生成虛擬網(wǎng)標(biāo)識。建立虛擬網(wǎng)的請求消息包括虛擬網(wǎng)的拓?fù)浣Y(jié)構(gòu)信息以及每個虛擬路由器的相關(guān)屬性。虛擬路由器的相關(guān)屬性包括每個鏈路的帶寬,帶寬可以相同,也可以不相同;虛擬路由器的計算能力;虛擬路由器的地理位置。一較佳實施例,用戶自己生成包括虛擬網(wǎng)拓?fù)浣Y(jié)構(gòu)以及每個虛擬路由器的相關(guān)屬性的請求消息,發(fā)送給VNC,VNC獲得建立虛擬網(wǎng)的請求消息后,生成虛擬網(wǎng)標(biāo)識。另ー較佳實施例,VNC自己生成建立虛擬網(wǎng)的請求消息,生成虛擬網(wǎng)標(biāo)識。步驟三S23 :VNC經(jīng)過映射算法的計算,將虛擬網(wǎng)的虛擬路由器映射到物理路由器,將虛擬網(wǎng)的虛擬鏈路映射到物理鏈路,將兩種映射關(guān)系發(fā)送到虛擬路由器映射到的物理路由器。為了滿足不同的實驗要求,本發(fā)明公開了三種虛擬網(wǎng)映射算法,但本發(fā)明不以此為限。這三種映射算法的區(qū)別在于虛擬網(wǎng)的邊映射方式不同。圖3為ー種將虛擬網(wǎng)中的每條虛擬鏈路分別映射到物理網(wǎng)絡(luò)中的一條物理鏈路的子圖同構(gòu)算法的示意圖,將建立虛擬網(wǎng)的請求消息里虛擬網(wǎng)的每個虛擬路由器映射到物理網(wǎng)絡(luò)中的物理路由器。在物理路由器中生成一臺虛擬路由器,虛擬路由器之間的連接和建立虛擬網(wǎng)的請求消息一致,即直接連接,不經(jīng)過任何的中間節(jié)點。圖3中,虛擬網(wǎng)10的VNID為4,由兩臺虛擬路由器a和b組成,a和b之間有一條虛擬鏈路ab。a映射到物理路由器E上,b映射到物理路由器上D。虛擬鏈路ab映射到物理網(wǎng)絡(luò)20上一條物理鏈路201,即DE,不經(jīng)過任何中間節(jié)點。圖4為ー種將虛擬網(wǎng)中的每條虛擬鏈路分別映射到物理網(wǎng)絡(luò)中的一條物理路徑的分步映射算法的示意圖,算法主要特點是一條虛擬鏈路映射到ー個物理路徑。第一歩映射節(jié)點,將建立虛擬網(wǎng)的請求消息里虛擬網(wǎng)中每個虛擬路由器映射到物理路由器上,ー較佳實施例,采用貪婪算法,按照建立虛擬網(wǎng)的請求消息中虛擬路由器的屬性在物理路由器中選擇資源最多的路由器;第二步映射鏈路,一較佳實施例,采用最短路徑,將虛擬網(wǎng)10中的一條虛擬鏈路映射到物理網(wǎng)絡(luò)20中的一條物理路徑,這條物理路徑可能是一條物理鏈路也可能是多條物理鏈路,當(dāng)多條物理鏈路存在的時候中間有中繼節(jié)點。虛擬網(wǎng)10的VNID為5,由c和d兩臺虛擬路由器組成,c和d之間有一條虛擬鏈路Cd。c映射到物理路由器A,d映射到物理路由器D。虛擬鏈路Cd映射到物理網(wǎng) 絡(luò)20上一條物理路徑202,也就是兩條物理鏈路(AE、ED),存在中間節(jié)點E。圖5為ー種將虛擬網(wǎng)中的每條虛擬鏈路分別映射到物理網(wǎng)絡(luò)中的多條物理路徑的分步映射算法的示意圖,算法的主要特點是一條虛擬鏈路映射到多條物理路徑。第一歩映射節(jié)點,將建立虛擬網(wǎng)的請求消息里虛擬網(wǎng)中的虛擬路由器映射到物理路由器上,ー較佳實施例,采用貪婪算法,按照建立虛擬網(wǎng)的請求消息中虛擬路由器的屬性在物理路由器中選擇資源最多的路由器;第二步映射鏈路,一較佳實施例,采用MCF (Multi-CommodityFlow)算法,將虛擬網(wǎng)10中的一條虛擬鏈路映射到物理網(wǎng)絡(luò)20中的多條物理路徑。每條物理路徑由一條或者多條物理鏈路組成,當(dāng)由多條物理鏈路組成的時候,物理路徑中有中繼節(jié)點。虛擬網(wǎng)10的VNID為6,由e和f兩臺虛擬路由器組成,e和f之間有一條虛擬鏈路ef。虛擬網(wǎng)10的虛擬路由器e映射到物理路由器A,虛擬網(wǎng)10的虛擬路由器f映射到物理路由器D。在這種映射方式中,采用MCF算法后,虛擬鏈路ef映射到物理網(wǎng)絡(luò)20中的兩條物理路徑203和204,即(AE、ED)和(AB、BC、⑶)。隨著建立虛擬網(wǎng)的請求消息不斷到達(dá)VNC,VNC順序?qū)⑻摂M網(wǎng)映射到物理網(wǎng)絡(luò)20中。當(dāng)單條物理路徑不能滿足虛擬網(wǎng)鏈路的需求后,可以用多條物理路徑來滿足,來最大程度地利用物理資源。步驟四S24 =VNC計算每條虛擬網(wǎng)的虛擬鏈路的鏈路標(biāo)識,并將虛擬網(wǎng)的虛擬鏈路的鏈路標(biāo)識、虛擬鏈路上的每個虛擬路由器映射到的物理路由器的端ロ信息和虛擬網(wǎng)標(biāo)識的對應(yīng)關(guān)系分別發(fā)送到每個虛擬路由器映射到的物理路由器,虛擬網(wǎng)的生命周期開始。下面結(jié)合圖6的物理網(wǎng)絡(luò)20和圖3所示的將虛擬網(wǎng)中的每條虛擬鏈路分別映射到物理網(wǎng)絡(luò)中的一條物理鏈路的子圖同構(gòu)算法,介紹VLANID的計算方法。首先,第I個建立虛擬網(wǎng)的請求消息到達(dá)VNC。VNC根據(jù)建立虛擬網(wǎng)的請求消息生成VNID為I的虛擬網(wǎng)(圖6中未標(biāo)出),虛擬網(wǎng)由三臺虛擬路由器al、bl和cl組成,al和bl之間有一條虛擬鏈路albl,bl和Cl之間有一條虛擬鏈路blcl,al和cl之間有一條虛擬鏈路alcl。al映射到物理路由器A上,bl映射到物理路由器B上,cl映射到物理路由器E上。albl映射到物理鏈路AB,blcl映射到物理鏈路BE,alcl映射到物理鏈路AE。此時,AB, BE和AE映射計數(shù)為0,小于4094。在VNID為I的虛擬網(wǎng)中,AB、BE和AE的VLANID號均為I。映射完畢后,各個邊的映射計數(shù)分別加1,即AB的映射計數(shù)為1,BE的映射計數(shù)為1,AE的映射計數(shù)為I。接著,第2個建立虛擬網(wǎng)的請求消息到達(dá)VNC。VNC根據(jù)建立虛擬網(wǎng)的請求消息生成VNID為2的虛擬網(wǎng)(圖6中未標(biāo)出),虛擬網(wǎng)由三臺虛擬路由器a2、b2和c2組成,a2和b2之間有一條虛擬鏈路a2b2,b2和c2之間有一條虛擬鏈路b2c2,a2和c2之間有一條虛擬鏈路a2c2。a2映射到物理路由器B上,b2映射到物理路由器C上,c2映射到物理路由器D上。a2b2映射到物理鏈路BC,b2c2映射到物理鏈路⑶,a2c2映射到物理鏈路BD。此時,BC映射計數(shù)為O、BD映射計數(shù)為O、⑶映射計數(shù)為O,小于4094。在VNID為2的虛擬網(wǎng)中,BC的VLANID號為I、BD的VLANID號為I、CD的VLANID號為1,這時VNID為2的虛擬網(wǎng)的VLANID與VNID不同,且比VNID小。映射完畢后,各個邊的映射計數(shù)分別加1,即BC的映射計數(shù)為1,BD的映射計數(shù)為1,CD的映射計數(shù)為I。接著,第3個建立虛擬網(wǎng)的請求消息到達(dá)VNC。VNC根據(jù)建立虛擬網(wǎng)的請求消息生成VNID為3的虛擬網(wǎng),虛擬網(wǎng)由三臺虛擬路由器a、b和c組成,a和b之間有一條虛擬鏈路ab,b和c之間有一條虛擬鏈路bc,a和c之間有一條虛 擬鏈路ac。a映射到物理路由器B上,b映射到物理路由器E上,c映射到物理路由器D上。ab映射到物理鏈路BE,be映射到物理鏈路ED,ac映射到物理鏈路BD。此時,BE映射計數(shù)為I、ED映射計數(shù)為O、BD映射計數(shù)為1,小于4094。在VNID為3的虛擬網(wǎng)中,BE的VLANID號為2、ED的VLANID號為I、BD的VLANID號為2,這時VNID為3的虛擬網(wǎng)的VLANID與VNID不同,且比VNID小。映射完畢后,各個邊的映射計數(shù)分別加1,即BE的映射計數(shù)為2,ED的映射計數(shù)為1,BD的映射計數(shù)為2。從圖中可以看出,總共有虛擬網(wǎng)請求I,虛擬網(wǎng)請求2和虛擬網(wǎng)請求3,3個虛擬網(wǎng)映射到物理網(wǎng)絡(luò)20上。如果虛擬網(wǎng)1,2和3的VNID和VLANID分別相同的話,當(dāng)前的VLANID最大值應(yīng)該是3,而不是2。由于用于構(gòu)建虛擬網(wǎng)的VLANID的范圍是I至4094,因此,可以此種映射方式獲得的VLANID不大于現(xiàn)有技術(shù)的映射方式獲得的VLANID,可以增加虛擬網(wǎng)映射的成功率,顯著提高物理網(wǎng)絡(luò)的利用率。上述映射過程為一較佳實施例,采用圖3所示的算法,即虛擬網(wǎng)10中的每條虛擬鏈路分別映射到物理網(wǎng)絡(luò)20中的一條物理鏈路。另一較佳實施例,采用圖4所示的算法,將虛擬網(wǎng)10中的每一條虛擬鏈路分別映射到物理網(wǎng)絡(luò)20中的一條物理路徑。另一較佳實施例,采用圖5所示的算法,將虛擬網(wǎng)10中的每一條虛擬鏈路分別映射到物理網(wǎng)絡(luò)20中的多條物理路徑,來增加物理資源的利用率。本方法中,如果VNC接到不再繼續(xù)租用虛擬網(wǎng)的虛擬網(wǎng)生命周期結(jié)束的消息后,VNC向虛擬網(wǎng)映射到的物理路由器發(fā)送虛擬網(wǎng)注銷消息,收回相應(yīng)的物理資源,將虛擬網(wǎng)的VLANID注銷,將VLANID收回。物理路由器接收虛擬網(wǎng)注銷消息后,將與虛擬網(wǎng)相關(guān)的虛擬路由器注銷。隨著原有虛擬網(wǎng)不斷的注銷,新的虛擬網(wǎng)建立消息的不斷到達(dá),VNID連續(xù)的虛擬網(wǎng)映射到同一物理鏈路上的虛擬鏈路的VLANID可能不再連續(xù)。一較佳實施例,每次VNC進(jìn)行虛擬鏈路映射的時候,首先確定與該物理鏈路有映射關(guān)系的所有虛擬鏈路中的最大VLANID,挑選小于最大VLANID且當(dāng)前沒被使用的最小數(shù)值作為此虛擬鏈路的VLANID,將該VLANID發(fā)送到相應(yīng)的物理路由器。下面為使用本發(fā)明構(gòu)建的虛擬網(wǎng)中轉(zhuǎn)發(fā)數(shù)據(jù)包的一較佳實施例。該實施例以圖6為例進(jìn)行說明,其中數(shù)據(jù)包從虛擬網(wǎng)10的虛擬路由器a轉(zhuǎn)入(也就是,從B轉(zhuǎn)入),數(shù)據(jù)包的下一跳虛擬路由器是c (也就是,下一跳是D),VNID=3,物理路由器B、D和E中進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā)的線路處理卡標(biāo)識CardID都為I。VNC在構(gòu)建VNID=3的虛擬網(wǎng)10時,會計算出虛擬路由器到物理路由器的映射關(guān)系、虛擬鏈路到物理鏈路的映射關(guān)系和每條虛擬鏈路的VLANID,如下VNID=3 ;a被映射到B ;b被映射到E ;c被映射到D ; ab被映射到BE ;ac被映射到BD ;bc被映射到ED ;ab 的 VLANID=2 ;
ac 的 VLANID=2 ;be 的 VLANID=I ;ma 的 VLANID=3 ;bn 的 VLANID=3 ;ck 的 VLANID=3 ;VNC向B、D和E分別發(fā)送虛擬路由器到物理路由器的映射關(guān)系,虛擬鏈路到物理鏈路的映射關(guān)系,虛擬網(wǎng)10的虛擬鏈路的鏈路標(biāo)識、虛擬鏈路上的虛擬路由器映射到的物理路由器的端口信息和虛擬網(wǎng)標(biāo)識的對應(yīng)關(guān)系VNC向物理路由器B發(fā)送的信息包括a映射至Ij B ;ab映射到BE ;ac映射到BD ;CardID=UPORT=O 且 VLANID=3,VNID=3,鏈路為 ma ;CardID=U P0RT=2 且 VLANID=2,VNID=3,鏈路為 ab ;CardID=U P0RT=3 且 VLANID=2,VNID=3,鏈路為 ac。VNC向物理路由器D發(fā)送的信息包括c映射至Ij D ;ac映射到BD ;bc映射到ED ;CardID=UPORT=I 且 VLANID=2,VNID=3,鏈路為 ac ;CardID=I、P0RT=2 且 VLANID=I, VNID=3,鏈路為 be ;CardID=U P0RT=3 且 VLANID=3,VNID=3,鏈路為 ck。VNC向物理路由器E發(fā)送的信息包括b映射至Ij E ;ab映射至Ij BE ;bc映射到ED ;CardID=UPORT=O 且 VLANID=2,VNID=3,鏈路為 ab ;CardID=U P0RT=2 且 VLANID=3,VNID=3,鏈路為 bn ;CardID=I、P0RT=3 且 VLANID=I, VNID=3,鏈路為 be。虛擬網(wǎng)10中數(shù)據(jù)包轉(zhuǎn)發(fā)過程如下I.物理路由器B接到數(shù)據(jù)包后,根據(jù)數(shù)據(jù)包轉(zhuǎn)入的物理路由器的端口信息,即線路處理卡標(biāo)識CardID=I、端口標(biāo)識PORT=O,和數(shù)據(jù)包中的VLANID=3,根據(jù)VNC發(fā)送信息,識別數(shù)據(jù)包所屬的虛擬網(wǎng)10的VNID=3,也可判斷出對應(yīng)的鏈路是ma ;2.物理路由器B從VNC發(fā)送信息中,查詢出VNID=3對應(yīng)的虛擬網(wǎng)10中與B有映射關(guān)系的那個虛擬路由器a;3.物理路由器B查詢虛擬路由器a的路由表,確定數(shù)據(jù)包轉(zhuǎn)發(fā)的下一跳虛擬路由器C、數(shù)據(jù)包轉(zhuǎn)出的線路處理卡標(biāo)識CardID=I及其端口標(biāo)識P0RT=3 ;4.物理路由器B在VNC發(fā)送信息中,查詢VNID=3的虛擬網(wǎng)10中與虛擬路由器c有映射關(guān)系的物理路由器D,以及鏈路ac在虛擬網(wǎng)10中的VLANID=2 ;
5.物理路由器B用虛擬網(wǎng)10中ac對應(yīng)的VLANID=2更換數(shù)據(jù)包中已有的VLANID ;6.物理路由器B通過線路處理卡標(biāo)識CardID=I及其端ロ標(biāo)識P0RT=3的端ロ將數(shù)據(jù)包轉(zhuǎn)發(fā)給D。數(shù)據(jù)包在VNID=3的虛擬網(wǎng)10中后續(xù)的轉(zhuǎn)發(fā)過程與上述過程相同。下面用一較佳實施例介紹如何根據(jù)物理端ロ信息和VLANID識別虛擬網(wǎng)10。D接到數(shù)據(jù)包后,根據(jù)接收數(shù)據(jù)包的線路處理卡標(biāo)識CardID=I及其端ロ標(biāo)識PORT=I和數(shù)據(jù)包中的VLANID=2,在VNC發(fā)送信息中,識別數(shù)據(jù)包所屬的虛擬網(wǎng)10的VNID=3,也可判斷對應(yīng)的鏈路是ac。 本發(fā)明的技術(shù)方案中,VNC計算的每個鏈路的VLANID不超過所屬虛擬網(wǎng)的VNID。所以消除由于VLAN的協(xié)議字段有12bits,而最多支持4094個虛擬網(wǎng)的限制。圖7為本發(fā)明的虛擬網(wǎng)構(gòu)建系統(tǒng)的結(jié)構(gòu)圖。系統(tǒng)包括物理網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)建立模塊、請求消息獲得模塊、映射模塊和鏈路標(biāo)識計算模塊物理網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)建立模塊71,接收每個物理路由器發(fā)送的各自的狀態(tài)信息,根據(jù)狀態(tài)信息建立整個物理網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),將拓?fù)浣Y(jié)構(gòu)發(fā)送給映射模塊;請求消息獲得模塊72,獲得建立虛擬網(wǎng)的請求消息,生成虛擬網(wǎng)標(biāo)識,將建立虛擬網(wǎng)的請求消息和虛擬網(wǎng)標(biāo)識發(fā)送給映射模塊;映射模塊73,經(jīng)過映射算法的計算,將虛擬網(wǎng)的虛擬路由器映射到物理路由器,將虛擬網(wǎng)的虛擬鏈路映射到物理鏈路,將兩種映射關(guān)系發(fā)送到虛擬路由器映射到的物理路由器和鏈路標(biāo)識計算模塊;鏈路標(biāo)識計算模塊74,計算虛擬網(wǎng)的虛擬鏈路的鏈路標(biāo)識,并將虛擬網(wǎng)的虛擬鏈路的鏈路標(biāo)識、虛擬鏈路上的每個虛擬路由器映射到的物理路由器的端ロ信息和虛擬網(wǎng)標(biāo)識的對應(yīng)關(guān)系分別發(fā)送到虛擬鏈路上每個虛擬路由器映射到的物理路由器,虛擬網(wǎng)的生命周期開始。本系統(tǒng)還可以包括注銷模塊75 (圖7中用虛線標(biāo)出),接收虛擬網(wǎng)生命周期結(jié)束的請求消息,向各個虛擬網(wǎng)映射到的物理路由器發(fā)送虛擬網(wǎng)注銷消息,收回相應(yīng)的物理資源,包括將虛擬網(wǎng)的鏈路標(biāo)識注銷,將虛擬網(wǎng)的鏈路標(biāo)識收回。物理路由器接收注銷模塊發(fā)送的虛擬網(wǎng)注銷消息后,將與虛擬網(wǎng)相關(guān)的虛擬路由器注銷。本發(fā)明與現(xiàn)有技術(shù)相比,提高了物理網(wǎng)絡(luò)承載虛擬網(wǎng)的能力,增強(qiáng)了網(wǎng)絡(luò)映射的可擴(kuò)展性。以上所述,僅是本發(fā)明的較佳實施例,并非對本發(fā)明作任何形式上的限制,任何所屬技術(shù)領(lǐng)域的技術(shù)人員,若在不脫離本發(fā)明所提出技術(shù)特征的范圍內(nèi),利用本發(fā)明所公開的技術(shù)內(nèi)容所作出局部更動或修改的等效實施例,并且未脫離本發(fā)明的技術(shù)特征內(nèi)容,均仍屬于本發(fā)明技術(shù)特征的范圍內(nèi)。
權(quán)利要求
1.一種基于局部虛擬化的虛擬網(wǎng)構(gòu)建方法,其特征在于,包括以下步驟 步驟ー用于對虛擬網(wǎng)進(jìn)行管理的虛擬網(wǎng)管理中心獲得物理網(wǎng)絡(luò)中每個物理路由器的狀態(tài)信息,所述虛擬網(wǎng)管理中心建立物理網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu); 步驟ニ 所述虛擬網(wǎng)管理中心獲得建立虛擬網(wǎng)的請求消息,生成虛擬網(wǎng)標(biāo)識; 步驟三所述虛擬網(wǎng)管理中心經(jīng)過映射算法的計算,將所述虛擬網(wǎng)的虛擬路由器映射到所述物理路由器,將所述虛擬網(wǎng)的虛擬鏈路映射到物理鏈路,將兩種映射關(guān)系發(fā)送到所述虛擬路由器映射到的所述物理路由器; 步驟四所述虛擬網(wǎng)管理中心計算每條所述虛擬網(wǎng)的所述虛擬鏈路的鏈路標(biāo)識,并將所述虛擬網(wǎng)的所述虛擬鏈路的所述鏈路標(biāo)識、所述虛擬鏈路上的每個所述虛擬路由器映射到的所述物理路由器的端ロ信息和所述虛擬網(wǎng)標(biāo)識的對應(yīng)關(guān)系分別發(fā)送到所述虛擬鏈路上的每個所述虛擬路由器映射到的所述物理路由器,所述虛擬網(wǎng)的生命周期開始。
2.根據(jù)權(quán)利要求I所述基于局部虛擬化的虛擬網(wǎng)構(gòu)建方法,其特征在于,所述建立虛擬網(wǎng)的請求消息可以是用戶向所述虛擬網(wǎng)管理中心發(fā)送的,也可以是所述虛擬網(wǎng)管理中心自己生成的。
3.根據(jù)權(quán)利要求I所述基于局部虛擬化的虛擬網(wǎng)構(gòu)建方法,其特征在于,所述映射算法可以是將所述虛擬網(wǎng)中的每條所述虛擬鏈路分別映射到所述物理網(wǎng)絡(luò)中的一條所述物理鏈路的子圖同構(gòu)算法、將所述虛擬網(wǎng)中的每條所述虛擬鏈路分別映射到所述物理網(wǎng)絡(luò)中的一條物理路徑的分步映射算法、將所述虛擬網(wǎng)中的每條所述虛擬鏈路分別映射到所述物理網(wǎng)絡(luò)中的多條所述物理路徑的分步映射算法。
4.根據(jù)權(quán)利要求I所述基于局部虛擬化的虛擬網(wǎng)構(gòu)建方法,其特征在于,所述虛擬網(wǎng)的所述虛擬鏈路的所述鏈路標(biāo)識可以根據(jù)當(dāng)時與所述虛擬鏈路映射到的所述物理鏈路上的所有所述虛擬鏈路的計數(shù)值而獲得,也可以是小干與所述物理鏈路有所述映射關(guān)系的所有所述虛擬鏈路的最大鏈路標(biāo)識且當(dāng)前不是所述鏈路標(biāo)識的數(shù)值中的最小的數(shù)值。
5.根據(jù)權(quán)利要求I所述基于局部虛擬化的虛擬網(wǎng)構(gòu)建方法,其特征在干,當(dāng)所述虛擬網(wǎng)的生命周期結(jié)束時,所述虛擬網(wǎng)管理中心獲得虛擬網(wǎng)生命周期結(jié)束的請求消息,所述虛擬網(wǎng)管理中心向所述虛擬網(wǎng)映射到的所述物理路由器發(fā)送虛擬網(wǎng)注銷消息,收回相應(yīng)的物理資源,所述物理路由器接收所述虛擬網(wǎng)注銷消息后,將與所述虛擬網(wǎng)相關(guān)的所述虛擬路由器注銷。
6.根據(jù)權(quán)利要求5所述基于局部虛擬化的虛擬網(wǎng)構(gòu)建方法,其特征在于,所述虛擬網(wǎng)生命周期結(jié)束的請求消息可以是用戶向所述虛擬網(wǎng)管理中心發(fā)送的,也可以是所述虛擬網(wǎng)管理中心自己生成的。
7.—種基于局部虛擬化的虛擬網(wǎng)構(gòu)建系統(tǒng),其特征在于,包括物理網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)建立模塊、請求消息獲得模塊、映射模塊和鏈路標(biāo)識計算模塊 所述物理網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)建立模塊,接收每個所述物理路由器發(fā)送的各自的所述狀態(tài)信息,根據(jù)所述狀態(tài)信息建立物理網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),將所述物理網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)發(fā)送給所述映射模塊; 所述請求消息獲得模塊,獲得建立虛擬網(wǎng)的請求消息,生成虛擬網(wǎng)標(biāo)識,將所述建立虛擬網(wǎng)的請求消息和所述虛擬網(wǎng)標(biāo)識發(fā)送給所述映射模塊; 所述映射模塊,經(jīng)過映射算法的計算,將所述虛擬網(wǎng)的虛擬路由器映射到所述物理路由器,將所述虛擬網(wǎng)的虛擬鏈路映射到物理鏈路,將兩種映射關(guān)系發(fā)送到所述虛擬路由器映射到的所述物理路由器和所述鏈路標(biāo)識計算模塊; 所述鏈路標(biāo)識計算模塊,計算所述虛擬網(wǎng)的所述虛擬鏈路的鏈路標(biāo)識,并將所述虛擬網(wǎng)的所述虛擬鏈路的所述鏈路標(biāo)識、所述虛擬鏈路上的每個所述虛擬路由器映射到的所述物理路由器的端ロ信息和所述虛擬網(wǎng)標(biāo)識的對應(yīng)關(guān)系分別發(fā)送到所述虛擬鏈路上的每個所述虛擬路由器映射到的所述物理路由器,所述虛擬網(wǎng)的生命周期開始。
8.根據(jù)權(quán)利要求7所述基于局部虛擬化的虛擬網(wǎng)構(gòu)建系統(tǒng),其特征在于,所述建立虛擬網(wǎng)的請求消息可以是用戶向所述虛擬網(wǎng)管理中心發(fā)送的,也可以是所述虛擬網(wǎng)管理中心自己生成的。
9.根據(jù)權(quán)利要求7所述基于局部虛擬化的虛擬網(wǎng)構(gòu)建系統(tǒng),其特征在于,所述映射算法可以是將所述虛擬網(wǎng)中的每條所述虛擬鏈路分別映射到所述物理網(wǎng)絡(luò)中的一條所述物理鏈路的子圖同構(gòu)算法、將所述虛擬網(wǎng)中的每條所述虛擬鏈路映射到所述物理網(wǎng)絡(luò)中的一條物理路徑的分步映射算法、將所述虛擬網(wǎng)中的每條所述虛擬鏈路映射到所述物理網(wǎng)絡(luò)中的多條所述物理路徑的分步映射算法。
10.根據(jù)權(quán)利要求7所述基于局部虛擬化的虛擬網(wǎng)構(gòu)建系統(tǒng),其特征在于,所述虛擬網(wǎng)的所述虛擬鏈路的所述鏈路標(biāo)識可以根據(jù)當(dāng)時與所述虛擬鏈路映射到的所述物理鏈路上的所有所述虛擬鏈路的計數(shù)值而獲得,也可以是小干與所述物理鏈路有所述映射關(guān)系的所有所述虛擬鏈路的最大鏈路標(biāo)識且當(dāng)前不是所述鏈路標(biāo)識的數(shù)值中的最小的數(shù)值。
全文摘要
本發(fā)明公開了一種基于局部虛擬化的虛擬網(wǎng)構(gòu)建方法和系統(tǒng),包括如下步驟虛擬網(wǎng)管理中心獲得物理網(wǎng)絡(luò)中每個物理路由器的狀態(tài)信息,建立物理網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu);虛擬網(wǎng)管理中心獲得建立虛擬網(wǎng)的請求消息,生成虛擬網(wǎng)標(biāo)識;虛擬網(wǎng)管理中心經(jīng)過映射算法的計算,將虛擬網(wǎng)的虛擬路由器映射到相關(guān)的物理路由器,將虛擬網(wǎng)的虛擬鏈路映射到相關(guān)的物理鏈路;虛擬網(wǎng)管理中心計算虛擬網(wǎng)每條虛擬鏈路的鏈路標(biāo)識,并將虛擬網(wǎng)的鏈路標(biāo)識、虛擬鏈路上映射到的物理路由器的端口信息和虛擬網(wǎng)標(biāo)識的對應(yīng)關(guān)系信息發(fā)送到相關(guān)的物理路由器,虛擬網(wǎng)的生命周期開始。使用本發(fā)明構(gòu)建的虛擬網(wǎng)的鏈路標(biāo)識的計算方法,使物理網(wǎng)絡(luò)突破了同時最多運(yùn)行4094個虛擬網(wǎng)的限制。
文檔編號H04L12/46GK102694732SQ20121017697
公開日2012年9月26日 申請日期2012年5月31日 優(yōu)先權(quán)日2012年5月31日
發(fā)明者關(guān)洪濤, 劉俊杰, 張建華, 王永功, 謝高崗, 賀鵬 申請人:中國科學(xué)院計算技術(shù)研究所