1. 程式人生 > 其它 >VXLAN筆記4. EVPN、分散式閘道器

VXLAN筆記4. EVPN、分散式閘道器

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方式部署分散式閘道器的場景中:
  1. 控制平面的流程包括VXLAN隧道動態建立(VTEP發現)、MAC地址動態學習;
  2. 轉發平面的流程包括同子網已知單播報文轉發、同子網BUM報文轉發、跨子網報文轉發。
  該方式實現的功能全面,支援主機IP路由通告、主機MAC地址通告、主機ARP通告,可以直接使能ARP廣播抑制功能。如果在VXLAN網路中採用分散式閘道器,推薦使用此方式。   綜上所述,EVPN通過擴充套件BGP協議新定義了幾種BGP EVPN路由,這些BGP EVPN路由可以用於傳遞VTEP地址和主機資訊,因此EVPN應用於VXLAN網路中,可以使VTEP發現和主機資訊學習從資料平面轉移到控制平面。   路由協議部署:Spine做為BGP EVPN RR路由反射器,Leaf做為反射器客戶端。   EVPN控制面表項同步:
  1. VM資料報文或ARP報文傳送觸發NVE節點的MAC/ARP等轉發表項學習;
  2. NVE節點將學習到的轉發表項匯入EVPN例項,形成EVPN協議的MAC/IP路由;
  3. NVE節點的BGP-EVPN協議將自己生成的MAC/IP路由資訊向鄰居擴散;
  4. BGP-EVPN協議鄰居(NVE節點)收到MAC/IP路由資訊後生成轉發表;
  5. BGP-EVPN協議通過擴散自己的MAC/IP路由資訊、Segment Route路由資訊等打通二三層轉發路徑。
  evpn 負責生成(劉大偉總結):
  1. 動態學習表項:
    1. MAC表——leaf南向虛機的資訊(type2傳遞);
    2. L3路由表——leaf南向虛機的資訊(type2傳遞),外部網路路由(type5傳遞);
    3. ARP廣播抑制表(type2實現,將ARP請求報文廣播地址替換為單播地址);見2.5 EVPN 集中式閘道器.note
    4. BUM頭端複製列表(type3傳遞);
  2. 動態建立vxlan隧道(type3傳遞);
  建議使用分散式閘道器,而不是集中式閘道器。分散式閘道器優點:
  1. 很好地解決了次優路徑問題。但租戶數量不多/單租戶內海量主機場景中,集中式閘道器仍可勝任【優勢是配置簡單】。
  2. 負載較為均衡,對spine的壓力比較小;
  3. 擴容更方便,因為leaf分擔了較多負載,增加leaf就能實現擴容。而擴spine難度較大;
  但分散式閘道器配置複雜,需要做好規劃。   分散式閘道器相對適合租戶數量多,單租戶內主機規模不大【主機規模過大時,對Leaf的效能要求明顯提高】。

一、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的行為不對稱【往返通訊時,源目各進行一次這樣的過程】。
對稱型 IRB(引入 BGP EVPN 作為控制平面,兩端對稱路由): 使用 BGP EVPN 主機路由,在不同的虛機間進行通訊。
  • 往返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 路由):
  1. MAC地址;
  2. IP地址;
  3. MPLS Label1對應的二層VNI(BD中定義);
  4. 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】。
  mac-route路由表中--同時含有mac和ip資訊,且下一跳為0.0.0.0的路由,是本機產生的。   路徑屬性的擴展團體屬性下還有:RT、encapsulation封裝方式【tunnel type值為8,即vxlan】、Router’s mac【含IP資訊時。注意MLAG成員裝置vtep mac要一致】、MAC Mobility【如vm遷移通告。Sticky/Static MAC;SN序列號資訊(VM遷移後生成的type2路由,SN會增加1,以區分新舊)】。   Router’s mac:mlag的兩個裝置都出現在ip fabric上,vtep ip是一樣的。兩個裝置上都有nve介面,這個nve介面相當於L2 tunnel的隧道介面。L2介面它有自己的mac,就是我們提到的router mac;nve把報文推到vxlan網路上和從vxlan網路上收報文都通過這個L2 tunnel介面來完成,推到網路上mac幀用相應的tunnel介面的router mac當源mac;反之,裝置收到vxlan報文時也要從這個tunnel介面進來,這個vxlan報文中的目標router mac要匹配tunnel介面的mac。所以當ip fabric轉發vxlan報文時可能會轉發到兩個mlag裝置的任何一個,如果報文中的router mac不匹配tunnel介面的mac,報文會被drop掉。所以兩個一樣vtep ip的裝置,他們的router mac要一樣。router mac僅在跨網段訪問時才用,不跨網段訪問時使用終端的mac。   VRF虛擬路由器(由各個Leaf上相同的三層VNI來區分),該VRF下所有的二層VNI VXLAN網路就像連線到此虛擬路由器的各個直連網路。   生成條件:   以下為AC下發的vbdif配置之一,獲取到主機arp/mac/ip資訊後,會生成Type 2路由:
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 控制平面中的作用

  1. 主機 MAC通告(MAC add/add-length)。要實現同子網主機的二層互訪,兩端VTEP需要相互學習主機MAC。
  2. 主機 ARP通告(MAC/IP),主要用於以下兩種場景:
    1. 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
    1. 分散式閘道器場景下的虛擬機器遷移。當一臺虛擬機器從當前閘道器遷移到另一個閘道器下之後,新閘道器學習到該虛擬機器的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路由。
  說明:IRB型別路由包含著ARP型別路由,不僅可以用於主機IP路由通告,也能用於主機ARP通告。BGP路由攜帶的下一跳為vtep的IP,可以和建立BGP鄰居的IP不同。   ARP型別路由攜帶的有效資訊:主機MAC+主機IP+二層VNI【BD/Vxlan。如果有VNI對應的BD,那麼MAC地址會被記錄在對應BD的MAC地址表中】;   IRB型別路由攜帶的有效資訊:主機MAC+主機IP+二層VNI+三層VNI【租戶VRF。主機路由會被記錄在對應的VRF路由表中,實際是由RT(vpn-target,在bgp擴展團體屬性中)決定是否接收。MAC地址處理方式與ARP型別一致】。

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 跨網段的虛機轉發資料時:
  1. 虛機封裝‘[SIP-DIP][Smac-GWmac閘道器mac]’轉發資料幀到閘道器。
  2. 閘道器【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】。
  3. 到達目的NVE後,根據VNI,區分是訪問L3 VRF或是L2 BD(VRF和BD的vni不同)。在進入目標VRF之後,根據目的網段,路由進入對應的三層vBDif,並查詢arp表,找到目標主機並轉發(有可能還要查詢mac表,來找到對應的二層介面)。
  L3 VNI總結:在目標leaf上根據資料平面vxlan頭中的L3 VNI來識別目標VRF,在跨網段互訪時使用。一個 vpn-instance 對應一個L3vni。   下圖中Router's MAC是NVE介面下配置的MAC地址。   Vxlan路由,會在BGP擴充套件屬性中攜帶RT資訊,用以控制路由的匯入匯出。 問:VNI 及 RT 的區別?
  • 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的特性】。