1. 这份手册在做什么
我们要在 EVE-NG 里,用思科 Nexus 9000v 虚拟交换机,搭一套现在真实数据中心里最主流的网络架构 :两层 Spine-Leaf(脊-叶)fabric 。它解决一个核心问题:当机柜越来越多、服务器到处迁移时,传统“接入-汇聚-核心”三层网络会因为生成树(STP)阻塞端口而浪费带宽、并且二层无法跨机房扩展。
1.1 先搞懂三个“层”
名称 作用 本实验用什么
物理层 / 设备 真实的交换机和连线 Nexus 9000v 虚拟交换机
Underlay(底层承载网) 一张普通的 IP 路由网络,负责把数据包从一台交换机送到另一台交换机的“隧道端点” IS-IS 路由协议(本实验要求)
Overlay( overlay overlay 虚拟网络) 在 Underlay 之上“再叠一层”的逻辑大二层/大三层网络,让虚拟机/容器以为自己连在同一个交换机上 VXLAN 隧道 + BGP EVPN 当控制大脑
💡 通俗理解:Underlay 是“公路网”,Overlay 是公路上跑的“集装箱卡车(VXLAN)”
IS-IS 负责让每台交换机的环回口(隧道端点地址)互相可达;VXLAN 把原始以太网帧装进 UDP 包里,在公路上运到对端叶交换机再拆出来。BGP EVPN 则是“调度中心”,告诉每台交换机:哪个 MAC/IP 在哪个隧道端点后面。
1.2 为什么选这些技术
Spine-Leaf 两层架构 :任意两台服务器之间最多经过 3 台交换机(Leaf→Spine→Leaf),延迟可预测;所有上行链路都能用(无 STP 阻塞),带宽翻倍。
IS-IS 做 Underlay :收敛快、支持大二层扩展、对 IPv6/Segment Routing 友好,是运营商和大型数据中心的事实标准;比 OSPF 更“干净”地支持无编号(unnumbered)链路。
VXLAN + BGP EVPN :VXLAN 把二层域从 4094 个 VLAN 扩展到 1600 万个 VNI;EVPN 用 BGP 自动学习 MAC/IP,支持分布式网关、ARP 抑制、主机迁移,是“免组播、纯控制平面”的现代做法。
ECN / PFC / QoS :数据中心流量突发大,单纯“丢包”会拖垮 TCP 和 RDMA。ECN 让交换机在拥塞还没丢包时 就给包打标记,让发送方提前减速;PFC 为 RoCE/RDMA 提供零丢包链路。这是 AI/存储集群的刚需。
1.3 实验目标(做完你应该能)
在 EVE-NG 里规划并连线一套 2 台 Spine + 4 台 Leaf 的 fabric;
用 IS-IS 让所有环回口互通(Underlay 通);
用 VXLAN EVPN 实现跨 Leaf 的二层互通 (同一子网服务器迁移不换 IP);
用分布式任播网关 实现跨子网三层互访 (任意 Leaf 都能当网关);
开启 ECN/PFC,理解并验证拥塞控制;
掌握一套排错命令。
2. 实验拓扑与设备清单
IS-IS Level-2(/31 链路,MTU 9216)
Spine-1
RR + 路由反射器
Spine-2
RR + 路由反射器
VTEP(source loopback1)· 任播网关
Leaf-1
Leaf-2
Leaf-3
Leaf-4
Host-A1 172.16.10.10
Host-A3 172.16.20.10
Host-A2 172.16.10.20
高级特性部署点
• Leaf 上联口:ECN + WRED
• 服务器口:PFC(RoCE 零丢包)
图 2-1 2-Tier Spine-Leaf 拓扑(实线=IS-IS Underlay,虚线=主机接入 / VXLAN 隧道在 Underlay 之上)
2.1 设备与镜像
角色 节点名 镜像(建议) 数量 说明
Spine(核心) Spine-1 / Spine-2 Nexus 9000v (Titanium) nxos64-cs.10.3.x 或 9.3(x) 2 仅做路由反射器 + Underlay 中转,不 终结 VXLAN
Leaf(接入) Leaf-1 ~ Leaf-4 同上 N9Kv 4 VTEP、任播网关、服务器接入
服务器/主机 Host-A1/A2/A3 VPCS 或 IOL/Cisco Router(关路由当主机) 3 验证二层/三层互通
⚠️ 关键提醒
VXLAN EVPN 需要交换机支持 nv overlay 与 vn-segment-vlan-based 特性。传统 IOS(如 IOL)做不了 VTEP,必须用 N9Kv 。EVE-NG 里镜像名通常叫 nxosv9k 或导入 .qcow2。
2.2 地址与标识规划(照抄即可)
① 环回地址(IS-IS Router-ID / BGP 源 / VTEP 源)
设备 Loopback0(Router-ID / ISIS) Loopback1(VTEP 源,仅 Leaf) IS-IS NET
Spine-1 10.255.0.1/32 — 49.0001.0000.0000.0001.00
Spine-2 10.255.0.2/32 — 49.0001.0000.0000.0002.00
Leaf-1 10.255.0.3/32 10.255.1.1/32 49.0001.0000.0000.0011.00
Leaf-2 10.255.0.4/32 10.255.1.2/32 49.0001.0000.0000.0012.00
Leaf-3 10.255.0.5/32 10.255.1.3/32 49.0001.0000.0000.0013.00
Leaf-4 10.255.0.6/32 10.255.1.4/32 49.0001.0000.0000.0014.00
② Spine↔Leaf 互联链路(使用 /31,省地址且避免广播)
链路 Spine 侧 IP Leaf 侧 IP
Spine-1 ↔ Leaf-1 10.0.13.0/31 10.0.13.1/31
Spine-1 ↔ Leaf-2 10.0.14.0/31 10.0.14.1/31
Spine-1 ↔ Leaf-3 10.0.15.0/31 10.0.15.1/31
Spine-1 ↔ Leaf-4 10.0.16.0/31 10.0.16.1/31
Spine-2 ↔ Leaf-1 10.0.23.0/31 10.0.23.1/31
Spine-2 ↔ Leaf-2 10.0.24.0/31 10.0.24.1/31
Spine-2 ↔ Leaf-3 10.0.25.0/31 10.0.25.1/31
Spine-2 ↔ Leaf-4 10.0.26.0/31 10.0.26.1/31
③ 租户 / VNI / VLAN / 子网映射(本实验主配 Tenant-A)
租户 (VRF) 类型 VNI VLAN 子网 / 网关 任播网关 MAC
TENANT-A L2 VNI 10010 10 172.16.10.0/24 0001.0001.0001
L2 VNI 10020 20 172.16.20.0/24
L3 VNI(路由) 10099 99 —(仅用于跨子网路由)
④ 主机接入
主机 接在 接口 VLAN IP / 网关
Host-A1 Leaf-1 Ethernet1/3 10 172.16.10.10/24 → 172.16.10.1
Host-A2 Leaf-3 Ethernet1/3 10 172.16.10.20/24 → 172.16.10.1
Host-A3 Leaf-2 Ethernet1/4 20 172.16.20.10/24 → 172.16.20.1
✅ 这个设计的巧思
Host-A1 和 Host-A2 在同一子网(172.16.10.0/24)却接在不同 Leaf 上——这正是 VXLAN 的看家本领:把它们“拉”进同一个二层域,IP 不用改就能互相 ping 通(二层延伸)。Host-A3 在另一子网,则通过任播网关 做三层转发。
3. EVE-NG 环境准备
1
新建 Lab :EVE-NG Web 界面 → Add Lab → 取名 DC-Fabric-2Tier,类型选 Unprovisioned 即可。
2
添加节点 :右键画布 → Add Node → 选 Nexus 9000v(若列表没有,需先上传镜像到 EVE 的 /opt/unetlab/addons/qemu/)。添加 2 台 Spine + 4 台 Leaf,CPU/RAM 建议每节点 2 vCPU / 8 GB (N9Kv 较吃内存)。
3
连线(按 2.2 节) :每台 Leaf 用两条线分别连到 Spine-1、Spine-2(共 8 条 Spine-Leaf 线);每台 Leaf 留一个口连主机。连线用 Ethernet1/x 。
4
启动并初始化 :全选节点 → Start 。等待 N9Kv 启动(首次约 3–5 分钟),用 admin / admin 登录,首次会强制改密码。
5
进入配置模式 :每台设备执行 configure terminal(可简写 conf t)。后续所有命令都在此模式下输入。
⚠️ 常见坑
N9Kv 在 EVE-NG 里默认可能跑在 whitebox 模式或需要 feature nx-api。若提示某些 feature 不存在,先确认镜像版本 ≥ 9.3(x)。本手册命令在 9.3(6) 与 10.3/10.4 上验证可用。
4. Underlay:IS-IS 配置(让所有环回口互通)
Underlay 的唯一目标:让每台交换机的 Loopback0(Router-ID)和 Leaf 的 Loopback1(VTEP 源) 在全网可达。这样 BGP 才能用环回口建邻居,VXLAN 隧道才知道往哪送。
4.1 基础思路
启用 feature isis;
所有三层口(环回 + 互联链路)都 ip router isis UNDERLAY;
链路设为 point-to-point (/31 点对点,避免 DR 选举开销);
使用 Level-2 + wide metric (支持大度量、为 Segment Routing 预留);
环回口设为 passive (只通告、不建邻居);
全网 MTU 9216(巨帧) ,VXLAN 封装后包会变大,必须开。
4.2 Spine-1 完整配置
! ===== Spine-1:Underlay IS-IS =====
feature isis
feature bfd ! 后面高级特性要用到快速故障检测
!
interface loopback0
ip address 10.255.0.1/32
ip router isis UNDERLAY
isis passive-interface
!
interface Ethernet1/1 ! 连 Leaf-1
no switchport
mtu 9216
ip address 10.0.13.0/31
ip router isis UNDERLAY
isis network point-to-point
bfd ! 接口级开启 BFD
bfd interval 300 min_rx 300 multiplier 3
no shutdown
interface Ethernet1/2 ! 连 Leaf-2
no switchport; mtu 9216; ip address 10.0.14.0/31
ip router isis UNDERLAY; isis network point-to-point; bfd; no shutdown
interface Ethernet1/3 ! 连 Leaf-3
no switchport; mtu 9216; ip address 10.0.15.0/31
ip router isis UNDERLAY; isis network point-to-point; bfd; no shutdown
interface Ethernet1/4 ! 连 Leaf-4
no switchport; mtu 9216; ip address 10.0.16.0/31
ip router isis UNDERLAY; isis network point-to-point; bfd; no shutdown
!
router isis UNDERLAY
net 49.0001.0000.0000.0001.00
is-type level-2
metric-style wide
log-adjacency-changes
bfd ! 进程级开启 BFD
spf-interval 50 50 200 ! 快速收敛:SPF 计算节流
lsp-gen-interval 50 50 200 ! LSP 生成节流
max-lsp-lifetime 65535
lsp-refresh-interval 65535
💡 通俗解释:Level-2 是什么?
IS-IS 用“Level”区分层级。数据中心单一 fabric 通常用 Level-2 (骨干级),所有设备都在一个层级里,路由最简单、收敛最快。wide metric 让带宽度量更精确,将来上 Segment Routing 也省事。
4.3 Spine-2
与 Spine-1 几乎一致,仅改三处:loopback0 = 10.255.0.2、NET 末段 0002、互联地址换成 10.0.2x.0/31。
4.4 Leaf-1 完整配置(其余 Leaf 照葫芦画瓢)
! ===== Leaf-1:Underlay IS-IS + 双上联(ECMP)=====
feature isis
feature bfd
!
interface loopback0 ! Router-ID / BGP 源
ip address 10.255.0.3/32
ip router isis UNDERLAY
isis passive-interface
interface loopback1 ! VTEP 源(Overlay 隧道端点)
ip address 10.255.1.1/32
ip router isis UNDERLAY
isis passive-interface
!
interface Ethernet1/1 ! 上联 Spine-1
no switchport; mtu 9216; ip address 10.0.13.1/31
ip router isis UNDERLAY; isis network point-to-point; bfd; no shutdown
interface Ethernet1/2 ! 上联 Spine-2
no switchport; mtu 9216; ip address 10.0.23.1/31
ip router isis UNDERLAY; isis network point-to-point; bfd; no shutdown
!
router isis UNDERLAY
net 49.0001.0000.0000.0011.00
is-type level-2
metric-style wide
log-adjacency-changes
bfd
spf-interval 50 50 200
lsp-gen-interval 50 50 200
✅ 验证 Underlay 通了没
在任意 Leaf 上执行 show isis adjacency 应看到 2 个邻接(Spine-1、Spine-2),状态 UP;再 show ip route isis 能看到所有 10.255.x.x/32 环回路由。Underlay 不通,后面的 VXLAN 一定不通。
4.5 其他 Leaf 的差异对照
设备 Loopback0 Loopback1 NET 末段 上联 Spine-1 IP 上联 Spine-2 IP
Leaf-1 10.255.0.3 10.255.1.1 0011 10.0.13.1 10.0.23.1
Leaf-2 10.255.0.4 10.255.1.2 0012 10.0.14.1 10.0.24.1
Leaf-3 10.255.0.5 10.255.1.3 0013 10.0.15.1 10.0.25.1
Leaf-4 10.255.0.6 10.255.1.4 0014 10.0.16.1 10.0.26.1
5. Overlay:VXLAN + BGP EVPN 配置
这一步是重头戏。思路是:
开特性 → 2. 建 VRF + VLAN 与 VNI 绑定 → 3. 建 NVE 隧道接口 → 4. 用 BGP EVPN 把 MAC/IP 信息在 Leaf 间“广播” → 5. 配任播网关让跨子网能通。
5.1 全局特性与任播网关 MAC(每台 Leaf 都要)
feature bgp
feature nv overlay ! 启用 VXLAN 能力
feature vn-segment-vlan-based ! 允许 VLAN↔VNI 映射
feature interface-vlan ! 允许 SVI(网关接口)
nv overlay evpn ! 指定 EVPN 为 VXLAN 控制平面
fabric forwarding anycast-gateway-mac 0001.0001.0001 ! 所有 Leaf 必须相同!
⚠️ 任播网关 MAC 必须全网一致
分布式网关的精髓是:每台 Leaf 都配 同一个 IP + 同一个 MAC 当网关。主机 ARP 学到的网关 MAC 到处一样,迁移到别的 Leaf 也不用重新学。MAC 不一致会导致二层环路或黑洞。
5.2 建 VLAN ↔ VNI 映射(Leaf-1 示例,所有 Leaf 一致)
vlan 10
vn-segment 10010 ! L2 VNI
vlan 20
vn-segment 10020
vlan 99
vn-segment 10099 ! L3 VNI,仅用于跨子网路由
5.3 建 VRF(租户)与 L3 VNI 关联
vrf context TENANT-A
vni 10099 ! 绑定 L3 VNI
rd auto ! 自动生成 Route Distinguisher
address-family ipv4 unicast
route-target both auto ! 自动 RT(推荐,省心)
route-target both auto evpn
5.4 建 SVI 网关(任播网关)
interface Vlan10 ! 子网 172.16.10.0/24 的网关
no shutdown
vrf member TENANT-A
ip address 172.16.10.1/24
fabric forwarding mode anycast-gateway ! 关键:任播模式
interface Vlan20 ! 子网 172.16.20.0/24 的网关
no shutdown
vrf member TENANT-A
ip address 172.16.20.1/24
fabric forwarding mode anycast-gateway
interface Vlan99 ! L3 VNI 的“路由接口”,不配 IP
no shutdown
vrf member TENANT-A
ip forward
5.5 建 NVE 隧道接口(VTEP 本体)
interface nve1
no shutdown
host-reachability protocol bgp ! 用 BGP EVPN 学邻居,免组播
source-interface loopback1 ! 隧道源 = Loopback1 (10.255.1.x)
member vni 10010 ! 绑定 L2 VNI
member vni 10020
member vni 10099
associate-vrf ! L3 VNI 必须加这行
💡 为什么不用组播(mcast-group)?
老式 VXLAN 用组播来洪泛 BUM 流量。有了 BGP EVPN ,VTEP 之间通过 Type-3 路由自动发现对端、用“头端复制(ingress replication)”单播发送 BUM,Underlay 完全不需要 PIM/组播 ,更简单也更贴近现在的真实部署。
5.6 BGP EVPN(Leaf 侧:连 Spine 路由反射器)
router bgp 65000
router-id 10.255.0.3 ! 用 Loopback0
neighbor 10.255.0.1 remote-as 65000 ! Spine-1(RR)
update-source loopback0
address-family l2vpn evpn
send-community both
neighbor 10.255.0.2 remote-as 65000 ! Spine-2(RR)
update-source loopback0
address-family l2vpn evpn
send-community both
vrf TENANT-A ! 让 L3 VNI 的直连子网通过 EVPN 发布
address-family ipv4 unicast
advertise l2vpn evpn
5.7 Spine 侧:作 BGP 路由反射器(RR)
Spine 自己不 终结 VXLAN,只负责把 Leaf 的 EVPN 路由“反射”给其它 Leaf,避免 Leaf 之间全互联(n×(n-1)/2 邻居爆炸)。
! ===== Spine-1(Spine-2 同理,邻居列表相同)=====
feature bgp
router bgp 65000
router-id 10.255.0.1
address-family l2vpn evpn
retain route-target all ! RR 保留所有 RT,便于反射
neighbor 10.255.0.3 remote-as 65000 ! Leaf-1
update-source loopback0
address-family l2vpn evpn
send-community both
route-reflector-client
neighbor 10.255.0.4 remote-as 65000 ! Leaf-2(route-reflector-client)
neighbor 10.255.0.5 remote-as 65000 ! Leaf-3
neighbor 10.255.0.6 remote-as 65000 ! Leaf-4
! 每个 neighbor 下都要:update-source loopback0 + address-family l2vpn evpn + send-community both + route-reflector-client
5.8 主机接入端口
interface Ethernet1/3 ! Leaf-1 接 Host-A1(VLAN10)
switchport access vlan 10
spanning-tree port type edge ! 边缘口,快速转发
no shutdown
! Leaf-2 Ethernet1/4 接 Host-A3 → switchport access vlan 20
! Leaf-3 Ethernet1/3 接 Host-A2 → switchport access vlan 10
✅ 到此 Overlay 已成型
Host-A1(172.16.10.10) 应能与 Host-A2(172.16.10.20) 二层互通(跨 Leaf!),也能 ping 通网关 172.16.10.1;跨子网访问 Host-A3 会通过任播网关做三层转发。
6. 高级特性:ECN 拥塞控制 / PFC / QoS
数据中心里流量是“突发型”的:AI 训练、存储同步会瞬间打满端口buffer。传统做法是等 buffer 满了再丢包 ,但丢包会让 TCP 骤降、让 RDMA 直接失败。下面这套组合拳让网络在“还没丢包”时就通知发送方减速,并把关键流量做成零丢包 。
🚦 ECN(显式拥塞通知)
IP 头里有 2 个比特(ECT/CE)。交换机在队列开始变长、但还没溢出时,把这两个比特置 1(打标记) 而不是丢包。接收方回传给发送方,发送方据此提前降速 。对普通 TCP 流量最有效。
🛑 PFC(基于优先级的流控)
在以太网二层按 802.1p 优先级“暂停”某一类流量,让发送方暂时停发 而不是丢包。用来给 RoCE/RDMA 造一条零丢包 链路。相当于“急刹车”。ECN 是“减速灯”,PFC 是“急刹车”,两者配合。
6.1 启用 QoS 特性
feature lldp ! PFC 靠 LLDP(DCBX) 与对端网卡协商
feature interface-vlan ! 已开则忽略
6.2 定义“无丢包”网络类(PFC 用,给 RoCE)
! 把 qos-group 3 映射到 CoS 3,并对它开启 PFC(暂停)
class-map type network-qos c-nq-roce
match qos-group 3
class-map type network-qos c-nq-default
match qos-group 0
!
policy-map type network-qos PM-NQ-LOSSLESS
class type network-qos c-nq-roce
mtu 9216
pause pfc-cos 3 ! 对该优先级启用 PFC 暂停
class type network-qos c-nq-default
mtu 9216
!
system qos
service-policy type network-qos PM-NQ-LOSSLESS
6.3 开启 ECN 标记(平台级 + 队列级)
Nexus 9000 上 ECN 是“队列级标记”:先告诉平台要对某 qos-group 启 ECN,再在出口队列策略里启用 WRED+ECN。
! ① 平台级:对 qos-group 1 启用基于队列的 ECN 标记
wred-queue qos-group-map queue-only 1
!
! ② 定义出口队列类
class-map type queuing c-q-ecn
match qos-group 1
policy-map type queuing PM-Q-EGRESS
class type queuing c-q-ecn
bandwidth percent 50 ! 保证一半带宽
congestion-control random-detect ecn ! 关键:拥塞时打 ECN 标记而非丢包
class type queuing class-default
bandwidth percent 50
6.4 把策略应用到接口
! 上联口(Leaf→Spine):出口开 ECN,缓解 incast 拥塞
interface Ethernet1/1
service-policy type queuing output PM-Q-EGRESS
interface Ethernet1/2
service-policy type queuing output PM-Q-EGRESS
!
! 服务器口:开启 PFC(让 RoCE 网卡得到零丢包链路)
interface Ethernet1/3
priority-flow-control mode on
priority-flow-control send-tlv ! 通过 DCBX 把 PFC 能力告诉网卡
priority-flow-control watch-dog-interval on ! PFC 看门狗,避免“死锁”式永久暂停
⚠️ PFC 使用须知
PFC 暂停是整条链路暂停 ,开得不对会造成“微突发拥塞扩散 / 死锁”。生产环境务必:① 只对 RoCE 专用优先级(如 CoS 3)开 PFC;② 配合 watch-dog-interval 防死锁;③ 服务器网卡也要开启 RoCE + ECN 才能配合。普通 TCP 业务只开 ECN 即可,不必开 PFC 。
6.5 再补几个“实战必开”的高级属性
特性 配置要点 作用
BFD(已随 IS-IS 开) 接口 + 进程级 bfd 链路故障 300ms 内感知,秒级收敛
IS-IS 认证 authentication type md5 password ... 在接口/进程下防伪造路由、满足等保
BGP 多路径 ECMP router bgp ... maximum-paths 64Leaf 到任一 VTEP 走多条等Cost路径,带宽叠加
BGP Graceful Restart graceful-restart控制平面重启时不丢转发表,业务不断
CoPP(控制平面保护) copp profile strict限速到 CPU 的协议报文,防 DOS / 风暴
ARP 抑制 EVPN 默认开启 同子网 ARP 由本地 Leaf 代答,减少泛洪
! IS-IS 接口级 MD5 认证示例(每台设备每个 IS-IS 接口都加)
interface Ethernet1/1
isis authentication type md5
isis authentication key-chain ISIS-KEY
key chain ISIS-KEY
key 1
key-string Sup3rSecret!
!
! BGP 多路径 + 优雅重启
router bgp 65000
maximum-paths 64 ibgp 64
graceful-restart
!
! 控制平面保护
copp profile strict
7. 验证与排错
7.1 验证清单(建议按顺序)
验证项 命令 期望结果
IS-IS 邻接 show isis adjacency每台 Leaf 看到 2 个 UP 邻接
Underlay 路由 show ip route isis所有 10.255.x.x/32 可达
BGP EVPN 邻居 show bgp l2vpn evpn summary2 个邻居(Spine)State = Established,PfxRcd > 0
NVE 接口 show nve interfacenve1 状态 Up,VNI 全部 Up
VTEP 对等体 show nve peer能看到其它 Leaf 的 Loopback1 地址
VNI 映射 show vxlan vni10010/10020/10099 存在且关联正确 VLAN
EVPN 学到的 MAC show bgp l2vpn evpn能看到 Type-2(MAC/IP)路由
ECN 统计 show queuing interface eth1/1能看到 ECN 标记计数
PFC 状态 show priority-flow-control服务器口 PFC 模式 on,统计有 pause 帧
7.2 端到端 ping 测试
! 在 Host-A1 上
ping 172.16.10.20 ! → Host-A2(跨 Leaf 二层,应通)
ping 172.16.10.1 ! → 本地任播网关(应通)
ping 172.16.20.10 ! → Host-A3(跨子网三层,应通)
7.3 常见故障速查
❌ BGP 邻居起不来
① 先 ping 10.255.0.1 source 10.255.0.3 确认 Underlay 通;② 确认 update-source loopback0 两边一致;③ feature bgp 已开;④ Spine 上邻居忘了加 route-reflector-client。
❌ NVE 接口 Up 但 VNI 不 Up
① nv overlay evpn 没敲;② VLAN 没配 vn-segment;③ L3 VNI 的 member 下忘了 associate-vrf;④ Loopback1 没进 IS-IS(VTEP 不可达,隧道建不起来)。
❌ 同子网跨 Leaf 不通
① 检查两端 vn-segment 是否一致;② show nve peer 是否看到对端;③ 主机口 VLAN access 是否正确;④ EVPN Type-2 路由是否互相收到(可能 RT 不匹配,确认都用了 route-target auto)。
❌ 跨子网不通(任播网关)
① L3 VNI 的 interface Vlan99 必须 ip forward 且 vrf member;② VRF 下 vni 10099 绑定;③ BGP 的 vrf TENANT-A 下 advertise l2vpn evpn;④ 任播 MAC 全网一致。
❌ ECN 没生效
① 确认 wred-queue qos-group-map queue-only <g> 已配;② 出口队列策略里用了 congestion-control random-detect ecn;③ 服务器/网卡也要开启 ECN(Linux: sysctl net.ipv4.tcp_ecn=1),否则只有交换机标记、终端不减速。
8. 完整配置附录(Leaf-1 一份到底)
下面把 Leaf-1 的全部配置按顺序拼好,可直接整段粘贴。其它 Leaf 改 IP/NET/互联地址即可;Spine 见 4.2 / 5.7。
########## Leaf-1 完整配置 ##########
! ---- 全局特性 ----
feature isis
feature bfd
feature bgp
feature nv overlay
feature vn-segment-vlan-based
feature interface-vlan
feature lldp
nv overlay evpn
fabric forwarding anycast-gateway-mac 0001.0001.0001
copp profile strict
! ---- Loopback ----
interface loopback0
ip address 10.255.0.3/32
ip router isis UNDERLAY
isis passive-interface
interface loopback1
ip address 10.255.1.1/32
ip router isis UNDERLAY
isis passive-interface
! ---- 上联 Spine(双活 ECMP)----
interface Ethernet1/1
no switchport; mtu 9216; ip address 10.0.13.1/31
ip router isis UNDERLAY; isis network point-to-point; bfd
bfd interval 300 min_rx 300 multiplier 3; no shutdown
service-policy type queuing output PM-Q-EGRESS
interface Ethernet1/2
no switchport; mtu 9216; ip address 10.0.23.1/31
ip router isis UNDERLAY; isis network point-to-point; bfd
bfd interval 300 min_rx 300 multiplier 3; no shutdown
service-policy type queuing output PM-Q-EGRESS
! ---- 主机接入口 ----
interface Ethernet1/3
switchport access vlan 10
spanning-tree port type edge
priority-flow-control mode on
priority-flow-control send-tlv
priority-flow-control watch-dog-interval on
no shutdown
! ---- VLAN ↔ VNI ----
vlan 10 ; vn-segment 10010
vlan 20 ; vn-segment 10020
vlan 99 ; vn-segment 10099
! ---- VRF + L3 VNI ----
vrf context TENANT-A
vni 10099; rd auto
address-family ipv4 unicast
route-target both auto
route-target both auto evpn
! ---- 任播网关 SVI ----
interface Vlan10
no shutdown; vrf member TENANT-A; ip address 172.16.10.1/24
fabric forwarding mode anycast-gateway
interface Vlan20
no shutdown; vrf member TENANT-A; ip address 172.16.20.1/24
fabric forwarding mode anycast-gateway
interface Vlan99
no shutdown; vrf member TENANT-A; ip forward
! ---- NVE 隧道 ----
interface nve1
no shutdown
host-reachability protocol bgp
source-interface loopback1
member vni 10010
member vni 10020
member vni 10099
associate-vrf
! ---- IS-IS Underlay ----
router isis UNDERLAY
net 49.0001.0000.0000.0011.00
is-type level-2
metric-style wide
log-adjacency-changes
bfd
spf-interval 50 50 200
lsp-gen-interval 50 50 200
! ---- BGP EVPN ----
router bgp 65000
router-id 10.255.0.3
maximum-paths 64 ibgp 64
graceful-restart
neighbor 10.255.0.1 remote-as 65000
update-source loopback0
address-family l2vpn evpn
send-community both
neighbor 10.255.0.2 remote-as 65000
update-source loopback0
address-family l2vpn evpn
send-community both
vrf TENANT-A
address-family ipv4 unicast
advertise l2vpn evpn
! ---- ECN / QoS ----
wred-queue qos-group-map queue-only 1
class-map type queuing c-q-ecn ; match qos-group 1
policy-map type queuing PM-Q-EGRESS
class type queuing c-q-ecn
bandwidth percent 50
congestion-control random-detect ecn
class type queuing class-default
bandwidth percent 50
end
copy running-config startup-config
📌 多租户扩展(Tenant-B)
想再加一个租户,只需:新建 vrf context TENANT-B + 新的 L3 VNI(如 20099)+ 新 VLAN/VNI 映射 + 新的任播 SVI(新子网,如 172.17.x.x)+ 在 NVE 里加 member vni + BGP 里加 vrf TENANT-B ... advertise l2vpn evpn。各租户路由天然隔离,互不可见——这就是 VXLAN 多租户的魅力。
9. 命令速查表
目的 命令
看 IS-IS 邻居 show isis adjacency
看 Underlay 路由 show ip route isis / show ip route
看 BGP EVPN 邻居 show bgp l2vpn evpn summary
看 EVPN 路由表 show bgp l2vpn evpn
看 NVE 接口/VNI show nve interface / show nve vni / show nve peer
看 VXLAN 映射 show vxlan vni / show vxlan interface
看任播网关 MAC show fabric forwarding anycast-gateway-mac
看 ARP 抑制/表项 show ip arp suppress / show ip arp vrf TENANT-A
看 QoS/ECN show queuing interface eth1/1 / show policy-map interface
看 PFC show priority-flow-control
保存配置 copy running-config startup-config
🎉 收尾
按本手册走完,你拥有了一套可在 EVE-NG 中反复练习的生产级 2-Tier 数据中心 fabric :IS-IS 打通 Underlay、VXLAN EVPN 实现跨 Leaf 二层/三层、ECN/PFC 保障拥塞下的吞吐。想把实验“升级”,可以加 vPC(双 Leaf 双活)、多站点 DCI、或 Segment Routing。祝你实验顺利!
本文档由 WorkBuddy 深度研究生成 · 配置基于 Cisco NX-OS 9.3(x)/10.x(Nexus 9000v)· 命令请以实际镜像版本为准