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