• 產品與解決方案
  • 行業解決方案
  • 服務
  • 支持
  • 合作夥伴
  • 關於我們

13-EVPN配置指導

目錄

02-EVPN VXLAN配置

本章節下載 02-EVPN VXLAN配置  (928.86 KB)

02-EVPN VXLAN配置

  錄

1 EVPN VXLAN概述

1.1 網絡模型

1.2 自動發現鄰居、建立隧道、關聯隧道

1.3 識別報文所屬的VXLAN

1.3.1 本地站點內接收到數據幀的識別

1.3.2 VXLAN隧道上接收報文的識別

1.4 轉發二層流量

1.4.1 學習MAC地址

1.4.2 轉發已知單播流量

1.4.3 轉發泛洪流量

1.5 集中式EVPN網關

1.6 分布式EVPN網關

1.6.1 簡介

1.6.2 對稱IRB轉發方式

1.6.3 非對稱IRB轉發方式

1.7 多歸屬站點

1.7.1 功能簡介

1.7.2 DF選舉

1.7.3 水平分割

1.7.4 冗餘備份模式

1.7.5 Aliasing

1.8 ARP/ND泛洪抑製

1.9 MAC地址遷移

2 配置EVPN VXLAN

2.1 EVPN VXLAN配置限製和指導

2.2 EVPN VXLAN配置任務簡介

2.3 配置VSI和VXLAN

2.4 配置EVPN實例

2.5 配置多歸屬站點

2.5.1 配置限製和指導

2.5.2 配置接口ESI

2.5.3 配置DF選舉算法

2.5.4 配置DF選舉延遲時間

2.5.5 配置禁止通告以太網自動發現路由和以太網段路由

2.6 配置BGP EVPN路由

2.6.1 配置限製和指導

2.6.2 開啟BGP發布EVPN路由能力

2.6.3 控製BGP EVPN路由的發布

2.6.4 配置BGP在選擇最優路由時優選下一跳地址為IPv6地址的路由

2.6.5 維護BGP會話

2.7 配置AC與VSI關聯

2.7.1 配置三層接口與VSI關聯

2.8 配置集中式EVPN網關

2.9 配置分布式EVPN網關

2.9.1 配置限製和指導

2.9.2 配置準備

2.9.3 配置EVPN VXLAN的轉發方式

2.9.4 配置VSI虛接口作為分布式網關接口

2.9.5 配置VSI虛接口關聯L3VNI

2.9.6 配置發布IP前綴路由

2.9.7 配置公網和VPN實例路由互相引入

2.10 管理遠端MAC地址和遠端ARP信息學習

2.10.1 關閉遠端MAC地址和遠端ARP自動學習功能

2.10.2 配置禁止通告MAC地址信息

2.10.3 開啟MAC地址反複遷移抑製功能

2.10.4 配置禁止EVPN從ARP信息中學習MAC地址表項

2.10.5 配置禁止通告ARP信息

2.10.6 開啟ARP反複遷移抑製功能

2.10.7 開啟ARP請求代理發送功能

2.11 配置BGP EVPN路由的引入和發布

2.11.1 配置將包含ARP/ND信息的MAC/IP發布路由引入BGP單播路由表

2.11.2 配置允許向本地站點發布BGP EVPN路由

2.12 配置VSI泛洪抑製

2.13 配置ARP/ND泛洪抑製

2.14 EVPN VXLAN顯示和維護

2.14.1 顯示EVPN運行狀態和統計信息

2.14.2 顯示MAC地址信息和ARP/ND信息

2.15 EVPN VXLAN典型配置舉例

2.15.1 集中式IPv4 EVPN網關配置舉例

2.15.2 對稱IRB方式分布式IPv4 EVPN網關配置舉例

 


1 EVPN VXLAN概述

EVPN路由可以用來在VXLAN網絡中搭建VXLAN隧道、同步MAC地址信息等,以實現VXLAN組網,該網絡稱為EVPN VXLAN。與傳統VXLAN網絡相比,EVPN VXLAN網絡可以實現隧道的自動建立與關聯,簡化配置。

1.1  網絡模型

圖1-1 EVPN網絡模型示意圖

 

圖1-1所示,EVPN的典型網絡模型中包括如下幾部分:

·     用戶終端(Terminal):可以是PC機、無線終端設備、服務器上創建的VM(Virtual Machine,虛擬機)等。不同的用戶終端可以屬於不同的VXLAN。屬於相同VXLAN的用戶終端處於同一個邏輯二層網絡,彼此之間二層互通;屬於不同VXLAN的用戶終端之間二層隔離。

說明

本文檔中如無特殊說明,均以VM為例介紹EVPN工作機製。采用其他類型用戶終端時,EVPN工作機製與VM相同,不再贅述。

 

·     VTEP(VXLAN Tunnel End Point,VXLAN隧道端點):EVPN的邊緣設備。EVPN的相關處理都在VTEP上進行。VTEP可以是一台獨立的物理設備,也可以是虛擬機所在的服務器。

·     VXLAN隧道:兩個VTEP之間的點到點邏輯隧道。VTEP為數據幀封裝VXLAN頭、UDP頭和IP頭後,通過VXLAN隧道將封裝後的報文轉發給遠端VTEP,遠端VTEP對其進行解封裝。

·     核心設備:IP核心網絡中的設備(如圖1-1中的P設備)。核心設備不參與EVPN處理,僅需要根據封裝後報文的外層目的IP地址對報文進行三層轉發。

·     VXLAN網絡/EVPN實例:用戶網絡可能包括分布在不同地理位置的多個站點內的用戶終端。在骨幹網上可以利用VXLAN隧道將這些站點連接起來,為用戶提供一個邏輯的二層VPN。這個二層VPN稱為一個VXLAN網絡,也稱為EVPN實例。VXLAN網絡通過VXLAN ID來標識,VXLAN ID又稱VNI(VXLAN Network Identifier,VXLAN網絡標識符),其長度為24比特。不同VXLAN網絡中的用戶終端不能二層互通。

·     VSI(Virtual Switch Instance,虛擬交換實例):VTEP上為一個VXLAN提供二層交換服務的虛擬交換實例。VSI可以看作是VTEP上的一台基於VXLAN進行二層轉發的虛擬交換機。VSI與VXLAN一一對應。

·     ES(Ethernet Segment,以太網段):用戶站點連接到VTEP的鏈路,通過ESI(Ethernet Segment Identifier,以太網段標識符)唯一標識。

1.2  自動發現鄰居、建立隧道、關聯隧道

在EVPN的二層轉發組網中,VTEP可以通過以下方式自動發現鄰居、建立隧道並關聯隧道:

·     IMET路由方式:VTEP通過IMET路由通告自己的VXLAN信息。這樣,每個VTEP設備都能獲取到網絡中所有的VTEP及其所屬VXLAN信息。如果本地VTEP和遠端VTEP屬於同一個VXLAN,則自動在二者之間建立VXLAN隧道,並將該隧道與該VXLAN關聯。

·     MAC/IP發布路由方式:VTEP通過MAC/IP發布路由通告本地MAC地址和VXLAN信息。這樣,每個VTEP設備都能通過接收到的MAC/IP發布路由獲取到網絡中的VTEP及其所屬VXLAN信息。如果本地VTEP和遠端VTEP屬於同一個VXLAN,則自動在二者之間建立VXLAN隧道,並將該隧道與該VXLAN關聯。

在EVPN的三層轉發組網中,VTEP可以通過以下方式自動發現鄰居、建立隧道並關聯隧道:

·     IMET路由方式:VTEP通過IMET路由通告自己的VXLAN信息。這樣,每個VTEP設備都能獲取到網絡中所有的VTEP及其所屬VXLAN信息。如果本地VTEP和遠端VTEP屬於同一個VXLAN,則自動在二者之間建立VXLAN隧道,並將該隧道與該VXLAN關聯。

·     MAC/IP發布路由和IP前綴路由方式:在EVPN的三層轉發組網中,當本地VTEP接收到遠端VTEP通告的MAC/IP發布路由或IP前綴路由,且該路由攜帶的Export target屬性與本地某個VPN實例的Import target屬性匹配時,本地VTEP會與遠端VTEP建立VXLAN隧道,並將該VXLAN隧道與VPN實例對應的L3VNI(Layer 3 VNI,三層VXLAN ID)關聯。L3VNI的詳細介紹,請參見“1.6  分布式EVPN網關

1.3  識別報文所屬的VXLAN

EVPN的MAC地址/ARP表項學習、流量轉發均基於報文所屬的VXLAN進行,因此,VTEP接收到報文需要識別報文所屬的VXLAN。

1.3.1  本地站點內接收到數據幀的識別

VTEP將連接本地站點的三層接口或以太網服務實例(Service Instance)與VSI關聯。VTEP從三層接口或以太網服務實例接收到數據幀後,查找與其關聯的VSI,VSI內創建的VXLAN即為該數據幀所屬的VXLAN。

在VXLAN中,與VSI關聯的三層接口或以太網服務實例稱為AC(Attachment Circuit,接入電路)。以太網服務實例在二層以太網接口上創建,它定義了一係列匹配規則(匹配接口接收到的所有報文、匹配所有攜帶VLAN Tag的報文、匹配所有不攜帶VLAN Tag的報文等),用來靈活地匹配從該二層以太網接口上接收到的數據幀。

圖1-2所示,VM 1屬於VLAN 2,在VTEP上配置以太網服務實例1匹配VLAN 2的報文,將以太網服務實例1與VSI A綁定,並在VSI A內創建VXLAN 10,則VTEP接收到VM 1發送的數據幀後,可以判定該數據幀屬於VXLAN 10。

圖1-2 數據幀所屬VXLAN識別

1.3.2  VXLAN隧道上接收報文的識別

對於從VXLAN隧道上接收到的VXLAN報文,VTEP根據報文中攜帶的VXLAN ID判斷該報文所屬的VXLAN。

1.4  轉發二層流量

1.4.1  學習MAC地址

VTEP根據學習到的MAC地址表項轉發二層單播流量。VTEP上MAC地址學習分為兩部分:

·     本地MAC地址學習:學習本地站點內虛擬機的MAC地址。VTEP接收到本地虛擬機發送的數據幀後,判斷該數據幀所屬的VSI,並將數據幀中的源MAC地址(本地虛擬機的MAC地址)添加到該VSI的MAC地址表中,該MAC地址對應的接口為接收到數據幀的接口。

·     遠端MAC地址學習:學習遠端站點內虛擬機的MAC地址。VTEP通過MP-BGP協議將本地學習的MAC地址及其所屬的VXLAN通告給遠端VTEP。遠端VTEP接收到該信息後,將其添加到所屬VXLAN對應VSI的MAC地址表中,該MAC地址對應的接口為兩個VTEP之間的VXLAN隧道接口(Tunnel接口)。

1.4.2  轉發已知單播流量

VTEP接收到二層數據幀後,判斷其所屬的VSI,根據目的MAC地址查找該VSI的MAC地址表,通過表項的出接口轉發該數據幀。如圖1-3所示,如果出接口為本地接口,則VTEP直接通過該接口轉發數據幀;如圖1-4所示,如果出接口為Tunnel接口,則VTEP根據Tunnel接口為數據幀添加VXLAN封裝後,通過VXLAN隧道將其轉發給遠端VTEP。

圖1-3 站點內單播流量轉發

 

圖1-4 站點間單播流量轉發

 

1.4.3  轉發泛洪流量

泛洪流量包括組播、廣播和未知單播流量,該流量通過單播路由方式(頭端複製)轉發。VTEP負責複製報文,采用單播方式將複製後的報文通過本地接口發送給本地站點,並通過VXLAN隧道發送給VXLAN內的所有遠端VTEP。

圖1-5 泛洪流量轉發示意圖

 

圖1-5所示,泛洪流量轉發過程為:

(2)     VTEP 1接收到本地虛擬機發送的組播、廣播和未知單播數據幀後,判斷數據幀所屬的VXLAN,通過該VXLAN內除接收接口外的所有本地接口和VXLAN隧道轉發該數據幀。通過VXLAN隧道轉發數據幀時,需要為其封裝VXLAN頭、UDP頭和IP頭,以便將泛洪流量封裝在多個單播報文中,發送到VXLAN內的所有遠端VTEP。

(3)     遠端VTEP(VTEP 2和VTEP 3)接收到VXLAN報文後,解封裝報文,將原始的數據幀在本地站點的指定VXLAN內泛洪。為了避免環路,遠端VTEP從VXLAN隧道上接收到報文後,不會再將其泛洪到其他的VXLAN隧道。

1.5  集中式EVPN網關

說明

集中式EVPN網關僅支持連接IPv4站點網絡。

 

集中式EVPN網關進行二層VXLAN業務終結的同時,還對內層封裝的IP報文進行三層轉發處理。

集中式EVPN網關配置簡單,但不同VXLAN之間的流量以及VXLAN訪問外界網絡的流量全部由集中式EVPN網關處理,網關壓力較大。

圖1-6 集中式EVPN網關的三層通信過程

 

圖1-6所示,集中式EVPN網關上需要配置VSI虛接口,該接口的IP地址作為VXLAN內虛擬機的網關IP地址。虛擬機訪問其他子網的過程為:

(1)     虛擬機獲取網關的MAC地址(網關IP對應的MAC地址),並將報文發送給集中式EVPN網關。

(2)     VTEP接收到報文後,根據目的MAC地址在VSI的MAC地址表中查找匹配的表項,將報文通過VXLAN隧道發送給集中式EVPN網關。

(3)     網關解除VXLAN封裝後,對內層封裝的IP報文進行三層轉發,將其發送給最終的目的節點。

(4)     目的節點返回的報文到達網關後,網關根據已經學習到的虛擬機ARP表項,將報文轉發給虛擬機。

1.6  分布式EVPN網關

1.6.1  簡介

圖1-7所示,在分布式EVPN網關組網中,每台VTEP設備都作為EVPN網關,對本地站點的流量進行三層轉發,緩解了網關的壓力。

圖1-7 分布式EVPN網關示意圖

 

 

分布式EVPN網關支持非對稱IRB和對稱IRB兩種流量轉發方式:

·     非對稱IRB轉發方式:連接報文源節點的網關(入口網關)上需要進行二層和三層轉發,連接目的節點的網關(出口網關)上僅需要進行二層轉發。

·     對稱IRB轉發方式:入口網關和出口網關上的報文轉發方式相同,都需要同時進行二層和三層轉發。

1.6.2  對稱IRB轉發方式

1. 基本概念

分布式EVPN網關采用對稱IRB方式轉發流量,即連接報文源和目的節點的網關(入口網關和出口網關)上都需要進行二層和三層轉發。對稱IRB方式引入了如下概念:

·     L3VNI(Layer 3 VNI,三層VXLAN ID):在網關之間通過VXLAN隧道轉發流量時,屬於同一路由域、能夠進行三層互通的流量通過L3VNI來標識。L3VNI唯一關聯一個VPN實例,通過VPN實例確保不同業務之間的隔離。

·     網關的Router MAC地址:每個分布式EVPN網關擁有一個唯一的Router MAC地址,用於在網關之間通過VXLAN隧道轉發流量。報文在網關之間轉發時,報文的內層MAC地址為出口網關的Router MAC地址。

2. 分布式EVPN網關部署要求

圖1-8所示,在分布式EVPN網關組網中,所有的分布式EVPN網關(GW)上都存在以下類型的VSI虛接口:

·     作為分布式網關接口的VSI虛接口。該接口需要與VSI、VPN實例關聯。不同GW上相同VSI虛接口的IP地址必須相同,該IP地址作為VXLAN內虛擬機的網關地址。

·     承載L3VNI的VSI虛接口。該接口需要與VPN實例關聯,並需要指定L3VNI。關聯相同VPN實例的VSI虛接口共用該L3VNI。

邊界網關(Border)上也需要存在承載L3VNI的VSI虛接口。

圖1-8 分布式EVPN網關部署示意圖

 

3. 三層轉發表項學習

三層流量通過查找FIB表項進行轉發。FIB表項通過路由信息或ARP信息生成。

在EVPN地址族下引入外部路由後,VTEP通過MP-BGP將該路由及其所屬的L3VNI發布給遠端VTEP,遠端VTEP學習該路由,並將其添加到L3VNI對應VPN實例的FIB表項中,表項的出接口為兩個VTEP之間的VXLAN隧道接口(Tunnel接口)、下一跳為路由的NEXT_HOP屬性攜帶的地址(即對端VTEP的地址)。

VTEP上ARP信息學習分為兩部分:

·     本地學習:學習本地站點內虛擬機的ARP信息。VTEP通過本地虛擬機發送的GARP、RARP和對網關的ARP請求學習本地虛擬機的ARP信息,並添加ARP表項和FIB表項。VTEP判斷GARP、RARP、ARP請求所屬的VSI,查找與該VSI關聯的VSI虛接口。ARP表項和FIB表項的出接口為接收到報文的接口,該表項所屬的VPN實例為VSI虛接口關聯的VPN實例。

·     遠端學習:學習遠端站點內虛擬機的ARP信息。VTEP通過MP-BGP協議將本地的ARP信息及其所屬的L3VNI通告給遠端VTEP。遠端VTEP學習該信息,但不會添加ARP表項,而是由路由管理模塊添加FIB表項。該FIB表項的出接口為與L3VNI關聯的VSI虛接口、下一跳為路由的NEXT_HOP屬性攜帶的地址(即對端VTEP的地址),該表項所屬的VPN實例為L3VNI對應的VPN實例。遠端VTEP查找下一跳對應的ARP信息,並添加對應的ARP表項。

4. 流量轉發過程

分布式網關對流量的轉發方式分為兩種:

·     區分二三層轉發方式:對於二層流量,查找MAC地址表進行轉發;對於三層流量,查找FIB表進行轉發。在該方式下,建議在分布式網關上開啟ARP泛洪抑製功能,以減少泛洪流量。

·     全三層轉發方式:對於二層和三層流量,均查找FIB表進行轉發。在該方式下,需要在分布式網關上開啟本地代理ARP功能。

查找MAC地址表轉發二層流量的過程,請參見“1.4.2  轉發已知單播流量”;相同站點間三層流量的轉發過程如圖1-9所示;不同站點間三層流量轉發過程如圖1-10所示。

圖1-9 相同站點間三層流量轉發過程

 

圖1-10 不同站點間三層流量轉發過程

 

以IPv4網絡為例,查找FIB表轉發流量的過程為:

(2)     虛擬機訪問相同子網、不同子網內的其他虛擬機時,發送ARP請求獲取ARP信息。

(3)     GW接收到ARP請求後,判斷ARP請求所屬VSI,采用與該VSI關聯的VSI虛接口MAC地址對其進行應答。

(4)     虛擬機將報文發送給GW。

(5)     GW判斷報文所屬VSI,並查找與該VSI關聯的VSI虛接口,在與VSI虛接口關聯的VPN實例內查找FIB表項,並根據匹配的FIB表項轉發報文:

¡     如果FIB表項的出接口為本地接口,則GW將目的MAC替換為目的虛擬機的MAC地址、源MAC替換為VSI虛接口的MAC,並通過本地接口轉發給目的虛擬機。

¡     如果FIB表項的出接口為VSI虛接口,則GW將目的MAC替換為目的GW的Router MAC地址、源MAC替換為自己的Router MAC,報文添加VXLAN封裝後將其轉發給目的GW。其中,為報文封裝的VXLAN ID為與VPN實例關聯的L3VNI。

(6)     目的GW接收到報文後,根據L3VNI判斷報文所屬的VPN實例,解除VXLAN封裝後,在該VPN實例內查找ARP表項轉發該報文。

5. 轉發公網三層流量及公私網互通

分布式EVPN網關基於VPN實例轉發三層流量,不能轉發公網的三層流量。將傳統網絡升級為EVPN網絡時,用戶可能希望在保持原有公私網部署不變的前提下,實現公私網流量通過分布式EVPN網關轉發,並實現公私網的互通。此時,需要在分布式EVPN網關上配置公網實例。

公網實例可以看作是特殊的VPN實例,分布式EVPN網關對公網實例的處理與VPN實例完全相同:

·     公網實例也包括RD、Route Target屬性和L3VNI。

·     如果VSI虛接口沒有綁定任何VPN實例,則該VSI虛接口屬於公網實例。

合理地規劃公網實例、VPN實例的VPN target屬性,可以實現公私網的互通。

1.6.3  非對稱IRB轉發方式

1. 分布式EVPN網關部署要求

非對稱IRB與對稱IRB方式中,分布式EVPN網關的部署方式基本相同。

圖1-8所示,所有的分布式EVPN網關(GW)上都存在以下類型的VSI虛接口:

·     作為分布式網關接口的VSI虛接口。該接口需要與VSI、VPN實例關聯。不同GW上相同VSI虛接口的IP地址不能相同。

·     承載L3VNI的VSI虛接口。在非對稱IRB轉發方式中,L3VNI用來實現VXLAN網絡與外界網絡的互通。當VXLAN內的虛擬機需要通過邊界網關(Border)與外界通信時,GW上必須部署該類VSI虛接口。該接口需要與VPN實例關聯,並需要指定L3VNI。關聯相同VPN實例的VSI虛接口共用該L3VNI。

邊界網關上也需要存在承載L3VNI的VSI虛接口。

2. 三層流量轉發過程

目前,非對稱IRB轉發方式僅支持通過分布式EVPN網關轉發相同VXLAN的三層流量。

在非對稱IRB轉發方式中,GW學習到本地虛擬機的ARP信息後,通過MAC/IP發布路由將其通告給其他GW。其他GW學習ARP信息,並生成對應的FIB表項。

圖1-11所示,VM 1和VM 2屬於VXLAN 10,通過分布式EVPN網關實現三層互通。分布式EVPN網關采用非對稱IRB方式轉發三層流量的過程為:

(1)     GW 1接收到VM 1發送的報文後,由於目的MAC地址為自己,GW 1剝離二層幀頭,根據目的IP地址查找FIB表。

(2)     GW 1在FIB表中匹配到VM 2的ARP信息生成的FIB表項。

(3)     GW 1為報文封裝源和目的MAC地址(分別為網關MAC地址和VM 2的MAC地址)、VXLAN頭後,通過VXLAN隧道將其轉發到GW 2。

(4)     GW 2接收到報文後,解除VXLAN封裝,並在VXLAN 10內進行二層轉發,即根據目的MAC地址查找MAC地址表。

(5)     GW 2根據MAC地址表查找結果,將報文轉發給VM 2。

圖1-11 非對稱IRB三層流量轉發過程

 

1.7  多歸屬站點

1.7.1  功能簡介

當一個站點通過不同的以太網鏈路連接到多台VTEP時,這些鏈路就構成了一個ES(Ethernet Segment,以太網段),並以一個相同的ESI(ES Identifier)標識其屬於同一個ES。連接的多台VTEP組成冗餘備份組,可以避免VTEP單點故障對網絡造成影響,從而提高EVPN網絡的可靠性。

圖1-12 多歸屬站點示意圖

 

1.7.2  DF選舉

當一個站點連接到多台VTEP時,為了避免冗餘備份組中的VTEP均發送泛洪流量給該站點,需要在冗餘備份組中選舉一個VTEP作為DF(Designated Forwarder,指定轉發者),負責將泛洪流量轉發給本地站點。其他VTEP作為BDF(Backup DF,備份DF),不會向本地站點轉發泛洪流量。多歸屬成員通過發送以太網段路由,向其它VTEP通告ES及其連接的VTEP信息,僅配置了ESI的VTEP會接收以太網段路由並根據其攜帶的ES、VTEP信息選舉出DF。

設備支持多種DF選舉算法,用戶可以根據業務需要靈活地選擇DF選舉算法,使組網中DF能夠均勻分布,提高網絡設備的使用率。

圖1-13 DF示意圖

 

2. 基於VLAN Tag的DF選舉算法

基於VLAN Tag的DF選舉算法根據VLAN Tag和VTEP的IP地址為每個AC選舉DF。

圖1-14 基於VLAN Tag的DF選舉

 

圖1-14所示,以允許VLAN Tag 4通過的AC 1的DF選舉為例,基於VLAN Tag的DF選舉算法為:

(2)     選取AC內允許通過的最小VLAN Tag代表該AC。在本例中,代表AC 1的VLAN Tag為4。

(3)     VTEP根據接收到的以太網段路由,對攜帶相同ESI的路由中的源IP地址按升序排列,編號從0開始。在本例中,源IP 1.1.1.1、2.2.2.2對應的編號依次為0、1。

(4)     根據VLAN Tag除以N的餘數M來選舉DF,N代表冗餘備份組中成員的數量,M對應的編號為該AC的DF。在本例中,4除以2的餘數為0,即AC 1的DF為編號為0的VTEP 1。

3. 基於優先級的DF選舉算法

基於優先級的DF選舉算法根據DF選舉優先級、DP(Don't Preempt Me,不可回切)位和VTEP的IP地址為每個ES選舉DF。其中,DP位的取值包括:

·     1:表示開啟了基於優先級DF選舉算法不回切功能。即當前設備被選舉為DF後,即使後續選舉出了新的設備作為DF,依然使用當前設備作為DF。

·     0:表示關閉了基於優先級DF選舉算法不回切功能。即當前設備被選舉為DF後,如果後續選舉出了新的設備作為DF,則直接使用新的設備作為DF。

圖1-15 基於優先級的DF選舉

 

圖1-15所示,以ES 1、ES 2的DF選舉為例,基於優先級的DF選舉算法為:

(2)     同一ES內DF選舉優先級(數值越大則優先級越高)最高的VTEP作為該ES的DF。在本例中,選舉VTEP 2作為ES 1的DF。

(3)     若優先級相同,則DP位為1的VTEP作為DF。

(4)     若DP位相同,則IP地址小的VTEP作為DF。在本例中,選舉VTEP 1作為ES 2的DF。

1.7.3  水平分割

在多歸屬站點組網中,VTEP接收到站點發送的組播、廣播和未知單播數據幀後,判斷數據幀所屬的VXLAN,通過該VXLAN內除接收接口外的所有本地接口和VXLAN隧道轉發該數據幀。同一冗餘備份組中的VTEP接收到該數據幀後會在本地所屬的VXLAN內泛洪,這樣數據幀會通過AC泛洪到本地站點,造成環路和站點的重複接收。EVPN通過水平分割解決該問題。水平分割的機製為:VTEP接收到同一冗餘備份組中成員轉發的廣播、組播、未知單播數據幀後,不向具有相同ESI標識的ES轉發該數據幀。

圖1-16 水平分割

 

1.7.4  冗餘備份模式

當前設備支持的冗餘備份模式為多活模式。

在該模式下,冗餘備份組中的任何一台成員VTEP設備接收到本地站點發送的組播、廣播和未知單播數據幀後,判斷數據幀所屬的VXLAN,通過該VXLAN內除接收接口外的所有本地接口和VXLAN隧道轉發該數據幀。通過VXLAN隧道轉發數據幀時,需要為其封裝VXLAN頭、UDP頭和IP頭,將泛洪流量封裝在多個單播報文中,發送到VXLAN內的所有遠端VTEP。

冗餘備份組中的成員VTEP接收到遠端VTEP發送的組播、廣播和未知單播數據幀時,隻有DF可以將數據幀泛洪到本地站點,BDF接收到後會將泛洪的數據幀丟棄。

1.7.5  Aliasing

在多活模式下,冗餘備份組中的VTEP都會通過MP-BGP向遠端VTEP通告同一ES的信息。即使隻有一個VTEP學習到了MAC/ARP信息並發布給遠端VTEP,遠端VTEP除了會添加下一跳為該VTEP的IP地址,還會添加下一跳為冗餘備份組中其他VTEP的IP地址,以實現自動在不同VTEP之間形成等價路徑。該功能稱為Aliasing。

1.8  ARP/ND泛洪抑製

為了避免廣播發送的ARP/ND請求報文占用核心網絡帶寬,VTEP會根據接收到的ARP/ND請求和ARP/ND應答報文、BGP EVPN路由在本地建立ARP/ND泛洪抑製表項。後續當VTEP收到本站點內虛擬機請求其它虛擬機MAC地址的ARP/ND請求時,優先根據ARP/ND泛洪抑製表項進行代答。如果沒有對應的表項,則通過VXLAN隧道將ARP/ND請求泛洪到其他站點。ARP/ND泛洪抑製功能可以大大減少ARP/ND泛洪的次數。

圖1-17 ARP泛洪抑製示意圖

 

圖1-17所示,以ARP為例,泛洪抑製的處理過程如下:

(1)     虛擬機VM 1發送ARP請求,獲取VM 7的MAC地址。

(2)     VTEP 1根據接收到的ARP請求,建立VM 1的ARP泛洪抑製表項,在VXLAN內泛洪該ARP請求(圖1-17以單播路由泛洪方式為例)。VTEP 1還會通過BGP EVPN將該表項同步給VTEP 2和VTEP 3。

(3)     遠端VTEP(VTEP 2和VTEP 3)解封裝VXLAN報文,獲取原始的ARP請求報文後,在本地站點的指定VXLAN內泛洪該ARP請求。

(4)     VM 7接收到ARP請求後,回複ARP應答報文。

(5)     VTEP 2接收到ARP應答後,建立VM 7的ARP泛洪抑製表項,通過VXLAN隧道將ARP應答發送給VTEP 1。VTEP 2通過BGP EVPN將該表項同步給VTEP 1和VTEP 3。

(6)     VTEP 1解封裝VXLAN報文,獲取原始的ARP應答,將ARP應答報文發送給VM 1。

(7)     在VTEP 1上建立ARP泛洪抑製表項後,虛擬機VM 4發送ARP請求,獲取VM 1的MAC地址。

(8)     VTEP 1接收到ARP請求後,建立VM 4的ARP泛洪抑製表項,並查找本地ARP泛洪抑製表項,根據已有的表項回複ARP應答報文,不會對ARP請求進行泛洪。

(9)     虛擬機VM 10發送ARP請求,獲取VM 1的MAC地址。

(10)     VTEP 3接收到ARP請求後,建立VM 10的ARP泛洪抑製表項,並查找ARP泛洪抑製表項,根據已有的表項(VTEP 1通過BGP EVPN同步)回複ARP應答報文,不會對ARP請求進行泛洪。

1.9  MAC地址遷移

MAC地址遷移是指虛擬機或主機從一個ES遷移到另一個ES。原ES連接的VTEP無法感知MAC地址已經遷移到其他ES段。新遷移到的ES所在VTEP需要重新通告該MAC/IP路由。原VTEP在收到此路由後,撤銷之前通告的路由。MAC地址每次遷移,遷移序列號依次遞增,以便在MAC地址多次遷移時,通過序列號來標識最近一次遷移。


2 配置EVPN VXLAN

2.1  EVPN VXLAN配置限製和指導

VXLAN隧道既可以通過EVPN自動創建,也可以手工創建。隧道目的地址相同的EVPN自動創建隧道和手工創建隧道不能關聯同一個VXLAN。手工創建VXLAN隧道的詳細介紹,請參見“VXLAN配置指導”中的“配置VXLAN”。

建議在同一個EVPN網關上為所有的VSI虛接口配置相同的MAC地址,以免流量轉發不通。

設備不支持以太網服務實例類型的AC。

2.2  EVPN VXLAN配置任務簡介

EVPN配置任務如下:

(1)     配置VSI和VXLAN

(2)     配置EVPN實例

(3)     (可選)配置多歸屬站點

a.     配置接口ESI

b.     (可選)配置DF選舉算法

c.     (可選)配置DF選舉延遲時間

d.     (可選)配置禁止通告以太網自動發現路由和以太網段路由

(4)     配置BGP EVPN路由

a.     開啟BGP發布EVPN路由能力

b.     (可選)控製BGP EVPN路由的發布

c.     (可選)配置BGP在選擇最優路由時優選下一跳地址為IPv6地址的路由

d.     (可選)維護BGP會話

(5)     配置AC與VSI關聯

(6)     配置EVPN網關

轉發三層流量時,請選擇以下一項任務進行配置:

¡     配置集中式EVPN網關

¡     配置分布式EVPN網關

(7)     (可選)管理遠端MAC地址和遠端

¡     關閉遠端MAC地址和遠端

¡     配置禁止通告MAC地址信息

¡     開啟MAC地址反複遷移抑製功能

¡     配置禁止EVPN從ARP信息中學習MAC地址表項

¡     配置禁止通告ARP信息

¡     開啟ARP反複遷移抑製功能

¡     開啟ARP請求代理發送功能

(8)     (可選)配置BGP EVPN路由的引入和發布

¡     配置將包含ARP/ND信息的MAC/IP發布路由引入BGP單播路由表

¡     配置允許向本地站點發布BGP EVPN路由

(9)     (可選)(可選)維護和優化EVPN網絡

¡     配置VSI泛洪抑製

¡     配置ARP/ND泛洪抑製

2.3  配置VSI和VXLAN

1. 配置限製和指導

本配置中各命令的詳細介紹,請參見“VXLAN命令參考”中的“VXLAN”。

2. 配置步驟

(1)     進入係統視圖。

system-view

(2)     開啟L2VPN功能。

l2vpn enable

缺省情況下,L2VPN功能處於關閉狀態。

(3)     創建VSI,並進入VSI視圖。

vsi vsi-name

(4)     (可選)配置VSI的描述信息。

description text

缺省情況下,未配置VSI的描述信息。

(5)     開啟VSI。

undo shutdown

缺省情況下,VSI處於開啟狀態。

(6)     創建VXLAN,並進入VXLAN視圖。

vxlan vxlan-id

在一個VSI下隻能創建一個VXLAN。

不同VSI下創建的VXLAN,其VXLAN ID不能相同。

2.4  配置EVPN實例

1. 功能簡介

用於二層交換的VXLAN網絡無需關聯VPN實例。VTEP在發布該VXLAN內路由時,攜帶VXLAN對應EVPN實例下配置的RD和RT。

2. 配置步驟

(1)     進入係統視圖。

system-view

(2)     進入VSI視圖。

vsi vsi-name

(3)     創建EVPN實例,並進入VSI實例下的EVPN實例視圖。

evpn encapsulation vxlan

(4)     配置EVPN實例的RD。

route-distinguisher { route-distinguisher | auto }

缺省情況下,未指定EVPN實例的RD。

(5)     配置EVPN實例的Route Target屬性。

vpn-target { vpn-target&<1-8> | auto } [ both | export-extcommunity | import-extcommunity ]

缺省情況下,未指定EVPN實例的Route Target屬性。

建議為EVPN實例配置的Import target不要與VPN實例、公網實例的Export target匹配,反之亦然。VPN實例、公網實例的配置,請參見“2.9.5  配置VSI虛接口關聯L3VNI”。

(6)     (可選)配置EVPN的出方向路由策略。

export route-policy route-policy

缺省情況下,未配置EVPN的出方向路由策略,即不對發布的路由進行過濾。

(7)     (可選)配置EVPN的入方向路由策略。

import route-policy route-policy

缺省情況下,未配置EVPN的入方向路由策略,即如果接收到的路由攜帶的Route Target屬性中存在與本地配置的Import Target相同的值,則接收該路由。

2.5  配置多歸屬站點

2.5.1  配置限製和指導

多歸屬的站點,在冗餘備份組的每個成員設備上的AC和VXLAN ID的配置應該保持一致,VXLAN ID相同的VSI應該配置不同的EVPN實例的RD,相同VXLAN網關關聯的VPN實例或公網實例應該配置不同的RD。

主接口及其子接口上均可以配置ESI:

·     若主接口及其子接口上都配置了ESI,或僅在子接口上配置了ESI,則子接口的ESI以該子接口上的配置為準,子接口的ES相關配置(evpn df-election algorithmevpn df-election preferenceevpn df-election preference non-revertive命令)也以該子接口上的配置為準。

·     若僅在主接口上配置了ESI,則子接口繼承主接口的ESI和ES相關配置。即使 子接口上執行了ES相關配置,也不會生效。

2.5.2  配置接口ESI

1. 功能簡介

ESI是ES的唯一標識,ESI相同的接口對應的鏈路屬於同一個ES,報文可以在這些鏈路之間進行負載分擔。

2. 配置步驟

(1)     進入係統視圖。

system-view

(2)     進入接口視圖。

¡     進入二層以太網接口視圖。

interface interface-type interface-number

¡     進入二層聚合接口視圖。

interface bridge-aggregation interface-number

¡     進入三層接口視圖。

interface interface-type interface-number

¡     進入三層聚合接口視圖。

interface route-aggregation interface-number

(3)     配置接口ESI。

esi esi-id

缺省情況下,未配置接口的ESI。

2.5.3  配置DF選舉算法

1. 功能簡介

在EVPN多歸屬組網中,用戶可以通過本功能靈活地選擇DF選舉算法,以提高設備的利用率。

2. 配置限製和指導

係統視圖和接口視圖下均可以配置DF選舉算法。係統視圖的配置對所有ES都有效,而接口視圖下的配置隻對當前接口下的ES有效。對於一個ES來說,優先采用該接口視圖下的配置,隻有該接口下未進行配置時,才采用係統視圖的配置。

3. 全局配置DF選舉算法

(1)     進入係統視圖。

system-view

(2)     全局配置DF選舉算法。

evpn df-election algorithm algorithm

缺省情況下,采用基於VLAN Tag的算法。

4. 接口下配置DF選舉算法

(1)     進入係統視圖。

system-view

(2)     進入接口視圖。

¡     進入二層以太網接口視圖。

interface interface-type interface-number

¡     進入二層聚合接口視圖。

interface bridge-aggregation interface-number

¡     進入三層接口視圖。

interface interface-type interface-number

¡     進入三層聚合接口視圖。

interface route-aggregation interface-number

(3)     配置DF選舉算法。

evpn df-election algorithm algorithm

缺省情況下,以係統視圖下配置的DF選舉算法為準。

5. 配置基於優先級的DF選舉算法的參數

(1)     進入係統視圖。

system-view

(2)     進入接口視圖。

¡     進入二層以太網接口視圖。

interface interface-type interface-number

¡     進入二層聚合接口視圖。

interface bridge-aggregation interface-number

¡     進入三層接口視圖。

interface interface-type interface-number

¡     進入三層聚合接口視圖。

interface route-aggregation interface-number

(3)     配置DF選舉優先級。

evpn df-election preference preference

缺省情況下,DF選舉優先級為32767。

DF選舉優先級數值越大則優先級越高。

(4)     (可選)開啟基於優先級DF選舉算法的不回切功能。

evpn df-election preference non-revertive

缺省情況下,基於優先級算法的DF選舉不回切功能處於關閉狀態。

 

2.5.4  配置DF選舉延遲時間

1. 功能簡介

AC所在接口的狀態、多歸屬成員設備數量或者接口下ESI值的頻繁變化都會導致DF頻繁選舉,極大影響了網絡的性能。通過本命令可以指定DF選舉的時間間隔,避免頻繁選舉DF,保證網絡的穩定性。

2. 配置步驟

(1)     進入係統視圖。

system-view

(2)     配置DF選舉延遲時間。

evpn multihoming timer df-delay delay-value

缺省情況下,DF選舉的延遲時間為3秒。

2.5.5  配置禁止通告以太網自動發現路由和以太網段路由

1. 功能簡介

在站點多歸屬組網中,用戶需要重啟其中一台VTEP時,重啟該VTEP前,可以通過在該VTEP上執行本命令,來禁止通告以太網自動發現路由和以太網段路由,並撤銷已經通告的該類路由,以便其他VTEP及時更新本地的EVPN路由表,確保VTEP的重啟不會影響報文轉發。

2. 配置步驟

(1)     進入係統視圖。

system-view

(2)     配置禁止通告以太網自動發現路由和以太網段路由,並撤銷已經通告的該類路由。

evpn multihoming advertise disable

缺省情況下,允許通告EVPN以太網自動發現路由和以太網段路由。

2.6  配置BGP EVPN路由

2.6.1  配置限製和指導

BGP相關命令的詳細介紹,請參見“三層技術-IP路由命令參考”中的“BGP”。

2.6.2  開啟BGP發布EVPN路由能力

(1)     進入係統視圖。

system-view

(2)     配置全局Router ID。

router id router-id

缺省情況下,未配置全局Router ID。

(3)     啟動BGP實例,並進入BGP實例視圖。

bgp as-number [ instance instance-name ]

缺省情況下,係統沒有運行BGP。

(4)     將遠端VTEP配置為對等體。

peer { group-name | ipv4-address [ mask-length ] } as-number as-number

(5)     創建BGP EVPN地址族,並進入BGP EVPN地址族視圖。

address-family l2vpn evpn

(6)     使能本地路由器與指定對等體/對等體組交換BGP EVPN路由的能力。

peer { group-name | ipv4-address [ mask-length ] } enable

缺省情況下,本地路由器不能與對等體/對等體組交換BGP EVPN路由。

2.6.3  控製BGP EVPN路由的發布

(1)     進入係統視圖。

system-view

(2)     進入BGP實例視圖。

bgp as-number [ instance instance-name ]

(3)     進入BGP EVPN地址族視圖。

address-family l2vpn evpn

(4)     配置對於從對等體/對等體組接收的BGP消息,允許本地AS號在該消息的AS_PATH屬性中出現,並配置允許出現的次數。

peer { group-name | ipv4-address [ mask-length ] } allow-as-loop [ number ]

缺省情況下,不允許本地AS號在接收消息的AS_PATH屬性中出現。

(5)     開啟BGP EVPN路由的VPN-Target過濾功能。

policy vpn-target

缺省情況下,BGP EVPN路由的VPN-Target過濾功能處於開啟狀態。

(6)     配置BGP路由反射。

a.     配置本機作為路由反射器,對等體/對等體組作為路由反射器的客戶機。

peer { group-name | ipv4-address [ mask-length ] } reflect-client

缺省情況下,沒有配置路由反射器及其客戶機。

b.     (可選)允許路由反射器在客戶機之間反射EVPN路由。

reflect between-clients

缺省情況下,允許路由反射器在客戶機之間反射EVPN路由。

c.     (可選)配置路由反射器的集群ID。

reflector cluster-id { cluster-id | ipv4-address }

缺省情況下,每個路由反射器都使用自己的Router ID作為集群ID。

d.     (可選)配置路由反射器對反射的EVPN路由進行過濾。

rr-filter { ext-comm-list-number | ext-comm-list-name }

缺省情況下,路由反射器不會對反射的EVPN路由進行過濾。

(7)     配置向EBGP對等體/對等體組發布路由時不改變下一跳。

peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } next-hop-invariable

缺省情況下,向EBGP對等體/對等體組發布路由時會將下一跳改為自己的地址。

(8)     為從對等體/對等體組接收的路由分配首選值。

peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } preferred-value value

缺省情況下,從對等體/對等體組接收的路由的首選值為0。

(9)     對來自對等體/對等體組的路由或發布給對等體/對等體組的路由應用路由策略。

peer { group-name | ipv4-address [ mask-length ] } route-policy route-policy-name { export | import }

缺省情況下,沒有為對等體/對等體組指定路由策略。

(10)     配置向對等體/對等體組發布團體屬性。

peer { group-name | ipv4-address [ mask-length ] } advertise-community

缺省情況下,不向對等體/對等體組發布團體屬性。

(11)     配置Add-Path功能。

¡     開啟Add-Path功能。

peer { group-name | ipv4-address [ mask-length ] } additional-paths { receive | send } *

缺省情況下,未配置Add-path功能。

¡     配置向指定對等體/對等體組發送的Add-Path優選路由的最大條數。

peer { group-name | ipv4-address [ mask-length ] } advertise additional-paths best number

缺省情況下,向指定對等體/對等體組發送的Add-Path優選路由的最大條數為1。

¡     配置Add-Path優選路由的最大條數。

additional-paths select-best best-number

缺省情況下,Add-Path優選路由的最大條數為1。

(12)     開啟BGP快速重路由功能。

pic

缺省情況下,BGP快速重路由功能處於關閉狀態。

2.6.4  配置BGP在選擇最優路由時優選下一跳地址為IPv6地址的路由

1. 功能簡介

在EVPN組網中,Underlay網絡可能由IPv4網絡和IPv6網絡共同組成。當網絡中同時存在下一跳為IPv4地址和IPv6地址的多條路由時,BGP會優先選擇下一跳地址為IPv4地址的路由,使得VXLAN報文優先通過IPv4 Underlay網絡轉發。若想優先通過IPv6 Underlay網絡轉發VXLAN報文,則可以執行本命令,配置BGP優選下一跳地址為IPv6地址的路由。

2. 配置步驟

(1)     進入係統視圖。

system-view

(2)     進入BGP實例視圖。

bgp as-number [ instance instance-name ]

(3)     進入BGP EVPN地址族視圖。

address-family l2vpn evpn

(4)     配置BGP在選擇最優路由時優先選擇下一跳類型為IPv6的路由

bestroute ipv6-nexthop

缺省情況下,BGP選擇最優路由時,優選下一跳地址為IPv4地址的路由。

2.6.5  維護BGP會話

請在用戶視圖下執行如下命令,複位或軟複位BGP會話。

·     複位EVPN地址族下的BGP會話。

reset bgp [ instance instance-name ] { as-number | ipv4-address [ mask-length ] | all | external | group group-name | internal } l2vpn evpn

·     手工對EVPN地址族下的BGP會話進行軟複位。

refresh bgp [ instance instance-name ] { ipv4-address [ mask-length ] | all | external | group group-name | internal } { export | import } l2vpn evpn

2.7  配置AC與VSI關聯

2.7.1  配置三層接口與VSI關聯

1. 功能簡介

將三層接口與VSI關聯後,從該接口接收到的報文,將通過查找關聯VSI的MAC地址表進行轉發。

本配置中各命令的詳細介紹,請參見“VXLAN命令參考”中的“VXLAN”。

2. 配置限製和指導

本配置與以太網鏈路聚合功能互斥。三層接口加入聚合組後,不能再將該接口與VSI關聯;反之亦然。

3. 配置步驟

(1)     進入係統視圖。

system-view

(2)     進入三層接口視圖。

interface interface-type interface-number

(3)     將三層接口與VSI關聯。

xconnect vsi vsi-name [ track track-entry-number&<1-3> ]

缺省情況下,三層接口未關聯VSI。

2.8  配置集中式EVPN網關

1. 配置限製和指導

在集中式EVPN網關組網中,VTEP上需要開啟ARP/ND泛洪抑製功能。EVPN組網中通常關閉遠端ARP/ND自動學習功能,網關從VXLAN隧道上接收到請求網關MAC地址的ARP/ND請求後,不會對其進行應答。如果未開啟ARP/ND泛洪抑製功能,則可能會導致虛擬機獲取不到網關的MAC地址。

2. 配置步驟

(1)     進入係統視圖。

system-view

(2)     創建VSI虛接口,並進入VSI虛接口視圖。

interface vsi-interface vsi-interface-id

本命令的詳細介紹,請參見“VXLAN命令參考”中的“VXLAN”。

(3)     配置VSI虛接口的IPv4地址。

ip address ip-address { mask | mask-length } [ sub ]

缺省情況下,未配置VSI虛接口的IPv4地址。

(4)     退回係統視圖。

quit

(5)     進入VXLAN所在VSI視圖。

vsi vsi-name

(6)     為VSI指定網關接口。

gateway vsi-interface vsi-interface-id

缺省情況下,未指定VSI的網關接口。

本命令的詳細介紹,請參見“VXLAN命令參考”中的“VXLAN”。

2.9  配置分布式EVPN網關

2.9.1  配置限製和指導

分布式EVPN網關連接IPv4站點網絡時,所有網關上都需要為相同VSI虛接口配置相同的MAC地址。如果網關同時連接IPv4站點網絡和IPv6站點網絡,則不同分布式EVPN網關上需要為相同VSI虛接口配置不同的鏈路本地地址。

在分布式EVPN網關設備上,如果開啟了ARP/ND泛洪抑製功能,並在VSI虛接口上開啟了本地代理ARP/ND功能,則隻有本地代理ARP/ND功能生效。建議不要在分布式EVPN網關設備上同時開啟這兩個功能。

在分布式EVPN網關設備上,如果通過mac-address命令修改了某一關聯L3VNI的VSI虛接口的MAC地址,則必須通過該命令將所有與L3VNI關聯的VSI虛接口的MAC地址修改為相同的值,否則可能會導致報文轉發失敗。

2.9.2  配置準備

如果虛擬機要想與外部網絡進行三層通信,那麼除了分布式EVPN網關的配置外,還需要在接入虛擬機的本地分布式EVPN網關上配置靜態路由或策略路由:

·     配置靜態路由:指定路由的下一跳為Border上同一個VXLAN對應VSI虛接口的IP地址。

·     配置策略路由:通過apply default-next-hop命令或apply next-hop命令設置報文的缺省下一跳或下一跳為Border上同一個VXLAN對應VSI虛接口的IP地址。策略路由的配置方法,請參見“三層技術-IP路由配置指導”中的“策略路由”。

2.9.3  配置EVPN VXLAN的轉發方式

1. 配置限製和指導

目前,非對稱IRB轉發方式僅支持通過分布式EVPN網關轉發相同VXLAN的三層流量,且不同GW上相同VSI虛接口的IP地址不能相同。

2. 配置步驟

(1)     進入係統視圖。

system-view

(2)     配置EVPN VXLAN的轉發方式。請選擇其中一項進行配置。

¡     EVPN VXLAN采用非對稱IRB方式轉發流量。

evpn irb asymmetric

¡     EVPN VXLAN采用對稱IRB方式轉發流量。

undo evpn irb asymmetric

缺省情況下,EVPN網關采用對稱IRB方式轉發流量。

 

2.9.4  配置VSI虛接口作為分布式網關接口

1. 功能簡介

為了節省分布式VXLAN IP網關設備上的三層接口資源,在網關設備上多個VXLAN可以共用一個VSI虛接口,為VSI虛接口配置一個主IPv4地址和多個從IPv4地址、或多個IPv6地址,分別作為不同VXLAN內虛擬機的網關地址。

多個VXLAN共用一個VSI虛接口時,網關設備無法判斷從VSI虛接口接收到的報文屬於哪個VXLAN。為了解決該問題,需要在VSI視圖下通過gateway subnet命令指定VSI所屬的子網網段,通過子網網段判斷報文所屬的VSI,並在該VSI內轉發報文,從而限製廣播報文範圍,有效地節省帶寬資源。

2. 配置步驟

(1)     進入係統視圖。

system-view

(2)     創建VSI虛接口,並進入VSI虛接口視圖。

interface vsi-interface vsi-interface-id

本命令的詳細介紹,請參見“VXLAN命令參考”中的“VXLAN”。

(3)     配置VSI虛接口的IP地址。

(IPv4網絡)

ip address ip-address { mask | mask-length } [ sub ]

(IPv6網絡)

IPv6地址的配置方法,請參見“三層技術-IP業務配置指導”中的“IPv6基礎”。

缺省情況下,未配置VSI虛接口的IP地址。

(4)     配置VSI虛接口的MAC地址。

mac-address mac-address

缺省情況下,VSI虛接口的MAC地址為設備的橋MAC地址。

不同分布式EVPN網關設備上,為同一個VXLAN的VSI虛接口配置的MAC地址必須相同。否則,虛擬機發生遷移後,虛擬機上網關IP地址對應的MAC地址為遠端網關的MAC地址,可能導致流量轉發錯誤。

(5)     配置VSI虛接口為分布式網關接口。

distributed-gateway local

缺省情況下,VSI虛接口不是分布式本地網關接口。

本命令的詳細介紹,請參見“VXLAN命令參考”中的“VXLAN”。

(6)     (可選)開啟本地代理ARP功能。

local-proxy-arp enable [ ip-range startIP to endIP ]

缺省情況下,本地代理ARP功能處於關閉狀態。

本命令的詳細介紹,請參見“三層技術-IP業務命令參考”中的“代理ARP”。

(7)     退回係統視圖。

quit

(8)     進入VXLAN所在VSI視圖。

vsi vsi-name

(9)     為VSI指定網關接口。

gateway vsi-interface vsi-interface-id

缺省情況下,未指定VSI的網關接口。

本命令的詳細介紹,請參見“VXLAN命令參考”中的“VXLAN”。

(10)     配置當前VSI所屬的子網網段。

gateway subnet { ipv4-address wildcard-mask | ipv6-address prefix-length }

缺省情況下,未指定VSI所屬的子網網段。

本命令的詳細介紹,請參見“VXLAN命令參考”中的“VXLAN”。

2.9.5  配置VSI虛接口關聯L3VNI

1. 配置VSI虛接口關聯L3VNI(VPN實例)

(1)     進入係統視圖。

system-view

(2)     配置VPN實例。

a.     創建VPN實例,並進入VPN實例視圖。

ip vpn-instance vpn-instance-name

b.     配置VPN實例的RD。

route-distinguisher route-distinguisher

缺省情況下,未配置VPN實例的RD。

c.     配置VPN實例的RT。

vpn-target vpn-target&<1-8> [ both | export-extcommunity | import-extcommunity ]

缺省情況下,未配置VPN實例的Route Target。

d.     (可選)對VPN實例應用出方向路由策略。

export route-policy route-policy

缺省情況下,不對發布的路由進行過濾。

e.     (可選)對VPN實例應用入方向路由策略。

import route-policy route-policy

缺省情況下,VPN實例未應用入方向路由策略。如果接收到的路由攜帶的Route Target屬性中存在與本地配置的Import Target相同的值,則接收該路由。

(3)     配置VPN實例下的EVPN。

a.     進入VPN實例EVPN視圖。

address-family evpn

b.     在VPN實例下配置EVPN的Route Target。

vpn-target vpn-target&<1-8> [ both | export-extcommunity | import-extcommunity ]

缺省情況下,VPN實例下的EVPN未配置Route Target。

建議為EVPN實例配置的Import target不要與VPN實例的Export target匹配,反之亦然。

c.     (可選)在VPN實例下配置EVPN的出方向路由策略。

export route-policy route-policy

缺省情況下,不對發布的路由進行過濾。

d.     (可選)在VPN實例下配置EVPN的入方向路由策略。

import route-policy route-policy

缺省情況下,在VPN實例下未配置EVPN的入方向路由策略,即如果接收到的路由攜帶的Route Target屬性中存在與本地配置的Import Target相同的值,則接收該路由。

(4)     依次執行以下命令退回係統視圖。

a.     quit

b.     quit

(5)     進入VSI虛接口視圖。

interface vsi-interface vsi-interface-id

(6)     配置接口與指定的VPN實例關聯。

ip binding vpn-instance vpn-instance-name

缺省情況下,接口未關聯VPN實例,接口屬於公網。

(7)     配置VPN實例的L3VNI。

l3-vni vxlan-id

缺省情況下,未配置VPN實例的L3VNI。

一個VPN實例隻能關聯一個L3VNI。若為VPN實例配置了多個L3VNI,則該VPN實例與數值最小的L3VNI關聯。通過display evpn routing-table命令可以查看與VPN實例關聯的L3VNI。

2. 配置VSI虛接口關聯L3VNI(公網實例)

(1)     進入係統視圖。

system-view

(2)     創建公網實例,並進入公網實例視圖。

ip public-instance

(3)     配置公網實例的RD。

route-distinguisher route-distinguisher

缺省情況下,未配置公網實例的RD。

(4)     配置公網實例的L3VNI。

l3-vni vxlan-id

缺省情況下,未配置公網實例的L3VNI。

一個公網實例隻能關聯一個L3VNI。不能通過重複執行本命令修改公網實例的L3VNI。如需修改,請先刪除已有的L3VNI後再配置。

(5)     進入公網實例IPv4地址族視圖、IPv6 VPN視圖或EVPN視圖。

¡     進入公網實例IPv4地址族視圖。

address-family ipv4

¡     進入公網實例IPv6地址族視圖。

address-family ipv6

¡     進入公網實例EVPN視圖。

address-family evpn

(6)     在公網實例下配置IPv4 VPN、IPv6 VPN或EVPN的Route Target。

vpn-target vpn-target&<1-8> [ both | export-extcommunity | import-extcommunity ]

缺省情況下,公網實例下的IPv4 VPN、IPv6 VPN、EVPN未配置Route Target。

建議為EVPN實例配置的Import target不要與公網實例的Export target匹配,反之亦然。

(7)     依次執行以下命令退回係統視圖。

a.     quit

b.     quit

(8)     進入VSI虛接口視圖。

interface vsi-interface vsi-interface-id

(9)     在屬於公網實例的VSI虛接口上配置L3VNI。

l3-vni vxlan-id

缺省情況下,在屬於公網實例的VSI虛接口上未配置L3VNI。

在所有屬於公網實例的VSI虛接口中,必須至少有一個接口上配置的L3VNI與公網實例視圖下指定的L3VNI相同。

2.9.6  配置發布IP前綴路由

1. 功能簡介

在BGP-VPN IPv4單播地址族視圖/BGP-VPN IPv6單播地址族視圖下引入IGP路由後,如果該VPN實例關聯了L3VNI,則引入的路由將作為EVPN的IP前綴路由發布給遠端VTEP。

在BGP IPv4單播地址族視圖/BGP IPv6單播地址族視圖下引入IGP路由後,如果公網實例關聯了L3VNI,則引入的路由將作為EVPN的IP前綴路由發布給遠端VTEP。

遠端VTEP接收到EVPN的IP前綴路由後,將路由中的Route Target屬性與本地VPN實例/公網實例下為IPv4 VPN/IPv6 VPN配置的Import Target進行比較。若匹配則接收該路由,並將該路由添加到VPN實例或公網的路由表中。

2. 配置限製和指導

隻有分布式EVPN網關組網支持本配置。

本配置中各命令的詳細介紹,請參見“三層技術-IP路由命令參考”中的“BGP”。

3. 配置步驟

(1)     進入係統視圖。

system-view

(2)     進入BGP實例視圖。

bgp as-number [ instance instance-name ]

(3)     進入BGP地址族視圖。

¡     進入BGP IPv4單播地址族視圖。

address-family ipv4 [ unicast ]

¡     依次執行以下命令,進入BGP-VPN IPv4單播地址族視圖。

ip vpn-instance vpn-instance-name

address-family ipv4 [ unicast ]

¡     進入BGP IPv6單播地址族視圖。

address-family ipv6 [ unicast ]

¡     依次執行以下命令,進入BGP-VPN IPv6單播地址族視圖。

ip vpn-instance vpn-instance-name

address-family ipv6 [ unicast ]

(4)     將IGP路由協議的路由信息引入到BGP路由表中。

import-route protocol [ { process-id | all-processes } [ allow-direct | med med-value | route-policy route-policy-name ] * ]

缺省情況下,BGP不會引入IGP路由協議的路由信息。

(5)     (可選)允許將缺省路由引入到BGP路由表中。

default-route imported

缺省情況下,BGP不允許將缺省路由引入到BGP路由表中。

(6)     (可選)配置VPN引入等價路由功能。

a.     退回BGP實例視圖。

quit

b.     進入BGP EVPN地址族視圖。

address-family l2vpn evpn

c.     開啟VPN引入等價路由功能。

vpn-route cross multipath

缺省情況下,VPN引入等價路由功能處於關閉狀態,對於前綴和RD均相同的多條路由,隻會將最優路由引入到BGP EVPN路由表中。

開啟本功能後,BGP將前綴和RD均相同的多條路由全部引入到BGP EVPN路由表中。

2.9.7  配置公網和VPN實例路由互相引入

1. 功能簡介

缺省情況下,各VPN實例之間的BGP路由均相互隔離。但在某些組網場景下,設備需要實現跨VPN發布路由,並且為了隱藏站點內部特定VPN實例的路由信息,用戶需要將該VPN實例的BGP路由通過其他的VPN實例對外發布。

圖2-1 公網和VPN實例路由互相引入示意圖

 

圖2-1所示,PE 1和PE 2分別與PE 3建立公網IBGP會話,並通過公網與VPN實例間的路由互引來實現內部站點和外部公網的互通;PE 1和PE 2之間建立BGP EVPN IBGP對等體,向對方傳遞本站點VPN實例的路由,以實現站點間的通信。鏈路完好時,PE 2可以直接接收PE 3發布的公網路由,並引入到本地站點中;PE 2 和PE 3之間鏈路發生故障時,外部公網路由無法直接發布給PE 2,導致站點內用戶與外部網絡通信受阻。

此時PE 1可以將引入到VPN實例的公網BGP路由在指定的VPN實例進行重生成,並將重生成的路由發布給IBGP對等體PE 2,以恢複PE 2本地站點內的用戶與外部網絡的通信。具體工作過程如下:

(2)     在PE 1的公網實例中配置Route Target,使Route Target屬性與想要引入公網路由的VPN實例的Route Target屬性相匹配。

(3)     在PE 1上配置route-replicate enable命令,將公網實例下的BGP路由引入到Route Target屬性相匹配的VPN實例中。

(4)     在PE 1上配置advertise route-reoriginate命令,如果其他VPN實例的Route Target屬性與當前地址族視圖所屬的VPN實例匹配,則會在該VPN實例的BGP路由表中重生成其他VPN實例的所有BGP路由(不包括從本地引入的路由,如配置import-route命令後引入的IGP路由)。

(5)     缺省情況下,PE 1從IBGP對等體接收到的路由在重生成後,不會再發布給IBGP對等體PE 2,通過配置peer advertise vpn-reoriginate ibgp命令,可以實現將重生成的路由發布給IBGP對等體PE 2。

2. 配置限製和指導

peer advertise vpn-reoriginate ibgp命令需要和advertise route-reoriginate命令配合使用,單獨配置peer advertise vpn-reoriginate ibgp命令時,該命令不生效。

在BGP-VPN IPv4單播地址族視圖下配置advertise route-reoriginate命令時,重生成的是IPv4單播路由;在BGP-VPN IPv6單播地址族視圖下配置advertise route-reoriginate命令時,重生成的是IPv6單播路由。

有關advertise route-reoriginate命令和route-replicate enable命令的詳細介紹,請參見“MPLS命令參考”中的“MPLS L3VPN”

3. 配置步驟

(1)     進入係統視圖。

system-view

(2)     進入BGP實例視圖。

bgp as-number [ instance instance-name ]

(3)     (可選)開啟公網和VPN實例BGP路由互相引入功能。

route-replicate enable

缺省情況下,公網和VPN實例的BGP路由互相引入功能處於關閉狀態。

(4)     進入BGP-VPN IPv4單播地址族視圖或BGP-VPN IPv6單播地址族視圖。

¡     依次執行以下命令進入BGP-VPN IPv4單播地址族視圖。

ip vpn-instance vpn-instance-name

address-family ipv4 [ unicast ]

¡     依次執行以下命令進入BGP-VPN IPv6單播地址族視圖。

ip vpn-instance vpn-instance-name

address-family ipv6 [ unicast ]

(5)     配置在指定VPN實例的BGP單播路由表中重生成其他VPN實例下的BGP單播路由。

advertise route-reoriginate [ route-policy route-policy-name ] [ replace-rt ]

缺省情況下,在VPN實例下無法重生成其他VPN實例下的BGP單播路由。

本命令僅能重生成與當前視圖所屬的VPN實例Route Target屬性匹配的VPN實例下的路由,且不能重生成BGP路由表中從本地引入的路由。

(6)     (可選)配置向指定IBGP對等體/對等體組發布VPN實例下重生成的BGP路由。

a.     退回BGP實例視圖。

quit

quit

b.     進入BGP EVPN地址族視圖。

address-family l2vpn evpn

c.     配置以IP前綴路由的形式向指定IBGP對等體/對等體組發布VPN實例下重生成的BGP路由。

peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } advertise vpn-reoriginate ibgp

缺省情況下,不會向IBGP對等體/對等體組發布VPN實例下重生成的BGP路由。

2.10  管理遠端MAC地址和遠端ARP信息學習

2.10.1  關閉遠端MAC地址和遠端ARP自動學習功能

1. 功能簡介

缺省情況下,設備從VXLAN隧道接收到報文後可以自動學習遠端虛擬機的MAC地址和ARP信息。在EVPN組網中,為了避免自動學習的遠端MAC地址/ARP信息與通過BGP通告的MAC地址/ARP信息衝突,需要關閉遠端MAC地址和遠端ARP自動學習功能。

本配置中各命令的詳細介紹,請參見“VXLAN命令參考”中的“VXLAN”。

2. 配置步驟

(1)     進入係統視圖。

system-view

(2)     關閉遠端MAC地址自動學習功能。

vxlan tunnel mac-learning disable

缺省情況下,遠端MAC地址自動學習功能處於開啟狀態。

(3)     關閉遠端ARP自動學習功能。

vxlan tunnel arp-learning disable

缺省情況下,遠端ARP自動學習功能處於開啟狀態。

2.10.2  配置禁止通告MAC地址信息

1. 功能簡介

VTEP可能會同時向遠端VTEP通告MAC地址信息和ARP信息。其中,ARP信息中已經包含MAC地址信息。為了避免重複,可以執行本配置來禁止本端VTEP向遠端VTEP通告MAC地址信息。執行本配置後,本端VTEP還會撤銷已經發布的MAC地址信息。

2. 配置步驟

(1)     進入係統視圖。

system-view

(2)     進入VSI視圖。

vsi vsi-name

(3)     進入VSI實例下的EVPN實例視圖。

evpn encapsulation vxlan

(4)     配置禁止通告MAC地址信息,並撤銷已經通告的MAC地址信息。

mac-advertising disable

缺省情況下,允許通告MAC地址信息。

2.10.3  開啟MAC地址反複遷移抑製功能

1. 功能簡介

EVPN VXLAN組網中,不同VTEP下的設備如果錯誤地配置了相同的MAC地址,會造成VTEP間不斷同步MAC地址信息,並更新本地EVPN的MAC地址表項。此時VTEP認為該設備在不斷遷移。這種情況可能會使VTEP間形成環路,占用大量的鏈路帶寬。開啟本功能後,若在檢測周期內某MAC地址從本地遷移到遠端的次數超過閾值,則抑製最後一次由遠端向本地遷移,即僅本地學習但不對外通告該MAC地址,避免VTEP間形成環路。

2. 配置限製與指導

執行undo evpn route mac-mobility suppression命令或MAC地址的抑製時間超過抑製恢複時間時,如果VTEP上被抑製遷移的MAC地址未老化,則立即向遠端通告該MAC地址;如果VTEP上被抑製遷移的MAC地址已經老化,則VTEP重新從本地學習該MAC地址後再對外通告。

當MAC地址表項和ARP表項均發生衝突時,需要同時開啟MAC地址反複遷移抑製功能和ARP反複遷移抑製功能。如果僅開啟MAC地址表項抑製功能,則會導致MAC地址表項抑製失敗。

3. 配置步驟

(1)     進入係統視圖。

system-view

(2)     開啟MAC地址反複遷移抑製功能。

evpn route mac-mobility suppression [ detect-cycle detect-time | detect-threshold  move-times | suppression-time [ suppression-time | permanent ] ] *

缺省情況下,MAC地址反複遷移抑製功能處於關閉狀態。

 

2.10.4  配置禁止EVPN從ARP信息中學習MAC地址表項

1. 功能簡介

VTEP可能會同時接收到遠端VTEP通告的MAC地址信息和ARP信息。其中,ARP信息中包含MAC地址信息。為了避免重複,可以在VTEP上執行本配置來禁止EVPN從ARP信息中學習MAC地址表項,EVPN僅通過MAC地址信息學習遠端MAC地址表項。

2. 配置步驟

(1)     進入係統視圖。

system-view

(2)     進入VSI視圖。

vsi vsi-name

(3)     進入VSI實例下的EVPN實例視圖。

evpn encapsulation vxlan

(4)     配置禁止EVPN從ARP信息中學習MAC地址表項。

arp mac-learning disable

缺省情況下,EVPN可以從ARP信息中學習MAC地址表項。

2.10.5  配置禁止通告ARP信息

1. 功能簡介

在EVPN分布式網關組網中,如果同一個VXLAN內的所有用戶終端都部署在同一台EVPN網關下,則EVPN不需要通告該VXLAN的ARP信息(同時攜帶MAC和IP地址的MAC/IP發布路由),隻需通告IP前綴路由,其他VXLAN內的用戶終端通過IP前綴路由即可訪問該VXLAN。此時,可以配置本命令禁止EVPN通告ARP信息,以減少占用的設備和網絡資源。執行本命令後,設備還會撤銷已經發布的ARP信息。

2. 配置步驟

(1)     進入係統視圖。

system-view

(2)     進入VSI視圖。

vsi vsi-name

(3)     進入VSI實例下的EVPN實例視圖。

evpn encapsulation vxlan

(4)     配置禁止通告ARP信息,並撤銷已經通告的ARP信息。

arp-advertising disable

缺省情況下,允許通告ARP信息。

2.10.6  開啟ARP反複遷移抑製功能

1. 功能簡介

EVPN VXLAN組網中,不同VTEP下的設備如果錯誤地配置了相同的IP地址,會造成VTEP間不斷同步ARP信息,並更新本地EVPN的ARP表項信息,此時VTEP認為該設備在不斷遷移。這種情況可能會使VTEP間形成環路,占用大量的鏈路帶寬。開啟本功能後,若檢測周期內某ARP信息從本地遷移到遠端的次數超過閾值,則抑製最後一次由遠端向本地遷移,即僅本地學習但不對外通告該ARP信息,避免VTEP間形成環路。

2. 配置限製與指導

ARP反複遷移抑製功能僅在EVPN VXLAN分布式網關組網中生效。

執行undo evpn route arp-mobility suppression命令或ARP表項的抑製時間超過抑製恢複時間時,如果VTEP上被抑製遷移的ARP表項未老化,則立即向遠端通告該ARP信息;如果VTEP上被抑製遷移的ARP表項已經老化,則VTEP重新從本地學習該ARP信息後再對外通告。

當MAC地址表項和ARP表項均發生衝突時,需要同時開啟MAC地址反複遷移抑製功能和ARP反複遷移抑製功能。如果僅開啟MAC地址表項抑製功能,則會導致MAC地址表項抑製失敗。

3. 配置步驟

(1)     進入係統視圖。

system-view

(2)     開啟ARP反複遷移抑製功能。

evpn route arp-mobility suppression [ detect-cycle detect-time | detect-threshold move-times | suppression-time [ suppression-time | permanent ] ] *

缺省情況下,ARP反複遷移抑製功能處於關閉狀態。

2.10.7  開啟ARP請求代理發送功能

1. 功能簡介

EVPN VXLAN組網中,VM 1連接VTEP 1,VM 2連接VTEP 2,VM 1和VM 2屬於同一網段。VTEP 1和VTEP 2分別配置VSI虛接口作為VM 1和VM 2的網關,VTEP 1和VTEP 2均配置如下功能:

·     VTEP 1和VTEP 2建立BGP EVPN鄰居

·     禁止EVPN從ARP信息中學習MAC地址表項

·     禁止通告MAC地址信息,並撤銷已經通告的MAC地址信息

·     關閉遠端MAC地址自動學習功能

·     VSI虛接口開啟本地代理ARP功能

·     VTEP 1和VTEP 2的VSI虛接口的IP地址、MAC地址均不同

在該組網中,VM 1希望訪問VM 2時,VM 1發送ARP請求報文,VTEP 1學習VM 1的MAC地址並代理應答VM 1的ARP請求報文。同時VTEP 1發送ARP請求報文請求VM 2的MAC地址。VM 2單播應答VTEP 1的ARP請求。VTEP 2不會從VM 2的ARP應答報文中學習VM 2的MAC地址,由於VTEP 1關閉了遠端MAC地址自動學習功能,也不會學習VM 2的MAC地址,無法形成表項,導致VM 1無法訪問VM 2。

為解決上述問題,可在VTEP 2上配置本功能,使VTEP 2收到VTEP 1的ARP請求報文時,生成以VSI虛接口IP地址為源的ARP請求,並同時廣播兩個ARP請求。VM 2分別應答VTEP 1和VTEP 2的ARP請求。VTEP 2從VM 2發給自己的ARP應答報文中學習VM 2的MAC地址,並通過EVPN路由發布給VTEP 1。VTEP 1和VTEP 2均獲得VM 1和VM 2的MAC地址信息後,VM 1和VM 2可以互相訪問。

2. 配置步驟

(1)     進入係統視圖。

system-view

(2)     進入VSI虛接口視圖。

interface vsi-interface vsi-interface-id

(3)     開啟ARP請求代理發送功能。

arp proxy-send enable

缺省情況下,ARP請求代理發送功能處於關閉狀態。

 

2.11  配置BGP EVPN路由的引入和發布

2.11.1  配置將包含ARP/ND信息的MAC/IP發布路由引入BGP單播路由表

1. 功能簡介

在BGP IPv4或BGP IPv6單播地址族下配置BGP EVPN路由引入BGP單播路由表後,設備會將從對等體/對等體組收到的包含ARP/ND信息的MAC/IP發布路由添加到BGP IPv4或BGP IPv6單播路由表,並發布到本地站點。

在BGP-VPN IPv4或BGP-VPN IPv6單播地址族下配置BGP EVPN路由引入BGP單播路由表後,設備會將從對等體/對等體組收到的包含ARP/ND信息的MAC/IP發布路由添加到VPN實例對應的BGP IPv4或BGP IPv6單播路由表,如果執行了advertise l2vpn evpn命令配置允許向本地站點發布BGP EVPN路由,則該路由會發布到本地站點,否則,該路由不會發布到本地站點。

2. 配置步驟(BGP實例視圖)

(1)     進入係統視圖。

system-view

(2)     進入BGP實例視圖。

bgp as-number [ instance instance-name ]

(3)     進入BGP IPv4或BGP IPv6單播地址族視圖。

address-family { ipv4 | ipv6 }

(4)     配置將包含ARP/ND信息的MAC/IP發布路由引入BGP IPv4或BGP IPv6單播路由表。

import evpn mac-ip

缺省情況下,禁止將包含ARP/ND信息的MAC/IP發布路由引入BGP IPv4或BGP IPv6單播路由表。

 

3. 配置步驟(BGP-VPN實例視圖)

(1)     進入係統視圖。

system-view

(2)     進入BGP實例視圖。

bgp as-number [ instance instance-name ]

(3)     進入BGP-VPN實例視圖。

ip vpn-instance vpn-instance-name

(4)     進入BGP-VPN IPv4或BGP-VPN IPv6單播地址族視圖。

address-family { ipv4 | ipv6 }

(5)     配置將包含ARP/ND信息的MAC/IP發布路由引入BGP-VPN IPv4或BGP-VPN IPv6單播路由表。

import evpn mac-ip

缺省情況下,禁止將包含ARP/ND信息的MAC/IP發布路由引入BGP-VPN IPv4或BGP-VPN IPv6單播路由表。

2.11.2  配置允許向本地站點發布BGP EVPN路由

1. 功能簡介

配置允許對外發布 BGP EVPN路由後,設備接收到BGP EVPN路由,並將其添加到某個VPN實例路由表後,會將該路由(私網路由)發布到本地站點。

2. 配置步驟(IPv4網絡)

(1)     進入係統視圖。

system-view

(2)     進入BGP實例視圖。

bgp as-number [ instance instance-name ]

(3)     進入BGP-VPN實例視圖。

ip vpn-instance vpn-instance-name

(4)     進入BGP-VPN IPv4單播地址族視圖。

address-family ipv4 [ unicast ]

(5)     配置允許向本地站點發布BGP EVPN路由。

advertise l2vpn evpn

缺省情況下,允許向本地站點發布BGP EVPN路由。

3. 配置步驟(IPv6網絡)

(1)     進入係統視圖。

system-view

(2)     進入BGP實例視圖。

bgp as-number [ instance instance-name ]

(3)     進入BGP-VPN實例視圖。

ip vpn-instance vpn-instance-name

(4)     進入BGP-VPN IPv6單播地址族視圖。

address-family ipv6 [ unicast ]

(5)     配置允許向本地站點發布BGP EVPN路由。

advertise l2vpn evpn

缺省情況下,允許向本地站點發布BGP EVPN路由。

2.12  配置VSI泛洪抑製

1. 功能簡介

缺省情況下,VTEP從本地站點內接收到目的MAC地址為廣播、未知單播和未知組播的數據幀後,會在該VXLAN內除接收接口外的所有本地接口和VXLAN隧道上泛洪該數據幀,將該數據幀發送給VXLAN內的所有站點;VTEP從VXLAN隧道接收到目的MAC地址為廣播、未知單播和未知組播的數據幀後,會在該VXLAN內的所有本地接口上泛洪該數據幀。通過本配置可以手工禁止某類數據幀在VXLAN內泛洪,以減少網絡中的泛洪流量。

禁止通過VXLAN隧道向遠端站點泛洪後,為了將某些單播或組播MAC地址的數據幀泛洪到遠端站點以保證某些業務的流量在站點間互通,可以配置選擇性泛洪的MAC地址,當數據幀的目的MAC地址匹配該MAC地址時,該數據幀可以泛洪到遠端站點。

本配置中各命令的詳細介紹,請參見“VXLAN命令參考”中的“VXLAN”。

2. 配置步驟

(1)     進入係統視圖。

system-view

(2)     進入VSI視圖。

vsi vsi-name

(3)     關閉VSI的泛洪功能。

flooding disable { all | { broadcast | unknown-multicast | unknown-unicast } * } [ all-direction ]

缺省情況下,VSI泛洪功能處於開啟狀態。

(4)     (可選)配置VSI選擇性泛洪的MAC地址。

selective-flooding mac-address mac-address

2.13  配置ARP/ND泛洪抑製

1. 配置限製和指導

開啟ARP/ND泛洪抑製時,如果同時執行flooding disable命令關閉了VSI的泛洪功能,則建議通過mac-address timer命令配置動態MAC地址的老化時間大於25分鍾(ARP/ND泛洪抑製表項的老化時間),以免MAC地址在ARP/ND泛洪抑製表項老化之前老化,產生黑洞MAC地址。

如果配置了vxlan tunnel arp-learning disablevxlan tunnel nd-learning disable命令,則設備從VXLAN隧道上接收到ARP請求報文後,不會采用匹配的ARP/ND泛洪抑製表項對其進行應答。

ARP泛洪抑製表項可以通過reset arp suppression vsi命令清除,不能通過reset arp命令清除。reset arp suppression vsi命令的詳細介紹,請參見“VXLAN命令參考”中的“VXLAN”;reset arp命令的詳細介紹,請參見“三層技術-IP業務命令參考”中的“ARP”。

ND泛洪抑製表項可以通過reset ipv6 nd suppression vsi命令清除,不能通過reset ipv6 neighbors命令清除。reset ipv6 nd suppression vsi命令的詳細介紹,請參見“VXLAN命令參考”中的“VXLAN”;reset ipv6 neighbors命令的詳細介紹,請參見“三層技術-IP業務命令參考”中的“IPv6基礎”。

2. 配置ARP泛洪抑製

(1)     進入係統視圖。

system-view

(2)     進入VSI視圖。

vsi vsi-name

(3)     開啟ARP泛洪抑製功能。

arp suppression enable

缺省情況下,ARP泛洪抑製功能處於關閉狀態。

本命令的詳細介紹,請參見“VXLAN命令參考”中的“VXLAN”。

3. 配置ND泛洪抑製

(1)     進入係統視圖。

system-view

(2)     進入VSI視圖。

vsi vsi-name

(3)     開啟ND泛洪抑製功能。

ipv6 nd suppression enable

缺省情況下,ND泛洪抑製功能處於關閉狀態。

本命令的詳細介紹,請參見“VXLAN命令參考”中的“VXLAN”。

2.14  EVPN VXLAN顯示和維護

2.14.1  顯示EVPN運行狀態和統計信息

可在任意視圖下執行以下命令:

·     顯示BGP EVPN對等體組的信息。

display bgp [ instance instance-name ] group l2vpn evpn [ group-name group-name ]

本命令的詳細介紹請參見“三層技術-IP路由命令參考”中的“BGP基礎命令”。

·     顯示BGP EVPN對等體或對等體組的狀態和統計信息。

display bgp [ instance instance-name ] peer l2vpn evpn [ ipv4-address mask-length | { ipv4-address | group-name group-name } log-info | [ ipv4-address ] verbose ]

本命令的詳細介紹請參見“三層技術-IP路由命令參考”中的“BGP基礎命令”。

·     顯示BGP EVPN地址族的打包組相關信息。

display bgp [ instance instance-name ] update-group l2vpn evpn [ ipv4-address ]

本命令的詳細介紹請參見“三層技術-IP路由命令參考”中的“BGP基礎命令”。

·     顯示EVPN通過BGP自動發現的鄰居信息。

display evpn auto-discovery { imet [ peer ip-address] [ vsi vsi-name ] | macip-prefix [ nexthop next-hop ] [ count ] }

·     顯示EVPN的ES信息。

display evpn es { local [ count | [ vsi vsi-name ] [ esi esi-id ] [ verbose ] ] | remote [ vsi vsi-name ] [ esi esi-id ] [ nexthop next-hop ] [ verbose ] }

·     顯示EVPN多歸屬組網中滿足水平分割原則的接口信息。

display l2vpn forwarding evpn split-horizon { ac interface interface-type interface-number | ac interface interface-type interface-number service-instance instance-id | tunnel tunnel-number } [ slot slot-number ]

·     顯示EVPN通過BGP自動發現的IPv6鄰居信息。

display evpn ipv6 auto-discovery { { imet | mac-ip } [ vxlan ] [ peer ipv6-address ] [ vsi vsi-name ] | macip-prefix [ nexthop next-hop ] [ count ] }

·     顯示EVPN的路由表信息。

display evpn routing-table [ ipv6 ] { public-instance | vpn-instance vpn-instance-name } [ count ]

·     顯示BGP EVPN路由信息。

display bgp [ instance instance-name ] l2vpn evpn [ peer { ipv4-address | ipv6-address } { advertised-routes | received-routes } [ statistics ] | [ route-distinguisher route-distinguisher | route-type { auto-discovery | es | igmp-js | igmp-ls | imet | ip-prefix | mac-ip | smet } ] * [ { evpn-route route-length | evpn-prefix } [ advertise-info ] | ipv4-address | ipv6-address | mac-address ] | statistics ]

2.14.2  顯示MAC地址信息和ARP/ND信息

可在任意視圖下執行以下命令:

·     顯示IPv6 EVPN的MAC地址信息。

display evpn ipv6 route mac [ vxlan ] [ local | remote ] [ vsi vsi-name ] [ count ]

·     顯示EVPN的MAC地址信息。

display evpn route mac [ vxlan ] [ local | remote ] [ vsi vsi-name ] [ mac-address mac-address ] [ count ]

·     顯示EVPN的ARP信息。

display evpn route arp [ local | remote ] [ public-instance | vpn-instance vpn-instance-name ] [ ip ip-address ] [ count ]

·     顯示EVPN的ARP泛洪抑製信息。

display evpn route arp suppression [ vxlan ] [ local | remote ] [ vsi vsi-name ] [ ip ip-address ] [ count ]

·     顯示EVPN的ND表項信息。

display evpn route nd [ local | remote ] [ public-instance | vpn-instance vpn-instance-name ] [ ipv6 ipv6-address ] [ count ]

·     顯示EVPN的ND泛洪抑製信息。

display evpn route nd suppression [ local | remote ] [ vsi vsi-name ] [ ipv6 ipv6-address ] [ count ]

2.15  EVPN VXLAN典型配置舉例

2.15.1  集中式IPv4 EVPN網關配置舉例

1. 組網需求

Router A、Router B為與服務器連接的VTEP設備;Router C為與廣域網連接的集中式EVPN網關設備;Router D為RR,負責在路由器之間反射BGP路由。

虛擬機VM 1和VM 3屬於VXLAN 10;VM 2和VM 4屬於VXLAN 20。相同VXLAN之間可以二層互通,不同VXLAN之間、VXLAN與廣域網之間可以通過集中式EVPN網關互通。

2. 組網圖

圖2-2 集中式EVPN網關配置組網圖

3. 配置步驟

(1)     配置IP地址和單播路由協議

# 在VM 1和VM 3上指定網關地址為10.1.1.1;在VM 2和VM 4上指定網關地址為10.1.2.1。(具體配置過程略)

# 請按照圖2-2配置各接口的IP地址和子網掩碼;在IP核心網絡內配置OSPF協議,確保路由器之間路由可達。(具體配置過程略)

(2)     配置Router A

# 開啟L2VPN能力。

<RouterA> system-view

[RouterA] l2vpn enable

# 關閉遠端MAC地址和遠端ARP自動學習功能。

[RouterA] vxlan tunnel mac-learning disable

[RouterA] vxlan tunnel arp-learning disable

# 在VSI實例vpna下創建EVPN實例,並配置自動生成EVPN實例的RD和RT。

[RouterA] vsi vpna

[RouterA-vsi-vpna] arp suppression enable

[RouterA-vsi-vpna] evpn encapsulation vxlan

[RouterA-vsi-vpna-evpn-vxlan] route-distinguisher auto

[RouterA-vsi-vpna-evpn-vxlan] vpn-target auto

[RouterA-vsi-vpna-evpn-vxlan] quit

# 創建VXLAN 10。

[RouterA-vsi-vpna] vxlan 10

[RouterA-vsi-vpna-vxlan-10] quit

[RouterA-vsi-vpna] quit

# 在VSI實例vpnb下創建EVPN實例,並配置自動生成EVPN實例的RD和RT。

[RouterA] vsi vpnb

[RouterA-vsi-vpnb] arp suppression enable

[RouterA-vsi-vpnb] evpn encapsulation vxlan

[RouterA-vsi-vpnb-evpn-vxlan] route-distinguisher auto

[RouterA-vsi-vpnb-evpn-vxlan] vpn-target auto

[RouterA-vsi-vpnb-evpn-vxlan] quit

# 創建VXLAN 20。

[RouterA-vsi-vpnb] vxlan 20

[RouterA-vsi-vpnb-vxlan-20] quit

[RouterA-vsi-vpnb] quit

# 配置BGP發布EVPN路由。

[RouterA] bgp 200

[RouterA-bgp-default] peer 4.4.4.4 as-number 200

[RouterA-bgp-default] peer 4.4.4.4 connect-interface loopback 0

[RouterA-bgp-default] address-family l2vpn evpn

[RouterA-bgp-default-evpn] peer 4.4.4.4 enable

[RouterA-bgp-default-evpn] quit

[RouterA-bgp-default] quit

# 配置接口GigabitEthernet0/0/1與VSI實例vpna關聯。

[RouterA] interface gigabitethernet 0/0/1

[RouterA-GigabitEthernet0/0/1] xconnect vsi vpna

[RouterA-GigabitEthernet0/0/1] quit

# 配置接口GigabitEthernet0/0/2與VSI實例vpnb關聯。

[RouterA] interface gigabitethernet 0/0/2

[RouterA-GigabitEthernet0/0/2] xconnect vsi vpnb

[RouterA-GigabitEthernet0/0/2] quit

(3)     配置Router B

# 開啟L2VPN能力。

<RouterB> system-view

[RouterB] l2vpn enable

# 關閉遠端MAC地址和遠端ARP自動學習功能。

[RouterB] vxlan tunnel mac-learning disable

[RouterB] vxlan tunnel arp-learning disable

# 在VSI實例vpna下創建EVPN實例,並配置自動生成EVPN實例的RD和RT。

[RouterB] vsi vpna

[RouterB-vsi-vpna] arp suppression enable

[RouterB-vsi-vpna] evpn encapsulation vxlan

[RouterB-vsi-vpna-evpn-vxlan] route-distinguisher auto

[RouterB-vsi-vpna-evpn-vxlan] vpn-target auto

[RouterB-vsi-vpna-evpn-vxlan] quit

# 創建VXLAN 10。

[RouterB-vsi-vpna] vxlan 10

[RouterB-vsi-vpna-vxlan-10] quit

[RouterB-vsi-vpna] quit

# 在VSI實例vpnb下創建EVPN實例,並配置自動生成EVPN實例的RD和RT。

[RouterB] vsi vpnb

[RouterB-vsi-vpnb] arp suppression enable

[RouterB-vsi-vpnb] evpn encapsulation vxlan

[RouterB-vsi-vpnb-evpn-vxlan] route-distinguisher auto

[RouterB-vsi-vpnb-evpn-vxlan] vpn-target auto

[RouterB-vsi-vpnb-evpn-vxlan] quit

# 創建VXLAN 20。

[RouterB-vsi-vpnb] vxlan 20

[RouterB-vsi-vpnb-vxlan-20] quit

[RouterB-vsi-vpnb] quit

# 配置BGP發布EVPN路由。

[RouterB] bgp 200

[RouterB-bgp-default] peer 4.4.4.4 as-number 200

[RouterB-bgp-default] peer 4.4.4.4 connect-interface loopback 0

[RouterB-bgp-default] address-family l2vpn evpn

[RouterB-bgp-default-evpn] peer 4.4.4.4 enable

[RouterB-bgp-default-evpn] quit

[RouterB-bgp-default] quit

# 配置接口GigabitEthernet0/0/1與VSI實例vpna關聯。

[RouterB] interface gigabitethernet 0/0/1

[RouterB-GigabitEthernet0/0/1] xconnect vsi vpna

[RouterB-GigabitEthernet0/0/1] quit

# 配置接口GigabitEthernet0/0/2與VSI實例vpnb關聯。

[RouterB] interface gigabitethernet 0/0/2

[RouterB-GigabitEthernet0/0/2] xconnect vsi vpnb

[RouterB-GigabitEthernet0/0/2] quit

(4)     配置Router C

# 開啟L2VPN能力。

<RouterC> system-view

[RouterC] l2vpn enable

# 關閉遠端MAC地址和遠端ARP自動學習功能。

[RouterC] vxlan tunnel mac-learning disable

[RouterC] vxlan tunnel arp-learning disable

# 在VSI實例vpna下創建EVPN實例,並配置自動生成EVPN實例的RD和RT。

[RouterC] vsi vpna

[RouterC-vsi-vpna] arp suppression enable

[RouterC-vsi-vpna] evpn encapsulation vxlan

[RouterC-vsi-vpna-evpn-vxlan] route-distinguisher auto

[RouterC-vsi-vpna-evpn-vxlan] vpn-target auto

[RouterC-vsi-vpna-evpn-vxlan] quit

# 創建VXLAN 10。

[RouterC-vsi-vpna] vxlan 10

[RouterC-vsi-vpna-vxlan-10] quit

[RouterC-vsi-vpna] quit

# 在VSI實例vpnb下創建EVPN實例,並配置自動生成EVPN實例的RD和RT。

[RouterC] vsi vpnb

[RouterC-vsi-vpnb] evpn encapsulation vxlan

[RouterC-vsi-vpnb-evpn-vxlan] route-distinguisher auto

[RouterC-vsi-vpnb-evpn-vxlan] vpn-target auto

[RouterC-vsi-vpnb-evpn-vxlan] quit

# 創建VXLAN 20。

[RouterC-vsi-vpnb] vxlan 20

[RouterC-vsi-vpnb-vxlan-20] quit

[RouterC-vsi-vpnb] quit

# 配置BGP發布EVPN路由。

[RouterC] bgp 200

[RouterC-bgp-default] peer 4.4.4.4 as-number 200

[RouterC-bgp-default] peer 4.4.4.4 connect-interface loopback 0

[RouterC-bgp-default] address-family l2vpn evpn

[RouterC-bgp-default-evpn] peer 4.4.4.4 enable

[RouterC-bgp-default-evpn] quit

[RouterC-bgp-default] quit

# 創建VSI虛接口VSI-interface1,並為其配置IP地址,該IP地址作為VXLAN 10內虛擬機的網關地址。

[RouterC] interface vsi-interface 1

[RouterC-Vsi-interface1] ip address 10.1.1.1 255.255.255.0

[RouterC-Vsi-interface1] quit

# 配置VXLAN 10所在的VSI實例和接口VSI-interface1關聯。

[RouterC] vsi vpna

[RouterC-vsi-vpna] gateway vsi-interface 1

[RouterC-vsi-vpna] quit

# 創建VSI虛接口VSI-interface2,並為其配置IP地址,該IP地址作為VXLAN 20內虛擬機的網關地址。

[RouterC] interface vsi-interface 2

[RouterC-Vsi-interface2] ip address 10.1.2.1 255.255.255.0

[RouterC-Vsi-interface2] quit

# 配置VXLAN 20所在的VSI實例和接口VSI-interface1關聯。

[RouterC] vsi vpnb

[RouterC-vsi-vpnb] gateway vsi-interface 2

[RouterC-vsi-vpnb] quit

(5)     配置Router D

# 配置Router D與其他路由器建立BGP連接。

<RouterD> system-view

[RouterD] bgp 200

[RouterD-bgp-default] group evpn

[RouterD-bgp-default] peer 1.1.1.1 group evpn

[RouterD-bgp-default] peer 2.2.2.2 group evpn

[RouterD-bgp-default] peer 3.3.3.3 group evpn

[RouterD-bgp-default] peer evpn as-number 200

[RouterD-bgp-default] peer evpn connect-interface loopback 0

# 配置BGP發布EVPN路由,並關閉BGP EVPN路由的VPN-Target過濾功能。

[RouterD-bgp-default] address-family l2vpn evpn

[RouterD-bgp-default-evpn] peer evpn enable

[RouterD-bgp-default-evpn] undo policy vpn-target

# 配置Router D為路由反射器。

[RouterD-bgp-default-evpn] peer evpn reflect-client

[RouterD-bgp-default-evpn] quit

[RouterD-bgp-default] quit

4. 驗證配置

(1)     驗證EVPN網關設備Router C

# 查看Router C上的EVPN路由信息,可以看到Router C發送了網關的MAC/IP路由和IMET路由,並接收到Router A和Router B發送的MAC/IP路由和IMET路由。(具體顯示信息略)

# 查看Router C上的Tunnel接口信息,可以看到VXLAN模式的Tunnel接口處於up狀態。

[RouterC] display interface tunnel

Tunnel0

Interface index: 261

Current state: UP

Line protocol state: UP

Description: Tunnel0 Interface

Bandwidth: 64 kbps

Maximum transmission unit: 1464

Internet protocol processing: Disabled

Output queue - Urgent queuing: Size/Length/Discards 0/100/0

Output queue - Protocol queuing: Size/Length/Discards 0/500/0

Output queue - FIFO queuing: Size/Length/Discards 0/75/0

Last clearing of counters: Never

Tunnel source 3.3.3.3, destination 2.2.2.2

Tunnel protocol/transport UDP_VXLAN/IP

Last 300 seconds input rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec

Last 300 seconds output rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec

Input: 0 packets, 0 bytes, 0 drops

Output: 0 packets, 0 bytes, 0 drops

 

Tunnel1

Interface index: 262

Current state: UP

Line protocol state: UP

Description: Tunnel1 Interface

Bandwidth: 64 kbps

Maximum transmission unit: 1464

Internet protocol processing: Disabled

Output queue - Urgent queuing: Size/Length/Discards 0/100/0

Output queue - Protocol queuing: Size/Length/Discards 0/500/0

Output queue - FIFO queuing: Size/Length/Discards 0/75/0

Last clearing of counters: Never

Tunnel source 3.3.3.3, destination 1.1.1.1

Tunnel protocol/transport UDP_VXLAN/IP

Last 300 seconds input rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec

Last 300 seconds output rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec

Input: 277 packets, 20306 bytes, 0 drops

Output: 1099 packets, 0 bytes, 0 drops

# 查看Router C上的VSI虛接口信息,可以看到VSI虛接口處於up狀態。

[RouterC] display interface vsi-interface

Vsi-interface1

Interface index: 263

Current state: UP

Line protocol state: UP

Description: Vsi-interface1 Interface

Bandwidth: 1000000 kbps

Maximum transmission unit: 1500

Internet address: 10.1.1.1/24 (primary)

IP packet frame type: Ethernet II, hardware address: 0003-0003-0003

IPv6 packet frame type: Ethernet II, hardware address: 0003-0003-0003

Physical: Unknown, baudrate: 1000000 kbps

Last clearing of counters: Never

Last 300 seconds input rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec

Last 300 seconds output rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec

Input: 0 packets, 0 bytes, 0 drops

Output: 0 packets, 0 bytes, 0 drops

 

Vsi-interface2

Interface index: 264

Current state: UP

Line protocol state: UP

Description: Vsi-interface2 Interface

Bandwidth: 1000000 kbps

Maximum transmission unit: 1500

Internet address: 10.1.2.1/24 (primary)

IP packet frame type: Ethernet II, hardware address: 0003-0003-0003

IPv6 packet frame type: Ethernet II, hardware address: 0003-0003-0003

Physical: Unknown, baudrate: 1000000 kbps

Last clearing of counters: Never

Last 300 seconds input rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec

Last 300 seconds output rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec

Input: 0 packets, 0 bytes, 0 drops

Output: 0 packets, 0 bytes, 0 drops

# 查看Router C上的VSI信息,可以看到VSI內創建的VXLAN、與VXLAN關聯的VXLAN隧道、與VSI關聯的VSI虛接口等信息。

[RouterC] display l2vpn vsi verbose

VSI Name: vpna

  VSI Index               : 0

  VSI State               : Up

  MTU                     : 1500

  Bandwidth               : -

  Broadcast Restrain      : -

  Multicast Restrain      : -

  Unknown Unicast Restrain: -

  MAC Learning            : -

  MAC Table Limit         : -

  MAC Learning rate       : -

  Drop Unknown            : -

  Flooding                : Enabled

  Statistics              : Disabled

  Gateway Interface       : VSI-interface 1

  VXLAN ID                : 10

  Tunnels:

    Tunnel Name          Link ID    State    Type        Flood Proxy

    Tunnel0              0x5000000  UP       Auto        Disabled

    Tunnel1              0x5000001  UP       Auto        Disabled

 

VSI Name: vpnb

  VSI Index               : 1

  VSI State               : Up

  MTU                     : 1500

  Bandwidth               : -

  Broadcast Restrain      : -

  Multicast Restrain      : -

  Unknown Unicast Restrain: -

  MAC Learning            : -

  MAC Table Limit         : -

  MAC Learning rate       : -

  Drop Unknown            : -

  Flooding                : Enabled

  Statistics              : Disabled

  Gateway Interface       : VSI-interface 2

  VXLAN ID                : 20

  Tunnels:

    Tunnel Name          Link ID    State    Type        Flood Proxy

    Tunnel0              0x5000000  UP       Auto        Disabled

    Tunnel1              0x5000001  UP       Auto        Disabled

# 查看Router C上VSI的EVPN ARP表項信息,可以看到已學習到了虛擬機的ARP信息。

[RouterC] display evpn route arp

Flags: D - Dynamic   B - BGP      L - Local active

       G - Gateway   S - Static   M - Mapping

 

Public instance                               Interface: Vsi-interface1

IP address      MAC address     Router MAC      VSI index   Flags

10.1.1.1        0003-0003-0003  -               0           GL

10.1.1.10       0000-1234-0001  -               0           B

10.1.1.20       0000-1234-0003  -               0           B

 

Public instance                               Interface: Vsi-interface2

IP address      MAC address     Router MAC      VSI index   Flags

10.1.2.1        0005-0005-0005  -               1           GL

10.1.2.10       0000-1234-0002  -               1           B

10.1.2.20       0000-1234-0004  -               1           B

# 查看Router C上FIB表項信息,可以看到已學習到了虛擬機的轉發表項信息。

[RouterC] display fib 10.1.1.10

 

Destination count: 1 FIB entry count: 1

 

Flag:

  U:Useable   G:Gateway   H:Host   B:Blackhole   D:Dynamic   S:Static

  R:Relay     F:FRR

 

Destination/Mask   Nexthop         Flag     OutInterface/Token       Label

10.1.1.10/32       10.1.1.10       UH       Vsi1                     Null

(2)     驗證主機之間可以互訪

虛擬機VM 1、VM 2、VM 3、VM 4之間可以互訪。

2.15.2  對稱IRB方式分布式IPv4 EVPN網關配置舉例

1. 組網需求

Router A、Router B為分布式EVPN網關設備;Router C為與廣域網連接的邊界網關設備;Router D為RR,負責在路由器之間反射BGP路由。

虛擬機VM 1和VM 3屬於VXLAN 10;VM 2和VM 4屬於VXLAN 20。相同VXLAN之間可以二層互通;不同VXLAN之間通過分布式EVPN網關實現三層互通,並采用對稱IRB方式轉發流量;VXLAN與廣域網之間通過邊界網關實現三層互通。

2. 組網圖

圖2-3 分布式EVPN網關配置組網圖

3. 配置步驟

(1)     配置IP地址和單播路由協議

# 在VM 1和VM 3上指定網關地址為10.1.1.1;在VM 2和VM 4上指定網關地址為10.1.2.1。(具體配置過程略)

# 請按照圖2-3配置各接口的IP地址和子網掩碼;在IP核心網絡內配置OSPF協議,確保路由器之間路由可達。(具體配置過程略)

(2)     配置Router A

# 開啟L2VPN能力。

<RouterA> system-view

[RouterA] l2vpn enable

# 關閉遠端MAC地址和遠端ARP自動學習功能。

[RouterA] vxlan tunnel mac-learning disable

[RouterA] vxlan tunnel arp-learning disable

# 在VSI實例vpna下創建EVPN實例,並配置自動生成EVPN實例的RD和RT。

[RouterA] vsi vpna

[RouterA-vsi-vpna] evpn encapsulation vxlan

[RouterA-vsi-vpna-evpn-vxlan] route-distinguisher auto

[RouterA-vsi-vpna-evpn-vxlan] vpn-target auto

[RouterA-vsi-vpna-evpn-vxlan] quit

# 創建VXLAN 10。

[RouterA-vsi-vpna] vxlan 10

[RouterA-vsi-vpna-vxlan-10] quit

[RouterA-vsi-vpna] quit

# 在VSI實例vpnb下創建EVPN實例,並配置自動生成EVPN實例的RD和RT。

[RouterA] vsi vpnb

[RouterA-vsi-vpnb] evpn encapsulation vxlan

[RouterA-vsi-vpnb-evpn-vxlan] route-distinguisher auto

[RouterA-vsi-vpnb-evpn-vxlan] vpn-target auto

[RouterA-vsi-vpnb-evpn-vxlan] quit

# 創建VXLAN 20。

[RouterA-vsi-vpnb] vxlan 20

[RouterA-vsi-vpnb-vxlan-20] quit

[RouterA-vsi-vpnb] quit

# 配置BGP發布EVPN路由。

[RouterA] bgp 200

[RouterA-bgp-default] peer 4.4.4.4 as-number 200

[RouterA-bgp-default] peer 4.4.4.4 connect-interface loopback 0

[RouterA-bgp-default] address-family l2vpn evpn

[RouterA-bgp-default-evpn] peer 4.4.4.4 enable

[RouterA-bgp-default-evpn] quit

[RouterA-bgp-default] quit

# 配置接口GigabitEthernet0/0/1與VSI實例vpna關聯。

[RouterA] interface gigabitethernet 0/0/1

[RouterA-GigabitEthernet0/0/1] xconnect vsi vpna

[RouterA-GigabitEthernet0/0/1] quit

# 配置接口GigabitEthernet0/0/2與VSI實例vpnb關聯。

[RouterA] interface gigabitethernet 0/0/2

[RouterA-GigabitEthernet0/0/2] xconnect vsi vpnb

[RouterA-GigabitEthernet0/0/2] quit

# 配置L3VNI的RD和RT。

[RouterA] ip vpn-instance l3vpna

[RouterA-vpn-instance-l3vpna] route-distinguisher 1:1

[RouterA-vpn-instance-l3vpna] address-family ipv4

[RouterA-vpn-ipv4-l3vpna] vpn-target 2:2

[RouterA-vpn-ipv4-l3vpna] quit

[RouterA-vpn-instance-l3vpna] address-family evpn

[RouterA-vpn-evpn-l3vpna] vpn-target 1:1

[RouterA-vpn-evpn-l3vpna] quit

[RouterA-vpn-instance-l3vpna] quit

# 配置VSI虛接口VSI-interface1。

[RouterA] interface vsi-interface 1

[RouterA-Vsi-interface1] ip binding vpn-instance l3vpna

[RouterA-Vsi-interface1] ip address 10.1.1.1 255.255.255.0

[RouterA-Vsi-interface1] mac-address 1-1-1

[RouterA-Vsi-interface1] distributed-gateway local

[RouterA-Vsi-interface1] local-proxy-arp enable

[RouterA-Vsi-interface1] quit

# 配置VSI虛接口VSI-interface2。

[RouterA] interface vsi-interface 2

[RouterA-Vsi-interface2] ip binding vpn-instance l3vpna

[RouterA-Vsi-interface2] ip address 10.1.2.1 255.255.255.0

[RouterA-Vsi-interface2] mac-address 2-2-2

[RouterA-Vsi-interface2] distributed-gateway local

[RouterA-Vsi-interface2] local-proxy-arp enable

[RouterA-Vsi-interface2] quit

# 創建VSI虛接口VSI-interface3,在該接口上配置VPN實例l3vpna對應的L3VNI為1000。

[RouterA] interface vsi-interface 3

[RouterA-Vsi-interface3] ip binding vpn-instance l3vpna

[RouterA-Vsi-interface3] l3-vni 1000

[RouterA-Vsi-interface3] quit

# 配置VXLAN 10所在的VSI實例和接口VSI-interface1關聯。

[RouterA] vsi vpna

[RouterA-vsi-vpna] gateway vsi-interface 1

[RouterA-vsi-vpna] quit

# 配置VXLAN 20所在的VSI實例和接口VSI-interface2關聯。

[RouterA] vsi vpnb

[RouterA-vsi-vpnb] gateway vsi-interface 2

[RouterA-vsi-vpnb] quit

(3)     配置Router B

# 開啟L2VPN能力。

<RouterB> system-view

[RouterB] l2vpn enable

# 關閉遠端MAC地址和遠端ARP自動學習功能。

[RouterB] vxlan tunnel mac-learning disable

[RouterB] vxlan tunnel arp-learning disable

# 在VSI實例vpna下創建EVPN實例,並配置自動生成EVPN實例的RD和RT。

[RouterB] vsi vpna

[RouterB-vsi-vpna] evpn encapsulation vxlan

[RouterB-vsi-vpna-evpn-vxlan] route-distinguisher auto

[RouterB-vsi-vpna-evpn-vxlan] vpn-target auto

[RouterB-vsi-vpna-evpn-vxlan] quit

# 創建VXLAN 10。

[RouterB-vsi-vpna] vxlan 10

[RouterB-vsi-vpna-vxlan-10] quit

[RouterB-vsi-vpna] quit

# 在VSI實例vpnb下創建EVPN實例,並配置自動生成EVPN實例的RD和RT。

[RouterB] vsi vpnb

[RouterB-vsi-vpnb] evpn encapsulation vxlan

[RouterB-vsi-vpnb-evpn-vxlan] route-distinguisher auto

[RouterB-vsi-vpnb-evpn-vxlan] vpn-target auto

[RouterB-vsi-vpnb-evpn-vxlan] quit

# 創建VXLAN 20。

[RouterB-vsi-vpnb] vxlan 20

[RouterB-vsi-vpnb-vxlan-20] quit

[RouterB-vsi-vpnb] quit

# 配置BGP發布EVPN路由。

[RouterB] bgp 200

[RouterB-bgp-default] peer 4.4.4.4 as-number 200

[RouterB-bgp-default] peer 4.4.4.4 connect-interface loopback 0

[RouterB-bgp-default] address-family l2vpn evpn

[RouterB-bgp-default-evpn] peer 4.4.4.4 enable

[RouterB-bgp-default-evpn] quit

[RouterB-bgp-default] quit

# 配置接口GigabitEthernet0/0/1與VSI實例vpna關聯。

[RouterB] interface gigabitethernet 0/0/1

[RouterB-GigabitEthernet0/0/1] xconnect vsi vpna

[RouterB-GigabitEthernet0/0/1] quit

# 配置接口GigabitEthernet0/0/2與VSI實例vpnb關聯。

[RouterB] interface gigabitethernet 0/0/2

[RouterB-GigabitEthernet0/0/2] xconnect vsi vpnb

[RouterB-GigabitEthernet0/0/2] quit

# 配置L3 VNI的RD和RT。

[RouterB] ip vpn-instance l3vpna

[RouterB-vpn-instance-l3vpna] route-distinguisher 1:1

[RouterB-vpn-instance-l3vpna] address-family ipv4

[RouterB-vpn-ipv4-l3vpna] vpn-target 2:2

[RouterB-vpn-ipv4-l3vpna] quit

[RouterB-vpn-instance-l3vpna] address-family evpn

[RouterB-vpn-evpn-l3vpna] vpn-target 1:1

[RouterB-vpn-evpn-l3vpna] quit

[RouterB-vpn-instance-l3vpna] quit

# 配置VSI虛接口VSI-interface1。

[RouterB] interface vsi-interface 1

[RouterB-Vsi-interface1] ip binding vpn-instance l3vpna

[RouterB-Vsi-interface1] ip address 10.1.1.1 255.255.255.0

[RouterB-Vsi-interface1] mac-address 1-1-1

[RouterB-Vsi-interface1] distributed-gateway local

[RouterB-Vsi-interface1] local-proxy-arp enable

[RouterB-Vsi-interface1] quit

# 創建VSI虛接口VSI-interface2。

[RouterB] interface vsi-interface 2

[RouterB-Vsi-interface2] ip binding vpn-instance l3vpna

[RouterB-Vsi-interface2] ip address 10.1.2.1 255.255.255.0

[RouterB-Vsi-interface2] mac-address 2-2-2

[RouterB-Vsi-interface2] distributed-gateway local

[RouterB-Vsi-interface2] local-proxy-arp enable

[RouterB-Vsi-interface2] quit

# 創建VSI虛接口VSI-interface3,在該接口上配置VPN實例l3vpna對應的L3VNI為1000。

[RouterB] interface vsi-interface 3

[RouterB-Vsi-interface3] ip binding vpn-instance l3vpna

[RouterB-Vsi-interface3] l3-vni 1000

[RouterB-Vsi-interface3] quit

# 配置VXLAN 10所在的VSI實例和接口VSI-interface1關聯。

[RouterB] vsi vpna

[RouterB-vsi-vpna] gateway vsi-interface 1

[RouterB-vsi-vpna] quit

# 配置VXLAN 20所在的VSI實例和接口VSI-interface2關聯。

[RouterB] vsi vpnb

[RouterB-vsi-vpnb] gateway vsi-interface 2

[RouterB-vsi-vpnb] quit

(4)     配置Router C

# 開啟L2VPN能力。

<RouterC> system-view

[RouterC] l2vpn enable

# 關閉遠端MAC地址和遠端ARP自動學習功能。

[RouterC] vxlan tunnel mac-learning disable

[RouterC] vxlan tunnel arp-learning disable

# 配置BGP發布EVPN路由。

[RouterC] bgp 200

[RouterC-bgp-default] peer 4.4.4.4 as-number 200

[RouterC-bgp-default] peer 4.4.4.4 connect-interface loopback 0

[RouterC-bgp-default] address-family l2vpn evpn

[RouterC-bgp-default-evpn] peer 4.4.4.4 enable

[RouterC-bgp-default-evpn] quit

[RouterC-bgp-default] quit

# 配置L3 VNI的RD和RT。

[RouterC] ip vpn-instance l3vpna

[RouterC-vpn-instance-l3vpna] route-distinguisher 1:1

[RouterC-vpn-instance-l3vpna] address-family ipv4

[RouterC-vpn-ipv4-l3vpna] vpn-target 2:2

[RouterC-vpn-ipv4-l3vpna] quit

[RouterC-vpn-instance-l3vpna] address-family evpn

[RouterC-vpn-evpn-l3vpna] vpn-target 1:1

[RouterC-vpn-evpn-l3vpna] quit

[RouterC-vpn-instance-l3vpna] quit

# 創建VSI虛接口VSI-interface3,在該接口上配置VPN實例l3vpna對應的L3VNI為1000。

[RouterC] interface vsi-interface 3

[RouterC-Vsi-interface3] ip binding vpn-instance l3vpna

[RouterC-Vsi-interface3] l3-vni 1000

[RouterC-Vsi-interface3] quit

# 配置缺省路由,下一跳為廣域網中某台設備的IP地址20.1.1.100。

[RouterC] ip route-static vpn-instance l3vpna 0.0.0.0 0 20.1.1.100

# 將缺省路由引入到VPN實例l3vpna的BGP IPv4單播路由表中。

[RouterC] bgp 200

[RouterC-bgp-default] ip vpn-instance l3vpna

[RouterC-bgp-default-l3vpna] address-family ipv4 unicast

[RouterC-bgp-default-ipv4-l3vpna] default-route imported

[RouterC-bgp-default-ipv4-l3vpna] import-route static

[RouterC-bgp-default-ipv4-l3vpna] quit

[RouterC-bgp-default-l3vpna] quit

[RouterC-bgp-default] quit

# 配置連接廣域網的接口GigabitEthernet0/0/2與VPN實例l3vpna關聯。

[RouterC] interface gigabitethernet 0/0/2

[RouterC-GigabitEthernet0/0/2] ip binding vpn-instance l3vpna

[RouterC-GigabitEthernet0/0/2] ip address 20.1.1.3 24

[RouterC-GigabitEthernet0/0/2] quit

(5)     配置Router D

# 配置Router D與其他路由器建立BGP連接。

<RouterD> system-view

[RouterD] bgp 200

[RouterD-bgp-default] group evpn

[RouterD-bgp-default] peer 1.1.1.1 group evpn

[RouterD-bgp-default] peer 2.2.2.2 group evpn

[RouterD-bgp-default] peer 3.3.3.3 group evpn

[RouterD-bgp-default] peer evpn as-number 200

[RouterD-bgp-default] peer evpn connect-interface loopback 0

# 配置BGP發布EVPN路由,並關閉BGP EVPN路由的VPN-Target過濾功能。

[RouterD-bgp-default] address-family l2vpn evpn

[RouterD-bgp-default-evpn] peer evpn enable

[RouterD-bgp-default-evpn] undo policy vpn-target

# 配置Router D為路由反射器。

[RouterD-bgp-default-evpn] peer evpn reflect-client

[RouterD-bgp-default-evpn] quit

[RouterD-bgp-default] quit

4. 驗證配置

(1)     驗證分布式EVPN網關設備Router A

# 查看Router A上的EVPN路由信息,可以看到Router A發送了網關的IP前綴路由、各VSI的IMET路由和MAC/IP路由,並接收到Router B發送的網關IP前綴路由、各VSI的IMET路由和MAC/IP路由。(具體顯示信息略)

# 查看Router A上的Tunnel接口信息,可以看到VXLAN模式的Tunnel接口處於up狀態。(以Tunnel0接口為例)

[RouterA] display interface tunnel 0

Tunnel0

Interface index: 261

Current state: UP

Line protocol state: UP

Description: Tunnel0 Interface

Bandwidth: 64 kbps

Maximum transmission unit: 1464

Internet protocol processing: Disabled

Output queue - Urgent queuing: Size/Length/Discards 0/100/0

Output queue - Protocol queuing: Size/Length/Discards 0/500/0

Output queue - FIFO queuing: Size/Length/Discards 0/75/0

Last clearing of counters: Never

Tunnel source 1.1.1.1, destination 2.2.2.2

Tunnel protocol/transport UDP_VXLAN/IP

Last 300 seconds input rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec

Last 300 seconds output rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec

Input: 0 packets, 0 bytes, 0 drops

Output: 0 packets, 0 bytes, 0 drops

# 查看Router A上的VSI虛接口信息,可以看到VSI虛接口處於up狀態。(以VSI虛接口1為例)

[RouterA] display interface vsi-interface 1

Vsi-interface1

Interface index: 262

Current state: UP

Line protocol state: UP

Description: Vsi-interface1 Interface

Bandwidth: 1000000 kbps

Maximum transmission unit: 1500

Internet address: 10.1.1.1/24 (primary)

IP packet frame type: Ethernet II, hardware address: 0003-0003-0003

IPv6 packet frame type: Ethernet II, hardware address: 0003-0003-0003

Physical: Unknown, baudrate: 1000000 kbps

Last clearing of counters: Never

Last 300 seconds input rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec

Last 300 seconds output rate: 0 bytes/sec, 0 bits/sec, 0 packets/sec

Input: 0 packets, 0 bytes, 0 drops

Output: 0 packets, 0 bytes, 0 drops

# 查看Router A上的VSI信息,可以看到VSI內創建的VXLAN、與VXLAN關聯的VXLAN隧道、與VSI關聯的VSI虛接口等信息。

[RouterA] display l2vpn vsi verbose

VSI Name: Auto_L3VNI1000_3

  VSI Index               : 1

  VSI State               : Down

  MTU                     : 1500

  Bandwidth               : -

  Broadcast Restrain      : -

  Multicast Restrain      : -

  Unknown Unicast Restrain: -

  MAC Learning            : -

  MAC Table Limit         : -

  MAC Learning rate       : -

  Drop Unknown            : -

  Flooding                : Enabled

  Statistics              : Disabled

  Gateway Interface       : VSI-interface 3

  VXLAN ID                : 1000

 

VSI Name: vpna

  VSI Index               : 0

  VSI State               : Up

  MTU                     : 1500

  Bandwidth               : -

  Broadcast Restrain      : -

  Multicast Restrain      : -

  Unknown Unicast Restrain: -

  MAC Learning            : -

  MAC Table Limit         : -

  MAC Learning rate       : -

  Drop Unknown            : -

  Flooding                : Enabled

  Statistics              : Disabled

  Gateway Interface       : VSI-interface 1

  VXLAN ID                : 10

  ACs:

    AC                               Link ID    State

    GE0/0/1                          0x0        Up

 

VSI Name: vpnb

  VSI Index               : 2

  VSI State               : Up

  MTU                     : 1500

  Bandwidth               : -

  Broadcast Restrain      : -

  Multicast Restrain      : -

  Unknown Unicast Restrain: -

  MAC Learning            : -

  MAC Table Limit         : -

  MAC Learning rate       : -

  Drop Unknown            : -

  Flooding                : Enabled

  Statistics              : Disabled

  Gateway Interface       : VSI-interface 2

  VXLAN ID                : 20

  ACs:

    AC                                 Link ID    State

    GE0/0/2                            0x1        Up

# 查看Router A上VSI的ARP表項信息,可以看到已學習到了本地虛擬機的ARP信息。

[RouterA] display arp

  Type: S-Static   D-Dynamic   O-Openflow   R-Rule   M-Multiport  I-Invalid

IP address      MAC address    VLAN/VSI name Interface                Aging Type

10.1.1.10       0000-1234-0001 0             GE0/0/1                  20    D

10.1.2.10       0000-1234-0002 0             GE0/0/2                  19    D

2.2.2.2         a0ce-5e24-0100 1             Tunnel0                  --    R

# 查看Router A上VSI的EVPN ARP表項信息,可以看到已學習到了本地虛擬機的ARP信息。

[RouterA] display evpn route arp

Flags: D - Dynamic   B - BGP      L - Local active

       G - Gateway   S - Static   M - Mapping

 

VPN instance: l3vpna                          Interface:Vsi-interface1

IP address      MAC address     Router MAC      VSI Index   Flags

10.1.1.1        0001-0001-0001  a0ce-7e40-0400  0           GL

10.1.1.10       0000-1234-0001  a0ce-7e40-0400  0           DL

10.1.2.10       0000-1234-0002  a0ce-7e40-0400  0           DL

10.1.1.20       0000-1234-0003  a0ce-7e40-0400  0           B

10.1.2.20       0000-1234-0004  a0ce-7e40-0400  0           B

(2)     驗證主機之間可以互訪

虛擬機VM 1、VM 2、VM 3、VM 4之間可以互訪。

 

不同款型規格的資料略有差異, 詳細信息請向具體銷售和400谘詢。H3C保留在沒有任何通知或提示的情況下對資料內容進行修改的權利!

BOB登陆
官網
聯係我們