那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

20張圖帶你詳解EVPN

Linux愛好者 ? 來源:Linux愛好者 ? 2023-12-01 16:28 ? 次閱讀

前言

本文介紹了EVPN(Ethernet VPN)的基本概念,EVPN基于MP-BGP,定義了一系列新的BGP EVPN路由類型,EVPN可以作為VXLAN的控制面。閱讀本文,您還可以了解BGP EVPN幾種新路由的格式和工作場景,了解EVPN在作為VXLAN控制面時是如何傳遞路由、幫助設備建立VXLAN隧道的。

a9f85670-8ffd-11ee-939d-92fbcf53809c.png

正文

EVPN簡介 EVPN基本概念

為什么會有EVPN(Ethernet VPN)呢?最初的VXLAN方案(RFC7348)中沒有定義控制平面,是手工配置VXLAN隧道,然后通過流量泛洪的方式進行主機地址的學習。這種方式實現上較為簡單,但是會導致網絡中存在很多泛洪流量、網絡擴展起來困難。

為了解決上述問題,人們在VXLAN中引入了EVPN(Ethernet VPN)作為VXLAN的控制平面,如圖1-1所示(VXLAN是一種NVO協議)。EVPN還能作為一些其他協議的控制面,本文僅描述EVPN作為VXLAN的控制面的相關信息

a9fc18a0-8ffd-11ee-939d-92fbcf53809c.png

圖1-1 將EVPN作為VXLAN的控制平面

EVPN參考了BGP/MPLS IP VPN的機制,通過擴展BGP協議新定義了幾種BGP EVPN路由,通過在網絡中發布EVPN路由來實現VTEP的自動發現、主機地址學習等行為。采用EVPN作為VXLAN的控制平面具有以下優勢:

可實現VTEP自動發現、VXLAN隧道自動建立,從而降低網絡部署、擴展的難度。

EVPN可以同時發布二層MAC和三層路由信息。

可以減少網絡中泛洪流量。

MP-BGP基本概念

在深入理解EVPN的工作原理前,我們先對MP-BGP(MultiProtocol BGP)做下簡單回顧:傳統的BGP-4使用Update報文在對等體之間交換路由信息。一條Update報文可以通告一類具有相同路徑屬性的可達路由,這些路由放在NLRI(Network Layer Reachable Information,網絡層可達信息)字段中。因為BGP-4只能管理IPv4單播路由信息,為了提供對多種網絡層協議的支持(例如IPv6、組播),發展出了MP-BGP。MP-BGP在BGP-4基礎上對NLRI作了新擴展。玄機就在于新擴展的NLRI上,擴展之后的NLRI增加了地址族的描述,可以用來區分不同的網絡層協議,例如IPv6單播地址族、VPN實例地址族等。

類似的,EVPN也是借用了MP-BGP的機制,在L2VPN地址族下定義了新的子地址族——EVPN地址族,在這個地址族下又新增了一種NLRI,即EVPN NLRI。EVPN NLRI定義了幾種BGP EVPN路由類型,這些路由可以攜帶主機IP、MAC、VNI、VRF等信息。這樣,當一個VTEP學習到下掛的主機的IP、MAC地址信息后,就可以通過MP-BGP路由將這些信息發送給其他的VTEP,從而在控制平面實現主機IP、MAC地址的學習,抑制了數據平面的泛洪。

了解EVPN中的幾種路由類型

本節介紹EVPN NLRI中定義的幾種BGP EVPN路由類型的報文格式及其作用。

EVPN中定義的五種路由類型概覽

EVPN NLRI定義了如表1-1所示的五種EVPN路由類型。其中Type1~Type4是在RFC7432中定義的,Type5是在后來的草案中定義的。

表1-1 EVPN路由類型

aa0bdde4-8ffd-11ee-939d-92fbcf53809c.png

其中Type1和Type4是用于EVPN ESI場景,本文主要對常見的Type2、Type3、Type5類型的路由進行重點介紹。

EVPN Type2路由

格式說明

EVPN Type2路由,也就是MAC/IP路由,主要用于VTEP之間相互通告主機IP、MAC信息。Type2路由的NLRI部分格式如圖1-2所示。

aa1966ee-8ffd-11ee-939d-92fbcf53809c.png

圖1-2 Type2路由的報文格式

各字段的解釋如下表所示:

aa2c07d6-8ffd-11ee-939d-92fbcf53809c.png

應用說明

Type2路由在VXLAN網絡中的使用場景和作用參見下表。

表1-2 Type2路由使用場景說明

aa3d35f6-8ffd-11ee-939d-92fbcf53809c.png

EVPN Type3路由

格式說明

EVPN Type3路由主要用于在VTEP之間相互通告二層VNI、VTEP IP信息,以建立頭端復制列表,即用于VTEP的自動發現和VXLAN隧道的動態建立:如果對端VTEP IP地址是三層路由可達的,則建立一條到對端的VXLAN隧道。同時,如果對端VNI與本端相同,則創建一個頭端復制表,用于后續BUM報文轉發。

Type3路由的NLRI是由“前綴”和“PMSI”屬性組成,報文格式如圖1-3所示。其中VTEP IP信息體現在NLRI的Originating Router's IP Address字段中,二層VNI信息則體現在PMSI屬性的MPLS Label中。

aa4f6690-8ffd-11ee-939d-92fbcf53809c.png

圖1-3 Type3路由的報文格式

各字段的解釋如下表所示:

aa62714a-8ffd-11ee-939d-92fbcf53809c.png

應用說明

Type3路由動態建立頭端復制列表的過程簡介請參見本文的EVPN頭端復制列表的建立。

EVPN Type5路由

格式說明

EVPN Type5路由又稱IP前綴路由,主要用于傳遞網段路由。不同于Type2路由只傳遞32(IPv4)/128(IPv6)位的主機路由,Type5路由可傳遞0~32/0~128掩碼長度的網段路由。

Type5路由的報文格式如圖1-3所示。

aa72506a-8ffd-11ee-939d-92fbcf53809c.png

圖1-4 Type5路由的報文格式

各字段的解釋如下表所示:

aa870e74-8ffd-11ee-939d-92fbcf53809c.png

應用說明

該類型路由的IP Prefix Length和IP Prefix字段既可以攜帶主機IP地址,也可以攜帶網段地址:

當攜帶主機IP地址時,主要用于分布式網關場景中的主機/網段路由通告,請參見本文的網段路由發布。

當攜帶網段地址時,通過傳遞該類型路由,可以實現VXLAN網絡中的主機訪問外部網絡。

理解EVPN作為VXLAN控制面的工作過程

BGP EVPN在VXLAN網絡中是如何工作的呢?本節將為您介紹BGP EVPN作為VXLAN控制面的工作過程。

在用BGP EVPN方式部署分布式VXLAN網絡的場景中,控制平面的流程包括VXLAN隧道建立、MAC地址動態學習;轉發平面的流程包括同子網已知單播報文轉發、同子網BUM報文轉發、跨子網報文轉發。BGP EVPN方式實現的功能全面,支持主機IP路由通告、主機MAC地址通告、主機ARP通告等,還可以使能ARP廣播抑制功能。如果在VXLAN網絡中采用分布式網關,推薦使用BGP EVPN方式。

本文下面的內容以Underlay網絡和Overlay網絡均為IPv4為例,介紹EVPN作為VXLAN控制面的工作過程。

使用EVPN學習MAC地址

使用EVPN作為VXLAN的控制平面,可以用EVPN來進行MAC學習,以替代數據平面泛洪方式的MAC學習,減少泛洪流量。使用EVPN來進行MAC學習的過程,是通過在VTEP之間傳遞Type2路由完成的。

下面以圖1-5為例,介紹VTEP之間是如何通過EVPN來實現遠程主機的MAC學習的。

aa92cec6-8ffd-11ee-939d-92fbcf53809c.png

圖1-5 使用EVPN來學習遠程主機MAC地址的過程示意圖

圖中Leaf1和Leaf2作為VTEP,分別連接同網段的主機Host1和Host2,以Leaf1向Leaf2發送Type2路由為例。

1、Host1在連接至Leaf1時,通常會觸發ARP、DHCP等行為。通過這些流量,Leaf1上就會學習到Host1的MAC信息,記錄在本地MAC表中。

Leaf1學習到本地主機的MAC表項后,會向其對等體Leaf2發送EVPN Type2路由。該路由會攜帶本端EVPN實例的ERT、VTEP IP地址、二層VNI、Host1的MAC地址等信息。其中本端的EVPN實例的ERT、VTEP IP地址、二層VNI這些信息來源于本端VTEP上的配置,樣例如下:

[Leaf1]
bridge-domain 10
 vxlan vni 10    //二層VNI
 evpn
  route-distinguisher 10:1
  vpn-target 0:10 export-extcommunity    //EVPN實例的ERT
  vpn-target 100:5000 export-extcommunity
  vpn-target 0:10 import-extcommunity
#
interface Nve1
 source 1.1.1.1   //Leaf1的VTEP IP地址
 vni 10 head-end peer-list protocol bgp
#

2、Leaf2收到Leaf1發來的Type2路由后,能夠學習到Host1的MAC地址信息,并將其保存在MAC表中,其下一跳為Leaf1的VTEP IP地址。

需要說明的是,Leaf2收到Leaf1發送的EVPN路由時,能否接納該路由信息,是需要通過EVPN實例的RT(Route Target)值是否匹配來判斷的。RT是一種BGP擴展團體屬性,用于控制EVPN路由的發布與接收。也就是說,RT決定了本端的EVPN路由可以被哪些對端所接收,以及本端是否接收對端發來的EVPN路由。

RT屬性分為兩類:

ERT(Export RT):本端發送EVPN路由時,攜帶的RT屬性設置為ERT。

IRT(Import RT):本端在收到對端的EVPN路由時,將路由中攜帶的ERT與本端的IRT進行比較,只有兩者相等時才接收該路由,否則丟棄該路由。

在本例中,Leaf2上接收Leaf1發過來的EVPN路由,則需保證Leaf2上配置的IRT(Import RT)與Leaf1配置的ERT(Export RT)一致,例如Leaf2上EVPN中的IRT配置為0:10,與上文中Leaf1上的ERT一致:


[Leaf2]
bridge-domain 10
 vxlan vni 10    //二層VNI
 evpn
  route-distinguisher 10:2
  vpn-target 0:10 export-extcommunity    
  vpn-target 100:5000 export-extcommunity
  vpn-target 0:10 import-extcommunity   //EVPN實例的IRT
#

經過以上的流程,在未發送廣播請求的情況下,Leaf2就可以學習到Host1的MAC地址。類似的,Leaf1也可以學習到Host2的MAC地址。

另外需要強調的是,EVPN只是減少了網絡中的流量泛洪,并不會完全避免,例如在以下一些場景:

網絡中存在“靜默”主機的情況,這種情況下主機不會觸發ARP、DHCP等行為,導致VTEP學習不到本地主機MAC地址,從而也就無法發送MAC地址信息讓其他VTEP學習到。

主機首次通信的過程中,主機會發送ARP廣播請求報文,這種也會產生泛洪。這種情況還可以通過ARP廣播抑制功能來避免泛洪,此部分在后續章節會詳細描述,此處不再贅述。

EVPN頭端復制列表的建立

EVPN只能相對減少網絡中的流量泛洪,并不能完全避免。那么這些不能避免的BUM流量,還是需要建立頭端復制列表來進行轉發。

頭端復制列表的建立可以通過手工方式或者EVPN來建立,本文僅描述EVPN方式:

手工方式就是為逐個為每個VTEP指定其鄰居VTEP,每條列表都需要人工配置。

EVPN則是通過在VTEP之間發布Type3路由,可以為VTEP設備之間自動創建頭端復制列表。

下面以圖1-6為列,介紹VTEP之間是如何通過Type3路由建立頭端復制列表的。

aaab1378-8ffd-11ee-939d-92fbcf53809c.png

圖1-6 使用EVPN建立頭端復制列表示意圖

圖中Leaf1、Leaf2、Leaf3作為VTEP,以Leaf1向Leaf2、Leaf3發送路由為例。

1、在Leaf1上完成VTEP IP、二層VNI、EVPN實例等相關配置后(這些配置的樣例如下所示),Leaf1會向對等體Leaf2、Leaf3分別發送EVPN Type3路由。路由中會攜帶二層VNI、本端VTEP IP、EVPN實例的RD、出方向VPN-Target(ERT)等信息。

[Leaf1]
bridge-domain 10
 vxlan vni 10    //二層VNI
 evpn
  route-distinguisher 1:10    //EVPN實例的RD
  vpn-target 0:10 export-extcommunity    //EVPN實例的ERT
  vpn-target 100:5000 export-extcommunity
  vpn-target 0:10 import-extcommunity
#
interface Nve1
 source 1.1.1.1   //Leaf1的VTEP IP地址
 vni 10 head-end peer-list protocol bgp
#

2、Leaf2、Leaf3收到Leaf1發來的Type3路由后,如果Leaf1的VTEP IP三層路由可達,則建立一條到Leaf1的二層VXLAN隧道;同時,如果本地有相同的VNI,則建立一條頭端復制列表,用于后續廣播、組播、未知單播報文的轉發。

在Leaf2、Leaf3收到Leaf1發送的EVPN路由時,會基于路由攜帶的RT值(EVPN實例的ERT值)是否與本地EVPN實例的IRT值匹配,來判斷是否接納該路由。

經過以上的流程,Leaf2、Leaf3上就能建立到Leaf1的頭端復制列表,指導后續BUM報文的轉發。類似的,Leaf1上也會建立到Leaf2、Leaf3的頭端復制列表。

使用EVPN發布主機路由和網段路由

主機路由發布

EVPN Type2路由不僅可以發布主機MAC地址,還可以發布主機路由信息,這是因為Type2路由還可以攜帶32位掩碼的主機IP地址信息。主機路由的發布可以實現分布式網關場景下跨網段主機之間的互通。VTEP之間需要發布下屬主機的IP路由,否則對端VTEP就無法學習到該主機的路由信息,從而沒法進行三層轉發。簡單來說就是“你得告訴我你下面都接了什么網段的路由,否則我怎么知道要發給你呢”。

下面以圖1-7為列,介紹VTEP之間是如何使用EVPN來發布主機路由的。

aabd08c6-8ffd-11ee-939d-92fbcf53809c.png

圖1-7 使用EVPN發布主機路由的示意圖

圖中Leaf1和Leaf2作為VTEP,同時作為三層網關,分別連接不同網段的主機Host1和Host2,以Leaf1向Leaf2發送路由為例。

1、Host1在連接至Leaf1時,通常會觸發ARP、DHCP等行為。通過這些流量,Leaf1上就會學習到Host1的ARP信息。同時,還可以根據Host1所屬的BD域,獲取相應的二層VNI、L3 VPN實例及L3 VPN實例關聯的三層VNI信息。

為什么會有L3 VPN和三層VNI呢?因為同一個Leaf下可能接入多個租戶的服務器,而為了實現不同租戶之間的隔離,所以就在Leaf上通過創建不同的L3 VPN來隔離不同租戶的路由表,從而將不同租戶的路由存放在不同的私網路由表中。而三層VNI就是用來標識這些L3 VPN的,當Leaf節點收到對端發送來的數據報文時(報文會攜帶三層VNI),就根據其三層VNI找到相應的L3 VPN,通過查找該L3 VPN實例下的路由表來進行轉發。

Leaf1獲取的二層VNI、L3 VPN實例及L3 VPN實例關聯的三層VNI信息依賴的關鍵配置示例如下:

[Leaf1]
ip vpn-instance vpn1    //L3 VPN實例
 ipv4-family
  route-distinguisher 20:4
  vpn-target 100:5000 export-extcommunity evpn
  vpn-target 100:5000 import-extcommunity evpn
 vxlan vni 5000      //L3 VPN實例關聯的三層VNI
#
bridge-domain 10
 vxlan vni 10     //二層VNI
 evpn
  route-distinguisher 10:4
  vpn-target 0:10 export-extcommunity
  vpn-target 100:5000 export-extcommunity
  vpn-target 0:10 import-extcommunity
#
interface Vbdif10    //根據BD信息獲取三層Vbdif接口和此接口綁定的L3 VPN實例
 ip binding vpn-instance vpn1 
 ip address 192.168.1.1 255.255.255.0
 mac-address 0000-5e00-0102
 vxlan anycast-gateway enable
 arp collect host enable
#

以上這些總結起來就是Leaf1會獲取Host1的:IP + MAC + Host1所屬的二層VNI + VBDIF綁定的L3VPN實例的三層VNI,然后:

Leaf1上的EVPN實例就可以根據這些信息生成EVPN Type2類型的路由(參見上圖中的表格),除了獲取的Host1的相關信息外,還攜帶本端EVPN實例的ERT、路由下一跳(本端VTEP IP)、VTEP的MAC等信息,將其發送給對等體Leaf2。

Leaf1上的EVPN實例將Host1的IP + MAC + 三層VNI發給本端的L3 VPN實例,從而在本端的L3 VPN實例中生成本地Host1的路由。

2、Leaf2收到Leaf1發來的Type2路由后,能夠學習到Host1的IP地址信息,并將其保存在相應的路由表中,其下一跳為Leaf1的VTEP IP地址,同時記錄對應的三層VNI信息,處理過程如下:

檢查該路由的ERT與接收端EVPN實例的IRT是否相同。如果相同,則接收該路由,同時EVPN實例提取其中包含的主機IP+MAC信息,用于主機ARP通告。

檢查該路由的ERT與接收端L3VPN實例的IRT是否相同(如下表中的舉例所示)。如果相同,則接收該路由,同時L3VPN實例提取其中的主機IP地址+三層VNI信息,在其路由表中生成Host1的路由。該路由的下一跳會被設置為Leaf1的VXLAN隧道接口。

Leaf1(發送端)


ip vpn-instance vpn1
 ipv4-family
  route-distinguisher 20:2
  vpn-target 100:5000 export-extcommunity evpn
  vpn-target 100:5000 import-extcommunity evpn
 vxlan vni 5000
#
bridge-domain 10
 vxlan vni 10
 evpn
  route-distinguisher 10:2
  vpn-target 100:10 export-extcommunity
  vpn-target 100:5000 export-extcommunity   //發送端EVPN中的ERT
  vpn-target 100:10 import-extcommunity
#
Leaf2(接收端)


ip vpn-instance vpn1
 ipv4-family
  route-distinguisher 20:3
  vpn-target 100:5000 export-extcommunity evpn
  vpn-target 100:5000 import-extcommunity evpn   //接收端L3 VPN中的IRT(eIRT)
 vxlan vni 5000
#
bridge-domain 20
 vxlan vni 20
 evpn
  route-distinguisher 10:3
  vpn-target 100:20 export-extcommunity
  vpn-target 100:5000 export-extcommunity
  vpn-target 100:20 import-extcommunity
#

接收端EVPN實例或L3 VPN實例接收該路由后會通過下一跳獲取Leaf1的VTEP IP地址,如果該地址三層路由可達,則建立一條到Leaf1的VXLAN隧道。

經過以上的流程,Leaf2就可以學習到Host1的IP路由信息,后續轉發至Host1的報文時,可以根據查找路由表進行轉發。類似的,Leaf1也可以學習到Host2的IP路由信息。

網段路由發布

網段路由的發布流程與主機路由類似,區別在于網段路由是通過Type5路由發布的,Type2路由只能發布32/128位的主機路由。Type5路由也可以發布32/128位的主機路由,在發布32/128位的主機路由時,功能與Type2路由類似。

如果網關設備下連接的網段在整個網絡中唯一,則可以配置發布網段路由,否則不能配置發布網段路由。

aad522a8-8ffd-11ee-939d-92fbcf53809c.png

圖1-8 EVPN網段路由發布示意圖

下面以圖1-8為列,介紹VTEP之間是如何發布網段路由的。圖中Leaf1和Leaf2作為VTEP,同時作為三層網關,其中Leaf1連接一個192.168.1.0/24的網段。

Leaf1收集到本地IP網段路由,把該IP網段路由通過EVPN Type5路由發送給Leaf2。路由中攜帶有IP前綴、掩碼長度、對應VRF的三層VNI等信息(如上圖表格所示)。

Leaf2收到Leaf1發來的Type5路由后,能夠學習到IP網段路由信息,并將其保存在相應的路由表中,其下一跳為Leaf1的VTEP IP地址,同時記錄對應的三層VNI信息。

Leaf2收到Leaf1發送的EVPN路由時,根據EVPN路由攜帶的RT值(Type 5路由使用L3 VPN實例的ERT值填充)是否與本地L3 VPN實例的IRT值匹配,來將網段路由添加到對應VRF的路由表中。如果某VRF的IRT值與EVPN路由攜帶的RT值相同,則接收該路由,同時提取其中的網段路由+三層VNI信息,在其路由表中生成網段路由。該路由的下一跳會被設置為Leaf1的VTEP IP地址。同時,如果Leaf1的VTEP IP地址三層路由可達,則建立一條到Leaf1的VXLAN隧道。

Leaf1(發送端)


ip vpn-instance vpn1
 ipv4-family
  route-distinguisher 20:2
  vpn-target 100:5000 export-extcommunity evpn   //Type5路由中發送端的ERT使用L3 VPN實例中的ERT(eERT)
  vpn-target 100:5000 import-extcommunity evpn
 vxlan vni 5000
#
bridge-domain 10
 vxlan vni 10
 evpn
  route-distinguisher 10:2
  vpn-target 100:10 export-extcommunity
  vpn-target 100:5000 export-extcommunity
  vpn-target 100:10 import-extcommunity
#

Leaf2(接收端)


ip vpn-instance vpn1
 ipv4-family
  route-distinguisher 20:3
  vpn-target 100:5000 export-extcommunity evpn
  vpn-target 100:5000 import-extcommunity evpn   
//接收端L3 VPN實例中的IRT(eIRT)
 vxlan vni 5000
#
bridge-domain 20
 vxlan vni 20
 evpn
  route-distinguisher 10:3
  vpn-target 100:20 export-extcommunity
  vpn-target 100:5000 export-extcommunity
  vpn-target 100:20 import-extcommunity
#

經過以上的流程,Leaf2就可以學習到Leaf1的網段路由信息,后續轉發至該網段的報文時,可以根據查找路由表進行轉發。

VXLAN流量的轉發過程

本文下面的內容以Underlay網絡和Overlay網絡均為IPv4為例,介紹用BGP EVPN部署的分布式VXLAN網絡中,報文的轉發過程。

同子網報文轉發

同子網報文轉發為二層轉發,只在VXLAN二層網關之間進行,三層網關無需感知。

同子網已知單播報文轉發

如圖1-9所示,Host1和Host2同屬于一個子網,下面以Host1向Host2發送已知單播報文為例介紹報文在VXLAN網絡中的轉發流程。

aadfdd9c-8ffd-11ee-939d-92fbcf53809c.png

圖1-9 同子網已知單播報文轉發示意圖

Host1發送目的地址為Host2的報文。如果Host1沒有Host2的MAC地址,會先發送廣播ARP請求來獲取Host2的MAC地址,此處該過程不再詳述,認為Host1已經獲取了Host2的MAC地址。

Leaf1收到Host1的報文后,根據報文入端口VLAN信息判斷其所屬的BD,并在該BD內查找出接口(通過上一節使用EVPN學習MAC地址可以知道,Leaf1上會學習到Host2的MAC地址,出接口為VTEP 2.2.2.2)。然后Leaf1會對報文進行VXLAN封裝后轉發。

Leaf2接收到VXLAN報文后,根據報文中VNI獲取二層廣播域,進行VXLAN解封裝,獲取內層的二層報文。

Leaf2根據內層報文的目的MAC地址,從本地MAC表中找到對應的出接口,然后轉發給對應的主機Host2。

Host2向Host1發送報文的過程與上述過程相同。

同子網BUM報文轉發

如果是同子網的BUM報文(廣播、組播、未知單播),則會向同子網的所有VTEP發送一份廣播報文。

例如圖1-9所示,Host1向外發送廣播報文。Leaf1收到Host1的廣播報文后,根據報文入端口或VLAN信息判斷其所屬的BD,并在該BD內查找所有的隧道列表,依據獲取的隧道列表進行報文封裝后,向所有隧道發送報文,從而將報文轉發至同子網的Host2和Host3。

aaec2dae-8ffd-11ee-939d-92fbcf53809c.png

跨子網報文轉發

如圖1-10所示,在分布式網關場景下,Leaf1、Leaf2作為VXLAN的三層網關,進行VXLAN封裝及三層轉發,Spine僅作為VXLAN報文轉發節點,不進行VXLAN報文的處理。

aaf7cad8-8ffd-11ee-939d-92fbcf53809c.png

圖1-10 分布式網關場景下跨子網報文轉發示意圖

以Host1向Host2發送報文為例介紹報文在VXLAN網絡中的轉發流程:

因為Host1與Host2屬于不同網段,所以Host1會先將報文發送給網關(Leaf1),交由網關進行轉發。

Leaf1接收到來自Host1的報文,根據報文的目的地址判斷需要進行三層轉發。Leaf1根據報文入端口或VLAN信息判斷其所屬的BD,找到綁定該BD的L3VPN實例,然后在該L3VPN實例下查找路由表。在前面使用EVPN發布主機路由和網段路由章節已經介紹過,在分布式網關場景下,網關Leaf1會學習到Host2的主機路由。Leaf1根據路由獲取三層VNI、下一跳等信息,然后進行VXLAN封裝,將報文轉發至Leaf2。

Leaf2收到VXLAN報文后進行解封裝,根據報文攜帶的三層VNI找到對應的L3VPN實例,通過查找該L3VPN實例下的路由表,獲取報文的下一跳是網關接口地址,然后將目的MAC地址替換為Host2的MAC地址,源MAC地址替換為Leaf2網關的MAC地址,轉發給Host2。

Host2向Host1發送報文的過程與上述過程相同。

VXLAN網絡中的ARP廣播抑制

地址解析協議ARP(Address Resolution Protocol)用來將IP地址解析為MAC地址。網絡中同網段主機首次通信時,由于沒有目標主機的MAC地址信息,因此會發送ARP廣播請求來獲取目的MAC地址信息。ARP廣播請求報文在VXLAN網絡中會泛洪轉發,大量的ARP報文存在會占用過多的網絡資源,導致網絡性能下降。

為了抑制ARP廣播請求給網絡帶來的負面影響,可以通過ARP廣播抑制功能來盡可能的減少ARP報文在VXLAN網絡中的泛洪。ARP廣播抑制有兩種方式,一種是ARP廣播變單播的功能,另一種是ARP二層代答功能。

ARP廣播變單播

ARP廣播變單播,顧名思義,就是將ARP廣播報文轉變成ARP單播,從而以單播形式進行轉發。ARP廣播變單播的實現思路是在VXLAN三層網關上根據ARP生成ARP廣播抑制表(包括主機IP、MAC、VNI、VTEP IP信息),然后通過EVPN將主機信息發送給二層網關;二層網關在收到ARP廣播請求后,直接使用學習到的主機MAC替換原來的全F的廣播MAC,從而將廣播變為單播進行轉發。

ab0714e8-8ffd-11ee-939d-92fbcf53809c.png

圖1-11 ARP廣播變單播示意圖

以圖1-11所示的分布式網關為例,其中Host1和Host2屬于同一子網,但是部署在不同的VTEP下。ARP廣播變單播過程如下:

Leaf2通過Host2發送的ARP報文,可以學習到Host2的ARP表項。然后Leaf2可以根據ARP生成相應的ARP廣播抑制表,并通過EVPN向Leaf1發布,這樣Leaf1也可以學習到Host2的主機信息。

Host1初次訪問Host2,發送ARP廣播請求來獲取Host2的MAC地址。

Leaf1收到ARP廣播請求后,查詢ARP廣播抑制表。因為已經有Host2的主機信息,所以Leaf1將ARP請求報文中的全F的廣播目的MAC替換為Host2的MAC地址,將ARP廣播變為ARP單播,然后再進行VXLAN封裝后向Leaf2發送。如果Leaf1上沒有Host2的ARP廣播抑制表,那么依然按照正常的流程進行廣播。

Leaf2收到VXLAN報文并解封裝后,將ARP請求發送給Host2。

可以看出ARP廣播變單播功能強依賴于三層網關,需要三層網關學習到主機的ARP信息,如果三層網關學習不到主機ARP,就不能抑制ARP廣播。

ARP二層代答

ARP廣播變單播的抑制方式需要三層網關的存在,在純二層網絡中,由于不存在三層網關,沒有相應的ARP表項,也就無法生成ARP廣播抑制表進行ARP抑制。上述二層場景面臨的ARP抑制問題,就可以通過ARP二層代答功能來解決。

ARP二層代答的實現思路是在二層網關上偵聽主機ARP報文,獲取ARP報文中的主機信息并生成ARP廣播抑制表,然后通過EVPN將主機信息發送給其他二層網關;二層網關在收到ARP廣播請求后,根據ARP廣播抑制表中的主機信息,直接進行ARP代答。

ab20d6c6-8ffd-11ee-939d-92fbcf53809c.png

圖1-12 ARP二層代答示意圖

以圖1-12為例,其中Host1和Host2屬于同一子網,ARP二層代答過程如下:

Leaf2上開啟ARP二層代答功能后,Leaf2會偵聽主機發送的ARP報文。當Leaf2接收到Host2的ARP報文后,可以根據ARP生成相應的ARP廣播抑制表項,并通過EVPN向Leaf1發布,這樣Leaf1也可以學習到Host2的主機信息。

Host1初次訪問Host2,發送ARP廣播請求來獲取Host2的MAC地址。

Leaf1收到ARP廣播請求后,查詢ARP廣播抑制表。因為已經有Host2的主機信息,所以Leaf1直接對ARP請求進行代答。

如果Leaf1上沒有Host2的ARP廣播抑制表,那么依然按照正常的流程進行廣播。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 路由
    +關注

    關注

    0

    文章

    278

    瀏覽量

    41930
  • VTEP
    +關注

    關注

    0

    文章

    3

    瀏覽量

    9804
  • VxLAN
    +關注

    關注

    0

    文章

    24

    瀏覽量

    3870

原文標題:1萬字 20張圖帶你詳解 EVPN

文章出處:【微信號:LinuxHub,微信公眾號:Linux愛好者】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    VPN技術詳解

    VPN技術詳解 IPSEC  IPSEC是一種由IETF設計的端到端的確保基于IP通訊的數據安全性的機制。IPSEC支持對數據加密,同時確保數據
    發表于 04-01 11:06 ?3079次閱讀

    VPN技術詳解(二)

    VPN技術詳解(二) 引言 虛擬專用網絡可以實現不同網絡的組件和資源之間的相互連接。虛擬專用網
    發表于 04-01 11:07 ?811次閱讀

    cisco easyvpn 配置詳解

    cisco easyvpn 配置詳解,通過貼配置可以實現功能,是的
    發表于 11-19 16:39 ?4次下載

    什么是蒲公英vpn_蒲公英路由器帶你體驗vpn功能

    VPN路由器是廣泛應用的設備,今天我們就來詳細了解一下什么是vpn以及蒲公英路由器等方面的信息。看看vpn的功能的路由器有什么好處和優勢。
    發表于 01-03 11:55 ?1.9w次閱讀

    集成L2、L3服務的以太網VPN

    EVPN滿足高級以太網服務的演進需求 運營商通過EVPN可以簡化網絡并提升效率 EVPN讓運營商為其網絡選擇最佳方式 EVPN模型 以太網VPN
    的頭像 發表于 02-21 07:41 ?8283次閱讀
    集成L2、L3服務的以太網<b class='flag-5'>VPN</b>

    【技能秒get】5思維導帶你了解碳纖維及其復合材料

    5精美思維導帶你認知碳纖維及其復合材料。
    的頭像 發表于 05-09 16:49 ?8793次閱讀
    【技能秒get】5<b class='flag-5'>張</b>思維導<b class='flag-5'>圖</b><b class='flag-5'>帶你</b>了解碳纖維及其復合材料

    基于BGP MPLS的以太網VPN技術概述

    本文檔描述了基于BGP-MPLS的以太網VPNEVPN)的過程,這里描述的過程滿足RFC 7209“以太網VPNEVPN)的要求”中指定的要求。
    發表于 01-08 08:00 ?1次下載
    基于BGP MPLS的以太網<b class='flag-5'>VPN</b>技術概述

    5G承載網絡中的EVPN技術詳解

    EVPN是5G承載網絡最重要的技術之一,正如中國電信STN網絡表述的那樣,基于SRv6+EVPN構建。 01 VPLS技術不好用催生EVPN技術 認識EVPN之前,先回顧一下
    的頭像 發表于 02-26 11:33 ?1.1w次閱讀
    5G承載網絡中的<b class='flag-5'>EVPN</b>技術<b class='flag-5'>詳解</b>

    IP百科知識之什么是EVPN

    EVPN(Ethernet Virtual Private Network)是下一代全業務承載的VPN技術,解決了傳統L2VPN的不足,引入了控制平面。它利用BGP協議承載MAC可達信息,從控制平面
    的頭像 發表于 10-13 11:21 ?4699次閱讀

    EVPN是如何工作及如何控制平面收斂

    為了幫助解開這個魔法的神秘面紗,我的目標是幫助 EVPN 的新用戶理解 EVPN 是如何工作的以及控制平面是如何收斂的。在這篇文章中,我將重點介紹基本的第 2 層( L2 )構建塊,然后逐步擴展到第 3 層( L3 )連接和控制平面。
    的頭像 發表于 04-08 15:21 ?1768次閱讀

    利用EVPN實現子網間路由的非對稱或對稱模型

    和外部網絡可以通過 EVPN 外部路由到達。 Cumulus Linux 3.6 版本支持帶有非對稱模型的 EVPN 外部路由,僅將 L3VNI 用于外部路由。
    的頭像 發表于 04-08 15:29 ?2951次閱讀
    利用<b class='flag-5'>EVPN</b>實現子網間路由的非對稱或對稱模型

    HAS 2023|一帶你了解Net5.5G

    點擊“閱讀原文”,了解更多大會信息! 原文標題:HAS 2023|一帶你了解Net5.5G 文章出處:【微信公眾號:華為數據通信】歡迎添加關注!文章轉載請注明出處。
    的頭像 發表于 04-14 21:10 ?785次閱讀
    HAS 2023|一<b class='flag-5'>張</b><b class='flag-5'>圖</b><b class='flag-5'>帶你</b>了解Net5.5G

    1萬字 20帶你詳解EVPN

    EVPN參考了BGP/MPLS IP VPN的機制,通過擴展BGP協議新定義了幾種BGP EVPN路由,通過在網絡中發布EVPN路由來實現VTEP的自動發現、主機地址學習等行為。采用
    的頭像 發表于 10-29 16:49 ?1319次閱讀
    1萬字 <b class='flag-5'>20</b><b class='flag-5'>張</b><b class='flag-5'>圖</b><b class='flag-5'>帶你</b><b class='flag-5'>詳解</b><b class='flag-5'>EVPN</b>

    4帶你看懂齊納二極管工作原理

    4帶你看懂齊納二極管工作原理
    的頭像 發表于 12-05 14:47 ?1081次閱讀
    4<b class='flag-5'>張</b>動<b class='flag-5'>圖</b><b class='flag-5'>帶你</b>看懂齊納二極管工作原理

    智慧公交是什么?一文帶你詳解智慧公交的解決方案!

    智慧公交是什么?一文帶你詳解智慧公交的解決方案!
    的頭像 發表于 11-05 12:26 ?419次閱讀
    智慧公交是什么?一文<b class='flag-5'>帶你</b><b class='flag-5'>詳解</b>智慧公交的解決方案!
    龙州县| 二八杠网站| 金殿百家乐官网的玩法技巧和规则 | 百家乐官网看盘技巧| 二八杠生死门口诀| 百家乐投注办法| 澳门百家乐官网娱乐城信誉如何| 大发888游戏安装失败| 皇冠百家乐客户端皇冠| 香港百家乐官网六合彩 | 百家乐庄闲和各是多少| 百家乐官网赌博代理合作| 中国足球竞猜网| 西游记百家乐娱乐城| 百家乐是否违法| 澳门百家乐官网信誉| 六合彩图片| 优博百家乐的玩法技巧和规则| 开店做生意的风水| 临汾玩百家乐官网的人在那里找| 足彩大赢家| 百家乐开发软件| 爱赢百家乐官网的玩法技巧和规则| 太阳城百家乐官网软件| 娱乐城网址| 百家乐看图赢钱| 真人百家乐作假视频| 百家乐官网庄闲路| 百家乐官网如何计牌| 百家乐威尼斯人| 试用的百家乐官网软件| 百家乐官网软件l柳州| 金都娱乐城真人娱乐| 百家乐开户送8彩金| 澳门百家乐官网网络游戏信誉怎么样| 百家乐官网怎样捉住长开| 澳门金沙官网| 大发888手机登录平台| 月亮城百家乐的玩法技巧和规则 | 六合彩走势图| 水果机游戏|