■ 云南 卢立云
在IETF RFC 7348中,VXLAN方案没有定义控制平面,是通过流量泛洪的方式进行主机地址的学习。这种方式实现上较为简单,但是会导致网络中存在很多泛洪流量、网络扩展起来困难。
为了解决上述问题,VXLAN引入了EVPN(Ethernet VPN)作为VXLAN的控制平面。EVPN中参考了BGP/MPLS IP VPN的机制,扩展了BGP协议,新定义了几种BGP EVPN路由,通过在网络中发布路由来实现VTEP的自动发现、主机地址学习。
采用EVPN作为控制平面具有以下一些优势:
一是可以实现VTEP自动发现、VXLAN隧道自动建立,从而降低网络部署、扩展的难度。
图1 网络拓扑图
二是EVPN可以同时发布二层MAC和三层路由信息。
三是可以减少网络中泛洪流量。
MP-BGP(MultiProtocol BGP)能提供对多种网络层协议的支持(例如IPv6、组播),MP-BGP在BGP-4基础上对NLRI作了新扩展,扩展之后的NLRI增加了地址族的描述,可以用来区分不同的网络层协议,例如IPv6单播地址族、VPN实例地址族等。类似的,EVPN在L2VPN地址族下定义了新的子地址族——EVPN地址族,并新增了一种NLRI,即EVPN NLRI。通过在EVPN对等体之间发布这些路由,就可以实现VXLAN隧道的自动建立、主机地址的学习。
在做EVPN的VXLAN实验中,遇到了一些问题,经过反复排查,终于找到问题的根源,从而加以解决,实验的拓扑图如图1所示。
按照图1所示的网络拓扑图,在eve-ng的模拟实验平台上搭建实验环境,其 中,VTEP-1、VTEP-2、RR为NXOSV9K,IOS版本为7.0.3.I7.2,交换机SW1和SW2的IOS版本为vIOS L2 15.2。
启动各个设备,完成配置后,通过测试发现,VTEP-1、VTEP-2与RR均未建立起邻居关系,故障如图2所示,之后通过查看配置,查看端口状态,并仔细分析与排查,才发现问题的根源:NXOSV9K设备及各个接口默认都是关闭状态,没有信息的交互,自然不能建立邻居关系,通过在互联的接口配置中no shutdown开启接口功能,上面各设备可以建立邻居关系,故障得以解决。
在测试中笔者又发现一个问题,那就是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上的不同网段的主机VPC6无法ping通VPC7,在SW2上也是如此。
图2 邻居未建立
图3 相同SW不同网段-ping不通
图4 相同SW不同网段-ping通
故障现象如图3所示,通过抓包软件看到对于ping请求对方没有应答。
通过对以上故障进行分析,VXLAN只是在VTEP-1和VTEP-2之间进行封装和解封装,RR作为网脊设备只是进行三层转发,所以与网脊无关。
而且在同一台交换机SW1的不同网段的主机无法ping通,问题应该出在VTEP-1上,通过查看VTEP-1设备的配置,找到相关的文档,综合加以分析,最终找到问题的根源,那就是:VTEP-1上建了2个3层VNI,而且在2层VNI的SVI接口中配置不同网段分别归属不同的3层VRF,导致相同的网段主机彼此能够ping通,同一台交换机SW1上跨网段的两台主机无法ping通。
通过修改配置,将2层VNI的SVI接口中配置不同网段分别归属相同的3层VRF,即都配置成vrf member vtep-tenant-1,问题得到解决,通过抓包软件显示,主机VPC6能ping通主机VPC7,如图4所示。
解决了以上问题后,本以为实验已经完成,但经过测试后发现,虽然跨交换机的相同网段主机能够ping通,而且同一交换机的不同网段主机也能ping通,但是跨交换机的不同网段主机还是无法ping通,如VPC6(192.168.1.1)不能ping通vpc9(172.16.1.4)。
图5 不同SW不同网段-ping通
经过上网查找相关资料,核对VTEP-1和VTEP-2设备上的配置,通过认真分析,找到了症结所在,那就是:虽然在以上两台设备上都配置了3层VNI的SVI接口,而且也配置归属相同的3层VRF,尽管没有配置IP地址,但是要配置IP forward,因为在接口配置中没有配IP forward导致了跨交换机的不同网段主机还是无法ping通的故障发生。查找了网上有些文档,也没有配此命令,个人觉得不妥,应该配置该命令,否则无法进行三层转发。
在VTEP-1和VTEP-2的3层VNI的SVI接口配置中增加IP forward,问题得到解决。通过抓包软件也看出跨网段主机VPC6能够ping通VPC9,如图5所示。
通过基于MP-BGP EVPN的VXLAN实验,笔者进一步了解设备的性能和特点,便于在以后的相关设备配置中少走弯路。
譬如NXOSV9K设备中默认接口是关闭的,因此在设备配置中,不仅实际接口配置要注意开启接口功能,而且在SVI接口配置中也要开启接口功能。
其次,2层VNI的SVI接口要配置归属相同的3层VRF。
再次,在3层VNI的SVI接口配置中要启用IP forward功能。
这也提醒我们在以后的学习中,要注意每一个细小环节,只有掌握每个相关的知识点,才能做到对设备的全面了解。