VXLAN筆記4. EVPN、分散式閘道器
阿新 • • 發佈:2021-06-24
EVPN 在 vxlan 分散式閘道器場景中必選,在集中式閘道器場景中可選。
原創文章,轉載請註明出處。
一、IRB 綜合路由和橋接
二、BGP EVPN 的 NLRI
2.1 Type 2 MAC/IP地址通告路由
2.1.1 MAC/IP 路由在 VXLAN 控制平面中的作用
2.1.2 資料轉發過程,及二層VNI、三層VNI、RT 的作用
問:VNI 及 RT 的區別?
問:EVPN 場景下,租戶間可以相互學習對方路由嗎?
問:虛機漂移後,新的路由資訊如何通告?
EVPN(Ethernet Virtual Private Network 以太虛擬專用網)是一種用於二層網路互聯的VPN技術。EVPN技術採用類似於BGP/MPLS IP VPN的機制,在BGP協議的基礎上定義了一種新的NLRI(Network Layer Reachability Information,網路層可達資訊)即EVPN NLRI,EVPN NLRI定義了幾種新的BGP EVPN(Type 2、3、5。1/4/6/7/8在vxlan中未使用)路由型別,用於處在二層網路的不同站點之間的MAC地址學習和釋出。
EVPN最初是為了解決運營商MPLS VPN的問題,由Juniper提出,如CE雙歸屬場景。由思科優化後,應用到VXLAN中。
原有的VXLAN實現方案沒有控制平面,是通過資料平面的流量泛洪進行VTEP發現和主機資訊(包括IP地址、MAC地址、VNI、閘道器VTEP IP地址)學習的,這種方式導致資料中心網路存在很多泛洪流量。為了解決這一問題,VXLAN引入了EVPN作為控制平面,通過在VTEP之間交換BGP EVPN路由實現VTEP的自動發現、主機資訊相互通告等特性,從而避免了不必要的資料流量泛洪。
在BGP EVPN方式部署分散式閘道器的場景中:
- 控制平面的流程包括VXLAN隧道動態建立(VTEP發現)、MAC地址動態學習;
- 轉發平面的流程包括同子網已知單播報文轉發、同子網BUM報文轉發、跨子網報文轉發。
- VM資料報文或ARP報文傳送觸發NVE節點的MAC/ARP等轉發表項學習;
- NVE節點將學習到的轉發表項匯入EVPN例項,形成EVPN協議的MAC/IP路由;
- NVE節點的BGP-EVPN協議將自己生成的MAC/IP路由資訊向鄰居擴散;
- BGP-EVPN協議鄰居(NVE節點)收到MAC/IP路由資訊後生成轉發表;
- BGP-EVPN協議通過擴散自己的MAC/IP路由資訊、Segment Route路由資訊等打通二三層轉發路徑。
- 動態學習表項:
- MAC表——leaf南向虛機的資訊(type2傳遞);
- L3路由表——leaf南向虛機的資訊(type2傳遞),外部網路路由(type5傳遞);
- ARP廣播抑制表(type2實現,將ARP請求報文廣播地址替換為單播地址);見2.5 EVPN 集中式閘道器.note
- BUM頭端複製列表(type3傳遞);
- 動態建立vxlan隧道(type3傳遞);
- 很好地解決了次優路徑問題。但租戶數量不多/單租戶內海量主機場景中,集中式閘道器仍可勝任【優勢是配置簡單】。
- 負載較為均衡,對spine的壓力比較小;
- 擴容更方便,因為leaf分擔了較多負載,增加leaf就能實現擴容。而擴spine難度較大;
一、IRB 綜合路由和橋接
IRB(Integrated Routing and Bridge 綜合路由和橋接,Type2)和IP字首(Type5)兩種路由型別,可根據如下原則進行選擇: IRB型別路由只能釋出32位主機IP路由。由於IRB型別路由包含著ARP型別路由,因此選擇釋出IRB型別路由後,可直接在Leaf節點上使能ARP廣播抑制功能,無需其他配置,同時也利於虛擬機器的遷移(詳情可參見EVPN基本原理)。如果只需釋出32位主機IP路由,建議選擇釋出IRB型別路由。 IP字首型別路由既能釋出32位主機IP路由又能釋出網段路由。但是,在釋出32位主機IP路由時,需先將主機IP地址生成直連路由,這會影響虛擬機器的遷移。因此,如果只需釋出32位主機IP路由,不建議選擇IP字首型別路由。只有需要釋出網段路由時(場景見上文),才需選擇IP字首型別路由。 非對稱型 IRB(可以只在資料層面實現,分散式閘道器不支援):- 去程與回程資料包中的 VNI不對稱。源端使用目的端的VNI做封裝,目的端回程時,使用源端的VNI來封裝。如果其中一端沒有另一端的vbdif閘道器,就需要建立一個相同的vbdif,否則無法封裝和通訊【配置較多,對裝置壓力較大】。
- 源端Leaf先做路由再做橋接【如vbdif1路由到vtep1另一個vbdif2,vtep1 vbdif2再橋接到目的vtep2的vbdif2】,目的端Leaf只做橋接,源目Leaf的行為不對稱【往返通訊時,源目各進行一次這樣的過程】。
- 往返VNI一致(同VRF時),都是VRF下配置的VNI。優點:按需配置vbdif閘道器;
- 往返動作一致,都是查路由錶轉發。兩端的閘道器MAC由type2下的Router's mac通告。優點:減少一次查表過程,對硬體晶片友好。
二、BGP EVPN 的 NLRI
EVPN Type 1(Ethernet Auto-Discovery) 以太自動發現路由。用於兩個不同的功能:快速收斂(批量撤銷)和別名。EVPN快速收斂允許PE更改與特定乙太網段關聯的所有MAC地址的下一跳鄰接。EVPN別名允許流量在多個出口點之間負載均衡。用在MPLS CE多歸屬場景。 EVPN Type 4(Ethernet Segment Route) 乙太網段路由,PE連線CE的鏈路稱為乙太網段,ESI(Ethernet Segment ID)用來區分CE到PE的多歸屬鏈路。用於在MPLS CE多歸屬場景中選擇指定轉發器,指定轉發器負責將BUM流量傳送到特定乙太網段中的CE。VXLAN場景中ESI為0。 1、4在vxlan場景中用不到。2.1 Type 2 MAC/IP地址通告路由
MAC advertisement Route:MAC/IP地址通告路由。 關注4處(1-4構成 IRB 路由,1-3構成 ARP 路由):- MAC地址;
- IP地址;
- MPLS Label1對應的二層VNI(BD中定義);
- MPLS Label2對應的三層VNI(VRF中定義)。
- Route Distinguisher:EVPN例項下設定的RD值。
- Ethernet Segment Identifier:當前裝置與對端連線定義的唯一標識,用來區分同一個CE多歸上連PE的多條鏈路。vxlan環境中保留,抓包中全0;
- Ethernet Tag ID:當前裝置上實際配置的VLANID。華為不支援多個BD繫結一個EVI,所以該欄位無意義,抓包中全0;
- MAC Address Length:此路由攜帶的主機MAC地址的長度。
- MAC Address:此路由攜帶的主機MAC地址,由BD下的mac地址表中提取。
- IP Address Length:此路由攜帶的主機IP地址的掩碼長度。
- IP Address:此路由攜帶的主機IP地址,由VRF下的arp表中提取。
- MPLS Label1:此路由攜帶的二層VNI【一比一對應BridgeDomain、二層VXLAN網路。二層VNI編號與三層VNI編號不能重複,編號空間共有16M。相同的L2vni代表一個大的邏輯廣播域,如畫圖中的vni 2010】。在華為SDN控制器上,要手動分別定義L2及L3的vni範圍。
- MPLS Label2:此路由攜帶的三層VNI【一比一對應VPN例項、三層VRF網路。相同的L3vni代表一個大的邏輯路由器,如畫圖中的vni 3000】。
interface Vbdif1002 ip binding vpn-instance vdc01(9878-VPCA-4018 ip address 192.168.10.1 255.255.255.0 arp distribute-gateway enable mac-address 0000-5e00-0102 arp collect host enable bridge-domain #之下配置vni和evpn例項後,BD、vni、evpn RT建立關聯。 interface nve 1 #之下配置vni head-end peer-list之後,能傳送type2路由給鄰居。 bgp l2vpn evpn地址族下,配置向鄰居通告irb路由。
2.1.1 MAC/IP 路由在 VXLAN 控制平面中的作用
- 主機 MAC通告(MAC add/add-length)。要實現同子網主機的二層互訪,兩端VTEP需要相互學習主機MAC。
- 主機 ARP通告(MAC/IP),主要用於以下兩種場景:
- ARP廣播抑制【集中式閘道器場景】。當三層閘道器學習到其子網下的主機ARP時,生成主機資訊(包含主機IP地址、主機MAC地址、二層VNI、閘道器VTEP IP地址),然後通過傳遞ARP型別路由將主機資訊同步到二層閘道器上。這樣當二層閘道器再收到ARP請求時,先查詢是否存在目的IP地址對應的主機資訊,如果存在,則直接將ARP請求報文中的廣播MAC地址替換為目的單播MAC地址,實現廣播變單播,達到ARP廣播抑制的目的。
- [bd10]arp broadcast-suppress enable #在Leaf的BD下啟用arp廣播抑制;
- dis arp broadcast-suppress user bridge-domain 10
- 分散式閘道器場景下的虛擬機器遷移。當一臺虛擬機器從當前閘道器遷移到另一個閘道器下之後,新閘道器學習到該虛擬機器的ARP(一般通過虛擬機發送免費ARP實現),並生成主機資訊(包含主機IP地址、主機MAC地址、二層VNI、閘道器VTEP IP地址。且SN增加1),然後通過傳遞ARP型別路由將主機資訊傳送給虛擬機器的原閘道器。原閘道器收到後,感知到虛擬機器的位置發生變化,觸發ARP探測,當探測不到原位置的虛擬機器時,傳送撤銷報文撤銷原位置虛擬機器的ARP和主機路由。其它裝置收到撤銷報文後,才會更新evpn路由表。
- 主機 IP路由通告(IRB)。在分散式閘道器場景中,要實現跨子網主機的三層互訪,兩端VTEP(作為三層閘道器)需要互相學習主機IP路由。作為BGP EVPN對等體的VTEP之間通過交換MAC/IP路由,可以相互通告已經獲取到的主機IP路由(資訊來自於VRF的ARP表)。其中,IP Address Length和IP Address欄位為主機IP路由的目的地址,同時MPLS Label2欄位必須攜帶三層VNI【用於跨子網通訊(同VPC,跨VPC用靜態路由)。分散式閘道器場景下能實現ARP路由的功能,可以取代ARP路由】。
- 以上資訊由所在leaf本地的mac、arp表生成,如果leaf中沒有對應的mac或arp資訊,那麼就不會生成對應的type2路由。
2.1.2 資料轉發過程,及二層VNI、三層VNI、RT 的作用
L2 VNI。不同Leaf 同網段的虛機轉發資料時(假設知道對端的ARP資訊),由Leaf下BD中的MAC表【由evpn傳遞的type2 NLRI生成】直接查到對應vxlan隧道的vtep地址,進行vxlan封裝(L2 VNI)和轉發。 L2 VNI總結:用以對應生成各leaf上BD中的mac表,包括mac、vtep、L2 vni的對應關係,用以在同網段跨leaf通訊時使用。 參考 泰克2. Vxlan理論.note 中mac表的組成。 L3 VNI。不同Leaf 跨網段的虛機轉發資料時:- 虛機封裝‘[SIP-DIP][Smac-GWmac閘道器mac]’轉發資料幀到閘道器。
- 閘道器【Leaf上的vbdif,並進入關聯的VRF】剝離二層頭,根據DIP查詢vrf路由表【由evpn傳遞的type2 NLRI生成】,目的L3 VNI通過源leaf的VRF路由表確認。DIP為evpn鄰居送來的主機路由。閘道器進行vxlan封裝‘[原始資料包]【源VRFmac(即nve的mac,由bgp傳遞的Router-mac)-目VRFmac】[目的L3 VNI][UDP][SvtepIP-DvtepIP]’,並轉發資料包到目的NVE【其中L3vni是目的leaf上對應的L3vni】。
- 到達目的NVE後,根據VNI,區分是訪問L3 VRF或是L2 BD(VRF和BD的vni不同)。在進入目標VRF之後,根據目的網段,路由進入對應的三層vBDif,並查詢arp表,找到目標主機並轉發(有可能還要查詢mac表,來找到對應的二層介面)。
- VNI 是資料平面的,存在於每一個數據報文中的 vxlan 頭部;及 BGP evpn Type2 NLRI 的label欄位中。決定資料報文封裝時對應的欄位,並不影響路由控制。
- vpn-target(RT)是控制平面的:控制 BGP evpn 路由收發,在配置章節中介紹。
<HUAWEI> display arp
ARP Entry Types: D - Dynamic, S - Static, I - Interface, O - OpenFlow
EXP: Expire-time VLAN:VLAN or Bridge Domain
IP ADDRESS MAC ADDRESS EXP(M) TYPE/VLAN INTERFACE VPN-INSTANCE
---------------------------------------------------------------------------
192.168.149.254 0000-5e00-0102 I Vbdif13 vdc-manage-vpc_012-10014
<HUAWEI> display arp openflow
Total number of hosts: 43
-------------------------------------------------------------
VniId IP Address MAC Address VtepIP
-------------------------------------------------------------
5000 10.1.1.48 0001-0203-0405 10.2.2.2
問:EVPN 場景下,租戶間可以相互學習對方路由嗎? 1,資料平面能否訪問通,依賴於L2 MAC表或L3 VRF中是否命中mac或IP。 2,接收EVPN路由時,根據RT來決定是否接收路由, 決定路由進到哪個租戶的哪張表。所以需要互通的VRF在配置RT時,import RT要有對照關係。BGP RR要配置undo policy vpn-target。 3,資料平面靠 VNI來識別選擇VRF(IP VRF or MAC VRF)。 4,控制平面靠 RT來決定MAC/IP路由進IP VRF or MAC VRF。 問:虛機漂移後,新的路由資訊如何通告? 由漂移後的leaf傳送新的type2路由update(僅路由目的vtep改變,IP/MAC/vni均不變)通告到相應的vrf中。此條路由更新中的SN序列號,要比原來通告的SN+1,標識這是一條更新的路由資訊。 漂移前的leaf收到此type2路由更新,會觸發ARP探測,在發現南向虛機消失後,更新本地的bgp evpn路由表,併發送BGP update報文撤銷自己之前傳送的type2路由【如不撤銷,原來的BGP路由會一直存在,這是BGP的特性】。