通過上一個實驗,我們已經知道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網關組網圖一樣。

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 23、配置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 static4、配置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 enable5、配置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的ARP信息和MAC地址信息。
dis evpn route arp
dis evpn route mac
這個地方我有點慌,因為和官網介紹的結果不一樣,不過我感覺應該是官網整理的時候出問題了,VSI1接口下面怎麼會有VSI2接口的ARP信息呢?應該分開寫才對啊!

查看EVPN路由表信息,因為綁定了VPN實例,所以記得帶實例查看。
display evpn routing-table vpn-instance vpna
查看Tunnel接口信息,可以看到VXLAN模式的Tunnel接口處於UP狀態。
display interface tunnel
查看VSI虛接口信息,可以看到VSI虛接口處於UP狀態。
display interface vsi-interface
查看VSI的詳細信息,可以看到VSI內創建的VXLAN、與VXLAN關聯的VXLAN隧道、與VSI關聯的VSI虛接口等信息。多了一個自動創建的VSI接口。
display l2vpn vsi verbose
查看VSI的MAC地址表項信息,可以看到已學習到的MAC地址信息。

對比組網拓撲可知: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不通。

查看BGP l2vpn對等體信息。
display bgp l2vpn evpn
VSR1設備上的VPN實例vpna的路由信息如下:

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

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

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

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

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

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

總結
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
微信掃一掃
支付寶掃一掃