網絡連接配置異常修復技巧「網關配置錯誤怎麼解決」

通過上一個實驗,我們已經知道EVPN是一種二層VPN技術,控制平面採用MP-BGP通告EVPN路由信息,數據平面採用VXLAN封裝方式轉發報文。當租戶的物理站點分散在不同位置時,EVPN可以基於已有的服務提供商或企業IP網絡,為同一租戶的相同子網提供二層互聯;通過EVPN網關為同一租戶的不同子網提供三層互聯,並為其提供與外部網絡的三層互聯。

EVPN不僅繼承了MP-BGP和VXLAN的優勢,還提供了新的功能。EVPN具有如下特點:

簡化配置:通過MP-BGP實現VTEP自動發現、VXLAN隧道自動建立、VXLAN隧道與VXLAN自動關聯,無需用戶手工配置,降低網絡部署難度。

分離控制平面與數據平面:控制平面負責發布路由信息,數據平面負責轉發報文,分工明確,易於管理。

支持對稱IRB(Integrated Routing and Bridging,集成的路由和橋接):MP-BGP同時發布二層MAC地址和三層路由信息,VTEP既可以進行二層轉發,也可以進行三層路由。這樣,不僅可以保證流量採用最優路徑轉發,還可以減少廣播流量。

在上個實驗中,EVPN採用了Spine(核心)—Leaf(分支)的分層結構。Leaf層的設備作為VTEP對報文進行EVPN相關處理;Spine層為核心設備,根據報文的目的IP地址轉發報文。EVPN網絡中的設備屬於同一個AS(Autonomous System,自治系統),為了避免在所有VTEP之間建立IBGP對等體,將核心設備配置為了RR(Route Reflector,路由反射器)。此時,RR通過發布、接收EVPN路由,實現了全網互通;同時不需要封裝、解封裝VXLAN報文,保證性能。

和VXLAN IP網關類似,EVPN網關也可以分為兩種:

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

分布式EVPN網關:配置比較複雜,但每台VTEP設備都可以作為EVPN網關,對本地站點的流量進行三層轉發,緩解了網關的壓力。

今天來看一下分布式EVPN網關配置實驗。

組網需求

VSR1、VSR3為與服務器連接的VTEP設備,VSR2為與廣域網連接的集中式EVPN網關設備,ISP-VFW為廣域網內的三層設備,VSR-RR為RR,負責在路由器之間反射BGP路由。

虛擬機VM1和VM3同屬於VXLAN10,VM2和VM4同屬於VXLAN 20。相同VXLAN之間可以二層互通,確保虛擬機在站點之間進行遷移時用戶的訪問流量不會中斷;不同VXLAN之間通過分布式EVPN網關實現三層互通;VXLAN與廣域網之間通過邊界網關實現三層互通。

實驗環境

VMWare ESXi 6.7.0(ProLiant DL360 Gen9,48核心,128G內存)

H3C VSR1000(Version 7.1.064, Release 0621P18,4核心,8G內存)

H3C VFW1000(Version 7.1.064, ESS 1171P13,4核心,8G內存)

Windows 7旗艦版(測試用虛擬機,8核心,16G內存)

組網圖

分布式EVPN網關配置組網圖,和集中式EVPN網關組網圖一樣。

EVPN小實驗:分布式EVPN網關配置

M地址指遠程管理的帶外管理口地址。新建一個vSwitch,所有線路均使用該vSwitch中端口組實現,建議將不同鏈路隔離進不同的VLAN,避免廣播風暴。

配置步驟

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

調通底層網絡,配置各接口的IP地址和子網掩碼,並在IP核心網絡內配置OSPF協議,和之前的實驗配置基本相同。

將VM1和VM3的網關地址指定為192.168.2.1,將VM2和VM4的網關地址指定為192.168.10.1。

2、配置VSR1

開啟L2VPN能力,並關閉遠端MAC地址和遠端ARP自動學習功能。配置BGP發布EVPN路由。配置接入服務器的接口GigabitEthernet3/0與VSI實例vpna關聯,接入服務器的接口GigabitEthernet1/0/2與VSI實例vpnb關聯。這幾部分的配置和上個實驗相同,不再佔用篇幅。

跟上個實驗相比,VSI實例下不再配置arp suppression enable,因為分布式網關可能需要泛洪相關ARP請求,所以不再進行抑制。

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

#
vsi vpna
vxlan 10
evpn encapsulation vxlan
route-distinguisher auto
vpn-target auto export-extcommunity
vpn-target auto import-extcommunity

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

#
vsi vpnb
vxlan 20
evpn encapsulation vxlan
route-distinguisher auto
vpn-target auto export-extcommunity
vpn-target auto import-extcommunity

配置L3VNI的RD和RT。

#
ip vpn-instance vpna
route-distinguisher 1:1
#
address-family ipv4
vpn-target 2:2 import-extcommunity
vpn-target 2:2 export-extcommunity
#
address-family evpn
vpn-target 1:1 import-extcommunity
vpn-target 1:1 export-extcommunity

配置VSI虛接口VSI-interface1和VSI-interface2。

#
interface Vsi-interface1
ip binding vpn-instance vpna
ip address 192.168.2.1 255.255.255.0
mac-address 0001-0001-0001
local-proxy-arp enable
distributed-gateway local
#
interface Vsi-interface2
ip binding vpn-instance vpna
ip address 192.168.10.1 255.255.255.0
mac-address 0002-0002-0002
local-proxy-arp enable
distributed-gateway local

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

#
interface Vsi-interface3
ip binding vpn-instance vpna
l3-vni 1000

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

#
vsi vpna
gateway vsi-interface 1
#
vsi vpnb
gateway vsi-interface 2

3、配置VSR2

開啟L2VPN能力,並關閉遠端MAC地址和遠端ARP自動學習功能。刪除VSI虛接口VSI-interface1和VSI-interface2,移除VSI實例vpna和vpnb相關配置。

配置L3 VNI的RD和RT。

#
ip vpn-instance vpna
route-distinguisher 1:1
#
address-family ipv4
vpn-target 2:2 import-extcommunity
vpn-target 2:2 export-extcommunity
#
address-family evpn
vpn-target 1:1 import-extcommunity
vpn-target 1:1 export-extcommunity

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

#
interface Vsi-interface3
ip binding vpn-instance vpna
l3-vni 1000

配置連接廣域網的接口GigabitEthernet3/0與VPN實例vpna關聯。

#
interface GigabitEthernet3/0
ip binding vpn-instance vpna
ip address 22.1.1.1 255.255.255.0
nat outbound

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

#
ip route-static vpn-instance vpna 0.0.0.0 0 22.1.1.2

配置BGP發布EVPN路由,並將缺省路由引入到VPN實例vpna的BGP IPv4單播路由表中。

#
bgp 1234
peer 4.4.4.4 as-number 1234
peer 4.4.4.4 connect-interface LoopBack0
#
address-family l2vpn evpn
peer 4.4.4.4 enable
#
ip vpn-instance vpna
#
address-family ipv4 unicast
default-route imported
import-route static

4、配置VSR3

VSR3和VSR1的配置大抵相同,直接上配置。

#
ip vpn-instance vpna
route-distinguisher 1:1
#
address-family ipv4
vpn-target 2:2 import-extcommunity
vpn-target 2:2 export-extcommunity
#
address-family evpn
vpn-target 1:1 import-extcommunity
vpn-target 1:1 export-extcommunity
#
l2vpn enable
#
vsi vpna
gateway vsi-interface 1
vxlan 10
evpn encapsulation vxlan
route-distinguisher auto
vpn-target auto export-extcommunity
vpn-target auto import-extcommunity
#
vsi vpnb
gateway vsi-interface 2
vxlan 20
evpn encapsulation vxlan
route-distinguisher auto
vpn-target auto export-extcommunity
vpn-target auto import-extcommunity
#
interface GigabitEthernet3/0
xconnect vsi vpna
#
interface GigabitEthernet4/0
xconnect vsi vpnb
#
interface Vsi-interface1
ip binding vpn-instance vpna
ip address 192.168.2.1 255.255.255.0
mac-address 0001-0001-0001
local-proxy-arp enable
distributed-gateway local
#
interface Vsi-interface2
ip binding vpn-instance vpna
ip address 192.168.10.1 255.255.255.0
mac-address 0002-0002-0002
local-proxy-arp enable
distributed-gateway local
#
interface Vsi-interface3
ip binding vpn-instance vpna
l3-vni 1000
#
bgp 1234
peer 4.4.4.4 as-number 1234
peer 4.4.4.4 connect-interface LoopBack0
#
address-family l2vpn evpn
peer 4.4.4.4 enable

5、配置VSR4

配置VSR-RR作為RR路由反射器與其他路由器建立BGP連接, 配置發布EVPN路由,並關閉BGP EVPN路由的VPN-Target過濾功能。無需調整配置。

驗證配置

1、驗證分布式EVPN網關設備VSR1

查看EVPN自動發現的鄰居信息,包含各VSI的IMET路由和MAC/IP路由。

display evpn auto-discovery imet
dis evpn auto-discovery macip-prefix
EVPN小實驗:分布式EVPN網關配置

查看EVPN的ARP信息和MAC地址信息。

dis evpn route arp
dis evpn route mac
EVPN小實驗:分布式EVPN網關配置

這個地方我有點慌,因為和官網介紹的結果不一樣,不過我感覺應該是官網整理的時候出問題了,VSI1接口下面怎麼會有VSI2接口的ARP信息呢?應該分開寫才對啊!

EVPN小實驗:分布式EVPN網關配置

查看EVPN路由表信息,因為綁定了VPN實例,所以記得帶實例查看。

display evpn routing-table vpn-instance vpna
EVPN小實驗:分布式EVPN網關配置

查看Tunnel接口信息,可以看到VXLAN模式的Tunnel接口處於UP狀態。

display interface tunnel
EVPN小實驗:分布式EVPN網關配置

查看VSI虛接口信息,可以看到VSI虛接口處於UP狀態。

display interface vsi-interface
EVPN小實驗:分布式EVPN網關配置

查看VSI的詳細信息,可以看到VSI內創建的VXLAN、與VXLAN關聯的VXLAN隧道、與VSI關聯的VSI虛接口等信息。多了一個自動創建的VSI接口。

display l2vpn vsi verbose
EVPN小實驗:分布式EVPN網關配置

查看VSI的MAC地址表項信息,可以看到已學習到的MAC地址信息。

EVPN小實驗:分布式EVPN網關配置

對比組網拓撲可知:000c-29cb-2b41和000c-2949-0032為VSR1連接的虛擬機,Link ID為0,表示是本地直連的;對應的VSI name表示從哪個VSI上來的,此處分別對應vpna和vpnb。000c-2999-235a和000c-290b-6ea7為VSR3連接的虛擬機,Link ID為Tunnel1,結合tunnel接口信息,可以知道是從VSR3學習到的;對應的VSI name表示從哪個VSI上來的,此處分別對應vpna和vpnb。

對比看一下ARP表項信息,可以看到關鍵信息大抵相同。很遺憾,看不到另外的主機,也ping不通。

EVPN小實驗:分布式EVPN網關配置

查看BGP l2vpn對等體信息。

display bgp l2vpn evpn
EVPN小實驗:分布式EVPN網關配置

VSR1設備上的VPN實例vpna的路由信息如下:

EVPN小實驗:分布式EVPN網關配置

查看FIB表項信息,可以看到已學習到了虛擬機的轉發表項信息,都要加VPN實例了。

EVPN小實驗:分布式EVPN網關配置

2、驗證主機

對比組網拓撲,在VM4這台主機(192.168.10.188)上ping測VM1(192.168.2.160)和VM2(192.168.10.110),結果如下:

EVPN小實驗:分布式EVPN網關配置

對比上個集中式EVPN網關實驗,看一下tracert路徑效果,是不是很神奇,10網段互訪,中間出現了另一個網關的IP地址。

EVPN小實驗:分布式EVPN網關配置

ping網關和ISP-VFW公網設備測試。

EVPN小實驗:分布式EVPN網關配置

可以看到,四台虛擬機之間可以互訪,並且都可以訪問到網關;但是,網關之外的ISP-VFW設備訪問異常。

debug測試,VFW-ISP收發報文正常。

EVPN小實驗:分布式EVPN網關配置

而VSR2上就不正常了,他竟然把我的報文給丟了。這是不是BUG,我就說不清楚了,報文出去的時候好好的,回不去了。

EVPN小實驗:分布式EVPN網關配置

總結

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

2、同網段的兩台主機進行tracert,路徑中間出現了另一個網關的IP地址,不過應該不是問題,只是顯示一個IP,設備確實是經過了。

3、RT是一種BGP擴展團體屬性,用於控制EVPN路由的發布與接收。也就是說, RT決定了本端的EVPN路由可以被哪些對端所接收,以及本端是否接收對端發來的EVPN路由。RT分為ERT(Export RT,本端發送EVPN路由時,攜帶的RT屬性設置為ERT)和IRT(Import RT,本端設置接收的對端的EVPN路由屬性)。本端在收到對端的EVPN路由時,將路由中攜帶的ERT與本端的IRT進行比較,只有兩者相等時才接收該路由,否則丟棄該路由。

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/209424.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-08 15:36
下一篇 2024-12-08 15:36

相關推薦

發表回復

登錄後才能評論