基于之前的笔记重构。
1. EP 基础概念
1.1 什么是 Endpoint
- 定义:EP (Endpoint) = MAC 地址 + 0~n 个关联的 IP 地址
- 范围:MAC、IPv4、IPv6 都被视为独立的 EP,各自占用表项资源
1.2 EP 存储架构
| 组件 |
存储内容 |
设计目的 |
| Spine (COOP) |
Fabric 中所有 EP 信息 |
全局视图,集中式数据库 |
| Leaf |
仅存储有数据交互的 EP |
节省硬件资源 |
设计优势:这种分层架构使 Fabric 整体的 EP 容量远超单台 Leaf 的限制。
2. EP 分类
2.1 按位置和类型分类

2.2 按 VPC 状态分类
| 类型 |
说明 |
| Orphan |
位于 non-VPC port/port-channel 的 EP |
| On-peer |
位于 non-VPC port/port-channel 或 VPC peer 上的 EP |
3. 不学习 EP 的场景(By Design)
| 以下场景 ACI 设计上不进行 EP 学习: |
场景 |
原因 |
| External BD |
外部主机无需学习,IP learning disabled |
| Infra BD |
L3Out 路由通过 IS-IS 管理 |
| Leaf SVI MAC / Pervasive SVI-IP |
通过 Static EP 机制处理,避免动态学习 |
4. EP Move 机制
4.1 Move 作用域
- EP Move 在 BD 级别 追踪
- 同一 MAC 出现在不同 BD/VRF 时,视为新 EP 学习(非 Move)
4.2 Move 类型及处理
| Move 类型 |
处理方式 |
| 同 Leaf 不同 Port |
Spine/COOP/Oracle 不发送 Move Notification |
| 不同 Leaf 之间 |
Spine/COOP 检测后通知原 Leaf 执行 EP Bounce |
| 不同 VLAN |
触发 Move 处理 |
| 不同 BD(仅 IP) |
对 MAC 而言等同于新 EP 学习 |
| TEP 间移动 / VPC ↔ non-VPC |
Spine/COOP/Oracle 发送 Move Notification |
4.3 EP Dampening(抑制机制)
当 EP Move 过于频繁时,触发 Learning Throttling:
触发条件: BD moves/sec > moveFreq (默认 256)
↓
动作: Disable BD 关联的所有 FD VLAN/VXLAN 的 aging/learning
↓
恢复: holdTimeout (默认 300s) 后自动恢复
验证命令:
show sys int epm vlan <PI-vlan-id> detail # 确认 VLAN 是否 learn disabled
5. EP Aging 机制
5.1 默认 Retention Timer(可在 BD 级别修改)
| 参数 |
默认值 |
说明 |
| Local EP |
900s |
本地端点老化时间 |
| Remote EP |
300s |
远端端点老化时间 |
| Debounce |
630s |
防抖时间 |
| Move Frequency |
256/sec |
超限触发 Dampening |
| Hold Interval |
300s |
Dampening 恢复等待时间 |
查询默认配置:
moquery -c fvEpRetDef -d uni/ctx-[uni/tn-common/ctx-VRF_Prod_Shared]/epRPol
5.2 Aging 实现原理
EPMC (Software Aging)
↓
查询 Hardware Hit-bit
↓
┌─────────────────┴─────────────────┐
↓ ↓
Hit-bit = 1 Hit-bit = 0
(有流量) (无流量)
↓ ↓
重置 Timer 整个 Aging 周期无流量 → Age Out

5.3 VPC 场景的特殊处理
| EP 类型 |
Aging 规则 |
| VPC 上的 Local/Remote EP |
双 Peer 都无流量才 Age Out |
| Orphan EP |
由 EP Owner 负责 Aging |
5.4 Host Tracking
- 触发时机:Aging Timer 达到 75% 时
- 动作:发送 ARP Request 确认 EP 在线状态
- 目的:检测 Silent EP(长期无主动流量的端点)
5.5 EP 删除传播
EP Locally Aged
↓
EPM 发送 EP Delete 通知
↓
┌──┴──┐
↓ ↓
Spine 远端 Leaf
(COOP)
5.6 STP TCN 处理
收到 STP TCN 时:
- EPM Flush 该 VLAN 下所有 EP
- Flood 范围控制在 EPG 内
- 通过 FD VLAN/VXLAN 关联的
fabric_encap VNI 实现隔离
6. 故障排查:手动清除 EP
当 EP Move 后信息异常时,可手动清除(从 ObjectStore 移除对应 MO):
clear sys int epm end key vrf <tenant>:<vrf-name>
# 可选参数:
# ip - IPv4 地址
# ipv6 - IPv6 地址
# vlan - FD/BD VLAN ID
示例:
clear sys int epm end key vrf fushuang:VRF1
7. 要点总结
| 主题 |
关键点 |
| 存储架构 |
Spine 存全量,Leaf 存交互过的 EP |
| EP 类型 |
PL(物理本地)、VL(虚拟本地)、XR(远端) |
| 不学习场景 |
External BD、Infra BD、SVI MAC/IP |
| Move 处理 |
BD 级别追踪,跨 Leaf 触发 COOP 通知 |
| Dampening |
超 256 moves/sec 暂停学习,300s 后恢复 |
| Aging |
基于 Hit-bit,75% 时 Host Tracking |
| VPC 特殊 |
双 Peer 无流量才 Age Out |
透彻理解 ACI 的 Endpoint 管理机制,是进行高效运维和精准故障排查的基础。希望本文的梳理能帮助你更好地驾驭这套复杂的系统。更多网络与系统相关的深度技术讨论,欢迎访问 云栈社区。
|