VXLAN + EVPN 分布式部署
今天这篇教程,不讲枯燥的理论,直接带大家做一个最经典的实验:两个不同网段的电脑(PC1 和 PC2),如何通过 VXLAN + EVPN 实现自动互通。只要你有华为模拟器(eNSP)或真机,跟着敲命令就能成功!
一、 实验拓扑与规划
1. 拓扑图解析
我们模拟两个园区,中间一台路由器(AR1)模拟骨干网。
- CE1 & CE2:作为核心交换机(VTEP节点),负责 VXLAN 封装和解封装。
- LSW1 & LSW2:接入层交换机,连接终端 PC。
- AR1:模拟中间的传输网络。
2. 地址与资源规划表
| 设备 | 接口/IP | 作用 | 备注 |
|---|---|---|---|
| AR1 | Loopback0: 3.3.3.3/32 | 模拟公网/骨干可达性 | OSPF Area 0 |
| GE0/0/0: 10.10.11.2/24 | 连接 CE1 | ||
| GE0/0/1: 10.10.22.2/24 | 连接 CE2 | ||
| CE1 | Loopback0: 1.1.1.1/32 | VTEP 源地址 | OSPF Area 0 |
| GE0/0/1: 10.10.11.1/24 | 连接 AR1 | ||
| GE1/0/0: Trunk | 连接 LSW1 | 允许 VLAN 10 | |
| VBDIF 10: 192.168.10.1/24 | PC1 网关 | 绑定 CDMA_Outband | |
| CE2 | Loopback0: 2.2.2.2/32 | VTEP 源地址 | OSPF Area 0 |
| GE0/0/1: 10.10.22.1/24 | 连接 AR1 | ||
| GE1/0/0: Trunk | 连接 LSW2 | 允许 VLAN 20 | |
| VBDIF 20: 192.168.20.1/24 | PC2 网关 | 绑定 CDMA_Outband | |
| PC1 | IP: 192.168.10.123 | 终端 | 网关指向 192.168.10.1 |
| PC2 | IP: 192.168.20.123 | 终端 | 网关指向 192.168.20.1 |
关键概念提示:
- L2 VNI (100, 200):用于标识不同的二层广播域(相当于传统 VLAN ID 的扩展)。
- L3 VNI (123):用于三层网关互联,所有VPN 实例共用一个 L3 VNI。
- CDMA_Outband实例:逻辑隔离的路由表,确保不同租户数据不混淆。
二、 第一步:打通底层网络(Underlay)
目标:让 CE1 和 CE2 的 Loopback 接口能互相 Ping 通。这是建立 VXLAN 隧道的基础。
1. 配置 AR1(中间路由器)
sysname AR1 interface GigabitEthernet0/0/0 undo shutdown ip address 10.10.11.2 255.255.255.0 # interface GigabitEthernet0/0/1 undo shutdown ip address 10.10.22.2 255.255.255.0 # interface LoopBack0 ip address 3.3.3.3 32 # ospf 1 router-id 3.3.3.3 area 0.0.0.0 network 10.10.11.0 0.0.0.255 network 10.10.22.0 0.0.0.255 network 3.3.3.3 0.0.0.02. 配置左侧 CE1
sysname CE1 # 配置互联接口 interface GigabitEthernet0/0/1 undo shutdown ip address 10.10.11.1 255.255.255.0 # interface LoopBack0 ip address 1.1.1.1 32 # # 配置 OSPF ospf 1 router-id 1.1.1.1 area 0.0.0.0 network 10.10.11.0 0.0.0.255 network 1.1.1.1 0.0.0.03. 配置右侧 CE2
sysname CE2 # 配置互联接口 interface GigabitEthernet0/0/1 undo shutdown ip address 10.10.22.1 255.255.255.0 # interface LoopBack0 ip address 2.2.2.2 32 # # 配置 OSPF ospf 1 router-id 2.2.2.2 area 0.0.0.0 network 10.10.22.0 0.0.0.255 network 2.2.2.2 0.0.0.0验证点:在 CE1 上执行ping -a 1.1.1.1 2.2.2.2,如果能通,说明 Underlay 没问题。
三、 第二步:配置接入层与业务网关(Overlay 基础)
目标:让 PC 能 Ping 通自己的网关,并规划好 VXLAN 参数。
1. 接入交换机配置(LSW1 & LSW2)
左侧LSW1 :
vlan 10 interface GigabitEthernet0/0/1 port link-type access port default vlan 10 # interface GigabitEthernet0/0/2 port link-type trunk port trunk allow-pass vlan 10右侧LSW2 :
vlan 20 interface GigabitEthernet0/0/1 port link-type access port default vlan 20 # interface GigabitEthernet0/0/2 port link-type trunk port trunk allow-pass vlan 202. CE1 业务配置
# 创建桥接域 BD 10 bridge-domain 10 vxlan vni 100 # 关联二层 VNI # 配置下行接口,划入 BD interface GigabitEthernet1/0/0 undo shutdown port link-type trunk port trunk allow-pass vlan 10 # interface GigabitEthernet1/0/0.10 mode l2 encapsulation dot1q vid 10 bridge-domain 10 # 配置三层网关 VBDIF interface Vbdif10 ip address 192.168.10.1 243. CE2 业务配置
# 创建桥接域 BD 20 bridge-domain 20 vxlan vni 200 # 关联二层 VNI # 配置下行接口,划入 BD interface GigabitEthernet1/0/0 undo shutdown port link-type trunk port trunk allow-pass vlan 20 # interface GigabitEthernet1/0/0.20 mode l2 encapsulation dot1q vid 20 bridge-domain 20 # 配置三层网关 VBDIF interface Vbdif20 ip address 192.168.20.1 24验证点:配置 PC1 IP 为 192.168.10.123,Ping 192.168.10.1 应该通。PC2 同理。此时两边还互不相通。
四、 第三步:配置 BGP EVPN 控制平面
目标:让 CE1 和 CE2 交换 MAC 地址和主机路由信息。
1. CE1 配置
evpn-overlay enable bgp 100 router-id 1.1.1.1 peer 2.2.2.2 as-number 100 peer 2.2.2.2 connect-interface LoopBack0 # l2vpn-family evpn policy vpn-target peer 2.2.2.2 enable peer 2.2.2.2 advertise irb # 关键!发布三层 IRB 路由2. CE2 配置
evpn-overlay enable bgp 100 router-id 2.2.2.2 peer 1.1.1.1 as-number 100 peer 1.1.1.1 connect-interface LoopBack0 # l2vpn-family evpn policy vpn-target peer 1.1.1.1 enable peer 1.1.1.1 advertise irb # 关键!发布三层 IRB 路由注意:必须在 BGP 视图下先输入
l2vpn-family evpn进入地址簇视图,再配置 peer enable。
五、 第四步:配置 VRF实例与 EVPN 绑定
目标:将业务隔离在实例中,并启用 EVPN 自动发现功能。
1. CE1 配置
# 1. 创建实例 ip vpn-instance CDMA_Outband ipv4-family route-distinguisher 100:1 vpn-target 100:1 export-extcommunity evpn vpn-target 100:1 import-extcommunity evpn vxlan vni 123 # 三层 VNI,两端必须一致 # 2. 将网关绑定到 实例 interface Vbdif10 ip binding vpn-instance CDMA_Outband arp collect host enable # 开启主机路由收集,否则无法生成 Type5 路由 # 3. 在 BD 中启用 EVPN bridge-domain 10 evpn route-distinguisher 100:1 vpn-target 100:1 export-extcommunity vpn-target 100:1 import-extcommunity2. CE2 配置
# 1. 创建实例 ip vpn-instance CDMA_Outband ipv4-family route-distinguisher 100:1 vpn-target 100:1 export-extcommunity evpn vpn-target 100:1 import-extcommunity evpn vxlan vni 123 # 三层 VNI,两端必须一致 # 2. 将网关绑定到 实例 interface Vbdif20 ip binding vpn-instance CDMA_Outband arp collect host enable # 开启主机路由收集 # 3. 在 BD 中启用 EVPN bridge-domain 20 evpn route-distinguisher 100:1 vpn-target 100:1 export-extcommunity vpn-target 100:1 import-extcommunity六、 第五步:建立 VXLAN 隧道(NVE)
目标:建立数据转发通道。这里使用 BGP 自动发现对端,比手动指定更灵活。
1. CE1 配置
interface Nve1 source 1.1.1.1 # 使用 Loopback 接口作为源 vni 100 head-end peer-list protocol bgp # 二层 VNI 100 走 BGP 自动发现 vni 123 head-end peer-list protocol bgp # 三层 VNI 123 走 BGP 自动发现2. CE2 配置
interface Nve1 source 2.2.2.2 # 使用 Loopback 接口作为源 vni 200 head-end peer-list protocol bgp # 二层 VNI 200 走 BGP 自动发现 vni 123 head-end peer-list protocol bgp # 三层 VNI 123 走 BGP 自动发现七、 最终验证与排错
1. 验证连通性
PC1 Ping PC2:
ping 192.168.20.123,应该能通!查看 BGP EVPN 路由
display bgp evpn all routing-table你应该能看到 Type 2 (MAC/IP) 和 Type 5 (IP Prefix) 路由。
查看 VXLAN 隧道:
display vxlan tunnel状态应为 UP。
2. 常见坑点(小白必看)
- Ping 不通?检查
arp collect host enable是否配置。如果没有这条命令,网关不会主动学习主机路由,也就不会通过 EVPN 发布给对端。 - BGP 没起来?检查 Underlay OSPF 是否真的通了,Loopback 口是否能互相 Ping 通。
- VNI 不匹配?确保两端的 L3 VNI (123) 完全一致,L2 VNI (100/200) 可以不同但要在 NVE 接口正确引用。
- 忘记开 EVPN?全局视图下必须敲
evpn-overlay enable(部分新版本默认开启,老版本必须敲)。
结语
通过这个实验,我们不仅实现了跨园区的互通,更重要的是理解了“控制面与转发面分离”的思想。EVPN 解决了传统 VXLAN 泛洪的问题,让大规模云数据中心网络成为可能。
如果你觉得这篇文章对你有帮助,欢迎点赞收藏!
