在芯片中實現(xiàn)vxlan網(wǎng)關分布式路由的方法及報文處理系統(tǒng)的制作方法
【技術領域】
[0001]本發(fā)明涉及數(shù)據(jù)中心虛擬化應用領域,尤其是涉及一種在芯片中實現(xiàn)VXLAN網(wǎng)關分布式路由的方法及報文處理系統(tǒng)。
【背景技術】
[0002]VXLAN(Virtual Extensible Local Area Network,虛擬可擴展局域網(wǎng))協(xié)議定義了一個在四層協(xié)議UDP(User Datagram Protocol,用戶數(shù)據(jù)包協(xié)議)之上的二層網(wǎng)絡框架,并實現(xiàn)上層的二層網(wǎng)絡轉(zhuǎn)發(fā)域的隔離,主要用于數(shù)據(jù)中心的虛擬化。
[0003]如圖1所示,在虛擬化的數(shù)據(jù)中心中,物理服務器被虛擬化成多臺虛擬機(VM)。如圖2所示,虛擬機的數(shù)據(jù)包流量在出物理服務器網(wǎng)卡時,會被加上“外層MAC頭+外層IP頭+VXLAN頭,,的隧道封裝,具體報文格式如圖3所示。
[0004]當物理設備要接入到虛擬化的網(wǎng)絡中時,就需要用到VXLAN網(wǎng)關,VXLAN網(wǎng)關可以提供為特定流量封裝特定VXLAN隧道頭部的功能。加VXLAN封裝和解VXLAN封裝的功能實體稱為VTEP(VXLAN Tunneling End Point,VXLAN隧道終結點),它可能位于VXLAN網(wǎng)關上,也可能位于支持VXLAN虛擬化的服務器內(nèi)部。
[0005]VXLAN協(xié)議向上提供了虛擬化二層轉(zhuǎn)發(fā)域,然而在實際的數(shù)據(jù)中心應用中,存在跨虛擬化二層轉(zhuǎn)發(fā)域的三層虛擬流量。例如,同一租戶存在兩個虛擬子網(wǎng),且兩個虛擬子網(wǎng)間需要相互通信。當虛擬機需要做三層流量轉(zhuǎn)發(fā)的時候,每一個虛擬網(wǎng)段都可能存在一個虛擬網(wǎng)關。在虛擬化的環(huán)境中,每一個虛擬網(wǎng)關都是相互獨立地,也就是說,兩個虛擬網(wǎng)關可能屬于完全不同的三層轉(zhuǎn)發(fā)域,它們的虛擬MAC地址也可能各不相同。在VXLAN網(wǎng)關不支持虛擬三層轉(zhuǎn)發(fā)功能時,通常通過在VXLAN網(wǎng)關下掛一個特殊的路由設備,比如運行OpenStack的設備,所有的虛擬網(wǎng)關功能都被集成在這臺設備上。
[0006]如圖四所不,若網(wǎng)段1.1.1.0/24和網(wǎng)段1.1.2.0/24是同一個用戶的兩個子網(wǎng),分別被封裝在VXLAN網(wǎng)絡標識符VNIlOO和VNI200中。若是本網(wǎng)段的通信,帶有VTEP功能的VXLAN網(wǎng)關設備只需要在二層轉(zhuǎn)發(fā)的基礎上給報文加上對應的VXLAN頭即可。但如果要跨網(wǎng)段通信,例如,PCl要和虛擬機VMl通信,由于跨網(wǎng)段需要路由,在VXLAN網(wǎng)關設備不支持跨網(wǎng)段通信的情況下,只能在VXLAN網(wǎng)關設備下掛一臺路由設備,所有跨網(wǎng)段的流量先發(fā)往該路由設備,在查找路由表后發(fā)往目的地。而且需要注意的是,在路由設備上的虛擬網(wǎng)絡的網(wǎng)關1.1.1.254和1.1.2.254通常會使用不同的虛擬路由MAC地址。
[0007]這樣一來,路由設備對路由進行集中式轉(zhuǎn)發(fā),負荷將會非常大。并且一旦路由設備故障,虛擬化數(shù)據(jù)中心內(nèi)的所有東西向通信流量將無法進行三層轉(zhuǎn)發(fā)。
【發(fā)明內(nèi)容】
[0008]本發(fā)明的目的在于克服現(xiàn)有技術的缺陷,提供一種在芯片中實現(xiàn)VXLAN網(wǎng)關分布式路由的方法及報文處理系統(tǒng),通過在VXLAN網(wǎng)關上設置分布式路由,將原本應在路由設備上進行的部分路由功能轉(zhuǎn)移到VXLAN網(wǎng)關上,以降低外部路由設備的負荷。
[0009]為實現(xiàn)上述目的,本發(fā)明提出如下技術方案:一種在芯片中實現(xiàn)VXLAN網(wǎng)關分布式路由的方法,包括以下步驟:
[0010]SI,SDN控制端將同一用戶不同子網(wǎng)的默認路由出口信息、路由信息及交換出口信息配置到VXLAN網(wǎng)關,分別對應生成相應的匹配表、路由表和MAC表;
[0011]S2,所述VXLAN網(wǎng)關將收到的報文的目的MAC地址和VLAN信息與其內(nèi)部的所述匹配表相匹配,若匹配到,得到進行VXLAN封裝并發(fā)往路由設備的出口動作,但并不執(zhí)行該出口動作并且繼續(xù)進行所述路由表查找,進入步驟S3 ;若所述匹配表未匹配到,則進入步驟S4 ;
[0012]S3,若在所述路由表中匹配到相應條目,則將所述報文封裝上路由目的地所在VXLAN網(wǎng)絡標識符VNI和VXLAN隧道終結點VTEP的VXLAN頭并將所述封裝后的報文進行路由轉(zhuǎn)發(fā),VXLAN網(wǎng)關上的處理到此結束;若未在所述路由表中匹配到,則進入步驟S5 ;
[0013]S4,將報文走二層轉(zhuǎn)發(fā)流程進行二層所述MAC表查找,按查找結果單播或廣播,若目的地不在本VXLAN網(wǎng)關下,則按所述報文的目的MAC地址所在VTEP和VNI封裝VXLAN頭,若目的地在本VXLAN網(wǎng)關下,則直接進行二層轉(zhuǎn)發(fā),VXLAN網(wǎng)關上的處理到此結束;
[0014]S5,將報文按所述出口動作轉(zhuǎn)發(fā),按所述路由設備所在VTEP和VNI封裝VXLAN頭,并發(fā)往所述路由設備,VXLAN網(wǎng)關上的處理到此結束。
[0015]優(yōu)選地,所述同一用戶不同子網(wǎng)網(wǎng)關的虛擬MAC地址也各不相同。
[0016]優(yōu)選地,每個所述子網(wǎng)采用VLAN ID標識,所述用戶采用VRF ID標識,所述用戶VRF ID由所述子網(wǎng)VLAN ID映射得來,且同一用戶的不同子網(wǎng)的所述VLAN ID映射到同一所述VRF ID。
[0017]優(yōu)選地,所述匹配表使用MAC地址加VLAN進行查找,所述匹配表配置條目中的MAC地址為虛擬網(wǎng)關地址;所述路由表使用IP目的地址IPDA加VRF ID進行查找;所述MAC表使用MACDA加VLAN ID進行查找。
[0018]本發(fā)明的另一目的還在于,提供一種基于VXLAN網(wǎng)關的報文處理系統(tǒng),包括數(shù)據(jù)中心、SDN控制端、源物理設備、目的虛擬機、VXLAN網(wǎng)關和路由設備,
[0019]SDN控制端用于將同一用戶不同子網(wǎng)的默認路由出口信息、路由信息及交換出口信息配置到VXLAN網(wǎng)關,分別對應生成相應的匹配表、路由表和MAC表;
[0020]所述VXLAN網(wǎng)關用于接收所述源物理設備發(fā)來的報文,并將所述報文的目的MAC地址和VLAN信息與其內(nèi)部的所述匹配表相匹配,若匹配到結果,則根據(jù)匹配結果確定一個發(fā)送給所述路由設備的轉(zhuǎn)發(fā)動作,并且確定進行所述路由表查找;若根據(jù)所述路由表匹配到結果,則按路由查找結果將報文封裝上相應的VXLAN頭后發(fā)送給所述目的虛擬機;若進行了所述路由表查找,但未匹配到結果,則按所述匹配表的匹配結果將報文封裝上相應的VXLAN頭后發(fā)送給所述路由設備;若匹配表未匹配到結果,則按所述MAC表查找結果進行二層交換轉(zhuǎn)發(fā)。
[0021]所述目的虛擬機所在的物理設備用于解封裝由所述VXLAN網(wǎng)關發(fā)送過來的報文,所述目的虛擬機用于接收解封裝后的報文;
[0022]所述路由設備用于決定在所述路由表中查找不到匹配路由條目的報文的下一步出口和編輯動作。
[0023]優(yōu)選地,若根據(jù)所述路由表匹配到結果,則將所述報文封裝上路由目的地所在VXLAN網(wǎng)絡標識符VNI和VXLAN隧道終結點VTEP的VXLAN頭并將所述封裝后的報文進行路由轉(zhuǎn)發(fā)給所述目的虛擬機;若在匹配表未匹配到結果,則將報文進行所述MAC表查找,按查找結果單播或廣播,若目的地不在本VXLAN網(wǎng)關下,則按所述報文的目的MAC地址所在VTEP和VNI封裝VXLAN頭后進行二層交換轉(zhuǎn)發(fā),出口為普通以太網(wǎng)口或VXLAN隧道。
[0024]優(yōu)選地,所述SDN控制端還用于將所述數(shù)據(jù)中心的全局路由和外部路由信息配置到所述路由設備上VXLAN網(wǎng)關上的路由為數(shù)據(jù)中心內(nèi)的局部路由,路由設備上的路由包含整數(shù)據(jù)中心級的路由和數(shù)據(jù)中心外部的路由。
[0025]本發(fā)明的有益效果是:
[0026]1、本發(fā)明在數(shù)據(jù)中心虛擬化部署中的VXLAN網(wǎng)關上設置分布式路由,將原本應在路由設備上進行的部分路由功能轉(zhuǎn)移到VXLAN網(wǎng)關上,大大降低了外部路由設備的壓力和性能要求,并且使得虛擬化數(shù)據(jù)中心內(nèi)的東西向路由流量能夠按最優(yōu)路徑轉(zhuǎn)發(fā),降低了數(shù)據(jù)中心的整體帶寬的消耗。
[0027]2、本發(fā)明支持基于虛擬網(wǎng)關的路由MAC地址進行分布式路由,在虛擬化路由的部署方式上靈活性很高。
[0028]3、本發(fā)明允許不同虛擬網(wǎng)關的路由MAC地址各不相同,實際支持的虛擬MAC地址個數(shù)僅受限于匹配條目表的大小,與實際物理設備支持的路由MAC地址個數(shù)無關。
【附圖說明】
[0029]圖1是現(xiàn)有虛擬化的數(shù)據(jù)中心的原理示意圖;
[0030]圖2是現(xiàn)有虛擬機的數(shù)據(jù)包流量出物理服務器網(wǎng)卡的原理示意圖;
[0031]圖3是現(xiàn)有虛擬機的數(shù)據(jù)包流量出物理服務器網(wǎng)卡的報文格式示意圖;
[0032]圖4是現(xiàn)有虛擬化的數(shù)據(jù)中心跨網(wǎng)段通信的原理示意圖;
[0033]圖5是基于本發(fā)明的VXLAN網(wǎng)關的虛擬化的數(shù)據(jù)中心的原理示意圖;
[0034]圖6是本發(fā)明在芯片中實現(xiàn)VXLAN網(wǎng)關分布式路由的方法的流程示意圖。
【具體實施方式】
[0035]下面將結合本發(fā)明的附圖,對本發(fā)明實施例的技術方案進行清楚、完整的描述。
[0036]如圖5所示,物理設備PCl和虛擬機VMl處于同一網(wǎng)段1,物理設備PC2和虛擬機VM2處于同一網(wǎng)段2,且網(wǎng)段I和網(wǎng)段2是同一個用戶的兩個子網(wǎng)。假設網(wǎng)段I在VTEPl所在設備(即VXLAN網(wǎng)關I)上對應的VLAN ID為100,網(wǎng)段2對應的VLAN ID為200。采用VRF ID來標示用戶,VRFID可由本地VLAN ID映射得來,假定本地VLAN 100和VLAN 200均映射到VRF 1000
[0037]如圖6所示,本發(fā)明在VXLAN網(wǎng)關上實現(xiàn)分布式路由的方法,以VTEPl所在設備為例,具體步驟如下:
[0038]SLSDN控制端將同一用戶不同子網(wǎng)的默認路由出口信息、路由信息及交換出口信息配置到VXLAN網(wǎng)關I,分別對應生成相應的匹配表、路由表和MAC表;SDN控制端還用于將數(shù)據(jù)中心的全局路由和外部路由信息配置到路由設備上VXLAN網(wǎng)關上的路由為數(shù)據(jù)中心內(nèi)的局部路由,路由設備上的路由包含整數(shù)據(jù)中心級的路由和數(shù)據(jù)中心外部的路由。
[0039]其中,匹配表使用MAC地址加VLAN進行查找,匹配表配置條目中的MAC地址為虛擬網(wǎng)關地址;路由表使用IP目的地址IPD