■ 云南 盧立云
在IETF RFC 7348中,VXLAN方案沒有定義控制平面,是通過流量泛洪的方式進行主機地址的學習。這種方式實現(xiàn)上較為簡單,但是會導致網(wǎng)絡中存在很多泛洪流量、網(wǎng)絡擴展起來困難。
為了解決上述問題,VXLAN引入了EVPN(Ethernet VPN)作為VXLAN的控制平面。EVPN中參考了BGP/MPLS IP VPN的機制,擴展了BGP協(xié)議,新定義了幾種BGP EVPN路由,通過在網(wǎng)絡中發(fā)布路由來實現(xiàn)VTEP的自動發(fā)現(xiàn)、主機地址學習。
采用EVPN作為控制平面具有以下一些優(yōu)勢:
一是可以實現(xiàn)VTEP自動發(fā)現(xiàn)、VXLAN隧道自動建立,從而降低網(wǎng)絡部署、擴展的難度。

圖1 網(wǎng)絡拓撲圖
二是EVPN可以同時發(fā)布二層MAC和三層路由信息。
三是可以減少網(wǎng)絡中泛洪流量。
MP-BGP(MultiProtocol BGP)能提供對多種網(wǎng)絡層協(xié)議的支持(例如IPv6、組播),MP-BGP在BGP-4基礎上對NLRI作了新擴展,擴展之后的NLRI增加了地址族的描述,可以用來區(qū)分不同的網(wǎng)絡層協(xié)議,例如IPv6單播地址族、VPN實例地址族等。類似的,EVPN在L2VPN地址族下定義了新的子地址族——EVPN地址族,并新增了一種NLRI,即EVPN NLRI。通過在EVPN對等體之間發(fā)布這些路由,就可以實現(xiàn)VXLAN隧道的自動建立、主機地址的學習。
在做EVPN的VXLAN實驗中,遇到了一些問題,經(jīng)過反復排查,終于找到問題的根源,從而加以解決,實驗的拓撲圖如圖1所示。
按照圖1所示的網(wǎng)絡拓撲圖,在eve-ng的模擬實驗平臺上搭建實驗環(huán)境,其 中,VTEP-1、VTEP-2、RR為NXOSV9K,IOS版本為7.0.3.I7.2,交換機SW1和SW2的IOS版本為vIOS L2 15.2。
啟動各個設備,完成配置后,通過測試發(fā)現(xiàn),VTEP-1、VTEP-2與RR均未建立起鄰居關(guān)系,故障如圖2所示,之后通過查看配置,查看端口狀態(tài),并仔細分析與排查,才發(fā)現(xiàn)問題的根源:NXOSV9K設備及各個接口默認都是關(guān)閉狀態(tài),沒有信息的交互,自然不能建立鄰居關(guān)系,通過在互聯(lián)的接口配置中no shutdown開啟接口功能,上面各設備可以建立鄰居關(guān)系,故障得以解決。
在測試中筆者又發(fā)現(xiàn)一個問題,那就是SW1的VLAN 200中的主機VPC6(192.168.1.1)能夠ping通SW2上的VLAN 200中的主機VPC8(192.168.1.3),SW1的VLAN 210中的主機VPC7(172.16.1.2)能夠ping通SW2上的VLAN 210中的主機VPC9(172.16.1.4),但是同一臺交換機SW1上的不同網(wǎng)段的主機VPC6無法ping通VPC7,在SW2上也是如此。

圖2 鄰居未建立

圖3 相同SW不同網(wǎng)段-ping不通

圖4 相同SW不同網(wǎng)段-ping通
故障現(xiàn)象如圖3所示,通過抓包軟件看到對于ping請求對方?jīng)]有應答。
通過對以上故障進行分析,VXLAN只是在VTEP-1和VTEP-2之間進行封裝和解封裝,RR作為網(wǎng)脊設備只是進行三層轉(zhuǎn)發(fā),所以與網(wǎng)脊無關(guān)。
而且在同一臺交換機SW1的不同網(wǎng)段的主機無法ping通,問題應該出在VTEP-1上,通過查看VTEP-1設備的配置,找到相關(guān)的文檔,綜合加以分析,最終找到問題的根源,那就是:VTEP-1上建了2個3層VNI,而且在2層VNI的SVI接口中配置不同網(wǎng)段分別歸屬不同的3層VRF,導致相同的網(wǎng)段主機彼此能夠ping通,同一臺交換機SW1上跨網(wǎng)段的兩臺主機無法ping通。
通過修改配置,將2層VNI的SVI接口中配置不同網(wǎng)段分別歸屬相同的3層VRF,即都配置成vrf member vtep-tenant-1,問題得到解決,通過抓包軟件顯示,主機VPC6能ping通主機VPC7,如圖4所示。
解決了以上問題后,本以為實驗已經(jīng)完成,但經(jīng)過測試后發(fā)現(xiàn),雖然跨交換機的相同網(wǎng)段主機能夠ping通,而且同一交換機的不同網(wǎng)段主機也能ping通,但是跨交換機的不同網(wǎng)段主機還是無法ping通,如VPC6(192.168.1.1)不能ping通vpc9(172.16.1.4)。

圖5 不同SW不同網(wǎng)段-ping通
經(jīng)過上網(wǎng)查找相關(guān)資料,核對VTEP-1和VTEP-2設備上的配置,通過認真分析,找到了癥結(jié)所在,那就是:雖然在以上兩臺設備上都配置了3層VNI的SVI接口,而且也配置歸屬相同的3層VRF,盡管沒有配置IP地址,但是要配置IP forward,因為在接口配置中沒有配IP forward導致了跨交換機的不同網(wǎng)段主機還是無法ping通的故障發(fā)生。查找了網(wǎng)上有些文檔,也沒有配此命令,個人覺得不妥,應該配置該命令,否則無法進行三層轉(zhuǎn)發(fā)。
在VTEP-1和VTEP-2的3層VNI的SVI接口配置中增加IP forward,問題得到解決。通過抓包軟件也看出跨網(wǎng)段主機VPC6能夠ping通VPC9,如圖5所示。
通過基于MP-BGP EVPN的VXLAN實驗,筆者進一步了解設備的性能和特點,便于在以后的相關(guān)設備配置中少走彎路。
譬如NXOSV9K設備中默認接口是關(guān)閉的,因此在設備配置中,不僅實際接口配置要注意開啟接口功能,而且在SVI接口配置中也要開啟接口功能。
其次,2層VNI的SVI接口要配置歸屬相同的3層VRF。
再次,在3層VNI的SVI接口配置中要啟用IP forward功能。
這也提醒我們在以后的學習中,要注意每一個細小環(huán)節(jié),只有掌握每個相關(guān)的知識點,才能做到對設備的全面了解。