EVPN與VXLAN
EVPN(Ethernet Virtual Private Network)是一種用于二層網(wǎng)絡(luò)互聯(lián)的VPN技術(shù)。EVPN技術(shù)采用類似于BGP/MPLS IP VPN的機(jī)制,在BGP協(xié)議的基礎(chǔ)上定義了一種新的網(wǎng)絡(luò)層可達(dá)信息NLRI(Network Layer Reachability Information)即EVPN NLRI,EVPN NLRI定義了幾種新的BGP EVPN路由類型,用于處在二層網(wǎng)絡(luò)的不同站點(diǎn)之間的MAC地址學(xué)習(xí)和發(fā)布。
原有的VXLAN實(shí)現(xiàn)方案沒(méi)有控制平面,是通過(guò)數(shù)據(jù)平面的流量泛洪進(jìn)行VTEP發(fā)現(xiàn)和主機(jī)信息(包括IP地址、MAC地址、VNI、網(wǎng)關(guān)VTEP IP地址)學(xué)習(xí)的,這種方式導(dǎo)致VXLAN網(wǎng)絡(luò)存在很多泛洪流量。為了解決這一問(wèn)題,VXLAN引入了EVPN作為控制平面,通過(guò)在VTEP之間交換BGP EVPN路由實(shí)現(xiàn)VTEP的自動(dòng)發(fā)現(xiàn)、主機(jī)信息相互通告等功能,從而避免了不必要的數(shù)據(jù)流量泛洪。
在EVPN VXLAN場(chǎng)景中,控制平面的流程包括VXLAN隧道建立、MAC地址動(dòng)態(tài)學(xué)習(xí);轉(zhuǎn)發(fā)平面的流程包括同子網(wǎng)已知單播報(bào)文轉(zhuǎn)發(fā)、同子網(wǎng)BUM(Broadcast&Unknown-unicast&Multicast)報(bào)文轉(zhuǎn)發(fā)、跨子網(wǎng)報(bào)文轉(zhuǎn)發(fā)。EVPN VXLAN有集中式網(wǎng)關(guān)部署和分布式網(wǎng)關(guān)部署兩種部署場(chǎng)景,下面分別對(duì)兩場(chǎng)景的各個(gè)流程進(jìn)行介紹。
VXLAN隧道建立
VXLAN隧道由一對(duì)VTEP IP地址確定,創(chuàng)建VXLAN隧道實(shí)際上是兩端VTEP獲取對(duì)端VTEP IP地址的過(guò)程,只要對(duì)端VTEP IP地址是三層路由可達(dá)的,VXLAN隧道就可以建立成功。
通過(guò)BGP EVPN方式動(dòng)態(tài)建立VXLAN隧道,就是在兩端VTEP之間建立BGP EVPN對(duì)等體,然后對(duì)等體之間利用BGP EVPN路由來(lái)互相傳遞VNI和VTEP IP地址信息,從而實(shí)現(xiàn)動(dòng)態(tài)建立VXLAN隧道。
集中式網(wǎng)關(guān)場(chǎng)景
如下圖所示,VTEP2上部署了兩個(gè)Host,VTEP3上部署了一個(gè)Host,VTEP1上部署三層網(wǎng)關(guān)。
-
為了實(shí)現(xiàn)Host3和Host2之間的通信,需要在VTEP2和VTEP3之間創(chuàng)建VXLAN隧道;
-
為了實(shí)現(xiàn)Host1和Host2之間的通信,需要在VTEP2和VTEP1之間以及VTEP1和VTEP3之間創(chuàng)建VXLAN隧道。
-
對(duì)于Host1和Host3之間的通信,雖然都屬于VTEP2,但由于屬于不同子網(wǎng),需要經(jīng)過(guò)三層網(wǎng)關(guān)VTEP1,因此也需要在VTEP2和VTEP1之間創(chuàng)建VXLAN隧道。
下面以VTEP2和VTEP3為例,介紹一下通過(guò)BGP EVPN方式動(dòng)態(tài)建立VXLAN隧道的過(guò)程:
-
首先在VTEP2和VTEP3之間建立BGP EVPN對(duì)等體。然后,在VTEP2和VTEP3上分別創(chuàng)建二層廣播域,并在二層廣播域下配置關(guān)聯(lián)的VNI。接下來(lái)在二層廣播域下創(chuàng)建EVPN實(shí)例,配置本端EVPN實(shí)例的RD、出方向VPN-Target(ERT)、入方向VPN-Target(IRT)。
-
在配置完本端VTEP IP地址后,VTEP2和VTEP3會(huì)生成BGP EVPN路由并發(fā)送給對(duì)端,該路由攜帶本端EVPN實(shí)例的出方向VPN-Target和BGP EVPN協(xié)議新定義的Type3路由(Inclusive Multicast路由)。
如下圖所示,Type3路由由前綴和PMSI屬性組成,VTEP IP地址存放在前綴的Originating Router's IP Address字段中,VNI存放在PMSI屬性的MPLS Label字段中。 -
VTEP2和VTEP3在收到對(duì)端發(fā)來(lái)的BGP EVPN路由后,首先檢查該路由攜帶的EVPN實(shí)例的出方向VPN-Target,如果與本端EVPN實(shí)例的入方向VPN-Target相等,則接收該路由,否則丟棄該路由。
-
在接收該路由后,VTEP2和VTEP3將獲取其中攜帶的對(duì)端VTEP IP地址和VNI,如果對(duì)端VTEP IP地址是三層路由可達(dá)的,則建立一條到對(duì)端的VXLAN隧道;同時(shí),如果對(duì)端VNI與本端相同,則創(chuàng)建一個(gè)頭端復(fù)制表,用于后續(xù)BUM報(bào)文轉(zhuǎn)發(fā)。
VTEP2和VTEP1之間、VTEP3和VTEP1之間通過(guò)BGP EVPN方式動(dòng)態(tài)建立VXLAN隧道的過(guò)程與上述類似。
說(shuō)明:
VPN-Target是一種BGP擴(kuò)展團(tuán)體屬性,一個(gè)EVPN實(shí)例可以配置出方向和入方向兩類VPN-Target,兩端EVPN實(shí)例的VPN-Target要相互匹配(即本端EVPN實(shí)例配置的出方向VPN-target值需要與對(duì)端EVPN實(shí)例配置的入方向VPN-target值相等),才能相互交換EVPN路由,否則VXLAN隧道無(wú)法建立成功。
分布式網(wǎng)關(guān)場(chǎng)景
如下圖所示,VTEP同時(shí)作為二層網(wǎng)關(guān)和三層網(wǎng)關(guān),Switch1節(jié)點(diǎn)不感知VXLAN隧道,只作為VXLAN報(bào)文的轉(zhuǎn)發(fā)節(jié)點(diǎn)??刂破矫嬷恍柙赩TEP之間建立VXLAN隧道。
-
VTEP1與VTEP2之間建立VXLAN隧道用于Host1和Host2、Host3和Host2之間的通信。
-
對(duì)于Host1和Host3之間的通信,由于都屬于VTEP1,所以互訪的流量只需在VTEP1上處理,無(wú)需通過(guò)VXLAN隧道轉(zhuǎn)發(fā)。
當(dāng)處于同一子網(wǎng)的Host3與Host2互通時(shí),只需要進(jìn)行二層轉(zhuǎn)發(fā)。通過(guò)BGP EVPN方式建立VXLAN隧道的過(guò)程和集中式網(wǎng)關(guān)部署場(chǎng)景建立VXLAN的過(guò)程相同。
當(dāng)處于不同子網(wǎng)的Host1與Host2互通時(shí),需要進(jìn)行三層轉(zhuǎn)發(fā),因此在通過(guò)BGP EVPN方式建立VXLAN隧道的過(guò)程中,網(wǎng)關(guān)VTEP1和VTEP2需要發(fā)布下屬主機(jī)的IP路由。建立VXLAN隧道之前,需要在VTEP1和VTEP2上進(jìn)行如下配置準(zhǔn)備:
配置任務(wù) |
作用 |
創(chuàng)建二層廣播域(BD),并在二層廣播域下配置關(guān)聯(lián)的二層VNI。 |
創(chuàng)建VXLAN網(wǎng)絡(luò)轉(zhuǎn)發(fā)數(shù)據(jù)報(bào)文的實(shí)體。 |
在VTEP1和VTEP2之間建立BGP EVPN對(duì)等體。 |
用于交換BGP EVPN路由。 |
創(chuàng)建EVPN實(shí)例并綁定BD域,配置EVPN實(shí)例的RD、出方向VPN-Target(ERT)、入方向VPN-Target(IRT)。 |
用于生成BGP EVPN路由。 |
為不同租戶創(chuàng)建VPN實(shí)例,將VPN實(shí)例綁定到指定二層廣播域的VBDIF接口上。 |
用于區(qū)分和隔離不同租戶的IP路由表。 |
為VPN實(shí)例指定關(guān)聯(lián)的三層VNI。 |
用于VTEP節(jié)點(diǎn)在收到數(shù)據(jù)報(bào)文時(shí)判斷使用哪個(gè)VPN實(shí)例的路由表指導(dǎo)轉(zhuǎn)發(fā)。 |
配置VPN實(shí)例到EVPN實(shí)例的出方向VPN-Target(eERT),以及從EVPN實(shí)例到VPN實(shí)例的入方向VPN-Target(eIRT)。 |
用于控制本端VPN實(shí)例與對(duì)端EVPN實(shí)例之間BGP EVPN路由的發(fā)布和接收。 |
配置VTEP1和VTEP2之間發(fā)布的路由類型。 |
用于發(fā)布Host1和Host2的主機(jī)IP路由。這里有IRB和IP前綴兩種路由類型,可根據(jù)如下原則進(jìn)行選擇:
|
根據(jù)主機(jī)IP路由發(fā)布方式的不同,動(dòng)態(tài)建立VXLAN隧道的過(guò)程有以下兩種:
通過(guò)IRB類型路由發(fā)布主機(jī)IP路由
-
Host1首次與VTEP1通信時(shí),通過(guò)動(dòng)態(tài)ARP報(bào)文,VTEP1學(xué)習(xí)到Host1的ARP表項(xiàng)。同時(shí),VTEP1根據(jù)Host1所在的二層廣播域找到綁定VBDIF接口的VPN實(shí)例,獲取關(guān)聯(lián)的三層VNI。然后VTEP1上的EVPN實(shí)例根據(jù)上述信息生成IRB類型路由,如下圖所示。其中,主機(jī)IP地址存放在IP Address Length和IP Address字段中,三層VNI存放在MPLS Label2字段中。
-
VTEP1上的EVPN實(shí)例從IRB類型路由中獲取Host1的主機(jī)IP地址、三層VNI,發(fā)給本端VPN實(shí)例,VPN實(shí)例在其路由表中保存Host1的主機(jī)IP路由,如下圖所示。
-
VTEP1向VTEP2發(fā)送BGP EVPN路由,該路由攜帶本端EVPN實(shí)例的ERT、擴(kuò)展團(tuán)體屬性、路由下一跳屬性以及IRB類型路由。其中,擴(kuò)展團(tuán)體屬性攜帶的是隧道類型(取值是VXLAN隧道)、本端VTEP的MAC地址;路由下一跳屬性攜帶的是本端的VTEP IP地址。
-
VTEP2收到VTEP1發(fā)來(lái)的BGP EVPN路由后,同時(shí)進(jìn)行如下處理:
-
檢查該路由攜帶的ERT,如果與本端EVPN實(shí)例的IRT相同,則接收該路由。EVPN實(shí)例獲取到IRB類型路由后,還能提取到其中包含的ARP類型路由,用于主機(jī)ARP通告。
-
檢查該路由攜帶的ERT,如果與本端VPN實(shí)例的eIRT相同,則接收該路由。然后,VPN實(shí)例獲取到該路由攜帶的IRB類型路由,從中提取Host1的主機(jī)IP地址、三層VNI,在其路由表中保存Host1的主機(jī)IP路由,并根據(jù)路由的下一跳迭代出接口,最終迭代結(jié)果是指向VTEP1的VXLAN隧道,如下圖所示。
說(shuō)明:
只有當(dāng)BGP EVPN路由攜帶的ERT與本端EVPN實(shí)例的IRT、本端VPN實(shí)例的eIRT都不同時(shí),才會(huì)丟棄該路由。
-
在通過(guò)EVPN實(shí)例或VPN實(shí)例接收該路由后,VTEP2通過(guò)下一跳屬性獲取VTEP1的VTEP IP地址,如果該VTEP IP地址是三層路由可達(dá)的,則建立一條到VTEP1的VXLAN隧道。
VTEP1建立到VTEP2的VXLAN隧道的過(guò)程與上述相同。
通過(guò)IP前綴類型路由發(fā)布主機(jī)IP路由
-
首先在VTEP1上將Host1的主機(jī)IP地址生成直連路由,然后在VTEP1上配置VPN實(shí)例引入直連路由,這樣Host1的主機(jī)IP路由就保存到VPN實(shí)例的路由表中,并添加VPN實(shí)例關(guān)聯(lián)的三層VNI。
-
在VTEP1上配置VPN實(shí)例向EVPN實(shí)例發(fā)布IP路由后,VPN實(shí)例下Host1的主機(jī)IP路由將發(fā)布給EVPN實(shí)例。然后由EVPN實(shí)例生成IP前綴類型路由,如下圖所示。其中,主機(jī)IP地址存放在IP Prefix Length和IP Prefix字段中,三層VNI存放在MPLS Label字段中。
-
VTEP1向VTEP2發(fā)送BGP EVPN路由,該路由攜帶本端VPN實(shí)例的eERT、擴(kuò)展團(tuán)體屬性、路由下一跳屬性以及IP前綴類型路由。其中,擴(kuò)展團(tuán)體屬性攜帶的是隧道類型(取值是VXLAN隧道)、本端VTEP的MAC地址;路由下一跳屬性攜帶的是本端的VTEP IP地址。
-
VTEP2收到VTEP1發(fā)來(lái)的BGP EVPN路由后,進(jìn)行如下處理:
-
檢查該路由攜帶的eERT,如果與本端VPN實(shí)例的eIRT相同,則接收該路由,否則丟棄該路由。然后,VPN實(shí)例獲取到該路由攜帶的IP前綴類型路由,從中提取Host1的主機(jī)IP地址、三層VNI,在其路由表中保存Host1的主機(jī)IP路由,并將路由的下一跳迭代出接口設(shè)置為VXLAN隧道接口,如下圖所示。
-
在通過(guò)VPN實(shí)例接收該路由后,VTEP2通過(guò)下一跳屬性獲取VTEP1的VTEP IP地址,如果該VTEP IP地址是三層路由可達(dá)的,則建立一條到VTEP1的VXLAN隧道。
VTEP1建立到VTEP2的VXLAN隧道的過(guò)程與上述相同。
MAC地址動(dòng)態(tài)學(xué)習(xí)
在VXLAN網(wǎng)絡(luò)中,為了實(shí)現(xiàn)終端租戶的互通,支持MAC地址動(dòng)態(tài)學(xué)習(xí),不需要網(wǎng)絡(luò)管理員手工維護(hù),大大減少了維護(hù)工作量。
在集中式網(wǎng)關(guān)場(chǎng)景和分布式網(wǎng)關(guān)場(chǎng)景中,MAC地址動(dòng)態(tài)學(xué)習(xí)的過(guò)程相同。MAC地址動(dòng)態(tài)學(xué)習(xí)的過(guò)程如下:
-
Host3首次與VTEP2通信時(shí),通過(guò)動(dòng)態(tài)ARP報(bào)文,VTEP2學(xué)習(xí)到Host3的MAC地址、BD ID(二層廣播域標(biāo)識(shí))和報(bào)文入接口的對(duì)應(yīng)關(guān)系,并在本地MAC表中生成Host3的MAC表項(xiàng),其出接口為Port1。
-
VTEP2根據(jù)Host3的ARP表項(xiàng)生成BGP EVPN路由并發(fā)送給對(duì)等體VTEP3,該路由攜帶本端EVPN實(shí)例的出方向VPN-Target、路由下一跳屬性以及BGP EVPN協(xié)議的Type2路由即MAC/IP路由。其中,路由下一跳屬性攜帶的是本端VTEP IP地址;
Type2路由如下圖所示,Host3的MAC地址存放在MAC Address Length和MAC Address字段中,二層VNI存放在MPLS Label1字段中。 -
VTEP3收到VTEP2發(fā)來(lái)的BGP EVPN路由后,首先檢查該路由攜帶的EVPN實(shí)例的出方向VPN-Target,如果與本端EVPN實(shí)例的入方向VPN-Target相等,則接收該路由,否則丟棄該路由。
-
在接收該路由后,VTEP3獲得Host3的MAC地址、BD ID和VTEP2上VTEP IP地址(下一跳屬性)的對(duì)應(yīng)關(guān)系,并在本地的MAC表中生成Host3的MAC表項(xiàng),其出接口需根據(jù)下一跳進(jìn)行迭代,最終迭代結(jié)果是指向VTEP2的VXLAN隧道。
VTEP2學(xué)習(xí)Host2的主機(jī)MAC的過(guò)程與上述過(guò)程相同。
Host3初次與Host2通信時(shí),首先發(fā)送目的MAC為全F、目的IP為IP2的ARP請(qǐng)求報(bào)文,請(qǐng)求Host2的MAC地址。缺省情況下,VTEP2收到該ARP請(qǐng)求后將在本網(wǎng)段進(jìn)行廣播,為了減少?gòu)V播報(bào)文,此時(shí)可以在VTEP2上使能ARP廣播抑制功能。這樣當(dāng)VTEP2收到該ARP請(qǐng)求報(bào)文時(shí),先根據(jù)目的IP檢查本地是否有Host2的MAC地址,如果有則將目的MAC替換為Host2的MAC地址,將ARP請(qǐng)求的廣播報(bào)文變?yōu)閱尾?bào)文,然后通過(guò)VXLAN隧道發(fā)給VTEP3。VTEP3收到后轉(zhuǎn)發(fā)給Host2,Host2收到該ARP請(qǐng)求后學(xué)習(xí)到Host3的MAC地址,并以單播形式進(jìn)行ARP應(yīng)答。Host3收到ARP應(yīng)答報(bào)文后學(xué)習(xí)到Host2的MAC地址。至此,Host3和Host2互相學(xué)習(xí)到對(duì)方的MAC地址,后續(xù)雙方將采用單播通信。
說(shuō)明:
在集中式網(wǎng)關(guān)場(chǎng)景中,在跨子網(wǎng)主機(jī)互通時(shí),只需在主機(jī)和三層網(wǎng)關(guān)之間進(jìn)行MAC地址動(dòng)態(tài)學(xué)習(xí),MAC地址動(dòng)態(tài)學(xué)習(xí)過(guò)程與與上述過(guò)程相同。
同子網(wǎng)已知單播報(bào)文轉(zhuǎn)發(fā)
同子網(wǎng)已知單播報(bào)文轉(zhuǎn)發(fā)只在VXLAN二層網(wǎng)關(guān)之間進(jìn)行,三層網(wǎng)關(guān)無(wú)需感知。在集中式網(wǎng)關(guān)場(chǎng)景和分布式網(wǎng)關(guān)場(chǎng)景中,同子網(wǎng)已知單播報(bào)文轉(zhuǎn)發(fā)流程相同。報(bào)文轉(zhuǎn)發(fā)流程如下:
-
VTEP2收到來(lái)自Host3的報(bào)文,根據(jù)報(bào)文接入的端口和攜帶的VLAN信息獲取對(duì)應(yīng)的二層廣播域,并在該二層廣播域內(nèi)查找出接口和封裝信息。
-
VTEP2根據(jù)查找到的封裝信息對(duì)數(shù)據(jù)報(bào)文進(jìn)行VXLAN封裝,然后根據(jù)查找到的出接口進(jìn)行報(bào)文轉(zhuǎn)發(fā)
-
VTEP3收到VXLAN報(bào)文后,根據(jù)UDP目的端口號(hào)、源/目的IP地址、VNI判斷VXLAN報(bào)文的合法有效性。然后依據(jù)VNI獲取對(duì)應(yīng)的二層廣播域,進(jìn)行VXLAN解封裝,獲取內(nèi)層的二層報(bào)文。
-
VTEP3根據(jù)內(nèi)層二層報(bào)文的目的MAC,從本地MAC表找到對(duì)應(yīng)的出接口和封裝信息,對(duì)報(bào)文進(jìn)行VLAN Tag的相應(yīng)處理,轉(zhuǎn)發(fā)給對(duì)應(yīng)的主機(jī)Host2。
Host2向Host3發(fā)送報(bào)文的過(guò)程類似
同子網(wǎng)BUM報(bào)文轉(zhuǎn)發(fā)
同子網(wǎng)BUM報(bào)文轉(zhuǎn)發(fā)只在VXLAN二層網(wǎng)關(guān)之間進(jìn)行,三層網(wǎng)關(guān)無(wú)需感知。在集中式網(wǎng)關(guān)場(chǎng)景和分布式網(wǎng)關(guān)場(chǎng)景中,同子網(wǎng)BUM報(bào)文轉(zhuǎn)發(fā)方式相同,采用頭端復(fù)制方式。轉(zhuǎn)發(fā)流程如下:
-
VTEP1收到來(lái)自終端A的報(bào)文,根據(jù)報(bào)文中接入的端口和VLAN信息獲取對(duì)應(yīng)的二層廣播域。
-
VTEP1根據(jù)對(duì)應(yīng)的二層廣播域獲取對(duì)應(yīng)VNI的頭端復(fù)制列表,依據(jù)頭端復(fù)制列表進(jìn)行報(bào)文的VXLAN封裝,并將報(bào)文發(fā)送給頭端復(fù)制列表中的所有出端口VTEP。
-
VTEP2/VTEP3收到VXLAN報(bào)文后,根據(jù)UDP目的端口號(hào)、源/目的IP地址、VNI判斷VXLAN報(bào)文的合法有效性。然后依據(jù)VNI獲取對(duì)應(yīng)的二層廣播域,進(jìn)行VXLAN解封裝,獲取內(nèi)層二層報(bào)文。
-
VTEP2/VTEP3檢查內(nèi)層二層報(bào)文的目的MAC,發(fā)現(xiàn)是BUM MAC,在對(duì)應(yīng)的二層廣播域內(nèi)的非VXLAN隧道側(cè)進(jìn)行廣播處理,即:VTEP2/VTEP3分別從本地MAC表中找到非VXLAN隧道側(cè)的所有出接口和封裝信息,對(duì)報(bào)文進(jìn)行VLAN Tag的相應(yīng)處理,轉(zhuǎn)發(fā)給對(duì)應(yīng)的終端B/C。
說(shuō)明:
終端B/C向終端A回應(yīng)報(bào)文,參考同子網(wǎng)已知單播報(bào)文轉(zhuǎn)發(fā)。
跨子網(wǎng)報(bào)文轉(zhuǎn)發(fā)
跨子網(wǎng)報(bào)文轉(zhuǎn)發(fā)需要通過(guò)三層網(wǎng)關(guān)實(shí)現(xiàn)。
集中式網(wǎng)關(guān)場(chǎng)景
在集中式網(wǎng)關(guān)場(chǎng)景中,跨子網(wǎng)報(bào)文轉(zhuǎn)發(fā)的流程如下圖所示:
-
VTEP2收到來(lái)自Host1的報(bào)文,根據(jù)報(bào)文中接入的端口和VLAN信息獲取對(duì)應(yīng)的二層廣播域,在對(duì)應(yīng)的二層廣播域內(nèi)查找出接口和封裝信息。
-
VTEP2根據(jù)查找到的出接口和封裝信息進(jìn)行VXLAN封裝,向VTEP1轉(zhuǎn)發(fā)報(bào)文。
-
VTEP1收到VXLAN報(bào)文后進(jìn)行解封裝,發(fā)現(xiàn)內(nèi)層報(bào)文中的目的MAC是三層網(wǎng)關(guān)接口VBDIF10的MAC地址MAC3,判斷需要進(jìn)行三層轉(zhuǎn)發(fā)。
-
VTEP1剝除內(nèi)層報(bào)文的以太封裝,解析目的IP。根據(jù)目的IP查找路由表,找到目的IP的下一跳地址,再根據(jù)下一跳地址查找ARP表項(xiàng),獲取目的MAC、VXLAN隧道出接口及VNI等信息。
-
VTEP1重新封裝VXLAN報(bào)文,向VTEP3轉(zhuǎn)發(fā)。其中內(nèi)層報(bào)文以太頭中的源MAC是三層網(wǎng)關(guān)接口VBDIF20的MAC地址MAC4。
-
VTEP3收到VXLAN報(bào)文后,根據(jù)UDP目的端口號(hào)、源/目的IP地址、VNI判斷VXLAN報(bào)文的合法有效性。依據(jù)VNI獲取對(duì)應(yīng)的二層廣播域,然后進(jìn)行VXLAN解封裝,獲取內(nèi)層二層報(bào)文,并在對(duì)應(yīng)的二層廣播域內(nèi)查找出接口和封裝信息。
-
VTEP3根據(jù)查找到的出接口和封裝信息,對(duì)報(bào)文進(jìn)行VLAN Tag的相應(yīng)處理,轉(zhuǎn)發(fā)給對(duì)應(yīng)的Host2。
Host2向Host1發(fā)送報(bào)文的過(guò)程類似。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-519046.html
分布式網(wǎng)關(guān)場(chǎng)景
在分布式網(wǎng)關(guān)場(chǎng)景中,跨子網(wǎng)報(bào)文轉(zhuǎn)發(fā)的流程如下:
-
VTEP1收到來(lái)自Host1的報(bào)文,檢測(cè)到報(bào)文的目的MAC是網(wǎng)關(guān)接口MAC,判斷該報(bào)文需要進(jìn)行三層轉(zhuǎn)發(fā)。
-
VTEP1根據(jù)報(bào)文的入接口找到對(duì)應(yīng)的二層廣播域,然后找到綁定該廣播域VBDIF接口的VPN實(shí)例。根據(jù)報(bào)文的目的IP地址,查找該VPN實(shí)例下的路由表(如下圖所示),獲取該路由對(duì)應(yīng)的三層VNI,以及下一跳地址。再根據(jù)出接口是VXLAN隧道,判斷需要進(jìn)行VXLAN封裝:
-
根據(jù)VXLAN隧道的目的IP和源IP地址,獲取對(duì)應(yīng)的MAC地址,并將內(nèi)層目的MAC和源MAC替換。
-
將三層VNI封裝到報(bào)文中。
-
外層封裝VXLAN隧道的目的IP和源IP地址,源MAC地址為VTEP1的VBDIF接口MAC地址,目的MAC地址為網(wǎng)絡(luò)下一跳的MAC地址。
-
封裝后的報(bào)文根據(jù)外層MAC和IP信息在IP網(wǎng)絡(luò)中傳輸,送達(dá)VTEP2。
-
VTEP2收到VXLAN報(bào)文后進(jìn)行解封裝,檢測(cè)到報(bào)文的目的MAC是自己的MAC地址,判斷該報(bào)文需要進(jìn)行三層轉(zhuǎn)發(fā)。
-
VTEP2根據(jù)報(bào)文攜帶的三層VNI找到對(duì)應(yīng)的VPN實(shí)例,通過(guò)查找該VPN實(shí)例下的路由表(如下圖所示),獲取報(bào)文的下一跳是網(wǎng)關(guān)接口地址,然后將目的MAC地址替換為Host2的MAC地址,源MAC地址替換為VTEP2的MAC地址,轉(zhuǎn)發(fā)給Host2。
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-519046.html
Host2向Host1發(fā)送報(bào)文的過(guò)程類似。
到了這里,關(guān)于EVPN VXLAN 運(yùn)行機(jī)制的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!