本申請(qǐng)涉及通信技術(shù)領(lǐng)域,特別涉及一種vxlan控制平面的優(yōu)化方法及裝置。
背景技術(shù):
隨著云計(jì)算的快速發(fā)展,數(shù)據(jù)中心的虛擬化程度越來(lái)越高,對(duì)物理網(wǎng)絡(luò)的要求也越來(lái)越苛刻,比如tor交換機(jī)需要支持大規(guī)格mac地址表;4094個(gè)vlan(virtuallocalareanetwork,虛擬局域網(wǎng))無(wú)法劃分海量虛擬機(jī);需要支持多租戶的網(wǎng)絡(luò)隔離等。正是這些需求使得疊加網(wǎng)絡(luò)技術(shù)vxlan(virtualextensiblelocalareanetwork,虛擬可擴(kuò)展局域網(wǎng))應(yīng)運(yùn)而生。
不同vni(vxlannetworkidentifier,虛擬可擴(kuò)展局域網(wǎng)標(biāo)識(shí))之間的vxlan,及vxlan和非vxlan之間不能直接互相通信。為了使不同vni的vxlan之間,以及vxlan和非vxlan之間能夠進(jìn)行通信,vxlan引入了vxlan網(wǎng)關(guān)。
其中,vxlan網(wǎng)關(guān)分為二層網(wǎng)關(guān)和三層網(wǎng)關(guān);二層網(wǎng)關(guān)用于解決租戶接入vxlan網(wǎng)絡(luò)的問(wèn)題,也可用于同一vxlan網(wǎng)絡(luò)的子網(wǎng)內(nèi)通信;三層網(wǎng)關(guān)用于vxlan網(wǎng)絡(luò)的跨子網(wǎng)通信以及外部網(wǎng)絡(luò)的訪問(wèn)。
根據(jù)三層網(wǎng)關(guān)部署方式不同,vxlan三層網(wǎng)關(guān)又可以分為集中式網(wǎng)關(guān)和分布式網(wǎng)關(guān)。
集中式網(wǎng)關(guān)是將三層網(wǎng)關(guān)集中部署在一臺(tái)路由設(shè)備上,所有跨子網(wǎng)的流量都經(jīng)過(guò)三層網(wǎng)關(guān)進(jìn)行轉(zhuǎn)發(fā),實(shí)現(xiàn)流量的集中管理。
分布式網(wǎng)關(guān)是將三層網(wǎng)關(guān)分別部署在多臺(tái)設(shè)備上,使得vxlan網(wǎng)絡(luò)中的vtep(vxlantunnelingendpoint,vxlan隧道終端)設(shè)備可以充當(dāng)vxlan三層網(wǎng)關(guān)。此時(shí),vtep設(shè)備連接的路由設(shè)備不感知vxlan隧道,只做普通的三層ip轉(zhuǎn)發(fā)。
其中,vxlan隧道建立有通過(guò)靜態(tài)手工配置的方式、mp-bgp(multi-protocolextensionsforbordergatewayprotocol,邊界網(wǎng)關(guān)協(xié)議的多協(xié)議擴(kuò)展)方式和bgpevpn(基于ethernetvirtualprivatenetwork的bordergatewayprotocol)方式。
bgpevpn協(xié)議在bgp協(xié)議的基礎(chǔ)上定義了一種新的nlri(networklayerreachabilityinformation,網(wǎng)絡(luò)層可達(dá)信息),被稱為evpnnlri。在分布式網(wǎng)關(guān)場(chǎng)景中,evpn作為vxlan控制平面協(xié)議會(huì)使用到evpnnlri中定義的mac地址通告路由(macadvertisementroute)和ip前綴路由(ipprefixroute)以及相關(guān)擴(kuò)展團(tuán)體屬性在網(wǎng)關(guān)設(shè)備之間傳遞建立vxlan隧道的信息。
如果屬于同一網(wǎng)段的主機(jī)路由數(shù)量較多,為了減輕vtep設(shè)備上路由存儲(chǔ)的負(fù)擔(dān),可以選擇配置ip前綴路由。
然而,配置ip前綴路由后,三層網(wǎng)關(guān)(即vtep設(shè)備)不能使用arp(addressresolutionprotocol,地址解析協(xié)議)抑制功能。在這種情況下,當(dāng)vxlan網(wǎng)絡(luò)中大量主機(jī)需要通信時(shí),初次通信都會(huì)發(fā)送arp請(qǐng)求報(bào)文,這就導(dǎo)致網(wǎng)絡(luò)中存在大量廣播報(bào)文,進(jìn)而導(dǎo)致網(wǎng)絡(luò)中的路由設(shè)備壓力過(guò)大。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本申請(qǐng)?zhí)峁┮环Nvxlan控制平面的優(yōu)化方法及裝置,用以解決分布式網(wǎng)關(guān)場(chǎng)景中,通過(guò)bgpevpn協(xié)議定義的ip前綴路由建立vxlan隧道時(shí),當(dāng)存在大量主機(jī)需要通信,在初次通信發(fā)送arp請(qǐng)求報(bào)文后,導(dǎo)致網(wǎng)絡(luò)中存在大量廣播報(bào)文,進(jìn)而導(dǎo)致網(wǎng)絡(luò)中的路由設(shè)備壓力過(guò)大的問(wèn)題。
具體地,本申請(qǐng)是通過(guò)如下技術(shù)方案實(shí)現(xiàn)的:
一種vxlan控制平面的優(yōu)化方法,應(yīng)用于本端vtep設(shè)備,所述本端vtep設(shè)備與對(duì)端vtep設(shè)備之間建立了bgpevpn對(duì)等體關(guān)系,所述本端vtep設(shè)備和所述對(duì)端vtep設(shè)備充當(dāng)分布式網(wǎng)關(guān)場(chǎng)景中的vxlan三層網(wǎng)關(guān);其中,所述本端vtep設(shè)備接入了第一vm,所述對(duì)端vtep設(shè)備接入了第二vm,包括:
接收到所述第一vm發(fā)送的arp請(qǐng)求報(bào)文,學(xué)習(xí)對(duì)應(yīng)于所述第一vm的arp表項(xiàng);
將所述arp表項(xiàng)中的所述第一vm的mac地址填入ip前綴路由報(bào)文中;
將所述ip前綴路由報(bào)文發(fā)送至所述對(duì)端vtep設(shè)備,以由所述對(duì)端vtep設(shè)備基于所述ip前綴路由報(bào)文建立與所述本端vtep設(shè)備之間的vxlan隧道,以及,學(xué)習(xí)對(duì)應(yīng)于所述第一vm的arp表項(xiàng),進(jìn)而在接收到所述第二vm發(fā)送的請(qǐng)求所述第一vm的mac地址的arp請(qǐng)求報(bào)文時(shí),將已學(xué)習(xí)到的對(duì)應(yīng)于所述第一vm的arp表項(xiàng)返回所述第二vm。
在所述vxlan控制平面的優(yōu)化方法中,所述本端vtep設(shè)備通過(guò)bgpevpn協(xié)議定義的ip前綴路由報(bào)文與對(duì)端vtep設(shè)備建立了vxlan隧道;其中,所述本端vtep設(shè)備接入了第三vm,所述方法還包括:
接收到所述第三vm發(fā)送的arp請(qǐng)求報(bào)文,學(xué)習(xí)對(duì)應(yīng)于所述第三vm的arp表項(xiàng);
將所述arp表項(xiàng)中的所述第三vm的mac地址填入ip前綴路由報(bào)文中;
將所述ip前綴路由報(bào)文發(fā)送至所述對(duì)端vtep設(shè)備,以由所述對(duì)端vtep設(shè)備學(xué)習(xí)對(duì)應(yīng)于所述第三vm的arp表項(xiàng),進(jìn)而在接收到所述第二vm發(fā)送的請(qǐng)求所述第三vm的mac地址的arp請(qǐng)求報(bào)文時(shí),將已學(xué)習(xí)到的對(duì)應(yīng)于所述第三vm的arp表項(xiàng)返回所述第二vm。
在所述vxlan控制平面的優(yōu)化方法中,所述ip前綴路由報(bào)文預(yù)先擴(kuò)展后,新增攜帶vm的mac地址的字段。
在所述vxlan控制平面的優(yōu)化方法中,所述方法還包括:
接收到所述對(duì)端vtep設(shè)備發(fā)送的ip前綴路由報(bào)文;其中,所述ip前綴路由報(bào)文攜帶所述第二vm的mac地址;
基于所述ip前綴路由報(bào)文建立與所述對(duì)端vtep設(shè)備之間的vxlan隧道,并根據(jù)所述ip前綴路由報(bào)文攜帶的所述第二vm的ip地址和mac地址學(xué)習(xí)對(duì)應(yīng)于所述第二vm的arp表項(xiàng);
當(dāng)接收到所述第一vm發(fā)送的請(qǐng)求所述第二vm的mac地址的arp請(qǐng)求報(bào)文時(shí),將已學(xué)習(xí)到的對(duì)應(yīng)于所述第二vm的arp表項(xiàng)返回所述第一vm。
在所述vxlan控制平面的優(yōu)化方法中,所述對(duì)端vtep設(shè)備接入了第四vm,所述方法還包括:
接收到所述對(duì)端vtep設(shè)備發(fā)送的ip前綴路由報(bào)文;其中,所述ip前綴路由報(bào)文攜帶所述第四vm的mac地址;
根據(jù)所述ip前綴路由報(bào)文攜帶的所述第四vm的ip地址和mac地址學(xué)習(xí)對(duì)應(yīng)于所述第四vm的arp表項(xiàng);
當(dāng)接收到所述第一vm發(fā)送的請(qǐng)求所述第四vm的mac地址的arp請(qǐng)求報(bào)文時(shí),將已學(xué)習(xí)到的對(duì)應(yīng)于所述第四vm的arp表項(xiàng)返回所述第一vm。
一種vxlan控制平面的優(yōu)化裝置,應(yīng)用于本端vtep設(shè)備,所述本端vtep設(shè)備與對(duì)端vtep設(shè)備之間建立了bgpevpn對(duì)等體關(guān)系,所述本端vtep設(shè)備和所述對(duì)端vtep設(shè)備充當(dāng)分布式網(wǎng)關(guān)場(chǎng)景中的vxlan三層網(wǎng)關(guān);其中,所述本端vtep設(shè)備接入了第一vm,所述對(duì)端vtep設(shè)備接入了第二vm,包括:
接收單元,用于接收到所述第一vm發(fā)送的arp請(qǐng)求報(bào)文,學(xué)習(xí)對(duì)應(yīng)于所述第一vm的arp表項(xiàng);
填充單元,用于將所述arp表項(xiàng)中的所述第一vm的mac地址填入ip前綴路由報(bào)文中;
發(fā)送單元,用于將所述ip前綴路由報(bào)文發(fā)送至所述對(duì)端vtep設(shè)備,以由所述對(duì)端vtep設(shè)備基于所述ip前綴路由報(bào)文建立與所述本端vtep設(shè)備之間的vxlan隧道,以及,學(xué)習(xí)對(duì)應(yīng)于所述第一vm的arp表項(xiàng),進(jìn)而在接收到所述第二vm發(fā)送的請(qǐng)求所述第一vm的mac地址的arp請(qǐng)求報(bào)文時(shí),將已學(xué)習(xí)到的對(duì)應(yīng)于所述第一vm的arp表項(xiàng)返回所述第二vm。
在所述vxlan控制平面的優(yōu)化裝置中,所述本端vtep設(shè)備通過(guò)bgpevpn協(xié)議定義的ip前綴路由報(bào)文與對(duì)端vtep設(shè)備建立了vxlan隧道;其中,所述本端vtep設(shè)備接入了第三vm,所述裝置還包括:
所述接收單元,進(jìn)一步用于接收到所述第三vm發(fā)送的arp請(qǐng)求報(bào)文,學(xué)習(xí)對(duì)應(yīng)于所述第三vm的arp表項(xiàng);
所述填充單元,進(jìn)一步用于將所述arp表項(xiàng)中的所述第三vm的mac地址填入ip前綴路由報(bào)文中;
所述發(fā)送單元,進(jìn)一步用于將所述ip前綴路由報(bào)文發(fā)送至所述對(duì)端vtep設(shè)備,以由所述對(duì)端vtep設(shè)備學(xué)習(xí)對(duì)應(yīng)于所述第三vm的arp表項(xiàng),進(jìn)而在接收到所述第二vm發(fā)送的請(qǐng)求所述第三vm的mac地址的arp請(qǐng)求報(bào)文時(shí),將已學(xué)習(xí)到的對(duì)應(yīng)于所述第三vm的arp表項(xiàng)返回所述第二vm。
在所述vxlan控制平面的優(yōu)化裝置中,所述ip前綴路由報(bào)文預(yù)先擴(kuò)展后,新增攜帶vm的mac地址的字段。
在所述vxlan控制平面的優(yōu)化裝置中,所述裝置還包括:
所述接收單元,進(jìn)一步用于接收到所述對(duì)端vtep設(shè)備發(fā)送的ip前綴路由報(bào)文;其中,所述ip前綴路由報(bào)文攜帶所述第二vm的mac地址;
第一學(xué)習(xí)單元,用于基于所述ip前綴路由報(bào)文建立與所述對(duì)端vtep設(shè)備之間的vxlan隧道,并根據(jù)所述ip前綴路由報(bào)文攜帶的所述第二vm的ip地址和mac地址學(xué)習(xí)對(duì)應(yīng)于所述第二vm的arp表項(xiàng);
第一返回單元,用于當(dāng)接收到所述第一vm發(fā)送的請(qǐng)求所述第二vm的mac地址的arp請(qǐng)求報(bào)文時(shí),將已學(xué)習(xí)到的對(duì)應(yīng)于所述第二vm的arp表項(xiàng)返回所述第一vm。
在所述vxlan控制平面的優(yōu)化裝置中,所述對(duì)端vtep設(shè)備接入了第四vm,所述裝置還包括:
所述接收單元,進(jìn)一步用于接收到所述對(duì)端vtep設(shè)備發(fā)送的ip前綴路由報(bào)文;其中,所述ip前綴路由報(bào)文攜帶所述第四vm的mac地址;
第二學(xué)習(xí)單元,用于根據(jù)所述ip前綴路由報(bào)文攜帶的所述第四vm的ip地址和mac地址學(xué)習(xí)對(duì)應(yīng)于所述第四vm的arp表項(xiàng);
第二返回單元,用于當(dāng)接收到所述第一vm發(fā)送的請(qǐng)求所述第四vm的mac地址的arp請(qǐng)求報(bào)文時(shí),將已學(xué)習(xí)到的對(duì)應(yīng)于所述第四vm的arp表項(xiàng)返回所述第一vm。
在本申請(qǐng)實(shí)施例中,本端vtep設(shè)備接收到接入本地的第一vm(virtualmachine,虛擬機(jī))發(fā)送的arp請(qǐng)求報(bào)文,學(xué)習(xí)對(duì)應(yīng)于該第一vm的arp表項(xiàng),然后將該arp表項(xiàng)中的第一vm的mac地址填入到ip前綴路由報(bào)文中,并發(fā)送該ip前綴路由報(bào)文至對(duì)端vtep設(shè)備;對(duì)端vtep設(shè)備接收到上述ip前綴路由報(bào)文后,基于該ip前綴路由報(bào)文建立與本端vtep設(shè)備之間的vxlan隧道,并學(xué)習(xí)對(duì)應(yīng)于上述第一vm的arp表項(xiàng);當(dāng)對(duì)端vtep設(shè)備接收到接入本地的第二vm發(fā)送的請(qǐng)求上述第一vm的mac地址的arp請(qǐng)求報(bào)文時(shí),將已學(xué)習(xí)到的對(duì)應(yīng)于上述第一vm的arp表項(xiàng)返回給上述第二vm;
由于在本申請(qǐng)中,ip前綴路由報(bào)文可以攜帶第一vm的mac地址,對(duì)端vtep設(shè)備可以在接收到路由前綴報(bào)文后,獲得第一vm的mac地址和原本就攜帶在路由前綴報(bào)文中的第一vm的ip地址,進(jìn)而學(xué)習(xí)到對(duì)應(yīng)于第一vm的arp表項(xiàng),從而能在接收到接入本地的第二vm發(fā)送的請(qǐng)求第一vm的mac地址的arp請(qǐng)求報(bào)文時(shí),直接返回對(duì)應(yīng)于第一vm的arp表項(xiàng),無(wú)需向網(wǎng)絡(luò)中廣播該arp請(qǐng)求報(bào)文,從而降低了網(wǎng)絡(luò)中路由設(shè)備的性能壓力。
附圖說(shuō)明
圖1是本申請(qǐng)示出的一種vxlan分布式網(wǎng)關(guān)場(chǎng)景的架構(gòu)圖;
圖2是現(xiàn)有技術(shù)的一種ip前綴路由的格式示意圖;
圖3是本申請(qǐng)示出的一種ip前綴路由的格式示意圖;
圖4是本申請(qǐng)示出的一種vxlan控制平面的優(yōu)化方法的流程圖;
圖5是本申請(qǐng)示出的一種vxlan控制平面的優(yōu)化裝置的實(shí)施例框圖;
圖6是本申請(qǐng)示出的一種vxlan控制平面的優(yōu)化裝置的硬件結(jié)構(gòu)圖。
具體實(shí)施方式
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明實(shí)施例中的技術(shù)方案,并使本發(fā)明實(shí)施例的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖對(duì)現(xiàn)有技術(shù)方案和本發(fā)明實(shí)施例中的技術(shù)方案作進(jìn)一步詳細(xì)的說(shuō)明。
在vxlan網(wǎng)絡(luò)中,vni不同的vxlan子網(wǎng)之間不能直接互相通信,vxlan子網(wǎng)與非vxlan網(wǎng)絡(luò)之間也不能直接互相通信。為了使vni不同的vxlan子網(wǎng)之間,以及vxlan子網(wǎng)與非vxlan網(wǎng)絡(luò)之間能夠進(jìn)行通信,vxlan技術(shù)引入了vxlan網(wǎng)關(guān)。
其中,vxlan網(wǎng)關(guān)分為二層網(wǎng)關(guān)和三層網(wǎng)關(guān);二層網(wǎng)關(guān)用于解決租戶(一個(gè)vni表示一個(gè)租戶,即使多個(gè)主機(jī)屬于同一個(gè)vni,也表示一個(gè)租戶)接入vxlan網(wǎng)絡(luò)的問(wèn)題,也可用于同一vxlan網(wǎng)絡(luò)的子網(wǎng)內(nèi)通信;三層網(wǎng)關(guān)用于vxlan網(wǎng)絡(luò)的跨子網(wǎng)通信以及外部網(wǎng)絡(luò)的訪問(wèn)。
根據(jù)三層網(wǎng)關(guān)部署方式不同,vxlan三層網(wǎng)關(guān)又可以分為集中式網(wǎng)關(guān)和分布式網(wǎng)關(guān)。
其中,集中式網(wǎng)關(guān)是將三層網(wǎng)關(guān)集中部署在一臺(tái)路由設(shè)備上,所有跨子網(wǎng)的流量都經(jīng)過(guò)三層網(wǎng)關(guān)進(jìn)行轉(zhuǎn)發(fā),實(shí)現(xiàn)流量的集中管理;
而分布式網(wǎng)關(guān)則是將三層網(wǎng)關(guān)分別部署在多臺(tái)設(shè)備上,使得vxlan網(wǎng)絡(luò)中的vtep設(shè)備可以充當(dāng)vxlan三層網(wǎng)關(guān)。此時(shí),vtep設(shè)備連接的路由設(shè)備不感知vxlan隧道,只做普通的三層ip轉(zhuǎn)發(fā)。
參見(jiàn)圖1,為本申請(qǐng)示出的一種vxlan分布式網(wǎng)關(guān)場(chǎng)景的架構(gòu)圖,如圖1所示,圖中vtep1和vtep2既是二層網(wǎng)關(guān),也是三層網(wǎng)關(guān)。圖1中的vxlan1000、vxlan2000和vxlan3000都是二層vni;三層vni(圖中未示出)可以由用戶配置,在配置完成后,一個(gè)三層vxlan中可以實(shí)現(xiàn)隸屬于不同二層vxlan子網(wǎng)的主機(jī)之間的通信。
在實(shí)際應(yīng)用中,vxlan隧道的建立通??梢酝ㄟ^(guò)靜態(tài)手工配置的方式、mp-bgp方式和bgpevpn方式來(lái)完成。
在上述圖1所示的分布式網(wǎng)關(guān)場(chǎng)景中,如果通過(guò)bgpevpn方式來(lái)建立vxlan隧道,evpn作為vxlan控制平面會(huì)使用到evpnnlri中定義的mac地址通告路由和ip前綴路由以及相關(guān)擴(kuò)展團(tuán)體屬性在網(wǎng)關(guān)設(shè)備之間建立vxlan隧道的信息。
分布式網(wǎng)關(guān)場(chǎng)景中,在本端vtep設(shè)備與遠(yuǎn)端vtep設(shè)備之間在創(chuàng)建vxlan隧道之前,需分別被預(yù)先創(chuàng)建evpn實(shí)例和vpn實(shí)例,且在本端vtep設(shè)備與遠(yuǎn)端vtep設(shè)備之間建立bgpevpn對(duì)等體關(guān)系。其后,本端vtep設(shè)備和對(duì)端vtep設(shè)備之間可以通過(guò)mac地址通告路由報(bào)文或ip前綴路由報(bào)文建立vxlan隧道;其中,mac地址通告路由報(bào)文包括mac地址通告路由和相關(guān)擴(kuò)展團(tuán)體屬性,ip前綴路由報(bào)文包括ip前綴路由和相關(guān)擴(kuò)展團(tuán)體屬性。
一方面,如果本端vtep設(shè)備基于mac地址通告路由與遠(yuǎn)端vtep設(shè)備之間建立vxlan隧道,本端vtep設(shè)備可以在收到接入本地的主機(jī)發(fā)來(lái)的arp請(qǐng)求報(bào)文時(shí),學(xué)習(xí)該主機(jī)的arp表項(xiàng),然后基于該arp表項(xiàng)生成mac地址通告路由報(bào)文,并發(fā)送至遠(yuǎn)端vtep設(shè)備。
遠(yuǎn)端vtep設(shè)備基于mac地址通告路由報(bào)文建立與本端vtep設(shè)備之間的vxlan隧道。由于mac地址通告路由報(bào)文攜帶對(duì)應(yīng)于上述主機(jī)的arp表項(xiàng),因此,遠(yuǎn)端vtep設(shè)備可以保存對(duì)應(yīng)于上述主機(jī)的arp表項(xiàng),進(jìn)而在接入本地的主機(jī)發(fā)送請(qǐng)求上述主機(jī)的mac地址的arp請(qǐng)求報(bào)文時(shí),向接入本地的主機(jī)返回已保存的對(duì)應(yīng)于上述主機(jī)的arp表項(xiàng),從而抑制arp泛洪。
另一方面,當(dāng)本端vtep設(shè)備基于ip前綴類型的路由與遠(yuǎn)端vtep設(shè)備之間建立vxlan隧道時(shí),本端vtep設(shè)備可以將接入本地的主機(jī)ip地址或主機(jī)地址所在網(wǎng)段引入到vpn實(shí)例中,然后再?gòu)膙pn實(shí)例引入至evpn實(shí)例中,并通過(guò)ip前綴路由報(bào)文發(fā)送至遠(yuǎn)端vtep設(shè)備。
遠(yuǎn)端vtep設(shè)備基于ip前綴路由報(bào)文建立與本端vtep設(shè)備之間的vxlan隧道。由于ip前綴路由報(bào)文不攜帶接入本端vtep設(shè)備的主機(jī)的mac地址,因此,遠(yuǎn)端vtep設(shè)備不保存對(duì)應(yīng)于上述主機(jī)的arp表項(xiàng)。如果接入遠(yuǎn)端vtep設(shè)備的主機(jī)向遠(yuǎn)端vtep設(shè)備發(fā)送請(qǐng)求上述主機(jī)的mac地址的arp請(qǐng)求報(bào)文,遠(yuǎn)端vtep設(shè)備會(huì)廣播該arp請(qǐng)求報(bào)文。
在屬于同一網(wǎng)段的主機(jī)路由數(shù)量較多的情況下,為了減輕vtep設(shè)備上路由存儲(chǔ)的負(fù)擔(dān),可以選擇配置發(fā)布ip前綴路由,使vtep設(shè)備對(duì)同一網(wǎng)段的主機(jī),只需傳遞一條網(wǎng)段路由。
然而,配置ip前綴路由后,三層網(wǎng)關(guān)(即vtep設(shè)備)不能使用arp抑制功能,此時(shí),當(dāng)vxlan網(wǎng)絡(luò)中大量主機(jī)需要通信時(shí),初次通信都會(huì)發(fā)送arp請(qǐng)求報(bào)文,這會(huì)導(dǎo)致網(wǎng)絡(luò)中存在大量廣播報(bào)文,導(dǎo)致網(wǎng)絡(luò)中的路由設(shè)備壓力過(guò)大。
有鑒于此,本申請(qǐng)對(duì)ip前綴路由進(jìn)行擴(kuò)展,使得擴(kuò)展后的ip前綴路由可以攜帶接入vtep設(shè)備的主機(jī)的mac地址,本端vtep設(shè)備將ip前綴路由報(bào)文發(fā)送至遠(yuǎn)端vtep設(shè)備后,遠(yuǎn)端vtep設(shè)備可以保存上述主機(jī)的mac地址,并在后續(xù)向請(qǐng)求上述主機(jī)的mac地址的主機(jī)返回上述主機(jī)的mac地址。
請(qǐng)參見(jiàn)圖2,為現(xiàn)有技術(shù)的一種ip前綴路由的格式示意圖,如圖所示,現(xiàn)有技術(shù)的ip前綴路由包括路由區(qū)分符(routerdistinguisher)、以太網(wǎng)段標(biāo)識(shí)符(ethernetsegmentidentifier)、以太網(wǎng)標(biāo)簽id(ethernettagid)、ip地址長(zhǎng)度(ipaddresslength)、ip地址(ipaddress)、網(wǎng)關(guān)ip地址(gwipaddress)、多協(xié)議標(biāo)簽交換標(biāo)簽(mplslabel)。其中,ip地址中記錄接入vtep設(shè)備的主機(jī)的ip地址或主機(jī)所在的網(wǎng)段。
請(qǐng)繼續(xù)參見(jiàn)圖3,為本申請(qǐng)示出的一種ip前綴路由的格式示意圖,如圖3所示,圖2中的ip地址字段分成主機(jī)ip地址(hostipaddress)和主機(jī)mac地址(hostmacaddress),因此,本申請(qǐng)示出的ip前綴路由可以攜帶接入vtep設(shè)備的主機(jī)的mac地址。
請(qǐng)參見(jiàn)圖4,為本申請(qǐng)示出的一種vxlan控制平面的優(yōu)化方法的流程圖,該方法應(yīng)用于本端vtep設(shè)備,該本端vtep設(shè)備與對(duì)端vtep設(shè)備之間建立了bgpevpn對(duì)等體關(guān)系,上述本端vtep設(shè)備和上述對(duì)端vtep設(shè)備充當(dāng)分布式網(wǎng)關(guān)場(chǎng)景中的vxlan三層網(wǎng)關(guān);其中上述本端vtep設(shè)備接入了第一vm,上述對(duì)端vtep設(shè)備接入了第二vm;所述方法包括以下步驟:
步驟401:接收到所述第一vm發(fā)送的arp請(qǐng)求報(bào)文,學(xué)習(xí)對(duì)應(yīng)于所述第一vm的arp表項(xiàng)。
步驟402:將所述arp表項(xiàng)中的所述第一vm的mac地址填入ip前綴路由報(bào)文中。
步驟403:將所述ip前綴路由報(bào)文發(fā)送至所述對(duì)端vtep設(shè)備,以由所述對(duì)端vtep設(shè)備基于所述ip前綴路由報(bào)文建立與所述本端vtep設(shè)備之間的vxlan隧道,以及,學(xué)習(xí)對(duì)應(yīng)于所述第一vm的arp表項(xiàng),進(jìn)而在接收到所述第二vm發(fā)送的請(qǐng)求所述第一vm的mac地址的arp請(qǐng)求報(bào)文時(shí),將已學(xué)習(xí)到的對(duì)應(yīng)于所述第一vm的arp表項(xiàng)返回所述第二vm。
其中,如果從圖1中的vtep1的角度來(lái)描述本申請(qǐng)實(shí)施例的技術(shù)方案,則上述本端vtep設(shè)備即為vtep1,上述對(duì)端vtep設(shè)備可以是vtep2;上述第一vm可以是圖1中的vm1,上述第二vm可以是圖1中的vm4。
首先,在圖4所示的方法中,上述本端vtep設(shè)備與上述對(duì)端vtep設(shè)備之間尚未建立vxlan隧道,則在該優(yōu)化方法中,包括建立vxlan隧道的過(guò)程。
在本申請(qǐng)實(shí)施例中,上述第一vm需要與其它主機(jī)通信時(shí),會(huì)向上述本端vtep設(shè)備發(fā)送arp請(qǐng)求報(bào)文,請(qǐng)求默認(rèn)網(wǎng)關(guān)的mac地址。上述本端vtep設(shè)備接收到上述第一vm發(fā)送的arp請(qǐng)求報(bào)文時(shí),可以學(xué)習(xí)對(duì)應(yīng)于上述第一vm的arp表項(xiàng)。
以圖1為例,vm1向vtep1發(fā)送arp請(qǐng)求報(bào)文時(shí),vtep1可以學(xué)習(xí)對(duì)應(yīng)于vm1的arp表項(xiàng)。
在本申請(qǐng)實(shí)施例中,上述本端vtep設(shè)備可以將對(duì)應(yīng)于上述arp表項(xiàng)中的上述第一vm的mac地址填入ip前綴路由報(bào)文中。
具體地,上述本端vtep設(shè)備可以在生成ip前綴路由時(shí),將上述第一vm的ip地址填入到主機(jī)ip地址中,以及,將上述第一vm的mac地址填入到主機(jī)mac地址中,然后將ip前綴路由封裝成ip前綴路由報(bào)文。
以圖1為例,vtep1可以將vm1的ip地址10.1.1.100/24和vm1的mac地址vmmac1填入到ip前綴路由中,然后將ip前綴路由封裝成ip前綴路由報(bào)文。
在本申請(qǐng)實(shí)施例中,上述vtep設(shè)備在封裝得到ip前綴路由報(bào)文后,可以將上述ip前綴路由報(bào)文發(fā)送至上述對(duì)端vtep設(shè)備,以向上述對(duì)端vtep設(shè)備發(fā)布上述第一vm的地址。
上述對(duì)端vtep設(shè)備接收到上述ip前綴路由報(bào)文后,可以基于上述ip前綴路由報(bào)文中的ip前綴路由和相關(guān)擴(kuò)展團(tuán)體屬性建立與上述本端vtep設(shè)備之間的vxlan隧道;此外,上述對(duì)端vtep設(shè)備可以學(xué)習(xí)對(duì)應(yīng)于上述第一vm的arp表項(xiàng)。
具體地,上述對(duì)端vtep設(shè)備可以從上述ip前綴路由中,讀取主機(jī)ip地址和主機(jī)mac地址,并生成主機(jī)ip地址和主機(jī)mac地址的映射關(guān)系,從而學(xué)習(xí)到對(duì)應(yīng)于上述第一vm的arp表項(xiàng)。
當(dāng)接入到上述對(duì)端vtep設(shè)備的第二vm需要與上述第一vm通信,而上述第二vm沒(méi)有上述第一vm的mac地址時(shí),上述第二vm可以向上述對(duì)端vtep設(shè)備發(fā)送arp請(qǐng)求報(bào)文。
上述對(duì)端vtep設(shè)備接收到上述arp請(qǐng)求報(bào)文后,可以將以學(xué)習(xí)到的對(duì)應(yīng)于上述第一vm的arp表項(xiàng)返回上述第二vm。
具體地,上述對(duì)端vtep設(shè)備接收到上述arp請(qǐng)求報(bào)文后,可以基于上述arp請(qǐng)求報(bào)文中的上述第一vm的ip地址,在本地arp表中查找,然后獲得對(duì)應(yīng)的arp表項(xiàng),并將該arp表項(xiàng)發(fā)送至上述第二vm。
仍以圖1為例,vtep1將包含vm1的ip前綴路由報(bào)文發(fā)送至vtep2,vtep2基于該ip前綴路由報(bào)文建立與vtep1之間的vxlan隧道,并學(xué)習(xí)對(duì)應(yīng)于vm1的arp表項(xiàng)。當(dāng)vm4向vtep2發(fā)送arp請(qǐng)求報(bào)文,請(qǐng)求vm1的mac地址時(shí),vtep2可以基于arp請(qǐng)求中的vm1的ip地址在本地arp表中查找,獲得對(duì)應(yīng)的arp表項(xiàng),并將該arp表項(xiàng)返回上述vm4。
通過(guò)上述措施,上述第二vm的arp請(qǐng)求報(bào)文不會(huì)被廣播,減少了網(wǎng)絡(luò)中的廣播報(bào)文,從而降低了網(wǎng)絡(luò)中的路由設(shè)備的性能壓力。
在本申請(qǐng)實(shí)施例中,如果上述本端vtep設(shè)備與上述對(duì)端vtep設(shè)備之間已經(jīng)建立了vxlan隧道,則在后續(xù)的優(yōu)化方法中,不包括建立vxlan隧道的過(guò)程。
在本端vtep設(shè)備與對(duì)端vtep設(shè)備已經(jīng)建立vxlan隧道的情況下,本端vtep設(shè)備仍然可以通過(guò)ip前綴路由報(bào)文發(fā)布接入本地的主機(jī)的地址。
當(dāng)接入本端vtep設(shè)備的第三vm需要向外通信時(shí),可以向上述本端vtep設(shè)備發(fā)送arp請(qǐng)求報(bào)文,請(qǐng)求默認(rèn)網(wǎng)關(guān)的mac地址。上述本端vtep設(shè)備接收到上述第三vm的arp請(qǐng)求報(bào)文時(shí),可以學(xué)習(xí)對(duì)應(yīng)于上述第三vm的arp表項(xiàng)。
以圖1為例,上述第三vm為vm2,vm2向vtep1發(fā)送arp請(qǐng)求報(bào)文時(shí),vtep1可以學(xué)習(xí)對(duì)應(yīng)于vm2的arp表項(xiàng)。
上述本端vtep設(shè)備可以在生成對(duì)應(yīng)于上述第三vm的ip前綴路由時(shí),將上述arp表項(xiàng)的第三vm的mac地址填入到ip前綴路由中,并將該ip前綴路由封裝為ip前綴路由報(bào)文發(fā)送至上述對(duì)端vtep設(shè)備。
以圖1為例,vtep1可將vm2的ip地址20.1.1.100/24和vm2的mac地址vmmac2填入到ip前綴路由中,然后將ip前綴路由封裝成ip前綴路由報(bào)文,發(fā)送至vtep2。
需要指出的是,如果上述本端vtep設(shè)備接入多個(gè)主機(jī),則上述本端vtep設(shè)備在發(fā)布多個(gè)主機(jī)的地址時(shí),可以分別生成對(duì)應(yīng)于各主機(jī)的ip前綴路由,并在各ip前綴路由中填入對(duì)應(yīng)的主機(jī)的ip地址和mac地址,在這種情況下,上述本端vtep設(shè)備可以通過(guò)發(fā)送多次ip前綴路由報(bào)文來(lái)發(fā)布多個(gè)主機(jī)的地址。
上述對(duì)端vtep設(shè)備接收到上述ip前綴路由報(bào)文后,可以直接從ip前綴路由中讀取主機(jī)ip地址和主機(jī)mac地址,并生成主機(jī)ip地址和主機(jī)mac地址的映射關(guān)系,從而學(xué)習(xí)到對(duì)應(yīng)于上述第三vm的arp表項(xiàng)。
當(dāng)接入到上述對(duì)端vtep設(shè)備的第二vm需要與上述第三vm通信,而上述第二vm沒(méi)有上述第三vm的mac地址時(shí),上述第二vm可以向上述對(duì)端vm發(fā)送arp請(qǐng)求報(bào)文。
上述對(duì)端vtep設(shè)備接收到上述arp請(qǐng)求報(bào)文后,可以基于上述arp請(qǐng)求報(bào)文中的上述第三vm的ip地址,在本地arp表中查找,然后獲得對(duì)應(yīng)的arp表項(xiàng),并將該arp表項(xiàng)發(fā)送至上述第二vm。
仍以圖1為例,vtep1將包含vm2的ip前綴路由報(bào)文發(fā)送至vtep2,vtep2從該ip前綴路由報(bào)文中學(xué)習(xí)對(duì)應(yīng)于vm2的arp表項(xiàng)。當(dāng)vm4向vtep2發(fā)送arp請(qǐng)求報(bào)文,請(qǐng)求vm2的mac地址時(shí),vtep2可以基于arp請(qǐng)求中的vm2的ip地址在本地arp表中查找,獲得對(duì)應(yīng)的arp表項(xiàng),并將該arp表項(xiàng)返回上述vm4。
通過(guò)上述措施,上述第二vm的arp請(qǐng)求報(bào)文不會(huì)被廣播,減少了網(wǎng)絡(luò)中的廣播報(bào)文,從而降低了網(wǎng)絡(luò)中的路由設(shè)備的性能壓力。
綜上所述,在本申請(qǐng)實(shí)施例中,本端vtep設(shè)備與對(duì)端vtep設(shè)備之間尚未建立vxlan隧道時(shí),本端vtep設(shè)備接收到第一vm發(fā)送的arp請(qǐng)求報(bào)文時(shí),可以學(xué)習(xí)對(duì)應(yīng)于第一vm的arp表項(xiàng),并在ip前綴路由報(bào)文中填入學(xué)習(xí)到的第一vm的mac地址,然后將上述ip前綴路由報(bào)文發(fā)送至對(duì)端vtep設(shè)備;上述對(duì)端vtep設(shè)備可以基于上述ip前綴路由報(bào)文建立與本端vtep設(shè)備之間的vxlan隧道,以及,學(xué)習(xí)對(duì)應(yīng)于第一vm的arp表項(xiàng),從而能在接收到接入本地的第二vm發(fā)送的請(qǐng)求第一vm的mac地址的arp請(qǐng)求報(bào)文時(shí),將學(xué)習(xí)到的對(duì)應(yīng)于第一vm的arp表項(xiàng)返回第二vm;
以及,本端vtep設(shè)備與對(duì)端vtep設(shè)備之間已經(jīng)建立vxlan隧道時(shí),本端vtep設(shè)備接收到第三vm發(fā)送的arp請(qǐng)求報(bào)文時(shí),可以學(xué)習(xí)對(duì)應(yīng)于第三vm的arp表項(xiàng),并在ip前綴路由報(bào)文中填入學(xué)習(xí)到的第三vm的mac地址,然后將上述ip前綴路由報(bào)文發(fā)送至對(duì)端vtep設(shè)備;上述對(duì)端vtep設(shè)備可以基于上述ip前綴路由報(bào)文學(xué)習(xí)對(duì)應(yīng)于上述第三vm的arp表項(xiàng),從而能在接收到第二vm發(fā)送的請(qǐng)求第三vm的mac地址的arp請(qǐng)求報(bào)文時(shí),將學(xué)習(xí)到的對(duì)應(yīng)于第三vm的arp表項(xiàng)返回第二vm;
由于在本申請(qǐng)實(shí)施例中,ip前綴路由經(jīng)擴(kuò)展后,可以攜帶接入本端vtep設(shè)備的主機(jī)的mac地址,因此,本端vtep設(shè)備通過(guò)ip前綴路由報(bào)文發(fā)布接入本地的主機(jī)的地址時(shí),可以同時(shí)發(fā)布主機(jī)的mac地址;對(duì)端vtep設(shè)備可以從ip前綴路由報(bào)文中學(xué)習(xí)到接入本端vtep設(shè)備的主機(jī)的arp表項(xiàng),當(dāng)接收到接入本地的主機(jī)發(fā)送的請(qǐng)求接入本端vtep設(shè)備的主機(jī)的mac地址的arp請(qǐng)求報(bào)文時(shí),可以直接將已學(xué)習(xí)到的arp表項(xiàng)返回,從而避免了在網(wǎng)絡(luò)中廣播上述arp請(qǐng)求報(bào)文,降低了網(wǎng)絡(luò)中路由設(shè)備的性能壓力。
與前述vxlan控制平面的優(yōu)化方法的實(shí)施例相對(duì)應(yīng),本申請(qǐng)還提供了vxlan控制平面的優(yōu)化裝置的實(shí)施例。
參見(jiàn)圖5,為本申請(qǐng)示出的一種vxlan控制平面的優(yōu)化裝置的實(shí)施例框圖;
如圖5所示,該vxlan控制平面的優(yōu)化裝置50包括:
接收單元510,用于接收到所述第一vm發(fā)送的arp請(qǐng)求報(bào)文,學(xué)習(xí)對(duì)應(yīng)于所述第一vm的arp表項(xiàng)。
填充單元520,用于將所述arp表項(xiàng)中的所述第一vm的mac地址填入ip前綴路由報(bào)文中。
發(fā)送單元530,用于將所述ip前綴路由報(bào)文發(fā)送至所述對(duì)端vtep設(shè)備,以由所述對(duì)端vtep設(shè)備基于所述ip前綴路由報(bào)文建立與所述本端vtep設(shè)備之間的vxlan隧道,以及,學(xué)習(xí)對(duì)應(yīng)于所述第一vm的arp表項(xiàng),進(jìn)而在接收到所述第二vm發(fā)送的請(qǐng)求所述第一vm的mac地址的arp請(qǐng)求報(bào)文時(shí),將已學(xué)習(xí)到的對(duì)應(yīng)于所述第一vm的arp表項(xiàng)返回所述第二vm。
在本例中,所述本端vtep設(shè)備通過(guò)bgpevpn協(xié)議定義的ip前綴路由報(bào)文與對(duì)端vtep設(shè)備建立了vxlan隧道;其中,所述本端vtep設(shè)備接入了第三vm,所述裝置還包括:
所述接收單元510,進(jìn)一步用于接收到所述第三vm發(fā)送的arp請(qǐng)求報(bào)文,學(xué)習(xí)對(duì)應(yīng)于所述第三vm的arp表項(xiàng)。
所述填充單元520,進(jìn)一步用于將所述arp表項(xiàng)中的所述第三vm的mac地址填入ip前綴路由報(bào)文中。
所述發(fā)送單元530,進(jìn)一步用于將所述ip前綴路由報(bào)文發(fā)送至所述對(duì)端vtep設(shè)備,以由所述對(duì)端vtep設(shè)備學(xué)習(xí)對(duì)應(yīng)于所述第三vm的arp表項(xiàng),進(jìn)而在接收到所述第二vm發(fā)送的請(qǐng)求所述第三vm的mac地址的arp請(qǐng)求報(bào)文時(shí),將已學(xué)習(xí)到的對(duì)應(yīng)于所述第三vm的arp表項(xiàng)返回所述第二vm。
在本例中,所述ip前綴路由報(bào)文預(yù)先擴(kuò)展后,新增攜帶vm的mac地址的字段。
在本例中,所述裝置還包括:
所述接收單元510,進(jìn)一步用于接收到所述對(duì)端vtep設(shè)備發(fā)送的ip前綴路由報(bào)文;其中,所述ip前綴路由報(bào)文攜帶所述第二vm的mac地址。
第一學(xué)習(xí)單元540(圖中未示出),用于基于所述ip前綴路由報(bào)文建立與所述對(duì)端vtep設(shè)備之間的vxlan隧道,并根據(jù)所述ip前綴路由報(bào)文攜帶的所述第二vm的ip地址和mac地址學(xué)習(xí)對(duì)應(yīng)于所述第二vm的arp表項(xiàng)。
第一返回單元550(圖中未示出),用于當(dāng)接收到所述第一vm發(fā)送的請(qǐng)求所述第二vm的mac地址的arp請(qǐng)求報(bào)文時(shí),將已學(xué)習(xí)到的對(duì)應(yīng)于所述第二vm的arp表項(xiàng)返回所述第一vm。
在本例中,所述對(duì)端vtep設(shè)備接入了第四vm,所述裝置還包括:
所述接收單元510,進(jìn)一步用于接收到所述對(duì)端vtep設(shè)備發(fā)送的ip前綴路由報(bào)文;其中,所述ip前綴路由報(bào)文攜帶所述第四vm的mac地址。
第二學(xué)習(xí)單元560(圖中未示出),用于根據(jù)所述ip前綴路由報(bào)文攜帶的所述第四vm的ip地址和mac地址學(xué)習(xí)對(duì)應(yīng)于所述第四vm的arp表項(xiàng)。
第二返回單元570(圖中未示出),用于當(dāng)接收到所述第一vm發(fā)送的請(qǐng)求所述第四vm的mac地址的arp請(qǐng)求報(bào)文時(shí),將已學(xué)習(xí)到的對(duì)應(yīng)于所述第四vm的arp表項(xiàng)返回所述第一vm。
本申請(qǐng)vxlan控制平面的優(yōu)化裝置的實(shí)施例可以應(yīng)用在本端vtep設(shè)備上。裝置實(shí)施例可以通過(guò)軟件實(shí)現(xiàn),也可以通過(guò)硬件或者軟硬件結(jié)合的方式實(shí)現(xiàn)。以軟件實(shí)現(xiàn)為例,作為一個(gè)邏輯意義上的裝置,是通過(guò)其所在本端vtep設(shè)備的處理器將非易失性存儲(chǔ)器中對(duì)應(yīng)的計(jì)算機(jī)程序指令讀取到內(nèi)存中運(yùn)行形成的。從硬件層面而言,如圖6所示,為本申請(qǐng)vxlan控制平面的優(yōu)化裝置所在本端vtep設(shè)備的一種硬件結(jié)構(gòu)圖,除了圖6所示的處理器、內(nèi)存、網(wǎng)絡(luò)接口、以及非易失性存儲(chǔ)器之外,實(shí)施例中裝置所在的本端vtep設(shè)備通常根據(jù)該vxlan控制平面的優(yōu)化裝置的實(shí)際功能,還可以包括其他硬件,對(duì)此不再贅述。
上述裝置中各個(gè)單元的功能和作用的實(shí)現(xiàn)過(guò)程具體詳見(jiàn)上述方法中對(duì)應(yīng)步驟的實(shí)現(xiàn)過(guò)程,在此不再贅述。
對(duì)于裝置實(shí)施例而言,由于其基本對(duì)應(yīng)于方法實(shí)施例,所以相關(guān)之處參見(jiàn)方法實(shí)施例的部分說(shuō)明即可。以上所描述的裝置實(shí)施例僅僅是示意性的,其中所述作為分離部件說(shuō)明的單元可以是或者也可以不是物理上分開(kāi)的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上。可以根據(jù)實(shí)際的需要選擇其中的部分或者全部模塊來(lái)實(shí)現(xiàn)本申請(qǐng)方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動(dòng)的情況下,即可以理解并實(shí)施。
以上所述僅為本申請(qǐng)的較佳實(shí)施例而已,并不用以限制本申請(qǐng),凡在本申請(qǐng)的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本申請(qǐng)保護(hù)的范圍之內(nèi)。