VXLAN + EVPN 分布式部署

今天这篇教程,不讲枯燥的理论,直接带大家做一个最经典的实验:两个不同网段的电脑(PC1 和 PC2),如何通过 VXLAN + EVPN 实现自动互通。只要你有华为模拟器(eNSP)或真机,跟着敲命令就能成功!


一、 实验拓扑与规划

1. 拓扑图解析

我们模拟两个园区,中间一台路由器(AR1)模拟骨干网。

  • CE1 & CE2:作为核心交换机(VTEP节点),负责 VXLAN 封装和解封装。
  • LSW1 & LSW2:接入层交换机,连接终端 PC。
  • AR1:模拟中间的传输网络。

2. 地址与资源规划表

设备接口/IP作用备注
AR1Loopback0: 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
CE1Loopback0: 1.1.1.1/32VTEP 源地址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/24PC1 网关绑定 CDMA_Outband
CE2Loopback0: 2.2.2.2/32VTEP 源地址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/24PC2 网关绑定 CDMA_Outband
PC1IP: 192.168.10.123终端网关指向 192.168.10.1
PC2IP: 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.0

2. 配置左侧 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.0

3. 配置右侧 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 20

2. 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 24

3. 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-extcommunity

2. 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 PC2ping 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. 常见坑点(小白必看)

  1. Ping 不通?检查arp collect host enable是否配置。如果没有这条命令,网关不会主动学习主机路由,也就不会通过 EVPN 发布给对端。
  2. BGP 没起来?检查 Underlay OSPF 是否真的通了,Loopback 口是否能互相 Ping 通。
  3. VNI 不匹配?确保两端的 L3 VNI (123) 完全一致,L2 VNI (100/200) 可以不同但要在 NVE 接口正确引用。
  4. 忘记开 EVPN?全局视图下必须敲evpn-overlay enable(部分新版本默认开启,老版本必须敲)。

结语

通过这个实验,我们不仅实现了跨园区的互通,更重要的是理解了“控制面与转发面分离”的思想。EVPN 解决了传统 VXLAN 泛洪的问题,让大规模云数据中心网络成为可能。

如果你觉得这篇文章对你有帮助,欢迎点赞收藏!