03-EVPN數據中心互聯配置
本章節下載: 03-EVPN數據中心互聯配置 (493.19 KB)
目 錄
1.8 配置BGP EVPN和BGP VPNv4路由相互引入
1.8.2 配置允許BGP VPNv4路由通過EVPN地址族發布給鄰居
1.8.3 配置允許BGP EVPN路由通過VPNv4地址族發布給鄰居
EVPN數據中心互聯技術通過在數據中心之間建立VXLAN-DCI(VXLAN Data Center Interconnect,VXLAN數據中心互聯)隧道,實現不同數據中心之間虛擬機的互通。
如圖1-1所示,數據中心的邊緣設備為ED(Edge Device,邊緣設備)。ED之間建立VXLAN-DCI隧道,該隧道采用VXLAN封裝格式。ED與數據中心內部的VTEP建立VXLAN隧道。ED從VXLAN隧道或VXLAN-DCI隧道上接收到報文後,解除VXLAN封裝,根據目的IP地址重新對報文進行VXLAN封裝,並將其轉發到VXLAN-DCI隧道或VXLAN隧道,從而實現跨數據中心之間的互通。
圖1-1 VXLAN數據中心互聯典型組網圖
EVPN數據中心互聯組網中,ED之間、ED與VTEP之間建立BGP EVPN鄰居。ED從本數據中心的VTEP或其他ED接收到BGP EVPN路由後,將路由的下一跳、Router MAC分別修改為自身的IP地址、Router MAC地址,並將該路由發布給其他ED或本數據中心的VTEP。
ED、VTEP均學習到BGP EVPN路由後,根據路由信息轉發報文的過程為:
(1) VTEP接收到VM發送的報文後,通過VXLAN隧道將報文轉發給ED。
(2) ED解除VXLAN封裝後,重新對報文進行VXLAN封裝,通過VXLAN-DCI隧道將報文發送給遠端ED。
(3) 遠端ED解除VXLAN封裝後,重新封裝報文,通過VXLAN隧道將報文轉發給VTEP。
(4) VTEP解除VXLAN封裝後,將報文發送給目的VM。
如圖1-2所示,在EVPN數據中心互聯場景中,為了提高ED的可靠性,避免單點故障,在數據中心的邊緣可以部署兩台ED設備與其他數據中心互聯。這兩台ED設備使用相同的虛擬IP地址,虛擬成一台ED設備,采用虛擬IP地址與VTEP、遠端ED建立隧道,以實現冗餘保護和負載分擔。
圖1-2 EVPN數據中心互聯支持雙ED組網圖
兩台ED使用不同的地址作為BGP對等體地址,分別與VTEP、遠端ED建立BGP EVPN鄰居。利用Underlay網絡的等價路由機製,VTEP、遠端ED可以將發往ED虛擬IP地址的流量同時發送到兩台ED,從而實現冗餘備份和負載分擔。
在連接不同數據中心ED的DCI網絡側,兩台ED均通過Underlay網絡與對端數據中心ED建立連接。當一台ED的DCI側Underlay網絡出現故障時,數據中心內部網絡無法感知該故障,仍通過該ED轉發數據中心間的流量。通過配置Monitor Link組,將DCI側的物理接口與ED設備的LoopBack接口(用於建立BGP EVPN鄰居的接口)關聯,可以確保其中一台ED設備的DCI側Underlay網絡斷開時,將該ED的LoopBack接口鏈路狀態置為down,使流量通過另外一台ED設備轉發。Monitor Link的詳細介紹,請參見“可靠性配置指導”中的“Monitor Link”。
為了實現鏈路備份,數據中心網絡內部中,建議在Spine層部署多台RR;在DCI網絡側,建議ED通過雙鏈路接入Underlay網絡。
在ED設備上,如果通過mac-address命令修改了某一關聯L3VNI的VSI虛接口的MAC地址,則必須通過該命令將所有與L3VNI關聯的VSI虛接口的MAC地址修改為相同的值,否則可能會導致報文轉發失敗。
EVPN數據中心互聯配置均在ED設備上執行,配置任務如下:
(1) 開啟DCI功能
(2) 配置ED修改EVPN路由
(3) (可選)配置VXLAN映射
如果在不同的數據中心中,同一租戶的相同子網使用了不同的VXLAN,要保證相同子網之間的流量進行二層轉發,則需要執行本配置。
(4) 配置BGP EVPN和BGP VPNv4路由相互引入
不同的數據中心之間通過MPLS L3VPN網絡互聯時,需要執行本配置。
(5) (可選)配置EVPN數據中心互聯支持雙ED
配置EVPN數據中心互聯前,需要先完成各個數據中心的EVPN部署,詳細配置方法請參見“EVPN配置指導”中的“EVPN VXLAN”。
EVPN數據中心互聯組網中,ED間互連的三層接口上必須開啟DCI功能,以便在ED之間建立VXLAN-DCI隧道。
ED根據EVPN路由自動建立隧道時,如果路由下一跳對應的出接口上開啟了DCI功能,則建立VXLAN-DCI隧道;否則,建立VXLAN隧道。
(1) 進入係統視圖。
system-view
(2) 進入接口視圖。
interface interface-type interface-number
(3) 開啟DCI功能。
dci enable
缺省情況下,DCI功能處於關閉狀態。
(1) 進入係統視圖。
system-view
(2) 配置全局Router ID。
router id router-id
缺省情況下,未配置全局Router ID。
(3) 啟動BGP實例,並進入BGP實例視圖。
bgp as-number [ instance instance-name ]
缺省情況下,係統沒有運行BGP。
(4) 將遠端VTEP和ED配置為對等體。
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路由。
(7) 配置向對等體/對等體組發布路由時,將下一跳屬性修改為自身的地址。
peer { group-name | ipv4-address [ mask-length ] } next-hop-local
缺省情況下,向EBGP對等體/對等體組發布的所有路由,都將下一跳屬性修改為自身的地址;向IBGP對等體/對等體組發布的EBGP路由,不修改下一跳屬性。
本配置中指定的對等體應為本數據中心的VTEP。
(8) 配置向對等體/對等體組發布路由、將從對等體/對等體組接收到的路由發布給其他對等體時,將路由的Router MAC修改為自身的Router MAC地址。
peer { group-name | ipv4-address [ mask-length ] } router-mac-local
缺省情況下,不會修改路由的Router MAC。
本配置中指定的對等體應為遠端ED。
EVPN數據中心互聯組網中,在以下場景中需要ED修改EVPN路由的RD、L3VNI和RT:
· 不同數據中心使用的L3VNI不同,通過本配置修改L3VNI,以實現數據中心之間的互通。
· 不同數據中心互通,需要RT值匹配。當數據中心組網規模較大時,數據中心之間的RT配置比較複雜。配置本命令後,ED可直接修改EVPN路由的RT值,數據中心之間發布EVPN路由使用統一的RT值即可,無需進行複雜的RT配置。
· 用戶不希望泄露本地數據中心使用的L3VNI時,可以執行本配置將本地所有L3VNI均替換為ED上的L3VNI,對外僅體現ED上的L3VNI。
執行peer re-originated命令後,ED修改路由中的L3VNI、RD和RT,並向指定對等體/對等體組發布修改後的EVPN路由,不會向對等體/對等體組發布源EVPN路由。此時,如果某些對等體/對等體組希望接收源EVPN路由,則可在ED上執行peer advertise original-route命令,使ED同時向對等體/對等體組發布修改後的EVPN路由和源EVPN路由。
同時執行peer re-originated和peer advertise original-route命令後,如果某些對等體/對等體組為減少本地路由條目,僅希望接收源EVPN路由,則可在ED上執行peer suppress re-originated命令,使ED僅向對等體/對等體組發布源EVPN路由。
如果ED上本地VPN實例的RD與接收到的EVPN路由的RD相同,則不會修改該路由的L3VNI和RT,也不會重生成路由,導致該BGP EVPN路由無法向對等體/對等體組發布。因此,配置修改EVPN路由的RD、L3VNI和RT時,建議在不同設備上為VPN實例配置不同的RD。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
(3) 進入BGP EVPN地址族視圖。
address-family l2vpn evpn
(4) 配置從對等體/對等體組接收到BGP EVPN路由後,修改路由中的信息。
peer { group-name | ipv4-address [ mask-length ] } re-originated [ ip-prefix | mac-ip ] [ replace-rt ]
缺省情況下,不修改從對等體/對等體組接收到的EVPN路由的信息。
(5) (可選)配置向對等體/對等體組發布源EVPN路由。
peer { group-name | ipv4-address [ mask-length ] } advertise original-route
缺省情況下,執行peer re-originated命令修改路由信息後,不向對等體/對等體組發布源EVPN路由。
(6) (可選)配置抑製向對等體/對等體組發送修改路由信息後的EVPN路由。
peer { group-name | ipv4-address [ mask-length ] } suppress re-originated { ip-prefix | mac-ip }
缺省情況下,執行peer re-originated命令修改路由信息後,向對等體/對等體組發送修改後的EVPN路由。
在不同的數據中心中,同一租戶的相同子網可能使用不同的VXLAN。這些數據中心互聯時,若要保證同一租戶相同子網之間的流量進行二層轉發,則ED設備上需要執行本配置,在不同的VXLAN之間建立映射關係。
指定映射的遠端VXLAN後,ED接收到本數據中心內VTEP發送的MAC/IP發布路由時,將其學習到本地VXLAN中,並在向其他ED通告該MAC/IP發布路由前,將路由中攜帶的VXLAN替換為映射的遠端VXLAN。從其他ED接收到映射的遠端VXLAN內的MAC/IP發布路由時,本地ED將該路由學習到本地VXLAN中。
可以通過以下方式建立映射關係:
· 將本地VXLAN直接映射為另一個數據中心中使用的VXLAN。采用此方式時,隻需在一個數據中心的ED上指定映射的遠端VXLAN。例如,數據中心1內使用VXLAN 10、數據中心2內使用VXLAN 20時,隻需在數據中心1的ED上配置VXLAN 10映射為遠端VXLAN 20。
· 將不同數據中心ED上的本地VXLAN映射為相同的VXLAN(稱為中間VXLAN)。采用此方式時,需要在所有數據中心的ED上都指定映射的遠端VXLAN為中間VXLAN。例如,數據中心1內使用VXLAN 10、數據中心2內使用VXLAN 20、數據中心3內使用VXLAN 30時,需要在三個數據中心的ED上均配置映射的遠端VXLAN為中間VXLAN(如VXLAN 500)。當多個數據中心互聯,且不同數據中心使用的VXLAN各不相同時,需要使用此方式。中間VXLAN隻能用於VXLAN映射,不能用作普通VXLAN來處理VXLAN業務。
本地設備上需要創建映射的遠端VXLAN,為其配置EVPN實例,並為該EVPN實例配置RD和Route Target屬性。
在使用VXLAN映射功能時,不要為EVPN實例和VPN實例的EVPN地址族、EVPN實例和公網實例的EVPN地址族配置相同的Export target,否則可能導致三層轉發不通。
(1) 進入係統視圖。
system-view
(2) 進入VSI視圖。
vsi vsi-name
(3) 進入EVPN實例視圖。
evpn encapsulation vxlan
(4) 指定本地VXLAN映射的遠端VXLAN。
mapping vni vxlan-id
缺省情況下,未指定本地VXLAN映射的遠端VXLAN。
本命令中指定的映射遠端VXLAN ID不能與reserved vxlan命令配置的保留VXLAN相同。reserved vxlan命令的詳細介紹,請參見“VXLAN命令參考”中的“VXLAN”。
不同的數據中心之間通過MPLS L3VPN網絡互聯時,ED同時作為MPLS L3VPN的PE設備,進行MPLS L3VPN相關處理。此時,ED上除了完成MPLS L3VPN和EVPN配置外,還需要配置BGP EVPN和BGP VPNv4路由相互引入以實現數據中心之間的互通。
圖1-3 通過MPLS L3VPN網絡連接不同的數據中心
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
(3) 進入BGP EVPN地址族視圖。
address-family l2vpn evpn
(4) 配置允許BGP VPNv4路由通過EVPN地址族發布給鄰居。
advertise l3vpn route [ replace-rt ][ advertise-policy policy-name ]
缺省情況下,BGP VPNv4路由不會通過EVPN地址族向外發送。
執行本命令後,BGP VPNv4路由將作為EVPN的IP前綴路由發布給鄰居。
(1) 進入係統視圖。
system-view
(2) 進入BGP實例視圖。
bgp as-number [ instance instance-name ]
(3) 進入BGP VPNv4地址族視圖。
address-family vpnv4
(4) 配置允許BGP EVPN路由通過VPNv4地址族發布給鄰居。
advertise evpn route [ replace-rt ][ advertise-policy policy-name ]
缺省情況下,BGP EVPN路由不會通過VPNv4地址族向外發送。
執行本命令後,設備會將EVPN的IP前綴路由、攜帶主機路由信息的MAC/IP發布路由通過VPNv4地址族發布給鄰居。
在數據中心網絡的邊緣部署兩台ED,並為其配置相同的虛擬IP地址後,這兩台ED將虛擬成為一台ED設備,從而避免ED單點故障對網絡造成影響。
當數據中心網絡邊緣僅有一台ED設備時,請不要配置ED的虛擬IP地址。
兩台ED設備上配置的虛擬IP地址必須相同,該虛擬IP地址應為ED設備上某個LoopBack接口的IP地址,且該地址不能與BGP對等體的地址相同。
兩台ED設備被虛擬成一台設備以後,ED設備不能在本地接入虛擬機,隻能作為數據中心互聯的邊緣設備使用,且不能在單台ED設備上引入外部路由。
(1) 進入係統視圖。
system-view
(2) 配置ED設備的虛擬IP地址。
evpn edge group group-ip
缺省情況下,未指定ED設備的虛擬IP地址。
Router A和Router B為數據中心1的VTEP,Router C和Router D為數據中心2的VTEP,Router B和Router C為兩個數據中心的ED。數據中心1和數據中心2都使用VXLAN 10處理同一業務的流量。通過EVPN數據中心互連實現數據中心1和數據中心2的二層互通。
(1) 配置IP地址和單播路由協議
# 配置各接口的IP地址和子網掩碼;在IP核心網絡內配置OSPF協議,確保路由器之間路由可達。(具體配置過程略)
(2) 配置Router A
# 開啟L2VPN能力。
<RouterA> system-view
[RouterA] l2vpn enable
# 關閉遠端MAC地址自動學習功能。
[RouterA] vxlan tunnel mac-learning disable
# 在VSI實例vpna下創建VXLAN 10。
[RouterA] vsi vpna
[RouterA-vsi-vpna] vxlan 10
[RouterA-vsi-vpna-vxlan-10] quit
# 在VSI實例vpna下創建EVPN實例,並配置EVPN實例的RD和RT。RT需要手工配置。
[RouterA-vsi-vpna] evpn encapsulation vxlan
[RouterA-vsi-vpna-evpn-vxlan] route-distinguisher auto
[RouterA-vsi-vpna-evpn-vxlan] vpn-target 123:456
[RouterA-vsi-vpna-evpn-vxlan] quit
[RouterA-vsi-vpna] quit
# 配置BGP發布EVPN路由。
[RouterA] bgp 100
[RouterA-bgp-default] peer 2.2.2.2 as-number 100
[RouterA-bgp-default] peer 2.2.2.2 connect-interface loopback 0
[RouterA-bgp-default] address-family l2vpn evpn
[RouterA-bgp-default-evpn] peer 2.2.2.2 enable
[RouterA-bgp-default-evpn] quit
[RouterA-bgp-default] quit
# 配置接入服務器的接口GigabitEthernet1/0/1與VSI實例vpna關聯。
[RouterA] interface gigabitethernet 1/0/1
[RouterA-GigabitEthernet1/0/1] xconnect vsi vpna
[RouterA-GigabitEthernet1/0/1] quit
(3) 配置Router B
# 開啟L2VPN能力。
<RouterB> system-view
[RouterB] l2vpn enable
# 關閉遠端MAC地址自動學習功能。
[RouterB] vxlan tunnel mac-learning disable
# 在與Router C相連的三層接口上使能DCI功能,以便EVPN自動建立VXLAN-DCI隧道。
[RouterB] interface gigabitethernet 1/0/2
[RouterB-GigabitEthernet1/0/2] dci enable
[RouterB-GigabitEthernet1/0/2] quit
# 在VSI實例vpna下創建VXLAN 10。
[RouterB] vsi vpna
[RouterB-vsi-vpna] vxlan 10
[RouterB-vsi-vpna-vxlan-10] quit
# 在VSI實例vpna下創建EVPN實例,並配置EVPN實例的RD和RT。RT需要手工配置。
[RouterB-vsi-vpna] evpn encapsulation vxlan
[RouterB-vsi-vpna-evpn-vxlan] route-distinguisher auto
[RouterB-vsi-vpna-evpn-vxlan] vpn-target 123:456
[RouterB-vsi-vpna-evpn-vxlan] quit
[RouterB-vsi-vpna] quit
# 配置BGP發布EVPN路由,指定向Router A發布路由時將路由下一跳修改為自身的地址,向Router C發布路由、從Router C接收路由並發布時修改Router MAC。
[RouterB] bgp 100
[RouterB-bgp-default] peer 3.3.3.3 as-number 200
[RouterB-bgp-default] peer 3.3.3.3 connect-interface loopback 0
[RouterB-bgp-default] peer 3.3.3.3 ebgp-max-hop 64
[RouterB-bgp-default] peer 1.1.1.1 as-number 100
[RouterB-bgp-default] peer 1.1.1.1 connect-interface loopback 0
[RouterB-bgp-default] address-family l2vpn evpn
[RouterB-bgp-default-evpn] peer 3.3.3.3 enable
[RouterB-bgp-default-evpn] peer 3.3.3.3 router-mac-local
[RouterB-bgp-default-evpn] peer 1.1.1.1 enable
[RouterB-bgp-default-evpn] peer 1.1.1.1 next-hop-local
[RouterB-bgp-default-evpn] quit
[RouterB-bgp-default] quit
(4) 配置Router C
# 開啟L2VPN能力。
<RouterC> system-view
[RouterC] l2vpn enable
# 關閉遠端MAC地址自動學習功能。
[RouterC] vxlan tunnel mac-learning disable
# 在與Router B相連的三層接口上使能DCI功能,以便EVPN自動建立VXLAN-DCI隧道
[RouterC] interface gigabitethernet 1/0/1
[RouterC-GigabitEthernet1/0/1] dci enable
[RouterC-GigabitEthernet1/0/1] quit
# 在VSI實例vpna下創建VXLAN 10。
[RouterC] vsi vpna
[RouterC-vsi-vpna] vxlan 10
[RouterC-vsi-vpna-vxlan-10] quit
# 在VSI實例vpna下創建EVPN實例,並配置EVPN實例的RD和RT。RT需要手工配置。
[RouterC-vsi-vpna] evpn encapsulation vxlan
[RouterC-vsi-vpna-evpn-vxlan] route-distinguisher auto
[RouterC-vsi-vpna-evpn-vxlan] vpn-target 123:456
[RouterC-vsi-vpna-evpn-vxlan] quit
[RouterC-vsi-vpna] quit
# 配置BGP發布EVPN路由,指定向Router D發布路由時將路由下一跳修改為自身的地址,向Router B發布路由、從Router B接收路由並發布時時修改Router MAC。
[RouterC] bgp 200
[RouterC-bgp-default] peer 2.2.2.2 as-number 100
[RouterC-bgp-default] peer 2.2.2.2 connect-interface loopback 0
[RouterC-bgp-default] peer 2.2.2.2 ebgp-max-hop 64
[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 2.2.2.2 enable
[RouterC-bgp-default-evpn] peer 2.2.2.2 router-mac-local
[RouterC-bgp-default-evpn] peer 4.4.4.4 enable
[RouterC-bgp-default-evpn] peer 4.4.4.4 next-hop-local
[RouterC-bgp-default-evpn] quit
[RouterC-bgp-default] quit
(5) 配置Router D
# 開啟L2VPN能力。
<RouterD> system-view
[RouterD] l2vpn enable
# 關閉遠端MAC地址自動學習功能。
[RouterD] vxlan tunnel mac-learning disable
# 在VSI實例vpna下創建VXLAN 10。
[RouterD] vsi vpna
[RouterD-vsi-vpna] vxlan 10
[RouterD-vsi-vpna-vxlan-10] quit
# 在VSI實例vpna下創建EVPN實例,並配置EVPN實例的RD和RT。RT需要手工配置。
[RouterD-vsi-vpna] evpn encapsulation vxlan
[RouterD-vsi-vpna-evpn-vxlan] route-distinguisher auto
[RouterD-vsi-vpna-evpn-vxlan] vpn-target 123:456
[RouterD-vsi-vpna-evpn-vxlan] quit
[RouterD-vsi-vpna] quit
# 配置BGP發布EVPN路由。
[RouterD] bgp 200
[RouterD-bgp-default] peer 3.3.3.3 as-number 200
[RouterD-bgp-default] peer 3.3.3.3 connect-interface loopback 0
[RouterD-bgp-default] address-family l2vpn evpn
[RouterD-bgp-default-evpn] peer 3.3.3.3 enable
[RouterD-bgp-default-evpn] quit
[RouterD-bgp-default] quit
# 配置接入服務器的接口GigabitEthernet1/0/1與VSI實例vpna關聯。
[RouterD] interface gigabitethernet 1/0/1
[RouterD-GigabitEthernet1/0/1] xconnect vsi vpna
[RouterD-GigabitEthernet1/0/1] quit
(1) 驗證ED(下文以Router B為例,Router C驗證方法與此類似)
# 查看EVPN通過BGP自動發現的鄰居信息,可以看到EVPN通過Inclusive Multicast Ethernet Tag Route發現鄰居Router A和Router C,並分別與其建立VXLAN隧道、VXLAN-DCI隧道。
[RouterB] display evpn auto-discovery imet
Total number of automatically discovered peers: 3
VSI name: vpna
RD PE_address Tunnel_address Tunnel mode VXLAN ID
1:10 1.1.1.1 1.1.1.1 VXLAN 10
1:10 3.3.3.3 3.3.3.3 VXLAN-DCI 10
# 查看Router B上的Tunnel接口信息,可以看到VXLAN模式和VXLAN-DCI模式的Tunnel接口處於up狀態。
[RouterB] display interface tunnel
Tunnel0
Current state: UP
Line protocol state: UP
Description: Tunnel0 Interface
Bandwidth: 64kbps
Maximum transmission unit: 64000
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 2.2.2.2, 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: 0 packets, 0 bytes, 0 drops
Output: 0 packets, 0 bytes, 0 drops
Tunnel1
Current state: UP
Line protocol state: UP
Description: Tunnel1 Interface
Bandwidth: 64kbps
Maximum transmission unit: 64000
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 2.2.2.2, destination 3.3.3.3
Tunnel protocol/transport UDP_VXLAN-DCI/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 B上的VSI信息,可以看到VSI內創建的VXLAN,以及關聯的VXLAN隧道、VXLAN-DCI隧道等信息。
[RouterB] display l2vpn vsi name vpna verbose
VSI Name: vpna
VSI Index : 0
VSI State : Up
MTU : 1500
Bandwidth : -
Broadcast Restrain : -
Multicast Restrain : -
Unknown Unicast Restrain: -
MAC Learning : Enabled
MAC Table Limit : -
MAC Learning rate : -
Drop Unknown : -
Flooding : Enabled
Service Class : -
VXLAN ID : 10
Tunnels:
Tunnel Name Link ID State Type Flood proxy
Tunnel0 0x5000000 UP Auto Disabled
Tunnel1 0x5000001 UP Auto Disabled
# 查看EVPN的MAC地址表項,可以看到已經學習到虛擬機的MAC地址信息。
[RouterB] display evpn route mac
Flags: D - Dynamic B - BGP G - Gateway L - Local active M - Mapping
VSI name: vpna
MAC address Link ID/Name Flags Next hop
0001-0001-0011 Tunnel0 B 1.1.1.1
0001-0001-0033 Tunnel1 B 3.3.3.3
(2) 驗證主機
虛擬機VM 1、VM 2之間可以互訪。
Router A為數據中心1的分布式網關,Router D為數據中心2的分布式網關,Router B和Router C為兩個數據中心的ED。通過EVPN數據中心互連實現數據中心1和數據中心2的三層互通。
(1) 配置IP地址和單播路由協議
# 在VM 1上指定網關地址為10.1.1.1;在VM 2上指定網關地址為10.1.2.1。(具體配置過程略)
# 配置各接口的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下創建VXLAN 10。
[RouterA] vsi vpna
[RouterA-vsi-vpna] vxlan 10
[RouterA-vsi-vpna-vxlan-10] quit
# 在VSI實例vpna下創建EVPN實例,並配置自動生成EVPN實例的RD和RT。
[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
[RouterA-vsi-vpna] quit
# 配置BGP發布EVPN路由。
[RouterA] bgp 100
[RouterA-bgp-default] peer 2.2.2.2 as-number 100
[RouterA-bgp-default] peer 2.2.2.2 connect-interface loopback 0
[RouterA-bgp-default] address-family l2vpn evpn
[RouterA-bgp-default-evpn] peer 2.2.2.2 enable
[RouterA-bgp-default-evpn] quit
[RouterA-bgp-default] quit
# 配置接入服務器的接口GigabitEthernet1/0/1與VSI實例vpna關聯。
[RouterA] interface gigabitethernet 1/0/1
[RouterA-GigabitEthernet1/0/1] xconnect vsi vpna
[RouterA-GigabitEthernet1/0/1] quit
# 配置L3VNI的RD和RT。
[RouterA] ip vpn-instance vpn1
[RouterA-vpn-instance-vpn1] route-distinguisher 1:1
[RouterA-vpn-instance-vpn1] address-family ipv4
[RouterA-vpn-ipv4-vpn1] vpn-target 2:2
[RouterA-vpn-ipv4-vpn1] quit
[RouterA-vpn-instance-vpn1] address-family evpn
[RouterA-vpn-evpn-vpn1] vpn-target 1:1
[RouterA-vpn-evpn-vpn1] quit
[RouterA-vpn-instance-vpn1] quit
# 配置VSI虛接口VSI-interface1。
[RouterA] interface vsi-interface 1
[RouterA-Vsi-interface1] ip binding vpn-instance vpn1
[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] quit
# 創建VSI虛接口VSI-interface2,在該接口上配置VPN實例vpn1對應的L3VNI為1000。
[RouterA] interface vsi-interface 2
[RouterA-Vsi-interface2] ip binding vpn-instance vpn1
[RouterA-Vsi-interface2] l3-vni 1000
[RouterA-Vsi-interface2] quit
# 配置VXLAN 10所在的VSI實例和接口VSI-interface1關聯。
[RouterA] vsi vpna
[RouterA-vsi-vpna] gateway vsi-interface 1
[RouterA-vsi-vpna] 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
# 在與Router C相連的三層接口上使能DCI功能,以便EVPN自動建立VXLAN-DCI隧道。
[RouterB] interface gigabitethernet 1/0/2
[RouterB-GigabitEthernet1/0/2] dci enable
[RouterB-GigabitEthernet1/0/2] quit
# 配置BGP發布EVPN路由,指定向Router A發布路由時將路由下一跳修改為自身的地址,向Router C發布路由、從Router C接收路由並發布時修改Router MAC。
[RouterB] bgp 100
[RouterB-bgp-default] peer 3.3.3.3 as-number 200
[RouterB-bgp-default] peer 3.3.3.3 connect-interface loopback 0
[RouterB-bgp-default] peer 3.3.3.3 ebgp-max-hop 64
[RouterB-bgp-default] peer 1.1.1.1 as-number 100
[RouterB-bgp-default] peer 1.1.1.1 connect-interface loopback 0
[RouterB-bgp-default] address-family l2vpn evpn
[RouterB-bgp-default-evpn] peer 3.3.3.3 enable
[RouterB-bgp-default-evpn] peer 3.3.3.3 router-mac-local
[RouterB-bgp-default-evpn] peer 1.1.1.1 enable
[RouterB-bgp-default-evpn] peer 1.1.1.1 next-hop-local
[RouterB-bgp-default-evpn] quit
[RouterB-bgp-default] quit
# 配置L3VNI的RD和RT。
[RouterB] ip vpn-instance vpn1
[RouterB-vpn-instance-vpn1] route-distinguisher 1:2
[RouterB-vpn-instance-vpn1] address-family ipv4
[RouterB-vpn-ipv4-vpn1] vpn-target 2:2
[RouterB-vpn-ipv4-vpn1] quit
[RouterB-vpn-instance-vpn1] address-family evpn
[RouterB-vpn-evpn-vpn1] vpn-target 1:1
[RouterB-vpn-evpn-vpn1] quit
[RouterB-vpn-instance-vpn1] quit
# 創建VSI虛接口VSI-interface2,在該接口上配置VPN實例vpn1對應的L3VNI為1000。
[RouterB] interface vsi-interface 2
[RouterB-Vsi-interface2] ip binding vpn-instance vpn1
[RouterB-Vsi-interface2] l3-vni 1000
[RouterB-Vsi-interface2] 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
# 在與Router B相連的三層接口上使能DCI功能,以便EVPN自動建立VXLAN-DCI隧道
[RouterC] interface gigabitethernet 1/0/1
[RouterC-GigabitEthernet1/0/1] dci enable
[RouterC-GigabitEthernet1/0/1] quit
# 配置BGP發布EVPN路由,指定向Router D發布路由時將路由下一跳修改為自身的地址,向Router B發布路由、從Router B接收路由並發布時修改Router MAC。
[RouterC] bgp 200
[RouterC-bgp-default] peer 2.2.2.2 as-number 100
[RouterC-bgp-default] peer 2.2.2.2 connect-interface loopback 0
[RouterC-bgp-default] peer 2.2.2.2 ebgp-max-hop 64
[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 2.2.2.2 enable
[RouterC-bgp-default-evpn] peer 2.2.2.2 router-mac-local
[RouterC-bgp-default-evpn] peer 4.4.4.4 enable
[RouterC-bgp-default-evpn] peer 4.4.4.4 next-hop-local
[RouterC-bgp-default-evpn] quit
[RouterC-bgp-default] quit
# 配置L3VNI的RD和RT。
[RouterC] ip vpn-instance vpn1
[RouterC-vpn-instance-vpn1] route-distinguisher 1:3
[RouterC-vpn-instance-vpn1] address-family ipv4
[RouterC-vpn-ipv4-vpn1] vpn-target 2:2
[RouterC-vpn-ipv4-vpn1] quit
[RouterC-vpn-instance-vpn1] address-family evpn
[RouterC-vpn-evpn-vpn1] vpn-target 1:1
[RouterC-vpn-evpn-vpn1] quit
[RouterC-vpn-instance-vpn1] quit
# 創建VSI虛接口VSI-interface2,在該接口上配置VPN實例vpn1對應的L3VNI為1000。
[RouterC] interface vsi-interface 2
[RouterC-Vsi-interface2] ip binding vpn-instance vpn1
[RouterC-Vsi-interface2] l3-vni 1000
[RouterC-Vsi-interface2] quit
(5) 配置Router D
# 開啟L2VPN能力。
<RouterD> system-view
[RouterD] l2vpn enable
# 關閉遠端MAC地址和遠端ARP自動學習功能。
[RouterD] vxlan tunnel mac-learning disable
[RouterD] vxlan tunnel arp-learning disable
# 在VSI實例vpnb下創建EVPN實例,並配置自動生成EVPN實例的RD和RT。
[RouterD] vsi vpnb
[RouterD-vsi-vpnb] evpn encapsulation vxlan
[RouterD-vsi-vpnb-evpn-vxlan] route-distinguisher auto
[RouterD-vsi-vpnb-evpn-vxlan] vpn-target auto
[RouterD-vsi-vpnb-evpn-vxlan] quit
# 創建VXLAN 20。
[RouterD-vsi-vpnb] vxlan 20
[RouterD-vsi-vpnb-vxlan-20] quit
[RouterD-vsi-vpnb] quit
# 配置BGP發布EVPN路由。
[RouterD] bgp 200
[RouterD-bgp-default] peer 3.3.3.3 as-number 200
[RouterD-bgp-default] peer 3.3.3.3 connect-interface loopback 0
[RouterD-bgp-default] address-family l2vpn evpn
[RouterD-bgp-default-evpn] peer 3.3.3.3 enable
[RouterD-bgp-default-evpn] quit
[RouterD-bgp-default] quit
# 配置接入服務器的接口GigabitEthernet1/0/1與VSI實例vpnb關聯。
[RouterD] interface gigabitethernet 1/0/1
[RouterD-GigabitEthernet1/0/1] xconnect vsi vpnb
[RouterD-GigabitEthernet1/0/1] quit
# 配置L3VNI的RD和RT。
[RouterD] ip vpn-instance vpn1
[RouterD-vpn-instance-vpn1] route-distinguisher 1:4
[RouterD-vpn-instance-vpn1] address-family ipv4
[RouterD-vpn-ipv4-vpn1] vpn-target 2:2
[RouterD-vpn-ipv4-vpn1] quit
[RouterD-vpn-instance-vpn1] address-family evpn
[RouterD-vpn-evpn-vpn1] vpn-target 1:1
[RouterD-vpn-evpn-vpn1] quit
[RouterD-vpn-instance-vpn1] quit
# 配置VSI虛接口VSI-interface1。
[RouterD] interface vsi-interface 1
[RouterD-Vsi-interface1] ip binding vpn-instance vpn1
[RouterD-Vsi-interface1] ip address 10.1.2.1 255.255.255.0
[RouterD-Vsi-interface1] mac-address 1-2-1
[RouterD-Vsi-interface1] distributed-gateway local
[RouterD-Vsi-interface1] quit
# 創建VSI虛接口VSI-interface2,在該接口上配置VPN實例vpn1對應的L3VNI為1000。
[RouterD] interface vsi-interface 2
[RouterD-Vsi-interface2] ip binding vpn-instance vpn1
[RouterD-Vsi-interface2] l3-vni 1000
[RouterD-Vsi-interface2] quit
# 配置VXLAN 20所在的VSI實例和接口VSI-interface1關聯。
[RouterD] vsi vpnb
[RouterD-vsi-vpnb] gateway vsi-interface 1
[RouterD-vsi-vpnb] quit
(1) 驗證ED(下文以Router B為例,Router C驗證方法與此類似)
# 查看EVPN通過BGP自動發現的鄰居信息,可以看到EVPN通過MAC/IP發布路由或IP前綴路由發現鄰居Router A和Router C,並分別與其建立VXLAN隧道、VXLAN-DCI隧道。
[RouterB] display evpn auto-discovery macip-prefix
Destination IP Source IP L3VNI Tunnel mode OutInterface
1.1.1.1 2.2.2.2 1000 VXLAN Vsi-interface2
3.3.3.3 2.2.2.2 1000 VXLAN-DCI Vsi-interface2
# 查看Router B上的Tunnel接口信息,可以看到VXLAN模式和VXLAN-DCI模式的Tunnel接口處於up狀態。
[RouterB] display interface tunnel
Tunnel0
Current state: UP
Line protocol state: UP
Description: Tunnel0 Interface
Bandwidth: 64kbps
Maximum transmission unit: 64000
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 2.2.2.2, 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: 0 packets, 0 bytes, 0 drops
Output: 0 packets, 0 bytes, 0 drops
Tunnel1
Current state: UP
Line protocol state: UP
Description: Tunnel1 Interface
Bandwidth: 64kbps
Maximum transmission unit: 64000
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 2.2.2.2, destination 3.3.3.3
Tunnel protocol/transport UDP_VXLAN-DCI/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
# 查看VPN實例vpn1的ARP表項和IP路由表項,可以看到已經學習到虛擬機的ARP和IP路由信息。
[RouterB] display arp vpn-instance vpn1
Type: S-Static D-Dynamic O-Openflow R-Rule M-Multiport I-Invalid
IP address MAC address VLAN/VSI name Interface/Link ID Aging Type
1.1.1.1 0031-1900-0000 Auto_L3VNI100 Tunnel0 -- R
0_2
3.3.3.3 0031-3900-0000 Auto_L3VNI100 Tunnel1 -- R
0_2
[RouterB] display ip routing-table vpn-instance vpn1
Destinations : 4 Routes : 4
Destination/Mask Proto Pre Cost NextHop Interface
10.1.1.0/24 BGP 255 0 1.1.1.1 Vsi2
10.1.1.11/32 BGP 255 0 1.1.1.1 Vsi2
10.1.2.0/24 BGP 255 0 3.3.3.3 Vsi2
10.1.2.22/32 BGP 255 0 3.3.3.3 Vsi2
(2) 驗證主機
虛擬機VM 1、VM 2之間可以互訪。
Router A為數據中心1的分布式網關,Router G為數據中心2的分布式網關,Router B作為路由反射器,Router C和Router D為數據中心1的雙ED設備,Router F為數據中心2的ED設備,Router E為連接兩個數據中心ED設備的DCI網絡設備。通過EVPN數據中心互連實現數據中心1和數據中心2的三層互通。
圖1-6 數據中心三層互聯支持雙ED配置組網圖
(1) 配置IP地址和單播路由協議
# 在VM 1上指定網關地址為100.1.1.1;在VM 2上指定網關地址為100.1.2.1。(具體配置過程略)
# 配置各接口的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下創建VXLAN 10。
[RouterA] vsi vpna
[RouterA-vsi-vpna] vxlan 10
[RouterA-vsi-vpna-vxlan-10] quit
# 在VSI實例vpna下創建EVPN實例,並配置自動生成EVPN實例的RD和RT。
[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
[RouterA-vsi-vpna] quit
# 配置BGP發布EVPN路由。
[RouterA] bgp 100
[RouterA-bgp-default] peer 2.2.2.2 as-number 100
[RouterA-bgp-default] peer 2.2.2.2 connect-interface loopback 0
[RouterA-bgp-default] address-family l2vpn evpn
[RouterA-bgp-default-evpn] peer 2.2.2.2 enable
[RouterA-bgp-default-evpn] quit
[RouterA-bgp-default] quit
# 配置接入服務器的接口GigabitEthernet1/0/1與VSI實例vpna關聯。
[RouterA] interface gigabitethernet 1/0/1
[RouterA-GigabitEthernet1/0/1] xconnect vsi vpna
[RouterA-GigabitEthernet1/0/1] quit
# 配置L3VNI的RD和RT。
[RouterA] ip vpn-instance vpn1
[RouterA-vpn-instance-vpn1] route-distinguisher 1:1
[RouterA-vpn-instance-vpn1] address-family ipv4
[RouterA-vpn-ipv4-vpn1] vpn-target 2:2
[RouterA-vpn-ipv4-vpn1] quit
[RouterA-vpn-instance-vpn1] address-family evpn
[RouterA-vpn-evpn-vpn1] vpn-target 1:1
[RouterA-vpn-evpn-vpn1] quit
[RouterA-vpn-instance-vpn1] quit
# 配置VSI虛接口VSI-interface1。
[RouterA] interface vsi-interface 1
[RouterA-Vsi-interface1] ip binding vpn-instance vpn1
[RouterA-Vsi-interface1] ip address 100.1.1.1 255.255.255.0
[RouterA-Vsi-interface1] mac-address 1-1-1
[RouterA-Vsi-interface1] distributed-gateway local
[RouterA-Vsi-interface1] quit
# 創建VSI虛接口VSI-interface2,在該接口上配置VPN實例vpn1對應的L3VNI為1000。
[RouterA] interface vsi-interface 2
[RouterA-Vsi-interface2] ip binding vpn-instance vpn1
[RouterA-Vsi-interface2] l3-vni 1000
[RouterA-Vsi-interface2] quit
# 配置VXLAN 10所在的VSI實例和接口VSI-interface1關聯。
[RouterA] vsi vpna
[RouterA-vsi-vpna] gateway vsi-interface 1
[RouterA-vsi-vpna] quit
(3) 配置Router B
# 配置BGP路由反射。
<RouterB> system-view
[RouterB] bgp 100
[RouterB-bgp-default] group evpn internal
[RouterB-bgp-default] peer evpn connect-interface loopback 0
[RouterB-bgp-default] peer 1.1.1.1 group evpn
[RouterB-bgp-default] peer 3.3.3.3 group evpn
[RouterB-bgp-default] peer 4.4.4.4 group evpn
[RouterB-bgp-default] address-family l2vpn evpn
[RouterB-bgp-default-evpn] undo policy vpn-target
[RouterB-bgp-default-evpn] peer evpn enable
[RouterB-bgp-default-evpn] peer evpn reflect-client
[RouterB-bgp-default-evpn] 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
# 在與Router E相連的三層接口上使能DCI功能,以便EVPN自動建立VXLAN-DCI隧道。
[RouterC] interface gigabitethernet 1/0/1
[RouterC-GigabitEthernet1/0/1] dci enable
[RouterC-GigabitEthernet1/0/1] quit
# 配置BGP發布EVPN路由,指定向Router B發布路由時將路由下一跳修改為自身的地址,向Router F發布路由、從Router F接收路由並發布時修改Router MAC。
[RouterC] bgp 100
[RouterC-bgp-default] peer 6.6.6.6 as-number 200
[RouterC-bgp-default] peer 6.6.6.6 connect-interface loopback 0
[RouterC-bgp-default] peer 6.6.6.6 ebgp-max-hop 64
[RouterC-bgp-default] peer 2.2.2.2 as-number 100
[RouterC-bgp-default] peer 2.2.2.2 connect-interface loopback 0
[RouterC-bgp-default] address-family l2vpn evpn
[RouterC-bgp-default-evpn] peer 6.6.6.6 enable
[RouterC-bgp-default-evpn] peer 6.6.6.6 router-mac-local
[RouterC-bgp-default-evpn] peer 2.2.2.2 enable
[RouterC-bgp-default-evpn] peer 2.2.2.2 next-hop-local
[RouterC-bgp-default-evpn] quit
[RouterC-bgp-default] quit
# 配置L3VNI的RD和RT。
[RouterC] ip vpn-instance vpn1
[RouterC-vpn-instance-vpn1] route-distinguisher 1:2
[RouterC-vpn-instance-vpn1] address-family ipv4
[RouterC-vpn-ipv4-vpn1] vpn-target 2:2
[RouterC-vpn-ipv4-vpn1] quit
[RouterC-vpn-instance-vpn1] address-family evpn
[RouterC-vpn-evpn-vpn1] vpn-target 1:1
[RouterC-vpn-evpn-vpn1] quit
[RouterC-vpn-instance-vpn1] quit
# 創建VSI虛接口VSI-interface2,在該接口上配置VPN實例vpn1對應的L3VNI為1000。
[RouterC] interface vsi-interface 2
[RouterC-Vsi-interface2] ip binding vpn-instance vpn1
[RouterC-Vsi-interface2] l3-vni 1000
[RouterC-Vsi-interface2] mac-address 1-2-3
[RouterC-Vsi-interface2] quit
# 配置ED的虛擬IP地址為接口LoopBack2的IP地址1.2.3.4,並配置通過OSPF發布該地址。
[RouterC] evpn edge group 1.2.3.4
[RouterC] interface loopback 2
[RouterC-LoopBack2] ip address 1.2.3.4 32
[RouterC-LoopBack2] quit
[RouterC] ospf
[RouterC-ospf-1] area 0
[RouterC-ospf-1-area-0.0.0.0] network 1.2.3.4 0.0.0.0
[RouterC-ospf-1-area-0.0.0.0] quit
[RouterC-ospf-1] quit
# 創建Monitor Link組,將與Router E相連的物理接口、LoopBack0接口加入到Monitor Link組,設置Monitor Link組下行接口的回切延時為90秒。
[RouterC] undo monitor-link disable
[RouterC] monitor-link group 1
[RouterC-mtlk-group1] port gigabitethernet 1/0/1 uplink
[RouterC-mtlk-group1] port loopback 0 downlink
[RouterC-mtlk-group1] downlink up-delay 90
[RouterC-mtlk-group1] quit
(5) 配置Router D
# 開啟L2VPN能力。
<RouterD> system-view
[RouterD] l2vpn enable
# 關閉遠端MAC地址和遠端ARP自動學習功能。
[RouterD] vxlan tunnel mac-learning disable
[RouterD] vxlan tunnel arp-learning disable
# 在與Router E相連的三層接口上使能DCI功能,以便EVPN自動建立VXLAN-DCI隧道。
[RouterD] interface gigabitethernet 1/0/1
[RouterD-GigabitEthernet1/0/1] dci enable
[RouterD-GigabitEthernet1/0/1] quit
# 配置BGP發布EVPN路由,指定向Router B發布路由時將路由下一跳修改為自身的地址,向Router F發布路由、從Router F接收路由並發布時修改Router MAC。
[RouterD] bgp 100
[RouterD-bgp-default] peer 6.6.6.6 as-number 200
[RouterD-bgp-default] peer 6.6.6.6 connect-interface loopback 0
[RouterD-bgp-default] peer 6.6.6.6 ebgp-max-hop 64
[RouterD-bgp-default] peer 2.2.2.2 as-number 100
[RouterD-bgp-default] peer 2.2.2.2 connect-interface loopback 0
[RouterD-bgp-default] address-family l2vpn evpn
[RouterD-bgp-default-evpn] peer 6.6.6.6 enable
[RouterD-bgp-default-evpn] peer 6.6.6.6 router-mac-local
[RouterD-bgp-default-evpn] peer 2.2.2.2 enable
[RouterD-bgp-default-evpn] peer 2.2.2.2 next-hop-local
[RouterD-bgp-default-evpn] quit
[RouterD-bgp-default] quit
# 配置L3VNI的RD和RT。
[RouterD] ip vpn-instance vpn1
[RouterD-vpn-instance-vpn1] route-distinguisher 1:2
[RouterD-vpn-instance-vpn1] address-family ipv4
[RouterD-vpn-ipv4-vpn1] vpn-target 2:2
[RouterD-vpn-ipv4-vpn1] quit
[RouterD-vpn-instance-vpn1] address-family evpn
[RouterD-vpn-evpn-vpn1] vpn-target 1:1
[RouterD-vpn-evpn-vpn1] quit
[RouterD-vpn-instance-vpn1] quit
# 創建VSI虛接口VSI-interface2,在該接口上配置VPN實例vpn1對應的L3VNI為1000。
[RouterD] interface vsi-interface 2
[RouterD-Vsi-interface2] ip binding vpn-instance vpn1
[RouterD-Vsi-interface2] l3-vni 1000
[RouterD-Vsi-interface2] mac-address 1-2-3
[RouterD-Vsi-interface2] quit
# 配置ED的虛擬IP地址為接口LoopBack2的IP地址1.2.3.4,並配置通過OSPF發布該地址。
[RouterD] evpn edge group 1.2.3.4
[RouterD] interface loopback 2
[RouterD-LoopBack2] ip address 1.2.3.4 32
[RouterD-LoopBack2] quit
[RouterD] ospf
[RouterD-ospf-1] area 0
[RouterD-ospf-1-area-0.0.0.0] network 1.2.3.4 0.0.0.0
[RouterD-ospf-1-area-0.0.0.0] quit
[RouterD-ospf-1] quit
# 創建Monitor Link組,將與Router E相連的物理接口、LoopBack0接口加入到Monitor Link組,設置Monitor Link組下行接口的回切延時為90秒。
[RouterD] undo monitor-link disable
[RouterD] monitor-link group 1
[RouterD-mtlk-group1] port gigabitethernet 1/0/1 uplink
[RouterD-mtlk-group1] port loopback 0 downlink
[RouterD-mtlk-group1] downlink up-delay 90
[RouterD-mtlk-group1] quit
(6) 配置Router F
# 開啟L2VPN能力。
<RouterF> system-view
[RouterF] l2vpn enable
# 關閉遠端MAC地址和遠端ARP自動學習功能。
[RouterF] vxlan tunnel mac-learning disable
[RouterF] vxlan tunnel arp-learning disable
# 在與Router E相連的三層接口上使能DCI功能,以便EVPN自動建立VXLAN-DCI隧道
[RouterF] interface gigabitethernet 1/0/1
[RouterF-GigabitEthernet1/0/1] dci enable
[RouterF-GigabitEthernet1/0/1] quit
# 配置BGP發布EVPN路由,指定向Router G發布路由時將路由下一跳修改為自身的地址,向Router C和Router D發布路由、從Router C和Router D接收路由並發布時修改Router MAC。
[RouterF] bgp 200
[RouterF-bgp-default] peer 3.3.3.3 as-number 100
[RouterF-bgp-default] peer 3.3.3.3 connect-interface loopback 0
[RouterF-bgp-default] peer 3.3.3.3 ebgp-max-hop 64
[RouterF-bgp-default] peer 4.4.4.4 as-number 100
[RouterF-bgp-default] peer 4.4.4.4 connect-interface loopback 0
[RouterF-bgp-default] peer 4.4.4.4 ebgp-max-hop 64
[RouterF-bgp-default] peer 7.7.7.7 as-number 200
[RouterF-bgp-default] peer 7.7.7.7 connect-interface loopback 0
[RouterF-bgp-default] address-family l2vpn evpn
[RouterF-bgp-default-evpn] peer 3.3.3.3 enable
[RouterF-bgp-default-evpn] peer 3.3.3.3 router-mac-local
[RouterF-bgp-default-evpn] peer 4.4.4.4 enable
[RouterF-bgp-default-evpn] peer 4.4.4.4 router-mac-local
[RouterF-bgp-default-evpn] peer 7.7.7.7 enable
[RouterF-bgp-default-evpn] peer 7.7.7.7 next-hop-local
[RouterF-bgp-default-evpn] quit
[RouterF-bgp-default] quit
# 配置L3VNI的RD和RT。
[RouterF] ip vpn-instance vpn1
[RouterF-vpn-instance-vpn1] route-distinguisher 1:4
[RouterF-vpn-instance-vpn1] address-family ipv4
[RouterF-vpn-ipv4-vpn1] vpn-target 2:2
[RouterF-vpn-ipv4-vpn1] quit
[RouterF-vpn-instance-vpn1] address-family evpn
[RouterF-vpn-evpn-vpn1] vpn-target 1:1
[RouterF-vpn-evpn-vpn1] quit
[RouterF-vpn-instance-vpn1] quit
# 創建VSI虛接口VSI-interface2,在該接口上配置VPN實例vpn1對應的L3VNI為1000。
[RouterF] interface vsi-interface 2
[RouterF-Vsi-interface2] ip binding vpn-instance vpn1
[RouterF-Vsi-interface2] l3-vni 1000
[RouterF-Vsi-interface2] quit
(7) 配置Router G
# 開啟L2VPN能力。
<RouterG> system-view
[RouterG] l2vpn enable
# 關閉遠端MAC地址和遠端ARP自動學習功能。
[RouterG] vxlan tunnel mac-learning disable
[RouterG] vxlan tunnel arp-learning disable
# 在VSI實例vpnb下創建VXLAN 20。
[RouterG] vsi vpnb
[RouterG-vsi-vpnb] vxlan 20
[RouterG-vsi-vpnb-vxlan-20] quit
# 在VSI實例vpnb下創建EVPN實例,並配置自動生成EVPN實例的RD和RT。
[RouterG-vsi-vpnb] evpn encapsulation vxlan
[RouterG-vsi-vpnb-evpn-vxlan] route-distinguisher auto
[RouterG-vsi-vpnb-evpn-vxlan] vpn-target auto
[RouterG-vsi-vpnb-evpn-vxlan] quit
[RouterG-vsi-vpnb] quit
# 配置BGP發布EVPN路由。
[RouterG] bgp 200
[RouterG-bgp-default] peer 6.6.6.6 as-number 200
[RouterG-bgp-default] peer 6.6.6.6 connect-interface loopback 0
[RouterG-bgp-default] address-family l2vpn evpn
[RouterG-bgp-default-evpn] peer 6.6.6.6 enable
[RouterG-bgp-default-evpn] quit
[RouterG-bgp-default] quit
# 配置接入服務器的接口GigabitEthernet1/0/1與VSI實例vpnb關聯。
[RouterG] interface gigabitethernet 1/0/1
[RouterG-GigabitEthernet1/0/1] xconnect vsi vpnb
[RouterG-GigabitEthernet1/0/1] quit
# 配置L3VNI的RD和RT。
[RouterG] ip vpn-instance vpn1
[RouterG-vpn-instance-vpn1] route-distinguisher 1:4
[RouterG-vpn-instance-vpn1] address-family ipv4
[RouterG-vpn-ipv4-vpn1] vpn-target 2:2
[RouterG-vpn-ipv4-vpn1] quit
[RouterG-vpn-instance-vpn1] address-family evpn
[RouterG-vpn-evpn-vpn1] vpn-target 1:1
[RouterG-vpn-evpn-vpn1] quit
[RouterG-vpn-instance-vpn1] quit
# 配置VSI虛接口VSI-interface1。
[RouterG] interface vsi-interface 1
[RouterG-Vsi-interface1] ip binding vpn-instance vpn1
[RouterG-Vsi-interface1] ip address 100.1.2.1 255.255.255.0
[RouterG-Vsi-interface1] mac-address 2-2-2
[RouterG-Vsi-interface1] distributed-gateway local
[RouterG-Vsi-interface1] quit
# 創建VSI虛接口VSI-interface2,在該接口上配置VPN實例vpn1對應的L3VNI為1000。
[RouterG] interface vsi-interface 2
[RouterG-Vsi-interface2] ip binding vpn-instance vpn1
[RouterG-Vsi-interface2] l3-vni 1000
[RouterG-Vsi-interface2] quit
# 配置VXLAN 10所在的VSI實例和接口VSI-interface1關聯。
[RouterG] vsi vpnb
[RouterG-vsi-vpnb] gateway vsi-interface 1
[RouterG-vsi-vpnb] quit
(1) 驗證ED(下文以Router C為例,Router D驗證方法與此類似)
# 查看EVPN通過BGP自動發現的鄰居信息,可以看到EVPN通過MAC/IP發布路由或IP前綴路由發現鄰居Router A和Router F,並分別與其建立VXLAN隧道、VXLAN-DCI隧道。
[RouterC] display evpn auto-discovery macip-prefix
Destination IP Source IP L3VNI Tunnel mode OutInterface
1.1.1.1 1.2.3.4 1000 VXLAN Vsi-interface2
6.6.6.6 1.2.3.4 1000 VXLAN-DCI Vsi-interface2
# 查看Router C上的Tunnel接口信息,可以看到VXLAN模式和VXLAN-DCI模式的Tunnel接口處於up狀態。
[RouterC] display interface tunnel
Tunnel0
Current state: UP
Line protocol state: UP
Description: Tunnel0 Interface
Bandwidth: 64 kbps
Maximum transmission unit: 64000
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.2.3.4, 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: 0 packets, 0 bytes, 0 drops
Output: 0 packets, 0 bytes, 0 drops
Tunnel1
Current state: UP
Line protocol state: UP
Description: Tunnel1 Interface
Bandwidth: 64 kbps
Maximum transmission unit: 64000
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.2.3.4, destination 6.6.6.6
Tunnel protocol/transport UDP_VXLAN-DCI/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
# 查看VPN實例vpn1的ARP表項和IP路由表項,可以看到已經學習到虛擬機的ARP和IP路由信息。
[RouterC] display arp vpn-instance vpn1
Type: S Type: S-Static D-Dynamic O-Openflow R-Rule M-Multiport I-Invalid
IP address MAC address VLAN/VSI name Interface/Link ID Aging Type
1.1.1.1 0031-1900-0000 Auto_L3VNI100 Tunnel0 -- R
0_2
6.6.6.6 0031-3900-0000 Auto_L3VNI100 Tunnel1 -- R
0_2
[RouterC] display ip routing-table vpn-instance vpn1
Destinations : 4 Routes : 4
Destination/Mask Proto Pre Cost NextHop Interface
100.1.1.0/24 BGP 255 0 1.1.1.1 Vsi2
100.1.1.10/32 BGP 255 0 1.1.1.1 Vsi2
100.1.2.0/24 BGP 255 0 6.6.6.6 Vsi2
100.1.2.20/32 BGP 255 0 6.6.6.6 Vsi2
(2) 驗證Router A
# 查看EVPN通過BGP自動發現的鄰居信息,可以看到EVPN通過MAC/IP發布路由或IP前綴路由發現鄰居ED(Router C和Router D組成的虛擬ED),並與其建立VXLAN隧道。
[RouterA] display evpn auto-discovery macip-prefix
Destination IP Source IP L3VNI Tunnel mode OutInterface
1.2.3.4 1.1.1.1 1000 VXLAN Vsi-interface2
# 查看Router A上的Tunnel接口信息,可以看到VXLAN模式的Tunnel接口處於up狀態。
[RouterA] display interface tunnel
Tunnel0
Current state: UP
Line protocol state: UP
Description: Tunnel0 Interface
Bandwidth: 64 kbps
Maximum transmission unit: 64000
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 1.2.3.4
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
# 查看VPN實例vpn1的ARP表項和IP路由表項,可以看到已經學習到虛擬機的ARP和IP路由信息。
[RouterA] display arp vpn-instance vpn1
Type: S Type: S-Static D-Dynamic O-Openflow R-Rule M-Multiport I-Invalid
IP address MAC address VLAN/VSI name Interface/Link ID Aging Type
1.2.3.4 0031-1900-0001 Auto_L3VNI100 Tunnel0 -- R
0_2
[RouterA] display ip routing-table vpn-instance vpn1
Destinations : 4 Routes : 4
Destination/Mask Proto Pre Cost NextHop Interface
100.1.2.0/24 BGP 255 0 1.2.3.4 Vsi2
100.1.2.10/32 BGP 255 0 1.2.3.4 Vsi2
(3) 驗證主機
虛擬機VM 1、VM 2之間可以互訪。當Router C或Router D出現故障後,VM 1、VM 2之間仍然可以互訪。
不同款型規格的資料略有差異, 詳細信息請向具體銷售和400谘詢。H3C保留在沒有任何通知或提示的情況下對資料內容進行修改的權利!