通过上一个实验,我们已经知道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 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的ARP信息和MAC地址信息。
dis evpn route arp dis evpn route mac