Vxlan網(wǎng)絡(luò)中的流表項(xiàng)處理方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本申請(qǐng)涉及網(wǎng)絡(luò)通信技術(shù)領(lǐng)域,特別涉及一種VXLAN網(wǎng)絡(luò)中的流表項(xiàng)處理方法及 裝置。
【背景技術(shù)】
[0002] VXLAN(Virtual extensible Local Area Network,虛擬可擴(kuò)展局域網(wǎng))是一種 Overlay (交疊)的網(wǎng)絡(luò)技術(shù),使用MAC (Media Access Control,媒體訪問(wèn)控制)in UDP (User Datagram Protocol,用戶數(shù)據(jù)包協(xié)議)的方法進(jìn)行封裝,即,將原始報(bào)文封裝在UDP報(bào)文 里。
[0003] VXLAN網(wǎng)絡(luò)中包括:由多個(gè)主機(jī)組成的租戶網(wǎng)絡(luò)、VTEP (VXLAN Tunnel End Point, VXLAN隧道終端),其中,VTEP是VXLAN網(wǎng)絡(luò)的邊緣設(shè)備,可以由物理交換機(jī)或者虛擬交換 機(jī)實(shí)現(xiàn),VTEP之間通過(guò)建立隧道來(lái)穿越三層網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)通信。在VXLAN網(wǎng)絡(luò)中,租戶網(wǎng) 絡(luò)由VNI (VXLAN Network Identifier,VXLAN網(wǎng)絡(luò)標(biāo)識(shí))唯一標(biāo)識(shí)。源端VTEP將來(lái)自一租 戶網(wǎng)絡(luò)中的源主機(jī)的報(bào)文封裝成VXLAN報(bào)文后,通過(guò)隧道發(fā)送給目的端VTEP,目的端VTEP 將接收到的VXLAN報(bào)文解封裝后發(fā)送給目的主機(jī)。
[0004] SDN(Software Defined Network,軟件定義網(wǎng)絡(luò))是一種新型的將網(wǎng)絡(luò)設(shè)備的控制 層面與轉(zhuǎn)發(fā)層面分離的網(wǎng)絡(luò)架構(gòu)。在將SDN與VXLAN相結(jié)合的SDN VXLAN組網(wǎng)中,控制器 與VTEP之間通過(guò)Openflow(開放流)協(xié)議建立連接,控制器通過(guò)向VTEP下發(fā)Openflow流 表來(lái)控制VTEP上的數(shù)據(jù)流轉(zhuǎn)發(fā),即,控制器將生成的Openf low流表項(xiàng)下發(fā)給VTEP,VTEP將 該Openflow流表項(xiàng)轉(zhuǎn)化成路由轉(zhuǎn)發(fā)表項(xiàng)并添加到對(duì)應(yīng)VNI的路由轉(zhuǎn)發(fā)表中;同時(shí),控制器 與VTEP之間通過(guò)Netconf (Network Configuration Protocol,網(wǎng)絡(luò)配置協(xié)議)協(xié)議建立連 接,控制器通過(guò)Netconf協(xié)議對(duì)VTEP進(jìn)行配置,以彌補(bǔ)Openf low協(xié)議在靜態(tài)配置下發(fā)方面 的不足。
[0005] 由于VXLAN網(wǎng)絡(luò)支持不同租戶間地址重疊,即,屬于不同租戶網(wǎng)絡(luò)的主機(jī)的地址 可以相同,因此,當(dāng)同一 VTEP連接的屬于不同租戶網(wǎng)絡(luò)的N(N為大于1的自然數(shù))個(gè)主機(jī) 的地址相同時(shí),假設(shè)該相同的地址記為地址1,此時(shí),控制器會(huì)為該VTEP生成N條用于指 導(dǎo)目的地址是該地址1的數(shù)據(jù)流轉(zhuǎn)發(fā)的Openf low流表項(xiàng),這N條Openf low流表項(xiàng)中的 Match(匹配)字段的內(nèi)容完全相同,并且,這N條Openflow流表項(xiàng)的優(yōu)先級(jí)相同。這樣,就 會(huì)導(dǎo)致以下問(wèn)題:
[0006] 由于根據(jù)Openflow協(xié)議的規(guī)定,一條Openflow流表項(xiàng)以Match字段和優(yōu)先級(jí) 唯一標(biāo)識(shí),因此,控制器將這N條Openflow流表項(xiàng)下發(fā)給該VTEP之后,該VTEP無(wú)法在 Openf low協(xié)議層面上區(qū)分這N條Openf low流表項(xiàng),從而,在將這N條Openf low流表項(xiàng)中的 每一條Openflow流表項(xiàng)轉(zhuǎn)化成路由轉(zhuǎn)發(fā)表項(xiàng)時(shí),無(wú)法確定該條Openflow流表項(xiàng)對(duì)應(yīng)于哪 一個(gè)VNI,即,無(wú)法確定該條Openf low流表項(xiàng)轉(zhuǎn)化成的路由轉(zhuǎn)發(fā)表項(xiàng)需要添加到哪一個(gè)VNI 對(duì)應(yīng)的路由轉(zhuǎn)發(fā)表中。
【發(fā)明內(nèi)容】
[0007] 有鑒于此,本申請(qǐng)?zhí)峁┝艘环NVXLAN網(wǎng)絡(luò)中的流表項(xiàng)處理方法及裝置。
[0008] 本申請(qǐng)的技術(shù)方案如下:
[0009] -方面,提供了一種VXLAN網(wǎng)絡(luò)中的流表項(xiàng)處理方法,包括:
[0010] 控制器為VTEP生成Openflow流表項(xiàng),其中,生成的Openflow流表項(xiàng)的匹配字段 中攜帶該條Openflow流表項(xiàng)對(duì)應(yīng)的VNI ;
[0011] 控制器將生成的Openflow流表項(xiàng)發(fā)送給VTEP。
[0012] 另一方面,還提供了一種VXLAN網(wǎng)絡(luò)中的流表項(xiàng)處理方法,包括:
[0013] VTEP接收控制器發(fā)來(lái)的Openflow流表項(xiàng),其中,接收到的Openflow流表項(xiàng)的匹配 字段中攜帶該條Openflow流表項(xiàng)對(duì)應(yīng)的VNI ;
[0014] VTEP將接收到的Openflow流表項(xiàng)轉(zhuǎn)化成路由轉(zhuǎn)發(fā)表項(xiàng),將轉(zhuǎn)化得到的路由轉(zhuǎn)發(fā) 表項(xiàng)添加到該條Openflow流表項(xiàng)的匹配字段中攜帶的VNI對(duì)應(yīng)的路由轉(zhuǎn)發(fā)表中。
[0015] 又一方面,還提供了一種VXLAN網(wǎng)絡(luò)中的流表項(xiàng)處理裝置,該裝置應(yīng)用于控制器 中,該裝置包括:
[0016] 表項(xiàng)生成模塊,用于為VTEP生成Openflow流表項(xiàng),其中,生成的Openflow流表項(xiàng) 的匹配字段中攜帶該條Openflow流表項(xiàng)對(duì)應(yīng)的VNI ;
[0017] 發(fā)送模塊,用于將表項(xiàng)生成模塊生成的Openflow流表項(xiàng)發(fā)送給VTEP。
[0018] 又一方面,還提供了一種VXLAN網(wǎng)絡(luò)中的流表項(xiàng)處理裝置,該裝置應(yīng)用于VTEP中, 該裝置包括:
[0019] 接收模塊,用于接收控制器發(fā)來(lái)的Openflow流表項(xiàng),其中,接收到的Openflow流 表項(xiàng)的匹配字段中攜帶該條Openflow流表項(xiàng)對(duì)應(yīng)的VNI ;
[0020] 轉(zhuǎn)化添加模塊,用于將接收模塊接收到的Openflow流表項(xiàng)轉(zhuǎn)化成路由轉(zhuǎn)發(fā)表項(xiàng), 將轉(zhuǎn)化得到的路由轉(zhuǎn)發(fā)表項(xiàng)添加到該條Openflow流表項(xiàng)的匹配字段中攜帶的VNI對(duì)應(yīng)的 路由轉(zhuǎn)發(fā)表中。
[0021] 本申請(qǐng)的以上技術(shù)方案中,在Openflow流表項(xiàng)的匹配字段中攜帶該條Openflow 流表項(xiàng)對(duì)應(yīng)的VNI,這樣,在同一 VTEP連接的屬于不同VXLAN網(wǎng)絡(luò)的N(N為大于1的自然 數(shù))個(gè)主機(jī)的地址相同,記為地址1的情況下,控制器為該VTEP生成的每一條用于指導(dǎo)目 的地址為地址1的數(shù)據(jù)流轉(zhuǎn)發(fā)的Openflow流表項(xiàng)的匹配字段中,均會(huì)攜帶該條Openflow 流表項(xiàng)對(duì)應(yīng)的VNI,控制器將生成的N條Openflow流表項(xiàng)下發(fā)給該VTEP之后,該VTEP通 過(guò)匹配字段中攜帶的VNI,在Openflow協(xié)議層面上能夠非常容易的區(qū)分出這N條Openflow 流表項(xiàng),并且,該VTEP在將其中的每一條Openflow流表項(xiàng)轉(zhuǎn)化成路由轉(zhuǎn)發(fā)表項(xiàng)時(shí),能夠確 定出該條Openflow流表項(xiàng)轉(zhuǎn)化成的路由轉(zhuǎn)發(fā)表項(xiàng)屬于匹配字段中攜帶的VNI,需要將該路 由轉(zhuǎn)發(fā)表項(xiàng)添加到該VNI對(duì)應(yīng)的路由轉(zhuǎn)發(fā)表中。
【附圖說(shuō)明】
[0022] 圖1是一種SDN VXLAN的典型組網(wǎng)示意圖;
[0023] 圖2是本申請(qǐng)一實(shí)施例的VXLAN網(wǎng)絡(luò)中的流表項(xiàng)處理方法的流程圖;
[0024] 圖3是本申請(qǐng)一實(shí)施例的包含流表項(xiàng)處理裝置的控制器的硬件結(jié)構(gòu)示意圖;
[0025] 圖4是本申請(qǐng)一實(shí)施例的包含流表項(xiàng)處理裝置的VTEP的硬件結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0026] 在如圖1所示的SDN VXLAN組網(wǎng)中,VTEP1通過(guò)端口 Portl連接主機(jī)1、通過(guò)Port2 連接主機(jī)3, VTEP2通過(guò)Portl連接主機(jī)2、通過(guò)Port2連接主機(jī)4 ;主機(jī)1和主機(jī)2屬于同 一租戶網(wǎng)絡(luò),即屬于VNI 10000的VXLAN網(wǎng)絡(luò),主機(jī)3和主機(jī)4屬于同一租戶網(wǎng)絡(luò),即屬于 VNI 10001的VXLAN網(wǎng)絡(luò);主機(jī)1和主機(jī)3的IP (Internet Protocol,因特網(wǎng)協(xié)議)地址相 同,均為10. 1. 1. 1/24,主機(jī)2和主機(jī)4的IP地址相同,均為10. 1. 1. 1/24。
[0027] 控制器通過(guò)Netconf協(xié)議分別在VTEP1和VTEP2上創(chuàng)建一個(gè)VXLAN Tunnel接口, 均記為VXLAN Tunnel 1 ;為每一個(gè)VXLAN Tunnel接口設(shè)置遠(yuǎn)端IP地址,即,設(shè)置VTEP1上 的VXLAN Tunnel 1的目的IP地址是VTEP2的IP地址,以及設(shè)置VTEP2上的VXLAN Tunnel 1的目的IP地址是VTEP1的IP地址,以便建立VTEP1與VTEP2之間的隧道連接。隧道連接 建立完畢后,對(duì)于需要從VXLAN Tunnel 1發(fā)出的原始報(bào)文,VTEP1或VTEP2會(huì)通過(guò)添加隧 道頭部(外層多個(gè)字節(jié)的UDP報(bào)文頭部)將該原始報(bào)文封裝成VXLAN報(bào)文后轉(zhuǎn)發(fā)出去,同 樣,對(duì)于從VXLAN Tunne 1 1收到的VXLAN報(bào)文,VTEP1或VTEP2會(huì)彈出該VXLAN報(bào)文的隧 道頭部,并將得到的原始報(bào)文轉(zhuǎn)發(fā)出去。
[0028] 為了實(shí)現(xiàn)屬于同一租戶網(wǎng)絡(luò)的主機(jī)之間的數(shù)據(jù)互通,VETP1和VTEP2上需要保存 有對(duì)應(yīng)于VNI 10000的路由轉(zhuǎn)發(fā)表和對(duì)應(yīng)于VNI 10001的路由轉(zhuǎn)發(fā)表。以下,以VTEP1為 例進(jìn)行說(shuō)明。
[0029] VTEP1上的對(duì)應(yīng)于VNI 10000的路由轉(zhuǎn)發(fā)表如表1所示,對(duì)應(yīng)于VNI 10001的路由 轉(zhuǎn)發(fā)表如表2所示:
[0030] 表1 VNI 10000對(duì)應(yīng)的路由轉(zhuǎn)發(fā)表
[0031]
[0032] 表2 VNI 10001對(duì)應(yīng)的路由轉(zhuǎn)發(fā)表
[0033]
[0034] 在 VTEP1 上,設(shè)置 P