■ 云南 盧立云
在IETF RFC 7348中,VXLAN方案沒有定義控制平面,是通過流量泛洪的方式進(jìn)行主機(jī)地址的學(xué)習(xí)。這種方式實(shí)現(xiàn)上較為簡單,但是會(huì)導(dǎo)致網(wǎng)絡(luò)中存在很多泛洪流量、網(wǎng)絡(luò)擴(kuò)展起來困難。
為了解決上述問題,VXLAN引入了EVPN(Ethernet VPN)作為VXLAN的控制平面。EVPN中參考了BGP/MPLS IP VPN的機(jī)制,擴(kuò)展了BGP協(xié)議,新定義了幾種BGP EVPN路由,通過在網(wǎng)絡(luò)中發(fā)布路由來實(shí)現(xiàn)VTEP的自動(dòng)發(fā)現(xiàn)、主機(jī)地址學(xué)習(xí)。
采用EVPN作為控制平面具有以下一些優(yōu)勢:
一是可以實(shí)現(xiàn)VTEP自動(dòng)發(fā)現(xiàn)、VXLAN隧道自動(dòng)建立,從而降低網(wǎng)絡(luò)部署、擴(kuò)展的難度。
圖1 網(wǎng)絡(luò)拓?fù)鋱D
二是EVPN可以同時(shí)發(fā)布二層MAC和三層路由信息。
三是可以減少網(wǎng)絡(luò)中泛洪流量。
MP-BGP(MultiProtocol BGP)能提供對多種網(wǎng)絡(luò)層協(xié)議的支持(例如IPv6、組播),MP-BGP在BGP-4基礎(chǔ)上對NLRI作了新擴(kuò)展,擴(kuò)展之后的NLRI增加了地址族的描述,可以用來區(qū)分不同的網(wǎng)絡(luò)層協(xié)議,例如IPv6單播地址族、VPN實(shí)例地址族等。類似的,EVPN在L2VPN地址族下定義了新的子地址族——EVPN地址族,并新增了一種NLRI,即EVPN NLRI。通過在EVPN對等體之間發(fā)布這些路由,就可以實(shí)現(xiàn)VXLAN隧道的自動(dòng)建立、主機(jī)地址的學(xué)習(xí)。
在做EVPN的VXLAN實(shí)驗(yàn)中,遇到了一些問題,經(jīng)過反復(fù)排查,終于找到問題的根源,從而加以解決,實(shí)驗(yàn)的拓?fù)鋱D如圖1所示。
按照圖1所示的網(wǎng)絡(luò)拓?fù)鋱D,在eve-ng的模擬實(shí)驗(yàn)平臺上搭建實(shí)驗(yàn)環(huán)境,其 中,VTEP-1、VTEP-2、RR為NXOSV9K,IOS版本為7.0.3.I7.2,交換機(jī)SW1和SW2的IOS版本為vIOS L2 15.2。
啟動(dòng)各個(gè)設(shè)備,完成配置后,通過測試發(fā)現(xiàn),VTEP-1、VTEP-2與RR均未建立起鄰居關(guān)系,故障如圖2所示,之后通過查看配置,查看端口狀態(tài),并仔細(xì)分析與排查,才發(fā)現(xiàn)問題的根源:NXOSV9K設(shè)備及各個(gè)接口默認(rèn)都是關(guān)閉狀態(tài),沒有信息的交互,自然不能建立鄰居關(guān)系,通過在互聯(lián)的接口配置中no shutdown開啟接口功能,上面各設(shè)備可以建立鄰居關(guān)系,故障得以解決。
在測試中筆者又發(fā)現(xiàn)一個(gè)問題,那就是SW1的VLAN 200中的主機(jī)VPC6(192.168.1.1)能夠ping通SW2上的VLAN 200中的主機(jī)VPC8(192.168.1.3),SW1的VLAN 210中的主機(jī)VPC7(172.16.1.2)能夠ping通SW2上的VLAN 210中的主機(jī)VPC9(172.16.1.4),但是同一臺交換機(jī)SW1上的不同網(wǎng)段的主機(jī)VPC6無法ping通VPC7,在SW2上也是如此。
圖2 鄰居未建立
圖3 相同SW不同網(wǎng)段-ping不通
圖4 相同SW不同網(wǎng)段-ping通
故障現(xiàn)象如圖3所示,通過抓包軟件看到對于ping請求對方?jīng)]有應(yīng)答。
通過對以上故障進(jìn)行分析,VXLAN只是在VTEP-1和VTEP-2之間進(jìn)行封裝和解封裝,RR作為網(wǎng)脊設(shè)備只是進(jìn)行三層轉(zhuǎn)發(fā),所以與網(wǎng)脊無關(guān)。
而且在同一臺交換機(jī)SW1的不同網(wǎng)段的主機(jī)無法ping通,問題應(yīng)該出在VTEP-1上,通過查看VTEP-1設(shè)備的配置,找到相關(guān)的文檔,綜合加以分析,最終找到問題的根源,那就是:VTEP-1上建了2個(gè)3層VNI,而且在2層VNI的SVI接口中配置不同網(wǎng)段分別歸屬不同的3層VRF,導(dǎo)致相同的網(wǎng)段主機(jī)彼此能夠ping通,同一臺交換機(jī)SW1上跨網(wǎng)段的兩臺主機(jī)無法ping通。
通過修改配置,將2層VNI的SVI接口中配置不同網(wǎng)段分別歸屬相同的3層VRF,即都配置成vrf member vtep-tenant-1,問題得到解決,通過抓包軟件顯示,主機(jī)VPC6能ping通主機(jī)VPC7,如圖4所示。
解決了以上問題后,本以為實(shí)驗(yàn)已經(jīng)完成,但經(jīng)過測試后發(fā)現(xiàn),雖然跨交換機(jī)的相同網(wǎng)段主機(jī)能夠ping通,而且同一交換機(jī)的不同網(wǎng)段主機(jī)也能ping通,但是跨交換機(jī)的不同網(wǎng)段主機(jī)還是無法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設(shè)備上的配置,通過認(rèn)真分析,找到了癥結(jié)所在,那就是:雖然在以上兩臺設(shè)備上都配置了3層VNI的SVI接口,而且也配置歸屬相同的3層VRF,盡管沒有配置IP地址,但是要配置IP forward,因?yàn)樵诮涌谂渲弥袥]有配IP forward導(dǎo)致了跨交換機(jī)的不同網(wǎng)段主機(jī)還是無法ping通的故障發(fā)生。查找了網(wǎng)上有些文檔,也沒有配此命令,個(gè)人覺得不妥,應(yīng)該配置該命令,否則無法進(jìn)行三層轉(zhuǎn)發(fā)。
在VTEP-1和VTEP-2的3層VNI的SVI接口配置中增加IP forward,問題得到解決。通過抓包軟件也看出跨網(wǎng)段主機(jī)VPC6能夠ping通VPC9,如圖5所示。
通過基于MP-BGP EVPN的VXLAN實(shí)驗(yàn),筆者進(jìn)一步了解設(shè)備的性能和特點(diǎn),便于在以后的相關(guān)設(shè)備配置中少走彎路。
譬如NXOSV9K設(shè)備中默認(rèn)接口是關(guān)閉的,因此在設(shè)備配置中,不僅實(shí)際接口配置要注意開啟接口功能,而且在SVI接口配置中也要開啟接口功能。
其次,2層VNI的SVI接口要配置歸屬相同的3層VRF。
再次,在3層VNI的SVI接口配置中要啟用IP forward功能。
這也提醒我們在以后的學(xué)習(xí)中,要注意每一個(gè)細(xì)小環(huán)節(jié),只有掌握每個(gè)相關(guān)的知識點(diǎn),才能做到對設(shè)備的全面了解。