VXLAN 分布式网关实验与分析_动态隧道(H3C)

发布于:2025-07-17 ⋅ 阅读:(18) ⋅ 点赞:(0)

 

引言

在现代数据中心网络中,VXLAN(Virtual eXtensible Local Area Network)结合(Ethernet Virtual Private Network)技术以其高扩展性和灵活性,成为构建大规模、多租户网络的首选方案。分布式网关通过在边缘交换机上实现三层路由功能,显著降低核心设备的压力,提升网络性能和扩展能力。本实验通过搭建一个基于VXLAN和EVPN的分布式网关网络,展示如何实现跨站点的二层通信、三层路由及外部网络互联,验证其在数据中心环境中的应用效果。

实验模拟了一个典型的数据中心网络场景,包含三台边缘交换机(SW-A、SW-B、SW-C)、一台核心交换机(SW-D,兼任路由反射器RR)、一台接入交换机(Access-1)以及一台出口路由器(Export)。SW-A、SW-B和SW-C作为边缘设备,运行分布式网关,负责本地VXLAN隧道的封装/解封装及三层路由;SW-D作为核心交换机和RR,负责Underlay网络互联及EVPN路由分发;Access-1扩展客户端接入能力;Export连接外部网络(模拟公网设备VSR-88_11)。实验使用VXLAN ID 10(VSI vpna)和VXLAN ID 20(VSI vpnb)构建两个二层广播域,客户端通过VLAN 100和VLAN 200接入,映射到VXLAN网络,实现跨站点通信及外部网络访问。

通过本文,读者将:

  • 理解VXLAN结合EVPN的分布式网关工作原理及其在数据中心中的优势。
  • 学习在H3C设备上配置EVPN和VXLAN分布式网关,包括Underlay网络、VXLAN隧道、三层网关及BGP EVPN协议设置。
  • 掌握验证和调试分布式网关网络的方法,解决常见配置问题。
  • 获取可复现的实验指导,适合网络工程师、数据中心管理员或网络虚拟化学习者。

实验背景与意义

本实验模拟了一个典型的数据中心网络环境,旨在验证VXLAN结合EVPN的分布式网关在实现跨站点二层通信、三层路由及外部网络互联中的能力。实验场景包括:

  • 边缘交换机(SW-A、SW-B、SW-C):运行分布式网关,处理本地VXLAN隧道封装/解封装及三层路由,降低核心设备负载。
  • 核心交换机(SW-D):作为路由反射器(RR)及Underlay网络互联设备,负责IP路由及EVPN路由分发。
  • 接入交换机(Access-1):扩展SW-B的客户端接入能力,连接部分虚拟机(VM)。
  • 出口路由器(Export):通过NAT和静态路由实现内部网络与外部网络(模拟公网设备VSR-88_11)的互联。
  • 虚拟机(VM1至VM6):模拟客户端设备,分别接入VLAN 100(VNI 10,网段192.168.1.0/24)和VLAN 200(VNI 20,网段192.168.2.0/24)。

实验通过VXLAN ID 10和20构建两个虚拟二层网络,利用EVPN协议实现分布式网关间的MAC地址和ARP信息同步,确保跨站点的二层和三层通信高效运行,同时通过Export设备验证外部网络访问能力。

实验目标与内容

本实验旨在通过配置VXLAN和EVPN分布式网关,展示其在数据中心网络中的应用。实验内容包括:

  1. 分布式网关概念:介绍EVPN和VXLAN分布式网关的架构、VNI(VXLAN Network Identifier)、VTEP角色及与集中式网关的区别。
  2. 网络拓扑设计:描述实验网络架构,包括SW-A、SW-B、SW-C作为边缘分布式网关,SW-D作为核心交换机和RR,Access-1扩展客户端接入,Export提供外部网络互联。
  3. Underlay网络搭建:使用OSPF协议配置IP路由,确保VTEP间三层连通性。
  4. VXLAN和VSI配置:配置VXLAN隧道和VSI接口,支持二层虚拟化网络和客户端接入。
  5. VXLAN接入配置:配置客户端VLAN接入,映射到VXLAN网络。
  6. L3VPN配置:配置L3VPN实例,支持三层路由功能。
  7. BGP EVPN配置:配置BGP EVPN协议,实现分布式网关间的路由分发。
  8. NAT和路由配置:配置NAT和静态路由,实现内部网络与外部网络的互联。
  9. 连通性验证:通过虚拟机验证二层互通、三层路由及外部网络访问功能。

网络拓扑

  • SW-A:连接VM1(VLAN 100,192.168.1.2)和VM5(VLAN 200,192.168.2.1),上联SW-D。
  • SW-B:通过Access-1连接VM2(VLAN 200,192.168.2.3)和VM4(VLAN 100,192.168.1.1),上联SW-D。
  • SW-C:连接VM3(VLAN 200,192.168.2.2)和VM6(VLAN 100,192.168.1.3),上联SW-D。
  • SW-D:作为核心交换机和RR,上联Export,下联SW-A、SW-B、SW-C。
  • Export:连接外部网络(VSR-88_11,202.101.111.1),提供NAT功能。
  • Access-1:连接SW-B,扩展客户端接入。

实验步骤

1. 接口IP地址和VLAN配置

配置各设备的VLAN、接口IP地址及接入接口,为Underlay网络提供连通性,并为VXLAN隧道和三层网关奠定基础。

Internet(外部网络)

interface GigabitEthernet0/0/0
 ip address 202.101.111.1 255.255.255.252 // 配置接口IP地址,与Export设备互联

说明:VSR-88_11模拟外部网络,配置接口IP地址以连接Export设备,为外部网络访问提供基础。 // 提供外部网络连接,模拟公网环境。

Export(出口路由器)

interface LoopBack0
 ip address 1.1.1.5 255.255.255.255 // 配置Loopback0作为VTEP标识IP和BGP路由器ID

interface GigabitEthernet0/0
 ip binding vpn-instance l3vpn
 ip address 202.101.111.2 255.255.255.252 // 配置接口IP地址,连接外部网络

interface GigabitEthernet0/1
 ip address 10.1.1.13 255.255.255.252 // 配置接口IP地址,连接SW-D

说明:Export配置Loopback0作为VTEP标识IP,GigabitEthernet0/0连接外部网络,GigabitEthernet0/1连接SW-D,为Underlay网络提供连通性。 // 建立Export的Underlay网络连接,支持VXLAN和BGP功能。

SW-D(核心交换机)

vlan 10 to 13 // 创建VLAN 10到13,划分Underlay网络接口

interface LoopBack0
 ip address 1.1.1.1 255.255.255.255 // 配置Loopback0作为VTEP标识IP和BGP路由器ID

interface Vlan-interface10
 ip address 10.1.1.1 255.255.255.252 // 配置VLAN 10接口IP,连接SW-A

interface Vlan-interface11
 ip address 10.1.1.5 255.255.255.252 // 配置VLAN 11接口IP,连接SW-B

interface Vlan-interface12
 ip address 10.1.1.9 255.255.255.252 // 配置VLAN 12接口IP,连接SW-C

interface Vlan-interface13
 ip address 10.1.1.14 255.255.255.252 // 配置VLAN 13接口IP,连接Export

interface GigabitEthernet1/0/1
 port access vlan 10 // 分配接口到VLAN 10,连接SW-A

interface GigabitEthernet1/0/2
 port access vlan 11 // 分配接口到VLAN 11,连接SW-B

interface GigabitEthernet1/0/3
 port access vlan 12 // 分配接口到VLAN 12,连接SW-C

interface GigabitEthernet1/0/4
 port access vlan 13 // 分配接口到VLAN 13,连接Export

说明:SW-D配置VLAN和接口IP地址,连接SW-A、SW-B、SW-C和Export,确保Underlay网络的IP连通性。 // 提供核心交换机的Underlay网络互联,承载VXLAN隧道和EVPN路由分发。

SW-A(边缘交换机)

vlan 10 // 创建VLAN 10,连接SW-D
vlan 100 // 创建VLAN 100,客户端接入
vlan 200 // 创建VLAN 200,客户端接入

interface LoopBack0
 ip address 1.1.1.2 255.255.255.255 // 配置Loopback0作为VTEP标识IP和BGP路由器ID

interface Vlan-interface10
 ip address 10.1.1.2 255.255.255.252 // 配置VLAN 10接口IP,连接SW-D

interface GigabitEthernet1/0/1
 port access vlan 10 // 分配接口到VLAN 10,连接SW-D

interface GigabitEthernet1/0/2
 port link-type trunk // 配置为Trunk模式,允许多VLAN流量
 undo port trunk permit vlan 1 // 移除默认VLAN 1
 port trunk permit vlan 100 // 允许VLAN 100流量
 port trunk pvid vlan 100 // 设置无标签帧默认VLAN为100

interface GigabitEthernet1/0/3
 port link-type trunk // 配置为Trunk模式,允许多VLAN流量
 undo port trunk permit vlan 1 // 移除默认VLAN 1
 port trunk permit vlan 200 // 允许VLAN 200流量
 port trunk pvid vlan 200 // 设置无标签帧默认VLAN为200

说明:SW-A配置VLAN和接口IP地址,连接SW-D和客户端(VM1和VM5),为Underlay网络和客户端接入提供基础。 // 实现SW-A的Underlay网络连通性和客户端VLAN接入。

SW-B(边缘交换机)

vlan 11 // 创建VLAN 11,连接SW-D
vlan 100 // 创建VLAN 100,客户端接入
vlan 200 // 创建VLAN 200,客户端接入

interface LoopBack0
 ip address 1.1.1.3 255.255.255.255 // 配置Loopback0作为VTEP标识IP和BGP路由器ID

interface Vlan-interface11
 ip address 10.1.1.6 255.255.255.252 // 配置VLAN 11接口IP,连接SW-D

interface GigabitEthernet1/0/1
 port access vlan 11 // 分配接口到VLAN 11,连接SW-D

interface GigabitEthernet1/0/2
 port link-type trunk // 配置为Trunk模式,允许多VLAN流量
 port trunk permit vlan 1 100 200 // 允许VLAN 1、100和200流量

说明:SW-B配置VLAN和接口IP地址,连接SW-D和Access-1,为Underlay网络和客户端接入提供基础。 // 实现SW-B的Underlay网络连通性和客户端VLAN接入。

SW-C(边缘交换机)

vlan 12 // 创建VLAN 12,连接SW-D
vlan 100 // 创建VLAN 100,客户端接入
vlan 200 // 创建VLAN 200,客户端接入

interface LoopBack0
 ip address 1.1.1.4 255.255.255.255 // 配置Loopback0作为VTEP标识IP和BGP路由器ID

interface Vlan-interface12
 ip address 10.1.1.10 255.255.255.252 // 配置VLAN 12接口IP,连接SW-D

interface GigabitEthernet1/0/1
 port access vlan 12 // 分配接口到VLAN 12,连接SW-D

interface GigabitEthernet1/0/2
 port link-type trunk // 配置为Trunk模式,允许多VLAN流量
 undo port trunk permit vlan 1 // 移除默认VLAN 1
 port trunk permit vlan 200 // 允许VLAN 200流量
 port trunk pvid vlan 200 // 设置无标签帧默认VLAN为200

interface GigabitEthernet1/0/3
 port link-type trunk // 配置为Trunk模式,允许多VLAN流量
 undo port trunk permit vlan 1 // 移除默认VLAN 1
 port trunk permit vlan 100 // 允许VLAN 100流量
 port trunk pvid vlan 100 // 设置无标签帧默认VLAN为100

说明:SW-C配置VLAN和接口IP地址,连接SW-D和客户端(VM3和VM6),为Underlay网络和客户端接入提供基础。 // 实现SW-C的Underlay网络连通性和客户端VLAN接入。

Access-1(接入交换机)

vlan 100 // 创建VLAN 100,客户端接入
vlan 200 // 创建VLAN 200,客户端接入

interface GigabitEthernet1/0/1
 port link-type trunk // 配置为Trunk模式,允许多VLAN流量
 undo port trunk permit vlan 1 // 移除默认VLAN 1
 port trunk permit vlan 100 200 // 允许VLAN 100和200流量

interface GigabitEthernet1/0/2
 port access vlan 200 // 配置为Access模式,分配VLAN 200

interface GigabitEthernet1/0/3
 port access vlan 100 // 配置为Access模式,分配VLAN 100

说明:Access-1配置VLAN和接口,连接SW-B并扩展客户端接入(VM2和VM4)。Trunk接口汇总VLAN 100和200流量,Access接口分配客户端到对应VLAN。 // 扩展SW-B的客户端接入能力,支持VLAN 100和VLAN 200的虚拟机连接。

2. OSPF配置

配置OSPF协议,建立Underlay网络的IP路由,确保VTEP间三层连通性。

Export

ospf 1 router-id 1.1.1.5 // 启用OSPF进程1,设置路由器ID
 area 0.0.0.0
  network 1.1.1.5 0.0.0.0 // 宣布Loopback0 IP
  network 10.1.1.12 0.0.0.3 // 宣布VLAN 13网段,连接SW-D

说明:Export配置OSPF,宣布Loopback0和VLAN 13网段,确保与SW-D的Underlay网络连通性。 // 提供Underlay网络的动态路由,支持VTEP间的IP可达性。

SW-D

ospf 1 router-id 1.1.1.1 // 启用OSPF进程1,设置路由器ID
 area 0.0.0.0
  network 1.1.1.1 0.0.0.0 // 宣布Loopback0 IP
  network 10.1.1.0 0.0.0.3 // 宣布VLAN 10网段,连接SW-A
  network 10.1.1.4 0.0.0.3 // 宣布VLAN 11网段,连接SW-B
  network 10.1.1.8 0.0.0.3 // 宣布VLAN 12网段,连接SW-C
  network 10.1.1.12 0.0.0.3 // 宣布VLAN 13网段,连接Export

说明:SW-D配置OSPF,宣布所有VLAN接口和Loopback0的IP地址,确保与SW-A、SW-B、SW-C和Export的Underlay网络连通性。 // 提供核心交换机的动态路由,支撑VXLAN隧道和EVPN路由分发。

SW-A

ospf 1 router-id 1.1.1.3 // 启用OSPF进程1,设置路由器ID
 area 0.0.0.0
  network 1.1.1.3 0.0.0.0 // 宣布Loopback0 IP
  network 10.1.1.4 0.0.0.3 // 宣布VLAN 11网段,连接SW-D

说明:SW-A配置OSPF,宣布Loopback0和VLAN 10网段,确保与SW-D的Underlay网络连通性。 // 支持SW-A的VTEP IP可达性,保障VXLAN隧道建立。

SW-B

ospf 1 router-id 1.1.1.3 // 启用OSPF进程1,设置路由器ID
 area 0.0.0.0
  network 1.1.1.3 0.0.0.0 // 宣布Loopback0 IP
  network 10.1.1.4 0.0.0.3 // 宣布VLAN 11网段,连接SW-D

说明:SW-B配置OSPF,宣布Loopback0和VLAN 11网段,确保与SW-D的Underlay网络连通性。 // 支持SW-B的VTEP IP可达性,保障VXLAN隧道建立。

SW-C

ospf 1 router-id 1.1.1.4 // 启用OSPF进程1,设置路由器ID
 area 0.0.0.0
  network 1.1.1.4 0.0.0.0 // 宣布Loopback0 IP
  network 10.1.1.8 0.0.0.3 // 宣布VLAN 12网段,连接SW-D

说明:SW-C配置OSPF,宣布Loopback0和VLAN 12网段,确保与SW-D的Underlay网络连通性。 支持SW-C的VTEP IP可达性,保障VXLAN隧道建立。

3. VXLAN和VSI配置

配置VXLAN隧道和VSI接口,支持二层虚拟化网络和分布式网关功能。

Export

vxlan tunnel mac-learning disable // 禁用VXLAN隧道MAC学习
vxlan tunnel arp-learning disable // 禁用VXLAN隧道ARP学习

vsi vpna
 vxlan 10 // 关联VXLAN ID 10
 evpn encapsulation vxlan
  route-distinguisher 1:10 // 配置EVPN的RD
  vpn-target 1:10 export-extcommunity // 配置EVPN的出口RT
  vpn-target 1:10 1:20 import-extcommunity // 配置EVPN的入口RT

vsi vpnb
 vxlan 20 // 关联VXLAN ID 20
 evpn encapsulation vxlan
  route-distinguisher 1:20 // 配置EVPN的RD
  vpn-target 1:20 export-extcommunity // 配置EVPN的出口RT
  vpn-target 1:20 20:20 import-extcommunity // 配置EVPN的入口RT

说明:Export配置VXLAN,禁用MAC和ARP学习,设置VSI vpna和vpnb以支持VNI 10和VNI 20的二层网络。 // 启用VXLAN功能,支持二层虚拟化网络。

SW-A

l2vpn enable // 启用二层虚拟专用网络功能,支持VXLAN

vsi vpna
 gateway vsi-interface 1 // 指定VSI接口1作为VNI 10的网关
 vxlan 10 // 关联VXLAN ID 10
 evpn encapsulation vxlan
  route-distinguisher 1:10 // 配置EVPN的RD
  vpn-target 1:10 export-extcommunity // 配置EVPN的出口RT
  vpn-target 1:10 1:20 import-extcommunity // 配置EVPN的入口RT

vsi vpnb
 gateway vsi-interface 2 // 指定VSI接口2作为VNI 20的网关
 vxlan 20 // 关联VXLAN ID 20
 evpn encapsulation vxlan
  route-distinguisher 1:20 // 配置EVPN的RD
  vpn-target 1:20 export-extcommunity // 配置EVPN的出口RT
  vpn-target 1:10 1:20 import-extcommunity // 配置EVPN的入口RT

interface Vsi-interface1
 ip binding vpn-instance l3vpn
 ip address 192.168.1.254 255.255.255.0 // 配置VSI接口1作为VNI 10的三层网关
 mac-address 0001-0001-0001 // 设置网关MAC地址
 local-proxy-arp enable // 启用本地代理ARP,优化ARP广播
 distributed-gateway local // 启用分布式网关功能

interface Vsi-interface2
 ip binding vpn-instance l3vpn
 ip address 192.168.2.254 255.255.255.0 // 配置VSI接口2作为VNI 20的三层网关
 mac-address 0002-0002-0002 // 设置网关MAC地址
 local-proxy-arp enable // 启用本地代理ARP
 distributed-gateway local // 启用分布式网关功能

说明:SW-A启用L2VPN功能,配置VSI vpna和vpnb支持VNI 10和VNI 20,VSI接口作为分布式网关提供三层路由功能。 // 实现SW-A的VXLAN二层网络和分布式网关三层路由。

SW-B

l2vpn enable // 启用二层虚拟专用网络功能,支持VXLAN

vsi vpna
 gateway vsi-interface 1 // 指定VSI接口1作为VNI 10的网关
 vxlan 10 // 关联VXLAN ID 10
 evpn encapsulation vxlan
  route-distinguisher 1:10 // 配置EVPN的RD
  vpn-target 1:10 export-extcommunity // 配置EVPN的出口RT
  vpn-target 1:10 1:20 import-extcommunity // 配置EVPN的入口RT

vsi vpnb
 gateway vsi-interface 2 // 指定VSI接口2作为VNI 20的网关
 vxlan 20 // 关联VXLAN ID 20
 evpn encapsulation vxlan
  route-distinguisher 1:20 // 配置EVPN的RD
  vpn-target 1:20 export-extcommunity // 配置EVPN的出口RT
  vpn-target 1:10 1:20 import-extcommunity // 配置EVPN的入口RT

interface Vsi-interface1
 ip binding vpn-instance l3vpn
 ip address 192.168.1.254 255.255.255.0 // 配置VSI接口1作为VNI 10的三层网关
 mac-address 0001-0001-0001 // 设置网关MAC地址
 local-proxy-arp enable // 启用本地代理ARP,优化ARP广播
 distributed-gateway local // 启用分布式网关功能

interface Vsi-interface2
 ip binding vpn-instance l3vpn
 ip address 192.168.2.254 255.255.255.0 // 配置VSI接口2作为VNI 20的三层网关
 mac-address 0002-0002-0002 // 设置网关MAC地址
 local-proxy-arp enable // 启用本地代理ARP
 distributed-gateway local // 启用分布式网关功能

说明:SW-B启用L2VPN功能,配置VSI vpna和vpnb支持VNI 10和VNI 20,VSI接口作为分布式网关提供三层路由功能。 // 实现SW-B的VXLAN二层网络和分布式网关三层路由。

SW-C

l2vpn enable // 启用二层虚拟专用网络功能,支持VXLAN

vsi vpna
 gateway vsi-interface 1 // 指定VSI接口1作为VNI 10的网关
 vxlan 10 // 关联VXLAN ID 10
 evpn encapsulation vxlan
  route-distinguisher 1:10 // 配置EVPN的RD
  vpn-target 1:10 export-extcommunity // 配置EVPN的出口RT
  vpn-target 1:10 1:20 import-extcommunity // 配置EVPN的入口RT

vsi vpnb
 gateway vsi-interface 2 // 指定VSI接口2作为VNI 20的网关
 vxlan 20 // 关联VXLAN ID 20
 evpn encapsulation vxlan
  route-distinguisher 1:20 // 配置EVPN的RD
  vpn-target 1:20 export-extcommunity // 配置EVPN的出口RT
  vpn-target 1:10 1:20 import-extcommunity // 配置EVPN的入口RT

interface Vsi-interface1
 ip binding vpn-instance l3vpn
 ip address 192.168.1.254 255.255.255.0 // 配置VSI接口1作为VNI 10的三层网关
 mac-address 0001-0001-0001 // 设置网关MAC地址
 local-proxy-arp enable // 启用本地代理ARP,优化ARP广播
 distributed-gateway local // 启用分布式网关功能

interface Vsi-interface2
 ip binding vpn-instance l3vpn
 ip address 192.168.2.254 255.255.255.0 // 配置VSI接口2作为VNI 20的三层网关
 mac-address 0002-0002-0002 // 设置网关MAC地址
 local-proxy-arp enable // 启用本地代理ARP
 distributed-gateway local // 启用分布式网关功能

说明:SW-C启用L2VPN功能,配置VSI vpna和vpnb支持VNI 10和VNI 20,VSI接口作为分布式网关提供三层路由功能。 // 实现SW-C的VXLAN二层网络和分布式网关三层路由。

4. VXLAN接入配置

配置客户端VLAN接入,将本地VLAN流量映射到VXLAN网络。

SW-A

interface GigabitEthernet1/0/2
 service-instance 1000
  encapsulation s-vid 100 // 匹配VLAN 100标签的帧
  xconnect vsi vpna // 将VLAN 100流量映射到VSI vpna(VNI 10)

interface GigabitEthernet1/0/3
 service-instance 2000
  encapsulation s-vid 200 // 匹配VLAN 200标签的帧
  xconnect vsi vpnb // 将VLAN 200流量映射到VSI vpnb(VNI 20)

SW-B

interface GigabitEthernet1/0/2
 service-instance 1000
  encapsulation s-vid 100 // 匹配VLAN 100标签的帧
  xconnect vsi vpna // 将VLAN 100流量映射到VSI vpna(VNI 10)
 service-instance 2000
  encapsulation s-vid 200 // 匹配VLAN 200标签的帧
  xconnect vsi vpnb // 将VLAN 200流量映射到VSI vpnb(VNI 20)

说明:SW-B配置服务实例,将VLAN 100和VLAN 200流量映射到VSI vpna和vpnb,支持通过Access-1的客户端接入VXLAN网络。 // 支持SW-B的客户端VLAN流量映射到VXLAN网络。

SW-C

interface GigabitEthernet1/0/2
 service-instance 2000
  encapsulation s-vid 200 // 匹配VLAN 200标签的帧
  xconnect vsi vpnb // 将VLAN 200流量映射到VSI vpnb(VNI 20)

interface GigabitEthernet1/0/3
 service-instance 1000
  encapsulation s-vid 100 // 匹配VLAN 100标签的帧
  xconnect vsi vpna // 将VLAN 100流量映射到VSI vpna(VNI 10)

验证 

Flags含义

  • B(Broadcast):表示该表项是通过广播(如ARP请求)学习到的,通常对应客户端设备的MAC地址。例如,192.168.1.1和192.168.1.3的Flags为B,说明这些IP的MAC地址是通过ARP广播学习到的。
  • DL(Distributed Local):表示该表项是本地学习的,且属于分布式网关的本地接口。例如,192.168.1.2的Flags为DL,说明该主机直接连接到本地VTEP,且MAC地址由本地接口学习。
  • GL(Gateway Local):表示该表项是本地分布式网关的地址,绑定到VSI接口。例如,192.168.1.254的Flags为GL,说明这是本地VSI接口的网关IP和MAC地址(0001-0001-0001),用于三层路由。

   

说明:SW-C配置服务实例,将VLAN 100和VLAN 200流量映射到VSI vpna和vpnb,实现客户端接入VXLAN网络。 // 支持SW-C的客户端VLAN流量映射到VXLAN网络。

5. L3VPN配置

配置L3VPN实例,支持三层路由功能。

Export

ip vpn-instance l3vpn
 route-distinguisher 1:100 // 配置L3VPN的RD
 address-family ipv4
  vpn-target 20:20 import-extcommunity // 配置IPv4 VPN的入口RT
  vpn-target 20:20 export-extcommunity // 配置IPv4 VPN的出口RT
 address-family evpn
  vpn-target 30:30 import-extcommunity // 配置EVPN的入口RT
  vpn-target 30:30 export-extcommunity // 配置EVPN的出口RT

interface Vsi-interface3
 ip binding vpn-instance l3vpn
 l3-vni 3000 // 配置L3 VNI,用于三层路由

说明:Export配置L3VPN实例,设置RD和RT支持IPv4和EVPN地址族,Vsi-interface3绑定L3VPN并配置L3 VNI,用于三层路由。 // 实现Export的三层路由功能,支持跨VNI通信。

SW-A

ip vpn-instance l3vpn
 route-distinguisher 1:200 // 配置L3VPN的RD
 address-family ipv4
  vpn-target 20:20 import-extcommunity // 配置IPv4 VPN的入口RT
  vpn-target 20:20 export-extcommunity // 配置IPv4 VPN的出口RT
 address-family evpn
  vpn-target 30:30 import-extcommunity // 配置EVPN的入口RT
  vpn-target 30:30 export-extcommunity // 配置EVPN的出口RT

interface Vsi-interface3
 ip binding vpn-instance l3vpn
 l3-vni 3000 // 配置L3 VNI,用于三层路由

说明:SW-A配置L3VPN实例,设置RD和RT支持IPv4和EVPN地址族,Vsi-interface3绑定L3VPN并配置L3 VNI,用于三层路由。 // 实现SW-A的三层路由功能,支持跨VNI通信。

SW-B

ip vpn-instance l3vpn
 route-distinguisher 1:300 // 配置L3VPN的RD
 address-family ipv4
  vpn-target 20:20 import-extcommunity // 配置IPv4 VPN的入口RT
  vpn-target 20:20 export-extcommunity // 配置IPv4 VPN的出口RT
 address-family evpn
  vpn-target 30:30 import-extcommunity // 配置EVPN的入口RT
  vpn-target 30:30 export-extcommunity // 配置EVPN的出口RT

interface Vsi-interface3
 ip binding vpn-instance l3vpn
 l3-vni 3000 // 配置L3 VNI,用于三层路由

说明:SW-B配置L3VPN实例,设置RD和RT支持IPv4和EVPN地址族,Vsi-interface3绑定L3VPN并配置L3 VNI,用于三层路由。 // 实现SW-B的三层路由功能,支持跨VNI通信。

SW-C

ip vpn-instance l3vpn
 route-distinguisher 1:400 // 配置L3VPN的RD
 address-family ipv4
  vpn-target 20:20 import-extcommunity // 配置IPv4 VPN的入口RT
  vpn-target 20:20 export-extcommunity // 配置IPv4 VPN的出口RT
 address-family evpn
  vpn-target 30:30 import-extcommunity // 配置EVPN的入口RT
  vpn-target 30:30 export-extcommunity // 配置EVPN的出口RT

interface Vsi-interface3
 ip binding vpn-instance l3vpn
 l3-vni 3000 // 配置L3 VNI,用于三层路由

说明:SW-C配置L3VPN实例,设置RD和RT支持IPv4和EVPN地址族,Vsi-interface3绑定L3VPN并配置L3 VNI,用于三层路由。 // 实现SW-C的三层路由功能,支持跨VNI通信。

6. BGP EVPN配置

配置BGP EVPN协议,实现分布式网关间的路由分发。

SW-D

bgp 65000
 router-id 1.1.1.1 // 设置BGP路由器ID
 group evpn internal // 创建EVPN内部组
 peer evpn connect-interface LoopBack0 // 指定EVPN组连接接口
 peer 1.1.1.2 group evpn // 将SW-A加入EVPN组
 peer 1.1.1.3 group evpn // 将SW-B加入EVPN组
 peer 1.1.1.4 group evpn // 将SW-C加入EVPN组
 peer 1.1.1.5 group evpn // 将Export加入EVPN组
 address-family vpnv4 // 启用VPNv4地址族
 address-family l2vpn evpn
  undo policy vpn-target // 禁用VPN目标策略
  peer evpn enable // 启用EVPN地址族
  peer evpn reflect-client // 配置SW-D为路由反射器

说明:SW-D配置BGP EVPN,作为路由反射器,与SW-A、SW-B、SW-C和Export建立邻居关系,分发EVPN路由。 // 实现核心交换机的EVPN路由分发,支撑分布式网关的路由同步。

Export

bgp 65000
 peer 1.1.1.1 as-number 65000 // 配置BGP邻居SW-D
 peer 1.1.1.1 connect-interface LoopBack0 // 指定BGP邻居连接接口
 address-family l2vpn evpn
  peer 1.1.1.1 enable // 启用EVPN地址族
 ip vpn-instance l3vpn
  address-family ipv4 unicast
   default-route imported // 导入默认路由
   import-route static // 导入静态路由

说明:Export配置BGP EVPN,与SW-D建立邻居关系,分发EVPN路由,并导入L3VPN的默认路由和静态路由。 // 实现Export的EVPN路由分发和L3VPN路由导入。

SW-A

bgp 65000
 router-id 1.1.1.2 // 设置BGP路由器ID
 peer 1.1.1.1 as-number 65000 // 配置BGP邻居SW-D
 peer 1.1.1.1 connect-interface LoopBack0 // 指定BGP邻居连接接口
 address-family l2vpn evpn
  peer 1.1.1.1 enable // 启用EVPN地址族

说明:SW-A配置BGP EVPN,与SW-D建立邻居关系,分发EVPN路由。 // 实现SW-A的EVPN路由分发,支持分布式网关。

SW-B

bgp 65000
 router-id 1.1.1.3 // 设置BGP路由器ID
 peer 1.1.1.1 as-number 65000 // 配置BGP邻居SW-D
 peer 1.1.1.1 connect-interface LoopBack0 // 指定BGP邻居连接接口
 address-family l2vpn evpn
  peer 1.1.1.1 enable // 启用EVPN地址族

说明:SW-B配置BGP EVPN,与SW-D建立邻居关系,分发EVPN路由。 // 实现SW-B的EVPN路由分发,支持分布式网关。

SW-C

bgp 65000
 router-id 1.1.1.4 // 设置BGP路由器ID
 peer 1.1.1.1 as-number 65000 // 配置BGP邻居SW-D
 peer 1.1.1.1 connect-interface LoopBack0 // 指定BGP邻居连接接口
 address-family l2vpn evpn
  peer 1.1.1.1 enable // 启用EVPN地址族

说明:SW-C配置BGP EVPN,与SW-D建立邻居关系,分发EVPN路由。 // 实现SW-C的EVPN路由分发,支持分布式网关。

7. NAT和路由配置

配置NAT和静态路由,实现内部网络与外部网络的互联。

Export

ip route-static vpn-instance l3vpn 0.0.0.0 0 202.101.111.1 // 配置默认路由,指向外部网络

acl advanced 3000
 rule 5 permit ip vpn-instance l3vpn source 192.168.1.0 0.0.0.255 // 允许VNI 10网段的流量进行NAT
 rule 10 permit ip vpn-instance l3vpn source 192.168.2.0 0.0.0.255 // 允许VNI 20网段的流量进行NAT

interface GigabitEthernet0/0
 nat outbound 3000 vpn-instance l3vpn // 启用NAT,允许L3VPN内的流量访问外部网络

说明:Export配置静态路由和NAT,允许VNI 10和VNI 20网段的流量通过GigabitEthernet0/0访问外部网络。 // 实现内部网络与外部网络的互联,支持NAT转换。

8. PC配置

配置客户端虚拟机的IP地址和网关:

  • VM1(连接SW-A):IP 192.168.1.2,网关 192.168.1.254 // 接入VNI 10,VLAN 100
  • VM5(连接SW-A):IP 192.168.2.1,网关 192.168.2.254 // 接入VNI 20,VLAN 200
  • VM4(连接Access-1):IP 192.168.1.1,网关 192.168.1.254 // 接入VNI 10,VLAN 100
  • VM2(连接Access-1):IP 192.168.2.3,网关 192.168.2.254 // 接入VNI 20,VLAN 200
  • VM6(连接SW-C):IP 192.168.1.3,网关 192.168.1.254 // 接入VNI 10,VLAN 100
  • VM3(连接SW-C):IP 192.168.2.2,网关 192.168.2.254 // 接入VNI 20,VLAN 200

说明:虚拟机配置IP地址和网关,分别接入VNI 10和VNI 20,网关指向分布式网关的VSI接口地址。 // 确保客户端正确接入VXLAN网络,支持二层和三层通信。

9. 连通性验证

验证网络的二层和三层连通性,以及外部网络访问能力。

  • 二层连通性:在VM1(192.168.1.2)、VM4(192.168.1.1)和VM6(192.168.1.3)之间执行ping操作,验证VNI 10内的二层通信;在VM5(192.168.2.1)、VM2(192.168.2.3)和VM3(192.168.2.2)之间执行ping操作,验证VNI 20内的二层通信。
  • 三层连通性:在VM1(192.168.1.2)ping VM2(192.168.2.3),验证跨VNI的三层路由功能。
  • 外部网络访问:从任意VM ping外部网络(202.101.111.1),验证NAT和外部路由功能。

 

 VM联通性验证

外网验证

 

 

说明:通过ping测试验证二层和三层连通性,以及外部网络访问能力,确保VXLAN和EVPN分布式网关的正确运行。 // 验证网络配置的有效性,确认分布式网关和外部互联功能。

10. Wireshark验证(在SWD的G1/0/1接口进行抓包)

VM5访问VM3

VM5访问互联网

说明:我们可以看到,从Wireshark抓取的数据显示,VM5访问互联网是通过封装为VXLAN报文实现的。外层IP从1.1.1.2(SW-A的VTEP)发送至1.1.1.5(可能是Export的VTEP),使用UDP端口4789封装,VNI为3000表示L3VPN流量。内层IP从192.168.2.1(VM5)到202.101.111.1(外部网络),通过ICMP回显请求进行连通性测试。这表明VXLAN隧道已建立,Underlay网络支持数据传输

总结

本实验通过配置VXLAN和EVPN分布式网关,成功实现了跨站点的二层通信、三层路由及外部网络访问。SW-A、SW-B和SW-C作为边缘交换机,运行分布式网关,处理本地VXLAN隧道和三层路由;SW-D作为核心交换机和RR,负责Underlay网络互联和EVPN路由分发;Export通过NAT实现外部网络访问。实验验证了VXLAN和EVPN在数据中心网络中的高效性和灵活性,提供了可复现的配置参考,如果文章有不对的地方欢迎大家指出。

 


网站公告

今日签到

点亮在社区的每一天
去签到