一、实验目的
本实验旨在深入掌握基于 BGP EVPN 控制平面的 VXLAN 网络部署与运维,具体目标如下:
- 掌握分布式网关架构 :理解并部署 分布式任播网关 (Distributed Anycast Gateway),验证虚拟机迁移场景下的网关高可用性与流量路径优化。
- 剖析 BGP EVPN 控制面机制 :深入分析 BGP EVPN 在 IPv4/IPv6 双栈 环境下的路由交互逻辑,重点掌握 Type 2 (MAC/IP) 、Type 3 (Inclusive Multicast) 及 Type 5 (IP Prefix) 路由的生成触发条件与传递规则。
- 分析对称 IRB 转发原理 :通过抓包与路由表分析,厘清 Symmetric IRB (对称集成路由桥) 模式下,L2VNI 与 L3VNI 在跨子网数据转发中的协同工作机制。
- 验证双栈 Overlay 互通:在 eNSP Pro 环境下,完成 Overlay 网络的 IPv4/IPv6 双栈配置,验证控制平面与数据平面的 Loopback 分离设计方案的可行性。
二、实验环境
2.1 实验拓扑说明 (Topology Overview)

以下是关于实验拓扑的详细说明,旨在清晰地界定网络架构、设备角色以及互联关系。
本实验采用典型的数据中心 Spine-Leaf 架构,构建了一个基于 BGP EVPN VXLAN 的 IPv4/IPv6 双栈 网络环境。
1. 网络分层与设备角色
-
核心层/脊节点 (Spine Layer)
- 设备 : Spine1 (Router-ID:
1.1.1.1) - 角色 : 核心转发节点及 BGP 路由反射器 (RR)。
- 功能 : 负责高速转发 IP 流量(Underlay),反射 BGP EVPN 路由(Overlay)。注意:Spine1 在本实验中不做 VXLAN 封装,不需要配置 VTEP 地址。
- 设备 : Spine1 (Router-ID:
-
叶子层/业务节点 (Leaf Layer)
- 设备 : Leaf1 (ID:
2.2.2.2) & Leaf2 (ID:3.3.3.3) - 角色 : 业务叶节点 (Server Leaf),也是 VXLAN 隧道端点 (VTEP)。
- 功能 :
- 作为分布式任播网关,终结 VXLAN 隧道。
- 接入服务器业务流量,处理 ARP/ND 代答与抑制。
- 运行 BGP EVPN 协议,与 Spine 建立 iBGP 邻居。
- 设备 : Leaf1 (ID:
-
边界层 (Border Layer)
- 设备 : BL1 (ID:
4.4.4.4) - 角色: 边界叶节点 (Border Leaf)。
- 功能 : 负责数据中心内部 Overlay 网络与外部网络的 南北向流量交互。执行路由引入与 Type 5 路由生成。
- 设备 : BL1 (ID:
-
接入层 (Access Layer)
- 设备 : ASW1 & ASW2
- 角色: 二层接入交换机。
- 功能: 仅需支持 VLAN 和 Trunk 功能,负责汇聚服务器流量并打上 VLAN Tag 透传给 Leaf 节点。
-
外部网络 (External Network)
- 设备 : R1
- 角色: 模拟 ISP 或核心路由器。
- 功能: 模拟 Internet 或 WAN 侧,用于验证南北向双栈连通性。
2. 链路连接关系
-
Underlay 互联:
- Leaf1 (GE1/0/1) <--> Spine1 (GE1/0/1)
- Leaf2 (GE1/0/2) <--> Spine1 (GE1/0/2)
- BL1 (GE1/0/3) <--> Spine1 (GE1/0/3)
- 链路运行 OSPF 协议,实现 Loopback 地址互通。
-
业务接入:
- Serv1/Serv2 --> ASW1 --> Leaf1 (GE1/0/2)
- Serv3/Serv4 --> ASW2 --> Leaf2 (GE1/0/1)
- Leaf 与 ASW 之间通过 Trunk 互联,透传 VLAN 10/20。
-
边界互联:
- BL1 (GE1/0/1) <--> R1 (GE0/0/1)
- 运行静态路由,互联地址段为 182.1.1.0/24 (IPv4) 和 182:1:1::/64 (IPv6)。
3. 业务网段规划 (双栈)
拓扑图中展示了两个主要的业务子网,它们跨越了 Leaf 节点(体现大二层与分布式网关特性):
- 业务子网 A (VLAN 10 / BD 100) :
- 成员: Serv1 (Leaf1下), Serv3 (Leaf2下)
- IPv4 :
172.16.1.0/24(网关 .1) - IPv6 :
172:16:1::/64(网关 ::1)
- 业务子网 B (VLAN 20 / BD 200) :
- 成员: Serv2 (Leaf1下), Serv4 (Leaf2下)
- IPv4 :
10.10.10.0/24(网关 .1) - IPv6 :
10:10:10::/64(网关 ::1)
2.2 数据准备
(1)服务器配置数据
| Server | MAC Address | IP Address / Mask | Gateway | VLAN |
|---|---|---|---|---|
| Serv1 | 40:3f:ab:de:4d:11 |
172.16.1.10/24 | 172.16.1.1 | 10 |
| 172:16:1::10/64 | 172:16:1::1/64 | |||
| Serv2 | 76:4e:c0:14:7d:7a |
10.10.10.10/24 | 10.10.10.1 | 20 |
| 10:10:10::10/64 | 10:10:10::1/64 | |||
| Serv3 | fa:9e:65:74:00:10 |
172.16.1.20/24 | 172.16.1.1 | 10 |
| 172:16:1::20/64 | 172:16:1::1/64 | |||
| Serv4 | 38:05:60:49:71:64 |
10.10.10.20/24 | 10.10.10.1 | 20 |
| 10:10:10::20/64 | 10:10:10::1/64 |
(2)ASW1 配置数据
| 划分 vlan10/20,和 Leaf1 Trunk 连接 |
|---|
(3) ASW2配置数据
| 划分 vlan30/40,和 Leaf2 Trunk 连接 |
|---|
(4)Leaf/Spine/BL 基础配置与业务映射表
| 设备角色 | 标识 ID (Lo0) | VTEP 地址 (Lo10) | 接入 VLAN (VID) | 广播域 (BD) | L2 VNI |
|---|---|---|---|---|---|
| Spine1 | 1.1.1.1 | N/A | - | - | - |
| Leaf1 | 2.2.2.2 | 20.20.20.20 | 10 | 100 | 8000 |
| 20 | 200 | 9000 | |||
| Leaf2 | 3.3.3.3 | 30.30.30.30 | 30 | 300 | 8000 |
| 40 | 400 | 9000 | |||
| BL1 | 4.4.4.4 | 40.40.40.40 | - | - | - |
关键设计说明:
-
Spine1 (核心/反射器):
- 作为 Underlay 网络的核心传输节点及 BGP 路由反射器 (RR)。
- 配置特点 :仅负责底层 IP 报文的高速转发,不参与 VXLAN 隧道的封装与解封装,因此无需配置 VTEP 源地址 (Loopback10)。
-
BL1 (边界网关):
- 作为数据中心与外部网络(南北向流量)的边界网关。
- 配置特点 :主要承载三层路由业务(通过 L3VNI 互通),无本地业务终端接入,因此无需配置二层相关参数(如 VLAN、Bridge Domain 或 L2VNI)。
-
Underlay 互联:
- Spine 与 Leaf/BL 之间通过三层路由接口互联,运行 OSPF 协议,互联地址段规划为
192.168.x.x/24。
- Spine 与 Leaf/BL 之间通过三层路由接口互联,运行 OSPF 协议,互联地址段规划为
(5)EVPN 相关配置数据与逻辑规划
分布式网关场景下 L2VPN(EVPN 实例)与 L3VPN(VPN 实例)之间的逻辑关系及 RT(Route Target)的作用如下:
1. 配置参数表
此表展示了二层广播域(BD)与三层路由域(VPN 实例)的参数映射,以及关键的 RT 规划。
| 设备节点 | 业务层级 | 标识 ID | VNI | RD | RT (Route Target) |
|---|---|---|---|---|---|
| Leaf1 | L2VPN (BD 100) | BD 100 | 8000 | 20:1 | 100:10 (L2互通) 200:10 (Export, 供L3使用) |
| L2VPN (BD 200) | BD 200 | 9000 | 20:2 | 100:20 (L2互通) 200:10 (Export, 供L3使用) | |
| L3VPN (VPN1) | vpn1 | 100 | 200:1 | 200:10 (L3互通) | |
| Leaf2 | L2VPN (BD 300) | BD 300 | 8000 | 30:1 | 100:10 (L2互通) 200:10 (Export, 供L3使用) |
| L2VPN (BD 400) | BD 400 | 9000 | 30:2 | 100:20 (L2互通) 200:10 (Export, 供L3使用) | |
| L3VPN (VPN1) | vpn1 | 100 | 300:1 | 200:10 (L3互通) | |
| BL1 | L3VPN (VPN1) | vpn1 | 100 | 400:1 | 200:10 (L3互通) |
2. 逻辑关系核心说明
-
二层域 (L2 Domain):
- 对应 EVPN Instance (MAC-VRF)。
- 物理映射关系:
VLAN->Bridge Domain (BD)->L2VNI。 - MAC 路由交互 :生成 Type 2 (MAC only) 路由。本端 EVPN 实例携带二层 RT(如
100:10)发布,对端相同 BD 的 EVPN 实例通过匹配该 RT 接收,实现同子网二层互通。
-
三层域 (L3 Domain):
- 对应 VPN Instance (IP-VRF)。
- 逻辑映射关系:
VPN Instance->L3VNI。 - 网段路由交互 :生成 Type 5 (IP Prefix) 路由。本端 VPN 实例携带三层 RT(
200:10)发布,对端 VPN 实例通过匹配该 RT 接收,实现路由表同步及访问外部网络。
-
分布式网关交互 (IRB - Integrated Routing and Bridging):
- 主机路由泄露 (L2 to L3) :当开启 ARP/ND 收集功能后,EVPN Instance (L2) 会生成包含 IP 信息的主机路由(Type 2 MAC+IP)。
- RT 的关键作用 :为了让这些主机路由能被远端的 VPN Instance (L3) 学习到(用于跨子网通信),L2 配置中必须将 三层 RT (200:10) 配置为
export-extcommunity。 - 结果 :L2 产生的 Type 2 (IP) 路由携带了 L3 的 RT,从而被对端 L3 VPN 实例导入,生成
/32或/128主机路由。
2.3 实验设备与版本说明
仿真平台版本:eNSP-Pro_V100R002C10SPC001
| 设备名称 (Hostname) | 网络角色 (Role) | 设备型号 (Model) | 系统镜像版本 (Image Version) |
|---|---|---|---|
| Spine1 | Spine 脊节点 | CE6800 | V300R024C10SPC500 |
| Leaf1 / Leaf2 | Server Leaf 业务叶节点 | CE6800 | V300R024C10SPC500 |
| BL1 | Border Leaf 边界叶节点 | CE6800 | V300R024C10SPC500 |
| ASW1 / ASW2 | Access Switch 接入层交换机 | S6700 | V600R024C10SPC500 |
| Serv1 ~ 4 | End Host 业务服务器/终端 | PC-CLIENT | N/A |
| R1 | Core Gateway 模拟核心路由器/外网 | AR6700 | V600R024C10SPC100 |
三、实验内容
为了确保实验的严谨性与逻辑性,本实验按照底层构建 →\rightarrow→ 叠加层部署 →\rightarrow→ 基础设施验证 →\rightarrow→ 业务驱动与观测的四阶段流程进行。
第一阶段:拓扑搭建与底层互通 (Underlay Construction)
- 实验拓扑构建:严格按照设计拓扑连接设备,完成链路物理/虚拟连接及设备基础初始化。
- Underlay 网络配置 :配置接口 IP 地址及 OSPF 协议,确保各 Leaf 与 Spine 节点的 Loopback0 (管理/BGP ID) 及 Loopback10 (VTEP Source) 接口实现三层互通。
第二阶段:Overlay 网络与网关部署 (Overlay & Gateway Deployment)
- BGP EVPN 控制面部署:建立 Spine (RR) 与 Leaf 之间的 iBGP EVPN 邻居关系,实现控制平面信令交互。
- VXLAN 数据面与分布式网关配置 :
- 配置 NVE 接口与 VTEP 隧道源。
- 部署 分布式任播网关 (Distributed Anycast Gateway),配置 L2VNI 与 L3VNI。
- 开启 ARP/ND 广播抑制 及主机路由收集功能(
arp collect host enable/ipv6 nd collect host enable)。 - 在 Border Leaf (BL1) 配置外部路由引入(Type 5 路由生成)。
第三阶段:初始状态检查与验证 (Initial State Verification)
本阶段在未发起业务流量前进行,旨在确立网络基线。
- 基础设施层校验 :
* Underlay 检查 :确认 OSPF 邻居 Full,全网 Loopback 可达。
* Overlay 控制面 :确认 BGP EVPN 邻居状态为 Established。
* Overlay 数据面 :确认 VXLAN Tunnel Up,检查基于 Type 3 (IMET) 路由生成的头端复制列表 (BUM Peer)。
- 基础路由表项校验 :
* 检查 Type 5 (Prefix) 路由:确认网段路由(内部直连与外部引入)已全网同步。
* 检查 本地表项:验证 IPv6 Link-Local 邻居发现情况(ND表),确认 IPv4 ARP 表项的初始状态(通常为空)。
第四阶段:业务连通性测试与动态观测 (Traffic Test & Observation)
本阶段通过实际业务流量触发控制平面动作,观察 EVPN 路由的动态生成。
- 验证同子网二层互通 (Intra-Subnet) :
* 测试 Serv1 ↔\leftrightarrow↔ Serv3 (同 VLAN 10)。
* 观测点 :验证 MAC 地址学习及 Type 2 (纯 MAC) 路由的生成。
- 验证跨子网三层互通 (Inter-Subnet) :
* 测试 Serv2 ↔\leftrightarrow↔ Serv3 (跨 VLAN)。
* 观测点 :验证 ARP/ND 触发机制,观察 Type 2 (IRB 主机路由) 的生成,以及主机路由在远端 Leaf VPN 实例中的注入情况。
- 验证南北向流量互通 (North-South) :
* 测试 Serv1/Serv2 ↔\leftrightarrow↔ R1 (182.1.1.2)。
* 观测点:验证 Type 5 路由引流及回程路由的查找。
四、配置步骤
4.1 基础网络互通配置 (Basic Network Connectivity)
将基础配置分为终端、接入层、Underlay 路由三个子版块,结构清晰
本阶段旨在完成接入层二层通道的划分,以及数据中心 Underlay 网络的三层互通,确保所有 VTEP 节点的 Loopback 接口之间路由可达。
(1) 终端初始化 (End Host Initialization)
- 按照"数据准备"章节规划的 IP 地址,配置服务器 Serv1 ~ Serv4 的 IPv4/IPv6 地址及默认网关。
(2) 接入层二层配置 (Access Layer L2 Configuration)
- 配置目标:在接入交换机 (ASW) 上划分 VLAN,并将下行接口加入对应 VLAN,上行接口配置为 Trunk 模式以透传 VLAN Tag。
ASW1 配置(连接 Leaf1):
bash
#
vlan batch 10 20
#
# 上行连接 Leaf1
interface GE1/0/2
port link-type trunk
port trunk allow-pass vlan 10 20
#
# 下行连接 Serv1 (VLAN 10)
interface GE1/0/3
port link-type access
port default vlan 10
#
# 下行连接 Serv2 (VLAN 20)
interface GE1/0/4
port link-type access
port default vlan 20
#
ASW2 配置(连接 Leaf2):
bash
#
vlan batch 30 40
#
# 上行连接 Leaf2
interface GE1/0/1
port link-type trunk
port trunk allow-pass vlan 30 40
#
# 下行连接 Serv3 (VLAN 30)
interface GE1/0/2
port link-type access
port default vlan 30
#
# 下行连接 Serv4 (VLAN 40)
interface GE1/0/3
port link-type access
port default vlan 40
#
(3) Underlay 路由协议配置 (OSPF)
- 配置目标:配置物理接口与 Loopback 接口地址,并启用 OSPF 协议,实现全网 Loopback 接口互通(作为 BGP Router-ID 及 VTEP 隧道源地址)。
- 配置原则 :
- Underlay 网络仅运行 IPv4。
- 必须发布 Loopback0 (管理/BGP ID) 和 Loopback10 (数据面/VTEP Source) 网段。
- 必须发布物理互联接口网段。
Leaf1 OSPF 配置示例(Spine1、Leaf2、BL1 配置逻辑类似):
bash
#
# 基础 Router-ID 配置 (建议与 Loopback0 一致)
ospf 1 router-id 2.2.2.2
area 0.0.0.0
# 发布 Loopback0 (BGP Peer Address)
network 2.2.2.2 0.0.0.0
# 发布 Loopback10 (VTEP Source Address)
network 20.20.20.20 0.0.0.0
# 发布物理互联接口 (连接 Spine)
network 192.168.12.2 0.0.0.0
#
4.2 配置 Overlay 业务接入 (Service Access Configuration)
本阶段在 Leaf 节点的下行接口配置二层子接口,将接入层感知的 VLAN Tag 映射到 VXLAN 网络内部的广播域 (Bridge Domain)。这一步的核心是将传统的 VLAN 流量"接入"到 VXLAN 的 Bridge Domain 中。
配置对应关系:
- Leaf1 : VLAN 10 →\rightarrow→ BD 100; VLAN 20 →\rightarrow→ BD 200
- Leaf2 : VLAN 30 →\rightarrow→ BD 300; VLAN 40 →\rightarrow→ BD 400
Leaf1 配置 (连接 ASW1):
bash
#
# 创建广播域
bridge-domain 100
bridge-domain 200
#
# 配置二层子接口,关联 VLAN 10 与 BD 100
interface GE1/0/1.1 mode l2
encapsulation dot1q vid 10
bridge-domain 100
#
# 配置二层子接口,关联 VLAN 20 与 BD 200
interface GE1/0/1.2 mode l2
encapsulation dot1q vid 20
bridge-domain 200
#
Leaf2 配置 (连接 ASW2):
bash
#
# 创建广播域
bridge-domain 300
bridge-domain 400
#
# 配置二层子接口,关联 VLAN 30 与 BD 300
interface GE1/0/1.1 mode l2
encapsulation dot1q vid 30
bridge-domain 300
#
# 配置二层子接口,关联 VLAN 40 与 BD 400
interface GE1/0/1.2 mode l2
encapsulation dot1q vid 40
bridge-domain 400
#
4.3 配置 BGP EVPN 控制平面 (Control Plane Configuration)
本阶段建立 Overlay 网络的控制平面。采用 Spine 作为 BGP 路由反射器 (RR),Leaf 节点作为 RR 客户端的设计。所有 Leaf 节点只需与 Spine 建立 iBGP EVPN 邻居,无需 Full-Mesh 全互联。
(1) Spine1 配置 (Route Reflector)
- 配置重点 :
- 启用
evpn-overlay enable全局开关。 - 配置 Loopback0 为更新源建立 iBGP 邻居。
- 在
l2vpn-family evpn地址族下,指定 Leaf 为reflect-client。 - 关闭默认 IPv4 单播能力 (undo default ipv4-unicast):默认情况下 BGP 会协商 IPv4 Unicast 地址族。由于 Underlay 网络已通过 OSPF 打通,Overlay 控制面仅需传递 EVPN 路由,因此关闭默认的 IPv4 单播协商,减少资源占用,使 BGP 会话更加纯粹。
- 关键指令 :
undo policy vpn-target(详见配置后说明)。
- 启用
bash
#
# 1. 全局开启 EVPN 能力
evpn-overlay enable
#
bgp 100
router-id 1.1.1.1
# 【关键】关闭默认的 IPv4 单播地址族协商,构建纯粹的 EVPN 控制面
undo default ipv4-unicast
# 建立 iBGP 邻居 (Underlay 互通基于 Loopback0)
peer 2.2.2.2 as-number 100
peer 2.2.2.2 connect-interface LoopBack0
peer 3.3.3.3 as-number 100
peer 3.3.3.3 connect-interface LoopBack0
peer 4.4.4.4 as-number 100
peer 4.4.4.4 connect-interface LoopBack0
#
# 2. 显式清理 IPv4 单播邻居关系 (如果之前建立过)
ipv4-family unicast
undo peer 2.2.2.2 enable
undo peer 3.3.3.3 enable
undo peer 4.4.4.4 enable
#
# 3. EVPN 地址族 (核心配置)
l2vpn-family evpn
# 【关键】关闭 RT 过滤,确保 RR 能接收并反射所有 EVPN 路由
undo policy vpn-target
# 激活邻居并配置为反射器客户端
peer 2.2.2.2 enable
peer 2.2.2.2 reflect-client
peer 3.3.3.3 enable
peer 3.3.3.3 reflect-client
peer 4.4.4.4 enable
peer 4.4.4.4 reflect-client
#
💡 技术原理:为什么 Spine 需要
undo policy vpn-target?
- 默认行为 :BGP 设备在接收到 VPN 路由(含 EVPN 路由)时,会检查路由携带的 Route Target (RT) 属性。如果该 RT 与本地任何 VPN/EVPN 实例的 Import RT 不匹配,设备将丢弃该路由。
- RR 的特殊性:Spine 作为路由反射器,通常不承载具体业务,因此没有配置本地 EVPN 实例(即没有本地 RT)。
- 配置目的 :执行
undo policy vpn-target后,Spine 将忽略 RT 匹配检查,接收并保存所有收到的 EVPN 路由,从而能够将其反射给其他 Leaf 节点。
(2) Leaf1 配置 (RR Client)
- 配置重点:指向 Spine (1.1.1.1) 建立 iBGP EVPN 邻居。
- Leaf2 与 BL1 配置逻辑相同。
bash
#
# 1. 全局开启 EVPN 能力
evpn-overlay enable
#
bgp 100
router-id 2.2.2.2
# 【关键】关闭默认的 IPv4 单播地址族协商
undo default ipv4-unicast
# 华为设备私有特性,建议开启以支持 4 字节 AS 号的平滑兼容
private-4-byte-as enable
# 指向 Spine 建立邻居
peer 1.1.1.1 as-number 100
peer 1.1.1.1 connect-interface LoopBack0
#
ipv4-family unicast
undo peer 1.1.1.1 enable
#
# EVPN 地址族
l2vpn-family evpn
# 缺省即开启 policy vpn-target,只接收 RT 匹配的路由
policy vpn-target
peer 1.1.1.1 enable
#
4.4 配置 Overlay 业务实例 (L3VPN & L2VPN)
重点在于清晰地理解 Route Target (RT) 在三种不同场景下的作用:L2 互通 、L3 路由泄露 (Host Route Leaking) 以及 网段路由发布 (Prefix Route)。
本阶段配置 VXLAN 的业务承载实体。
- L3VPN 实例 (VRF):用于承载三层流量 (IPv4/IPv6),对应 L3VNI。
- L2VPN 实例 (BD-EVPN):用于承载二层流量,对应 L2VNI。
(1) Leaf1 配置
- RT 规划回顾 :
- 200:10 :作为全网统一的 L3 RT。用于 L3VPN 之间传递网段路由,以及 L2VPN 向 L3VPN 泄露主机路由。
- 100:10 / 100:20 :作为 L2 RT。仅用于同子网 L2VNI 之间的 MAC 同步。
bash
#
# 1. 配置 L3VPN 实例 (VRF)
ip vpn-instance vpn1
# IPv4 地址族
ipv4-family
route-distinguisher 200:1
# 接收/发送 Type 5 网段路由时使用的 RT
vpn-target 200:10 export-extcommunity evpn
vpn-target 200:10 import-extcommunity evpn
# 接收 L2 泄露上来的 Type 2 主机路由时使用的 RT
vpn-target 200:10 import-extcommunity
# IPv6 地址族
ipv6-family
route-distinguisher 200:1
vpn-target 200:10 export-extcommunity evpn
vpn-target 200:10 import-extcommunity evpn
vpn-target 200:10 import-extcommunity
# 关联 L3VNI (用于跨子网转发)
vxlan vni 100
#
# 2. 配置 L2VPN 实例 (BD 100)
bridge-domain 100
vxlan vni 8000
evpn
route-distinguisher 20:1
# L2 互通 RT (仅本 BD 内有效)
vpn-target 100:10 export-extcommunity
vpn-target 100:10 import-extcommunity
# 【关键】向 L3VPN 泄露主机路由 (Type 2 IRB) 的 RT
vpn-target 200:10 export-extcommunity
#
# 3. 配置 L2VPN 实例 (BD 200)
bridge-domain 200
vxlan vni 9000
evpn
route-distinguisher 20:2
vpn-target 100:20 export-extcommunity
vpn-target 100:20 import-extcommunity
# 【关键】向 L3VPN 泄露主机路由
vpn-target 200:10 export-extcommunity
#
(2) Leaf2 配置
- RD 值需保证设备内唯一,建议全网规划(如
300:1)。
bash
#
ip vpn-instance vpn1
ipv4-family
route-distinguisher 300:1
vpn-target 200:10 export-extcommunity evpn
vpn-target 200:10 import-extcommunity evpn
vpn-target 200:10 import-extcommunity
ipv6-family
route-distinguisher 300:1
vpn-target 200:10 export-extcommunity evpn
vpn-target 200:10 import-extcommunity evpn
vpn-target 200:10 import-extcommunity
vxlan vni 100
#
bridge-domain 300
vxlan vni 8000
evpn
route-distinguisher 30:1
vpn-target 100:10 export-extcommunity
vpn-target 100:10 import-extcommunity
vpn-target 200:10 export-extcommunity
#
bridge-domain 400
vxlan vni 9000
evpn
route-distinguisher 30:2
vpn-target 100:20 export-extcommunity
vpn-target 100:20 import-extcommunity
vpn-target 200:10 export-extcommunity
#
(3) BL1 配置 (Border Leaf)
- 特点 :BL1 作为边界网关,通常不直接接入业务服务器,因此无需配置 bridge-domain,仅需配置 L3VPN 实例用于路由引入与转发。
bash
#
ip vpn-instance vpn1
ipv4-family
route-distinguisher 400:1
# 负责 Type 5 网段路由的接收与发布
vpn-target 200:10 export-extcommunity evpn
vpn-target 200:10 import-extcommunity evpn
ipv6-family
route-distinguisher 400:1
vpn-target 200:10 export-extcommunity evpn
vpn-target 200:10 import-extcommunity evpn
vxlan vni 100
#
💡 深度解析:EVPN 中 vpn-target 命令的精细化控制
在 EVPN 分布式网关场景中,RT (Route Target) 的配置决定了路由如何在 L2 和 L3 表项间流动。
1. L3VPN 侧 (ip vpn-instance 视图)
- 命令 :
vpn-target ... export-extcommunity evpn- 作用 :专门控制 Type 5 (IP Prefix Route) 的 RT 携带。当 BL 或 Leaf 发布网段路由(如引入的外部路由或直连网段)时,会携带此 RT。
- 命令 :
vpn-target ... import-extcommunity(无 evpn 关键字)- 作用 :允许 L3VPN 实例接收来自 L2VPN 泄露上来的 Type 2 (MAC/IP) 主机路由。这是实现分布式网关流量转发(Symmetric IRB)的基石。
2. L2VPN 侧 (bridge-domain -> evpn 视图)
- 命令 :
vpn-target ... export-extcommunity- 作用 A (L2 互通) :发布 Type 2 (纯 MAC) 路由,携带二层 RT (如 100:10)。远端 BD 接收后实现二层桥接。
- 作用 B (L3 泄露) :发布 Type 2 (MAC+IP) 主机路由,携带三层 RT (如 200:10)。
- 机制:通过在此处配置三层 RT (200:10),L2 实例将 ARP/ND 收集到的主机 IP 信息"泄露"给全网的 L3VPN 实例。远端 Leaf 的 L3VPN 实例通过 Import 200:10,将这些 /32 或 /128 主机路由安装到 VRF 路由表中。
4.5 配置 VXLAN 隧道接口与 BUM 流量复制
这一节的核心在于配置 NVE (Network Virtualization Edge) 接口,并基于 BGP Type 3 路由构建用于处理广播、未知单播和组播 (BUM) 流量的头端复制列表。
本阶段配置 VXLAN 的隧道端点 (VTEP) 接口,并定义 BUM 流量的复制机制。
(1) Leaf 节点配置
- 配置逻辑 :
- Source Address:指定 Loopback10 (数据平面地址) 为封装 VXLAN 报文的外层源 IP。
- Head-End Replication :针对每个 L2VNI (8000, 9000),开启基于 BGP 的头端复制功能。
- Leaf1 配置:
bash
#
interface Nve1
# 指定 VTEP 隧道源地址 (Data Plane Loopback)
source 20.20.20.20
# 针对 L2VNI 开启 BGP 头端复制,触发 Type 3 路由生成
vni 8000 head-end peer-list protocol bgp
vni 9000 head-end peer-list protocol bgp
#
- Leaf2 配置:
bash
#
interface Nve1
source 30.30.30.30
vni 8000 head-end peer-list protocol bgp
vni 9000 head-end peer-list protocol bgp
#
(2) Border Leaf (BL1) 配置
- 配置逻辑 :BL1 作为边界网关,主要处理 L3VPN 流量(通过 L3VNI)。由于它不直接接入二层业务(不关联 L2VNI),因此不需要处理 BUM 流量 ,无需配置
vni ... head-end peer-list。它只需要建立 NVE 接口以支持单播 VXLAN 隧道即可。
bash
#
interface Nve1
source 40.40.40.40
#
💡 技术深解:Type 3 路由与头端复制 (Ingress Replication)
- Type 3 路由 (Inclusive Multicast Route) :
- 当在 NVE 接口下配置
vni <ID> head-end peer-list protocol bgp后,VTEP 会生成 Type 3 EVPN 路由 并通告给邻居。 - 含义:"我是 VTEP A,我是 VNI 8000 的成员。如果你有属于 VNI 8000 的广播/组播流量,请复制一份发给我。"
- 当在 NVE 接口下配置
- 头端复制列表 (Head-End Replication List) :
- 远端 VTEP 收到 Type 3 路由后,会将发送者的 IP 地址加入到本地对应 VNI 的泛洪列表(Flood List)中。
- 当本地收到 BUM 流量(如 ARP 请求)时,硬件会根据该列表,将报文复制多份,分别单播封装发送给列表中的所有 VTEP。
✅ 状态检查
使用 display vxlan peer 或 display vxlan tunnel 检查隧道建立情况及头端复制列表。
bash
[Leaf1] display vxlan tunnel
Number of vxlan tunnel : 1
Tunnel ID Source Destination State Type Uptime
---------------------------------------------------------------------
4026531841 20.20.20.20 30.30.30.30 up dynamic 00:03:48
4.6 配置分布式任播网关 (IPv4/IPv6 双栈)
本节内容的核心在于:通过配置 Vbdif 接口,实现 VXLAN 网络的三层网关功能 。重点在于解释清楚**"任播 (Anycast)"的概念,以及 主机信息收集 (
collect host)** 如何驱动 BGP EVPN 生成 Type 2 IRB 路由。
本阶段在 Leaf 节点配置 Vbdif 接口作为租户的默认网关。
采用 分布式任播网关 (Distributed Anycast Gateway) 部署模式,所有 Leaf 节点的 Vbdif 接口配置相同的 IPv4/IPv6 地址 和相同的 MAC 地址。这确保了虚拟机在不同 Leaf 间迁移时,无需更改网关信息。
(1) Leaf1 配置
bash
#
# 配置 Vbdif100 (对应 BD 100 / VLAN 10)
interface Vbdif100
# 绑定 L3VPN 实例
ip binding vpn-instance vpn1
#
# --- IPv4 网关配置 ---
ip address 172.16.1.1 255.255.255.0
mac-address 0001-0001-0001 ; 【关键】显式指定统一的网关 MAC
vxlan anycast-gateway enable ; 启用分布式网关特性
arp collect host enable ; 收集 ARP 生成 Type 2 IRB (v4)
#
# --- IPv6 网关配置 ---
ipv6 enable
ipv6 address 172:16:1::1/64
ipv6 nd collect host enable ; 收集 ND 生成 Type 2 IRBv6
#
# 配置 Vbdif200 (对应 BD 200 / VLAN 20)
interface Vbdif200
ip binding vpn-instance vpn1
ip address 10.10.10.1 255.255.255.0
mac-address 0002-0002-0002
vxlan anycast-gateway enable
arp collect host enable
#
ipv6 enable
ipv6 address 10:10:10::1/64
ipv6 nd collect host enable
#
(2) Leaf2 配置
- 注意 :尽管 Leaf2 连接的是 VLAN 30/40 (BD 300/400),但由于属于同一个 IP 子网(172.16.1.0/24),因此网关 IP 和 MAC 必须与 Leaf1 完全一致。
bash
#
interface Vbdif300
ip binding vpn-instance vpn1
ip address 172.16.1.1 255.255.255.0 ; 与 Leaf1 保持一致
mac-address 0001-0001-0001 ; 与 Leaf1 保持一致
vxlan anycast-gateway enable
arp collect host enable
#
ipv6 enable
ipv6 address 172:16:1::1/64 ; 与 Leaf1 保持一致
ipv6 nd collect host enable
#
interface Vbdif400
ip binding vpn-instance vpn1
ip address 10.10.10.1 255.255.255.0
mac-address 0002-0002-0002
vxlan anycast-gateway enable
arp collect host enable
#
ipv6 enable
ipv6 address 10:10:10::1/64
ipv6 nd collect host enable
#
💡 技术深解:分布式网关的核心指令
1. vxlan anycast-gateway enable (任播网关)
- 作用 :开启此功能后,Leaf 节点在数据平面上模拟出一个虚拟网关。
- 行为特征 :
- 本地处理 :网关只处理从本地接入侧(Access Side)收到的 ARP/ND 请求。
- 隧道过滤 :网关会丢弃从 VXLAN 隧道侧收到的、目的 MAC 是网关 MAC 的 ARP/ND 报文,防止环路和冲突。
- 无缝迁移:由于所有 Leaf 的网关 IP/MAC 相同,终端迁移后无需刷新 ARP 表项即可直接通信。
2. arp/ipv6 nd collect host enable (主机路由收集)
- 作用 :这是实现 BGP EVPN 路由通告 (IRB) 的"扳机"。
- 机制 :
- 默认情况下,Vbdif 接口学到的 ARP/ND 条目仅用于本地二层转发。
- 开启此命令后,设备会将本地学习到的 ARP/ND 表项"上送"给 BGP 进程。
- BGP 进程据此生成 Type 2 (MAC/IP) 路由,并发布给远端 Leaf。
- 结果 :远端 Leaf 收到路由后,在 VPN 实例中生成
/32(IPv4) 或/128(IPv6) 的主机路由,从而实现跨 Leaf 的精确三层转发。
3. 广播抑制与代答 (优化机制)
- ARP/ND 广播抑制 (
arp broadcast-suppress):- 在 BD 视图下配置。Leaf 节点拦截终端的 ARP 请求,若本地已有缓存,则直接代答;若无缓存,则通过单播询问 Controller 或丢弃(取决于配置),从而减少二层网络中的广播风暴。
- ARP/ND 代理 (
arp l2-proxy enable):- Leaf 节点作为代理,直接回应终端的 ARP/ND 请求。通常与
collect host配合使用,利用收集到的主机表项进行代答。
- Leaf 节点作为代理,直接回应终端的 ARP/ND 请求。通常与
4.7 配置 BGP EVPN 发布 IRB 路由 (IPv4/IPv6)
本节配置是实现分布式网关三层互通的"最后一块拼图"。虽然在前一节我们在 Vbdif 接口下配置了
collect host enable,但还需要在 BGP 协议层面显式允许将收集到的 IP 信息封装进 EVPN 路由发送给邻居。
本阶段修改 BGP EVPN 地址族的发布策略,允许向对等体发送携带 IP 地址信息的 Type 2 路由。这是实现 Symmetric IRB 转发模式下主机路由(Host Route)传递的必要条件。
(1) Leaf 节点与 Border Leaf 配置 (RR Client)
- 配置目标:Leaf1/Leaf2/BL1 需要向 Spine (RR) 发布包含 IPv4 和 IPv6 地址的 EVPN 路由。
- 配置逻辑:Leaf1、Leaf2 和 BL1 的配置逻辑完全一致,均指向 RR (1.1.1.1)。
bash
#
# Leaf1, Leaf2, BL1 通用配置
bgp 100
l2vpn-family evpn
policy vpn-target
peer 1.1.1.1 enable
# 【关键】允许发布携带 IPv4 地址的 Type 2 路由
peer 1.1.1.1 advertise irb
# 【关键】允许发布携带 IPv6 地址的 Type 2 路由
peer 1.1.1.1 advertise irbv6
#
(2) Spine 节点配置 (Route Reflector)
- 配置目标:Spine 需要具备处理和转发携带 IP 信息的 EVPN 路由的能力,并与所有 Client 协商此能力。
bash
#
# Spine1 配置
bgp 100
l2vpn-family evpn
# 针对所有 Leaf/BL 节点开启 IRB 发布能力
# Leaf1
peer 2.2.2.2 advertise irb
peer 2.2.2.2 advertise irbv6
# Leaf2
peer 3.3.3.3 advertise irb
peer 3.3.3.3 advertise irbv6
# BL1
peer 4.4.4.4 advertise irb
peer 4.4.4.4 advertise irbv6
#
💡 技术深解:advertise irb 的作用机制
在 BGP EVPN 中,Type 2 路由(MAC/IP Advertisement Route)有两种形态:
-
纯 MAC 路由 (MAC-only):
- 仅包含
[MAC Address, L2VNI]。 - 用于二层互通。
- 默认情况下,只要本地学习到 MAC 就会发布此类路由。
- 仅包含
-
IRB 主机路由 (MAC+IP):
- 包含
[MAC Address, IP Address, L2VNI, L3VNI]。 - 用于三层互通(分布式网关路由)。
- 限制:默认情况下,BGP 为了节省资源,即使 Vbdif 收集到了 ARP/ND 信息,也不会在 Type 2 路由中填充 IP Address 字段。
- 解锁 :执行
peer ... advertise irb(IPv4) 和irbv6(IPv6) 命令后,设备才会被授权将 IP 信息填充到 Type 2 路由中发送给邻居。如果不配置此命令,远端 Leaf 将无法学习到/32或/128主机路由,导致跨子网通信失败。
- 包含
4.8 配置网段路由发布 (Type 5 - IP Prefix Route)
本节配置的核心目的是生成 Type 5 EVPN 路由。Type 2 路由主要用于传递具体的终端主机信息(/32 或 /128),而 Type 5 路由则用于传递网段信息(如子网段、外部路由),实现类似传统 L3VPN 的功能。
本阶段配置 BGP 将 VPN 实例中的普通 IPv4/IPv6 路由(如直连路由、静态路由或引入的外部路由)转换为 Type 5 (IP Prefix Route) 通告给 EVPN 对等体。
(1) Leaf 节点与 Border Leaf 配置
- 配置目标 :
- Leaf 节点 :发布本地 Vbdif 直连网段(如
172.16.1.0/24),供 BL 节点学习以便回程流量寻址。 - BL 节点:发布引入的外部路由(如 Internet 路由),供 Leaf 节点学习以便访问外网。
- Leaf 节点 :发布本地 Vbdif 直连网段(如
- 配置逻辑:在 BGP 的 VPN 实例地址族视图下,引入路由并开启 EVPN 通告能力。
bash
#
# Leaf1, Leaf2, BL1 通用配置逻辑
bgp 100
#
# --- IPv4 网段路由发布 ---
ipv4-family vpn-instance vpn1
# 引入路由 (Leaf 通常引入直连,BL 可能引入 OSPF/Static)
import-route direct
# 【关键】将 IP 路由表中的路由转换为 Type 5 EVPN 路由发布
advertise l2vpn evpn
#
# --- IPv6 网段路由发布 ---
ipv6-family vpn-instance vpn1
import-route direct
advertise l2vpn evpn
#
💡 技术深解:advertise l2vpn evpn 与 Type 5 路由
在 BGP EVPN 路由体系中,Type 5 路由 (IP Prefix Route) 扮演着"传统路由搬运工"的角色。
-
命令作用:
advertise l2vpn evpn命令打通了 IP Routing Table (VRF) 与 BGP EVPN Table 之间的界限。- 它将 VRF 中通过
import-route引入的路由(如 Direct, OSPF, Static)提取出来,封装成 Type 5 路由格式发送给邻居。
-
与 Type 2 (IRB) 的区别:
- Type 2 (IRB) :传递的是 主机路由 (
/32或/128),携带 MAC 信息。源头是 ARP/ND 表项。用于同一租户内的精确互通和迁移。 - Type 5 (Prefix) :传递的是 网段路由 (如
/24),不携带 MAC 信息。源头是路由表。用于通告子网段或引入外部网络的路由(南北向流量)。
- Type 2 (IRB) :传递的是 主机路由 (
-
场景应用:
- 在本实验的南北向通信(访问 R1)中,BL1 就是通过此配置,将去往 R1 的路由变成 Type 5 路由告诉 Leaf1 的。
4.9 配置边界互联与外部路由 (Border Interconnection)
本节内容的核心在于打通 Overlay 网络与外部物理网络(Underlay/Internet)的连接。关键点在于 Border Leaf 接口的 VRF 绑定 以及外部路由器的 回程路由 配置。
本阶段配置 Border Leaf (BL1) 与外部核心路由器 (R1) 的物理互联地址,并在 R1 上配置指向 VXLAN 内部租户网段的静态路由,以实现南北向流量的互通。
(1) BL1 配置 (边界网关)
- 配置目标 :将连接 R1 的物理接口切换为三层模式,并绑定到租户的 VPN 实例 (
vpn1) 中,确保该接口的路由能直接进入 VRF 路由表,进而通过 Type 5 路由发布给内部 Leaf。 - 配置逻辑 :
undo portswitch:将二层接口切换为三层路由接口。ip binding vpn-instance:接口划入 VRF,隔离路由表。
bash
#
interface GE1/0/1
# 切换为三层接口
undo portswitch
# 【关键】绑定到租户 VRF,确保外部流量进入正确的 VPN 实例
ip binding vpn-instance vpn1
#
# IPv4 配置
ip address 182.1.1.1 255.255.255.0
# IPv6 配置
ipv6 enable
ipv6 address 182:1:1::1/64
#
(2) R1 配置 (模拟外部网络)
- 配置目标:配置互联地址,并添加去往数据中心内部租户网段的静态路由(回程路由)。
- 配置逻辑 :
- 下一跳指向 BL1 的互联接口地址。
- 目标网段涵盖租户的 IPv4 (
10.x,172.16.x) 和 IPv6 子网。
bash
#
# 互联接口配置
interface GE0/0/1
ip address 182.1.1.2 255.255.255.0
ipv6 enable
ipv6 address 182:1:1::2/64
#
# --- IPv4 回程路由 ---
# 指向租户 Serv2/4 网段
ip route-static 10.10.10.0 255.255.255.0 182.1.1.1
# 指向租户 Serv1/3 网段
ip route-static 172.16.1.0 255.255.255.0 182.1.1.1
# 指向管理/Underlay 网段 (可选,视管理需求而定)
ip route-static 192.168.0.0 255.255.0.0 182.1.1.1
#
# --- IPv6 回程路由 ---
# 指向租户 IPv6 网段
ipv6 route-static 172:16:1:: 64 182:1:1::1
ipv6 route-static 10:10:10:: 64 182:1:1::1
#
💡 技术深解:南北向流量的路由逻辑
-
出方向 (Leaf -> Internet):
- BL1 通过
import-route direct将直连的外部网段 (182.1.1.0/24) 引入 BGP。 - BL1 生成 Type 5 (Prefix) 路由发布给内部 Leaf。
- Leaf 收到后,知晓去往外网需找 BL1。
- BL1 通过
-
入方向 (Internet -> Leaf):
- R1 收到去往
10.10.10.10的报文。 - R1 查静态路由,下一跳发给 BL1 (
182.1.1.1)。 - BL1 收到报文,根据接口绑定进入
vpn1路由表。 - BL1 查
vpn1路由表,匹配到由 Leaf 发布过来的 Type 5 (网段) 或 Type 2 (主机) 路由。 - BL1 封装 VXLAN 隧道,将报文转发给目标 Leaf。
- R1 收到去往
五. 初始状态检查与验证 (Initial State Verification)
本章节的目标是在进行实际业务 Ping 测试(Packet Walk)之前,确认 Underlay 底层互通性、Overlay 控制面邻居关系以及基础路由表项的正确性。这是排查问题的关键基线。
在发起业务流量测试前,需按照从底层到上层、从控制面到数据面的顺序,对网络状态进行基线检查。
5.1 Underlay 基础网络检查
确认底层 OSPF 协议收敛,所有 VTEP 节点的 Loopback 地址(Loopback0 和 Loopback10)在路由表中可见且可达。
- 检查命令 :
display ospf peer brief:确认 OSPF 邻居状态为 Full。display ip routing-table protocol ospf:确认能学习到所有 Leaf/Spine/BL 的 Loopback0 (2.2.2.2 等) 和 Loopback10 (20.20.20.20 等) 路由。
- 关键点:确保 Loopback0 用于 BGP 建立,Loopback10 用于 VXLAN 隧道封装,两者缺一不可。
5.2 Overlay 控制平面检查 (BGP EVPN Peer)
确认 BGP EVPN 地址族的邻居关系是否正常建立。
- 检查命令 :
display bgp evpn peer - 预期结果 :所有 Leaf/BL 节点应与 Spine (RR) 建立邻居关系,状态为 Established。
比如,在 Spine1 (RR) 上检查 BGP EVPN 邻居状态,确保所有 Leaf 和 Border Leaf 节点均已成功建立 EVPN 会话。
- 检查命令 :
[Spine1] display bgp evpn peer - 实验输出:
bash
[Spine1]dis bgp evpn peer
BGP local router ID : 1.1.1.1
Local AS number : 100
Total number of peers : 3
Peers in established state : 3
Peer V AS MsgRcvd MsgSent OutQ Up/Down State PrefRcv
2.2.2.2 4 100 186 282 0 01:08:35 Established 26
3.3.3.3 4 100 175 279 0 01:06:20 Established 22
4.4.4.4 4 100 78 276 0 01:05:26 Established 6
- 结果分析 :
- State :所有对等体(2.2.2.2, 3.3.3.3, 4.4.4.4)的状态均为 Established,说明 EVPN 控制平面连接正常。
- PrefRcv (接收前缀数) :
- Leaf1 (2.2.2.2) & Leaf2 (3.3.3.3) :接收到的前缀数较多(26/22 条)。这些前缀包含 Type 3 (IMET-Inclusive Multicast Ethernet Tag Route) 泛洪路由(每个 L2VNI 一条)、Type 5 (Prefix) 网段路由(本地直连网段)以及部分 Type 2 (MAC) 路由(设备自身接口 MAC 或已学习到的终端 MAC)。
- BL1 (4.4.4.4) :接收到的前缀数较少(6 条)。这是符合预期的,因为 BL1 通常只发布引入的 Type 5 外部网段路由,且由于 BL1 本次实验未配置 L2VNI(不处理 BUM 流量),因此不会发布 Type 3 路由。
5.3 Overlay 数据平面检查 (VXLAN Tunnel & Peer)
需要从VXLAN 隧道的建立机制 和BUM 流量复制机制 两个维度来剖析Tunnel和Peer差异。
核心区别在于:
- Tunnel (隧道):是物理通道,只要有通信需求(无论是二层还是三层,单播还是广播)都会建立。
- Peer (头端复制列表) :是逻辑列表,仅用于 L2VNI 的广播/组播 (BUM) 流量复制 。
确认 VXLAN 隧道接口是否 Up,以及头端复制列表是否基于 Type 3 路由正确生成。
- 检查命令 :
display vxlan tunnel:查看动态隧道是否建立(Source/Destination IP 正确,State 为 Up)。display vxlan peer:查看 VNI 的头端复制列表(Head-end Peer List),确认包含同 VNI 的其他 VTEP IP。
- 关联路由 :此状态依赖于 Type 3 (Inclusive Multicast) 路由的正常交互。
本步骤检查数据平面转发通道的建立情况。对比 Server Leaf (Leaf1) 与 Border Leaf (BL1) 的表项差异,验证不同业务角色下的隧道建立逻辑。
1. Leaf 节点检查 (L2/L3 融合节点)
Leaf1 同时承载二层同子网互通 (L2VNI) 和三层跨网段路由 (L3VNI) 业务。
-
检查命令 :
[Leaf1] display vxlan tunnel&display vxlan peer -
实验输出 :
bash[Leaf1]dis vxlan tunnel Number of vxlan tunnel : 2 Tunnel ID Source Destination State Type Uptime 4026531841 20.20.20.20 30.30.30.30 up dynamic 01:21:13 4026531842 20.20.20.20 40.40.40.40 up dynamic 01:20:19 [Leaf1]dis vxlan peer Number of peers : 2 Vni ID Source Destination Type Out Vni ID 8000 20.20.20.20 30.30.30.30 dynamic 8000 9000 20.20.20.20 30.30.30.30 dynamic 9000 -
结果分析 :
- Tunnel (2条) :Leaf1 与 Leaf2 (
30.30.30.30) 及 BL1 (40.40.40.40) 均建立了 VXLAN 隧道。这表明 Leaf1 可以向这两台设备发送 VXLAN 封装报文。 - Peer (有表项) :Leaf1 拥有去往 Leaf2 的头端复制列表。这是因为两者都配置了 L2VNI (8000/9000) 并交换了 Type 3 (IMET) 路由。当 Leaf1 收到广播报文时,会根据此表项复制并发送给 Leaf2。
- 注意:Leaf1 没有去往 BL1 的 Peer 表项,因为 BL1 不参与二层广播。
- Tunnel (2条) :Leaf1 与 Leaf2 (
2. Border Leaf 节点检查 (纯 L3 路由节点)
BL1 仅处理南北向的三层路由流量,不接入二层业务,也不处理广播泛洪。
-
检查命令 :
[BL1] display vxlan tunnel&display vxlan peer -
实验输出 :
bash[BL1]dis vxlan tunnel Number of vxlan tunnel : 2 Tunnel ID Source Destination State Type Uptime 4026531841 40.40.40.40 20.20.20.20 up dynamic 01:21:14 4026531842 40.40.40.40 30.30.30.30 up dynamic 01:21:14 [BL1]dis vxlan peer Number of peers : 0 -
结果分析 :
- Tunnel (2条) :BL1 通过 Type 5 (Prefix) 或 Type 2 (IRB) 路由学习到了内部 Leaf 的路由信息,因此建立了去往 Leaf1 和 Leaf2 的动态隧道,用于传输三层单播流量。
- Peer (0条) :由于 BL1 未配置 L2VNI (无
bridge-domain配置),它不会生成也不接收 Type 3 路由。它不需要处理 BUM 流量,因此头端复制列表为空。
💡 核心差异总结
| 表项类型 | 对应流量 | 触发条件 (路由类型) | Leaf 状态 | BL 状态 |
|---|---|---|---|---|
| Tunnel | 单播 (Unicast) | Type 2 (MAC/IP) Type 5 (Prefix) | 有 (需与 Leaf/BL 互通) | 有 (需与 Leaf 互通) |
| Peer | 广播/组播 (BUM) | Type 3 (IMET) | 有 (需处理同子网广播) | 无 (纯三层转发,不处理广播) |
结论:BL1 "有 Tunnel 无 Peer" 是正常现象,表明它成功建立了三层路由转发通道,且正确地规避了不必要的二层广播处理。
5.4 EVPN 路由表项初步检查
查看 BGP EVPN 路由表,确认各类路由的基础收敛情况。
- 检查命令 :
display bgp evpn all routing-table - 检查重点 :
- Type 3 路由 (IMET):必须存在。用于构建 BUM 流量的广播表。
- Type 5 路由 (Prefix) :
- 应能看到 BL1 发布的外部网段路由(如
0.0.0.0/0或182.1.1.0/24)。 - 应能看到 Leaf 节点发布的内部直连网段路由(如
172.16.1.0/24)。
- 应能看到 BL1 发布的外部网段路由(如
- Type 2 路由 (MAC/IP) :
- MAC 路由:可能较少或为空(取决于是否有底层协议报文触发)。
- IRB 路由:在业务未通前,通常为空。
在 Leaf1 上执行 display bgp evpn all routing-table,可以看到 BGP EVPN 控制平面已成功收敛。
bash
[Leaf1]dis bgp evpn all routing-table
Local AS number : 100
BGP Local router ID is 2.2.2.2
Status codes: * - valid, > - best, d - damped, x - best external, a - add path,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
EVPN address family:
Number of Mac Routes: 24
Route Distinguisher: 20:1
Network(EthTagId/MacAddrLen/MacAddr/IpAddrLen/IpAddr) NextHop
*> 0:48:0001-0001-0001:0:0.0.0.0 0.0.0.0
*> 0:48:0081-3f52-6388:0:0.0.0.0 0.0.0.0
*> 0:48:0081-bd3d-e33c:0:0.0.0.0 0.0.0.0
*> 0:48:0081-cfd9-36d2:0:0.0.0.0 0.0.0.0
*> 0:48:403f-abde-4d11:0:0.0.0.0 0.0.0.0
*> 0:48:0081-3f52-6388:128:[FE80::281:3FFF:FE52:6388] 0.0.0.0
*> 0:48:0081-bd3d-e33c:128:[FE80::281:BDFF:FE3D:E33C] 0.0.0.0
*> 0:48:0081-cfd9-36d2:128:[FE80::281:CFFF:FED9:36D2] 0.0.0.0
*> 0:48:403f-abde-4d11:128:[FE80::423F:ABFF:FEDE:4D11] 0.0.0.0
Route Distinguisher: 20:2
Network(EthTagId/MacAddrLen/MacAddr/IpAddrLen/IpAddr) NextHop
*> 0:48:0002-0002-0002:0:0.0.0.0 0.0.0.0
*> 0:48:0081-f6dd-23f7:0:0.0.0.0 0.0.0.0
*> 0:48:0081-8c8f-d31f:128:[FE80::281:8CFF:FE8F:D31F] 0.0.0.0
*> 0:48:0081-c848-bba8:128:[FE80::281:C8FF:FE48:BBA8] 0.0.0.0
*> 0:48:0081-f6dd-23f7:128:[FE80::281:F6FF:FEDD:23F7] 0.0.0.0
*> 0:48:764e-c014-7d7a:128:[FE80::744E:C0FF:FE14:7D7A] 0.0.0.0
Route Distinguisher: 30:1
Network(EthTagId/MacAddrLen/MacAddr/IpAddrLen/IpAddr) NextHop
*>i 0:48:0001-0001-0001:0:0.0.0.0 30.30.30.30
*>i 0:48:0081-021b-3158:128:[FE80::281:2FF:FE1B:3158] 30.30.30.30
*>i 0:48:0081-3605-62bf:128:[FE80::281:36FF:FE05:62BF] 30.30.30.30
*>i 0:48:0081-3fc0-2cbb:128:[FE80::281:3FFF:FEC0:2CBB] 30.30.30.30
*>i 0:48:fa9e-6574-0010:128:[FE80::F89E:65FF:FE74:10] 30.30.30.30
Route Distinguisher: 30:2
Network(EthTagId/MacAddrLen/MacAddr/IpAddrLen/IpAddr) NextHop
*>i 0:48:0002-0002-0002:0:0.0.0.0 30.30.30.30
*>i 0:48:0081-762c-3f3f:128:[FE80::281:76FF:FE2C:3F3F] 30.30.30.30
*>i 0:48:0081-9de1-68bc:128:[FE80::281:9DFF:FEE1:68BC] 30.30.30.30
*>i 0:48:3805-6049-7164:128:[FE80::3A05:60FF:FE49:7164] 30.30.30.30
EVPN-Instance 100:
Number of Mac Routes: 14
Network(EthTagId/MacAddrLen/MacAddr/IpAddrLen/IpAddr) NextHop
*> 0:48:0001-0001-0001:0:0.0.0.0 0.0.0.0
* i 30.30.30.30
*> 0:48:0081-3f52-6388:0:0.0.0.0 0.0.0.0
*> 0:48:0081-bd3d-e33c:0:0.0.0.0 0.0.0.0
*> 0:48:0081-cfd9-36d2:0:0.0.0.0 0.0.0.0
*> 0:48:403f-abde-4d11:0:0.0.0.0 0.0.0.0
*>i 0:48:0081-021b-3158:128:[FE80::281:2FF:FE1B:3158] 30.30.30.30
*>i 0:48:0081-3605-62bf:128:[FE80::281:36FF:FE05:62BF] 30.30.30.30
*> 0:48:0081-3f52-6388:128:[FE80::281:3FFF:FE52:6388] 0.0.0.0
*>i 0:48:0081-3fc0-2cbb:128:[FE80::281:3FFF:FEC0:2CBB] 30.30.30.30
*> 0:48:0081-bd3d-e33c:128:[FE80::281:BDFF:FE3D:E33C] 0.0.0.0
*> 0:48:0081-cfd9-36d2:128:[FE80::281:CFFF:FED9:36D2] 0.0.0.0
*> 0:48:403f-abde-4d11:128:[FE80::423F:ABFF:FEDE:4D11] 0.0.0.0
*>i 0:48:fa9e-6574-0010:128:[FE80::F89E:65FF:FE74:10] 30.30.30.30
EVPN-Instance 200:
Number of Mac Routes: 10
Network(EthTagId/MacAddrLen/MacAddr/IpAddrLen/IpAddr) NextHop
*> 0:48:0002-0002-0002:0:0.0.0.0 0.0.0.0
* i 30.30.30.30
*> 0:48:0081-f6dd-23f7:0:0.0.0.0 0.0.0.0
*>i 0:48:0081-762c-3f3f:128:[FE80::281:76FF:FE2C:3F3F] 30.30.30.30
*> 0:48:0081-8c8f-d31f:128:[FE80::281:8CFF:FE8F:D31F] 0.0.0.0
*>i 0:48:0081-9de1-68bc:128:[FE80::281:9DFF:FEE1:68BC] 30.30.30.30
*> 0:48:0081-c848-bba8:128:[FE80::281:C8FF:FE48:BBA8] 0.0.0.0
*> 0:48:0081-f6dd-23f7:128:[FE80::281:F6FF:FEDD:23F7] 0.0.0.0
*>i 0:48:3805-6049-7164:128:[FE80::3A05:60FF:FE49:7164] 30.30.30.30
*> 0:48:764e-c014-7d7a:128:[FE80::744E:C0FF:FE14:7D7A] 0.0.0.0
EVPN address family:
Number of Inclusive Multicast Routes: 4
Route Distinguisher: 20:1
Network(EthTagId/IpAddrLen/OriginalIp) NextHop
*> 0:32:20.20.20.20 0.0.0.0
Route Distinguisher: 20:2
Network(EthTagId/IpAddrLen/OriginalIp) NextHop
*> 0:32:20.20.20.20 0.0.0.0
Route Distinguisher: 30:1
Network(EthTagId/IpAddrLen/OriginalIp) NextHop
*>i 0:32:30.30.30.30 30.30.30.30
Route Distinguisher: 30:2
Network(EthTagId/IpAddrLen/OriginalIp) NextHop
*>i 0:32:30.30.30.30 30.30.30.30
EVPN-Instance 100:
Number of Inclusive Multicast Routes: 2
Network(EthTagId/IpAddrLen/OriginalIp) NextHop
*> 0:32:20.20.20.20 0.0.0.0
*>i 0:32:30.30.30.30 30.30.30.30
EVPN-Instance 200:
Number of Inclusive Multicast Routes: 2
Network(EthTagId/IpAddrLen/OriginalIp) NextHop
*> 0:32:20.20.20.20 0.0.0.0
*>i 0:32:30.30.30.30 30.30.30.30
EVPN address family:
Number of Ip Prefix Routes: 23
Route Distinguisher: 200:1
Network(EthTagId/IpPrefix/IpPrefixLen) NextHop
*> 0:172.16.1.0:24 0.0.0.0
*> 0:10.10.10.0:24 0.0.0.0
*> 0:172.16.1.1:32 0.0.0.0
*> 0:10.10.10.1:32 0.0.0.0
*> 0:[FE80::]:10 ::
*> 0:[10:10:10::]:64 ::
*> 0:[172:16:1::]:64 ::
*> 0:[10:10:10::1]:128 ::
*> 0:[172:16:1::1]:128 ::
Route Distinguisher: 300:1
Network(EthTagId/IpPrefix/IpPrefixLen) NextHop
*>i 0:172.16.1.0:24 30.30.30.30
*>i 0:10.10.10.0:24 30.30.30.30
*>i 0:172.16.1.1:32 30.30.30.30
*>i 0:10.10.10.1:32 30.30.30.30
*>i 0:[10:10:10::]:64 ::FFFF:30.30.30.30
*>i 0:[172:16:1::]:64 ::FFFF:30.30.30.30
*>i 0:[10:10:10::1]:128 ::FFFF:30.30.30.30
*>i 0:[172:16:1::1]:128 ::FFFF:30.30.30.30
Route Distinguisher: 400:1
Network(EthTagId/IpPrefix/IpPrefixLen) NextHop
*>i 0:182.1.1.0:24 40.40.40.40
*>i 0:41.41.41.0:24 40.40.40.40
*>i 0:182.1.1.1:32 40.40.40.40
*>i 0:41.41.41.41:32 40.40.40.40
*>i 0:[182:1:1::]:64 ::FFFF:40.40.40.40
*>i 0:[182:1:1::1]:128 ::FFFF:40.40.40.40
[Leaf1]
以下是对各类路由的深度剖析:
1. Type 2 Route (MAC/IP Advertisement) ------ 主机与 MAC 路由
此类型路由包含纯 MAC 路由(用于二层转发)和 IRB 主机路由(用于三层转发与 ARP/ND 抑制)。
-
本地终端 (Local):
- MAC :
403f-abde-4d11(Serv1) 和764e-c014-7d7a(Serv2) 分别在 RD20:1(BD100) 和20:2(BD200) 下可见,NextHop 为0.0.0.0,表明为本地接入。 - IPv6 Link-Local : 观察到
[FE80::423F:ABFF:FEDE:4D11](Serv1) 等 Link-Local 地址的主机路由。这表明 IPv6 ND 收集功能 (ipv6 nd collect host enable) 已生效,Leaf1 已识别到本地 IPv6 终端。 - 注意 : 此时表中尚未显示 Serv1/Serv2 的全局单播 IPv4/IPv6 地址 (
172.16.1.10,10:10:10::10)。这是正常现象,因为在未发起业务流量前,终端可能仅通过无状态自动配置 (SLAAC) 或 DAD 检测交互了 Link-Local 地址。发起 Ping 后将触发全局地址路由生成。
- MAC :
-
远端终端 (Remote):
- MAC :
fa9e-6574-0010(Serv3) 和3805-6049-7164(Serv4) 在 RD30:1和30:2下可见,NextHop 指向 Leaf2 (30.30.30.30)。 - 结论: Leaf1 已成功通过 EVPN 学习到远端 Leaf2 下挂终端的 MAC 地址及 IPv6 Link-Local 地址,二层互通基础已就绪。
- MAC :
2. Type 3 Route (Inclusive Multicast) ------ BUM 泛洪隧道
用于构建处理广播/组播流量的头端复制列表。
- L2VNI 8000 (BD100) : RD
20:1下有本地路由,RD30:1下有远端路由 (NextHop 30.30.30.30)。 - L2VNI 9000 (BD200) : RD
20:2下有本地路由,RD30:2下有远端路由。 - 结论: Leaf1 与 Leaf2 针对所有 L2VNI 的 BUM 隧道均已成功建立。
3. Type 5 Route (IP Prefix) ------ 网段路由 (双栈)
用于传递 IPv4 和 IPv6 的网段路由,实现分布式网关的路由同步及南北向互通。
-
IPv4 网段:
- 本地直连 :
172.16.1.0/24和10.10.10.0/24在 RD200:1下可见。 - 远端同步 : 相同的网段在 RD
300:1(Leaf2) 下也可见,NextHop 为30.30.30.30。这是任播网关的特征,确保回程流量可达最近的网关节点。 - 外部路由 :
182.1.1.0/24在 RD400:1(BL1) 下可见,NextHop 为40.40.40.40。表明 Leaf1 已知晓去往外网的路径。
- 本地直连 :
-
IPv6 前缀 (关键修正验证):
- 本地 :
[172:16:1::]:64和[10:10:10::]:64在 RD200:1下可见。 - 远端 : 在 RD
300:1(Leaf2) 下,可以看到0:[172:16:1::]:64。 - 验证通过: 这标志着 IPv6 分布式网关的路由信息已在 Leaf1 和 Leaf2 之间正确同步。
- 本地 :
总结:
当前的 EVPN 路由表状态非常健康。
- 控制面:Type 3 和 Type 5 路由已全网收敛,双栈网段路由同步无误。
- 数据面准备:MAC 地址和 Link-Local IPv6 地址已学习,二层与三层的基础转发表项已就绪。
- 待触发:全局单播 IP 的主机路由 (Type 2 IRB) 等待实际业务流量触发生成。
5.5 VPN 实例路由表检查 (L3 Forwarding Plane Verification)
BGP EVPN 路由表(
display bgp evpn ...)仅代表控制平面 的传递状况,而这些路由是否真正能够指导转发,取决于它们是否成功"落地"到 VPN 实例的路由表 (RIB/FIB)中。在 BGP EVPN 场景下,Type 5 路由(网段)和 Type 2 路由(主机路由)在通过 RT (Route Target) 导入验证后,最终会呈现为 VPN 实例中的 IP 路由。
控制平面的 EVPN 路由(Type 2/5)最终必须被引入到本地的 VPN 实例路由表 中,才能真正指导三层数据转发。此步骤检查 BGP 路由是否成功"落地"为 IP 路由。
1. 检查 IPv4 VPN 路由表
- 检查命令 :
[Leaf1] display ip routing-table vpn-instance vpn1 - 预期结果与分析 :
- 直连网段 (Direct) :
- 应看到本地配置的网关网段(如
172.16.1.0/24,10.10.10.0/24),Protocol 为 Direct。这是分布式网关的特征。
- 应看到本地配置的网关网段(如
- 外部网段 (IBGP/EVPN Type 5) :
- 应看到由 BL1 发布的外部路由(如
182.1.1.0/24或缺省路由)。 - Protocol 应为 IBGP (或 EVPN),NextHop 指向 BL1 的 VTEP 地址 (
40.40.40.40),Interface 为VXLAN。
- 应看到由 BL1 发布的外部路由(如
- 远端主机路由 (IBGP/EVPN Type 2) :
- (注:需在业务触发后)应看到远端主机的
/32路由。 - NextHop 指向远端 Leaf 的 VTEP 地址。
- (注:需在业务触发后)应看到远端主机的
- 直连网段 (Direct) :
bash
[Leaf1]dis ip routing-table vpn-instance vpn1
Proto: Protocol Pre: Preference
Route Flags: R - relay, D - download to fib, T - to vpn-instance, B - black hole route
------------------------------------------------------------------------------
Routing Table : vpn1
Destinations : 11 Routes : 11
Destination/Mask Proto Pre Cost Flags NextHop Interface
10.10.10.0/24 Direct 0 0 D 10.10.10.1 Vbdif200
10.10.10.1/32 Direct 0 0 D 127.0.0.1 Vbdif200
10.10.10.255/32 Direct 0 0 D 127.0.0.1 Vbdif200
41.41.41.0/24 IBGP 255 0 RD 40.40.40.40 VXLAN
41.41.41.41/32 IBGP 255 0 RD 40.40.40.40 VXLAN
172.16.1.0/24 Direct 0 0 D 172.16.1.1 Vbdif100
172.16.1.1/32 Direct 0 0 D 127.0.0.1 Vbdif100
172.16.1.255/32 Direct 0 0 D 127.0.0.1 Vbdif100
182.1.1.0/24 IBGP 255 0 RD 40.40.40.40 VXLAN
182.1.1.1/32 IBGP 255 0 RD 40.40.40.40 VXLAN
255.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0
[Leaf1]
2. 检查 IPv6 VPN 路由表
- 检查命令 :
[Leaf1] display ipv6 routing-table vpn-instance vpn1 - 预期结果与分析 :
- 直连前缀 :本地网关前缀(如
172:16:1::/64)为 Direct。 - 外部前缀 :BL1 发布的外部 IPv6 路由(如
182:1:1::/64),Protocol 为 IBGP,下一跳指向 BL1。 - 远端主机路由 :(业务触发后) 远端 IPv6 主机的
/128路由。
- 直连前缀 :本地网关前缀(如
bash
[Leaf1]dis ipv6 routing-table vpn-instance vpn1
Route Flags: R - relay, D - download to fib, T - to vpn-instance, B - black hole route
------------------------------------------------------------------------------
Routing Table : vpn1
Destinations : 7 Routes : 7
Destination : 10:10:10:: PrefixLength : 64
NextHop : 10:10:10::1 Preference : 0
Cost : 0 Protocol : Direct
RelayNextHop : :: TunnelID : 0x0
Interface : Vbdif200 Flags : D
Destination : 10:10:10::1 PrefixLength : 128
NextHop : ::1 Preference : 0
Cost : 0 Protocol : Direct
RelayNextHop : :: TunnelID : 0x0
Interface : Vbdif200 Flags : D
Destination : 172:16:1:: PrefixLength : 64
NextHop : 172:16:1::1 Preference : 0
Cost : 0 Protocol : Direct
RelayNextHop : :: TunnelID : 0x0
Interface : Vbdif100 Flags : D
Destination : 172:16:1::1 PrefixLength : 128
NextHop : ::1 Preference : 0
Cost : 0 Protocol : Direct
RelayNextHop : :: TunnelID : 0x0
Interface : Vbdif100 Flags : D
Destination : 182:1:1:: PrefixLength : 64
NextHop : ::FFFF:40.40.40.40 Preference : 255
Cost : 0 Protocol : IBGP
RelayNextHop : :: TunnelID : 0x0000000027f0000002
Interface : VXLAN Flags : RD
Destination : 182:1:1::1 PrefixLength : 128
NextHop : ::FFFF:40.40.40.40 Preference : 255
Cost : 0 Protocol : IBGP
RelayNextHop : :: TunnelID : 0x0000000027f0000002
Interface : VXLAN Flags : RD
Destination : FE80:: PrefixLength : 10
NextHop : :: Preference : 0
Cost : 0 Protocol : Direct
RelayNextHop : :: TunnelID : 0x0
Interface : NULL0 Flags : DB
[Leaf1]
💡 核心逻辑说明
-
为什么不直接看
display bgp vpnv4?- 虽然在 MPLS L3VPN 中我们习惯查看
bgp vpnv4,但在 EVPN VXLAN 场景下,设备通过l2vpn-family evpn接收路由后,是将 Type 5 和 Type 2 路由直接引入到 VPN 实例的 IP 路由表中。 display ip routing-table vpn-instance是判断数据平面转发最直接、最权威的依据。只有在这里看到的路由,才能被写入 FIB 表指导流量转发。
- 虽然在 MPLS L3VPN 中我们习惯查看
-
Type 5 路由的最终形态:
- Type 5 路由在 BGP EVPN 表中是"前缀路由"。
- 导入 VRF 后 :它变成了一条普通的 IPv4/IPv6 路由,出接口变成 VXLAN 隧道 ,下一跳变成远端 VTEP。这就是 EVPN 实现"路由隔离与透传"的关键。
-
Type 2 IRB 路由的最终形态:
- Type 2 路由在 BGP EVPN 表中包含 MAC 和 IP。
- 导入 VRF 后 :其中的 IP 信息被提取出来,生成
/32(v4) 或/128(v6) 的主机路由。这使得网关可以精确地将流量发往主机所在的特定 Leaf,而不是发往整个网段。
5.6 本地表项检查 (Pre-Traffic)
检查 Leaf 节点的本地转发表项。
- 检查命令 :
display mac-address bridge-domain <bd-id>display arp interface Vbdif <id>display ipv6 neighbors interface Vbdif <id>
- 预期说明 :由于尚未进行业务互通(Ping)测试,且终端未发送免费 ARP/NA,此时上述表项可能为空或仅包含少量系统条目。这是正常现象,待后续 Packet Walk 环节产生流量后,这些表项将动态生成并触发 Type 2 路由的发布。
这一步验证了接入侧 (Access Side) 的物理链路状态以及 IPv6 链路本地 (Link-Local) 机制是否正常工作。
1. 检查 MAC 地址表 (Bridge Domain)
- 检查命令 :
[Leaf1] display mac-address bridge-domain 100 - 实验输出:
bash
[Leaf1]dis mac-address bridge-domain 100
Flags: * - Backup
# - forwarding logical interface, operations cannot be performed based
on the interface.
BD : bridge-domain Age : dynamic MAC learned time in seconds
-------------------------------------------------------------------------------
MAC Address VLAN/VSI/BD Learned-From Type Age
-------------------------------------------------------------------------------
0001-0001-0001 -/-/100 30.30.30.30 dynamic 12639
0081-3f52-6388 -/-/100 GE1/0/2.1 dynamic 72
0081-bd3d-e33c -/-/100 GE1/0/2.1 dynamic 190
403f-abde-4d11 -/-/100 GE1/0/2.1 dynamic 277
-------------------------------------------------------------------------------
Total items: 4
- 结果解读 :
- 本地学习 :
403f-abde-4d11(Serv1 的 MAC) 来源于GE1/0/2.1。说明 Leaf1 成功从物理接口学习到了本地终端 MAC。 - 远端学习 :
0001-0001-0001(网关 MAC) 来源于30.30.30.30(Leaf2)。这是因为 Leaf2 也配置了相同的网关 MAC 并通过 EVPN 通告了出来,Leaf1 在二层泛洪域中学习到了它(注意:在任播网关场景下,这通常不影响业务,但也侧面证明了 EVPN L2 通道是通的)。 - 其他 MAC :
0081-xxxx开头的 MAC 通常是 IPv6 协议栈在进行 DAD (重复地址检测) 或 RS (路由器请求) 时产生的临时或组播映射 MAC。
- 本地学习 :
2. 检查 IPv6 邻居表 (ND Table)
- 检查命令 :
[Leaf1] display ipv6 neighbors vbdif 100 - 实验输出:
bash
[Leaf1]dis ipv6 neighbors vbdif 100
-----------------------------------------------------------------------------
IPv6 Address : FE80::281:3FFF:FE52:6388
Link-layer : 0081-3f52-6388 State : REACH
Interface : GE1/0/2.1 Age : 2
...
IPv6 Address : FE80::423F:ABFF:FEDE:4D11
Link-layer : 403f-abde-4d11 State : REACH
Interface : GE1/0/2.1 Age : 5
-----------------------------------------------------------------------------
Total: 3 Dynamic: 3 Static: 0 Remote: 0
- 结果解读 :
- Link-Local 地址 :表中显示的 IP 均为
FE80::...开头的链路本地地址。这是 IPv6 的特性,设备接入网络后会自动配置 Link-Local 地址并进行邻居发现。 - State: REACH :表示邻居可达。Leaf1 已经与 Serv1 (
403f-abde-4d11) 完成了 ND 交互。 - 关键现象 :此时表中没有 Serv1 的全局单播地址 (
172:16:1::10)。- 原因:因为尚未发起针对全局地址的 Ping 测试,终端还没有触发全局地址的 ND 解析。
- 预期:这也是为什么之前的 Type 2 路由表中只有 Link-Local 主机路由的原因。待下一章节 Packet Walk 发起 Ping 后,这里将出现全局 IPv6 地址,并同步触发 EVPN 生成带全局 IP 的 Type 2 路由。
- Link-Local 地址 :表中显示的 IP 均为
3. 本地 ARP 表项检查 (IPv4 Pre-Traffic)
最后,检查 IPv4 的 ARP 表项。
- 检查命令 :
[Leaf1] display arp interface vbdif100 - 实验输出:
bash
[Leaf1]dis arp interface vbdif100
ARP timeout:1200s
ARP Entry Types: D - Dynamic, S - Static, I - Interface, O - OpenFlow, RD - Redirect
EXP: Expire-time src: Source ip dst: Destination ip
IP ADDRESS MAC ADDRESS EXP(M) TYPE/VLAN/CEVLAN INTERFACE
----------------------------------------------------------------------------------------
172.16.1.1 0001-0001-0001 I Vbdif100
----------------------------------------------------------------------------------------
Total:1 Dynamic:0 Static:0 Interface:1 OpenFlow:0
Redirect:0
- 结果解读与对比分析 :
- 接口自身条目 (Type: I) :
- 表中唯一的条目
172.16.1.1是 Vbdif100 接口自身的 IP 地址。TYPE: I代表 Interface,即本机地址。
- 表中唯一的条目
- 动态条目为空 (Dynamic: 0) :
- 现象 :表中没有 Serv1 (
172.16.1.10) 的 ARP 条目。 - 原因 (与 IPv6 的核心区别) :
- IPv6 设备接入网络后,会主动发送 RS/NS 报文利用 Link-Local 地址进行邻居发现,因此即使没有业务流量,也能看到 ND 表项(如上一节所示)。
- IPv4 相对"沉默"。在没有发起 Ping 或其他业务流量之前,Server 通常不会主动向网关发送数据,网关也不会主动请求 Server 的 ARP。
- 现象 :表中没有 Serv1 (
- 结论 :这是正常的初始状态 。
- 这证明了当前的 Type 2 路由表中缺失 IPv4 主机路由是合理的。
- 待后续 Packet Walk 环节发起
Ping 172.16.1.10后,ARP 交互将被触发,动态 ARP 条目生成,进而触发 BGP EVPN 生成包含 IPv4 地址的 Type 2 IRB 路由。
- 接口自身条目 (Type: I) :