当一台服务器上线需要工程师登录 20 台交换机手动配置 VLAN,当一次安全策略变更需要三个团队协调两周……
这不是个别企业的困境,这是整个行业被「传统网络惯性」绑架的集体症状。
ACI 不是在修补旧网络,它是在用第一性原理重新回答:「数据中心网络究竟应该是什么?」
在讨论 ACI 之前,我们必须先做一件事:建立共同认知——传统数据中心网络到底有哪些根本性的痛点?
这不是在批评前人,这些设计在当时都是天才之作。但当数据中心规模从百台服务器扩展到数万台,当虚拟机每天迁移数百次,当安全边界从「内外有别」变成「零信任」……这些曾经聪明的解决方案,开始成为束缚。
用苏格拉底式提问开始:「如果你要从零开始设计一个数据中心网络,你需要它做什么?」
抛开所有现有技术栈,回到最本质的需求,答案只有三个:
把数据包从源头送达目的地,快、准、不丢包。这是网络存在的物理基础。
让不该通信的流量物理/逻辑隔开。财务部的数据不能被研发部随意访问。
定义谁可以和谁通信、用什么协议、什么条件下允许/拒绝。这是安全的灵魂。
传统数据中心网络采用的是「三层架构」(Core → Aggregation → Access),搭配 VLAN、STP、ACL 来解决上述三个问题。让我们逐一拆解:
| 核心需求 | 传统技术手段 | 它是怎么工作的 | 根本局限 |
|---|---|---|---|
| 转发 | 二层交换 + 三层路由 | 同 VLAN 内二层交换,跨 VLAN 经路由器/L3 交换转发 | East-West 流量必须「绕道」经 Core 层,增加延迟;带宽瓶颈集中在 Core |
| 隔离 | VLAN(802.1Q) | 用 VLAN ID 划分广播域,不同 VLAN 天然隔离 | 全局最多 4094 个 VLAN;VLAN 与物理端口绑定,虚拟机迁移需手动重配;跨交换机需 Trunk,管理复杂 |
| 策略(防环) | STP(Spanning Tree Protocol) | 自动检测并阻断二层环路,构建无环树状拓扑 | 主动阻断链路 = 浪费带宽;收敛慢(秒级到分钟级);East-West 流量强制 North-South 路径 |
| 策略(访问控制) | ACL(Access Control List) | 在每台路由器/交换机接口上配置允许/拒绝规则 | 分散在每台设备上,无法集中管理;N×M 的 IP 矩阵,规模爆炸;动态 IP 导致规则失效 |
现在我们触到了问题的真正核心。为什么说「配置分散在每台设备上」是传统网络最致命的原罪?
想象一家拥有 300 间客房的酒店。如果每个服务员都各自记录着「哪位客人可以进哪个房间」,且这些记录互不同步——
这不是安全,这是混乱。
传统网络中每台交换机上的 ACL,正是这种「分散记账本」的困境。
具体体现在以下五大系统性痛点:
💡 传统网络的问题不在于技术落后,而在于它把「网络意图」藏进了数百台设备的配置文件里—— 当「真相」分散在所有地方,等于没有真相。ACI 的第一个革命性洞察:把策略从硬件中解放出来。
学习 ACI 时,几乎每个人都会在第一天产生同一个困惑:
「ACI 创造了太多新概念——Tenant、VRF、Bridge Domain、EPG、Contract、Application Profile…… 为什么要把网络搞得这么复杂?大多数用户明明更喜欢简单方案。这些概念真的有必要吗?」
这是一个极好的问题。让我们用第一性原理,认真地回答它。
先看一个类比:
ACI 和传统网络的关系,几乎一模一样:
| 维度 | 传统网络(Excel 模式) | Cisco ACI(数据库模式) |
|---|---|---|
| 复杂性在哪里? | 隐藏在数百台设备的配置文件里,肉眼不可见 | 显式定义在对象模型中,可查询、可审计、可版本控制 |
| 上手难度 | 入门容易(敲几条命令即可) | 入门有学习曲线(需理解对象模型) |
| 规模化难度 | 线性增长 → 指数级复杂(100台后痛苦开始) | 建立模型后,管理 10 台和 10000 台的成本相差无几 |
| 变更风险 | 每次变更都是在黑暗中操作,不知道会影响什么 | 策略变更在 APIC 中模拟验证后统一下发,影响范围可预知 |
| 故障排查 | 逐台设备登录检查,耗时数小时到数天 | APIC 提供全局可视化,定位问题通常在分钟级 |
结论:ACI 的「复杂」是「把原本隐藏的复杂显式化」。 它没有让网络变得更复杂——它让复杂性变得可管理、可审计、可自动化。
ACI 的两大哲学支柱,值得深入理解:
传统网络是「命令式」的:你告诉网络「如何」做—— 「在接口 eth1/1 上配置 IP 192.168.1.1,添加 ACL 允许 TCP 端口 443……」
ACI 是「声明式」的:你告诉网络「要什么」—— 「Web 应用组可以访问 App 应用组的 HTTPS 服务。」 至于怎么在底层实现,APIC 来负责。
在传统网络中,「策略」(ACL、VLAN、路由规则)与「硬件」(具体的交换机端口)是紧耦合的—— 策略写在设备上,换设备就要重写策略。
ACI 将两者彻底分离: 策略定义在 APIC 的逻辑模型中,独立于任何物理硬件。 底层硬件可以替换、扩容,而策略模型保持不变。
任何架构决策都有取舍。ACI 选择的代价和收益是什么?
现在进入 ACI 概念体系最核心的部分。很多人觉得 ACI 的概念多而乱—— 其实它们都有清晰的对应关系。每一个新概念,都是在替代传统网络中某个「隐式、分散、难以管理」的东西。
精准定义:Tenant 是 ACI 中最顶层的管理和策略边界。不同 Tenant 之间的资源默认完全隔离,互不可见。
精妙类比:就像一栋写字楼里的独立办公室。A 公司(Tenant A)和 B 公司(Tenant B)共享同一栋楼(同一套物理网络),但彼此的房间(资源)是锁上的,互不干扰。楼管理员(APIC)可以看到所有公司,但每个公司只能看到自己的东西。
替代了什么:传统网络中,你可能用不同的 VRF 实例来隔离不同业务部门,但这些 VRF 分散在各台路由器上,没有统一的逻辑容器来代表「这些资源属于同一个客户/业务域」。
精准定义:VRF 在 ACI 中定义一个独立的 IP 地址空间和路由表。同一个 Tenant 可以有多个 VRF,不同 VRF 之间的 IP 地址可以重叠(互不干扰)。
精妙类比:VRF 就像同一家公司的不同项目组,每个项目组有自己的「内部通讯录」(路由表)。项目 A 的内部电话「100」和项目 B 的内部电话「100」不会冲突,因为他们各自在自己的系统里。
替代了什么:传统路由器上的 VRF 配置——但在 ACI 中,VRF 是 Tenant 下的逻辑对象,在 APIC 中集中定义,自动下发到所有相关 Leaf 节点。
精准定义:Bridge Domain 定义一个二层广播域(类似于 VLAN),同时承载默认网关功能。一个 BD 属于一个 VRF,一个 VRF 可以包含多个 BD。
精妙类比:VLAN 就像一个「划定了边界的停车场」——车(数据包)只能在自己的停车场内移动,要去其他停车场必须出停车场走公路(路由器)。Bridge Domain 是「智能停车场」——它知道哪辆车在哪里,且可以跨越多个物理交换机,而不受物理边界限制。
替代了什么:传统 VLAN(802.1Q)。但 BD 更强大:它可以跨多台物理交换机而无需手动 Trunk 配置,并且包含了子网(SVI)的概念。
精准定义:EPG(Endpoint Group)是一组具有相同安全策略需求的端点(服务器、虚拟机、容器)的逻辑集合。端点的成员资格可以基于 VLAN、IP 地址、MAC 地址或虚拟机属性动态决定,与物理端口无关。
精妙类比:想象一家公司按「职能」而非「座位」来分配门禁权限:所有「销售人员」(无论坐在哪层楼、哪个工位)都可以进入 CRM 机房;所有「研发人员」可以进入代码仓库……
这就是 EPG 的核心思想:按「身份/角色」而非「物理位置」分组。
替代了什么:基于 IP 地址的 ACL。传统 ACL 用「源/目的 IP + 端口」来定义策略,当 IP 地址变化(VM 迁移、重新分配)时,ACL 就失效了。EPG 是基于「这台设备是什么」而不是「它的 IP 是什么」来分组,策略跟着身份走,不跟着 IP 走。
精准定义:Contract 定义两个 EPG 之间允许的通信规则(协议、端口、方向)。在 ACI 的「白名单」模型中,没有 Contract 的 EPG 之间默认拒绝所有流量。Contract 由 Subject(主题)和 Filter(过滤器)组成,可以被多个 EPG 复用。
精妙类比:Contract 就像「商业合同」: Web EPG(乙方)和 App EPG(甲方)签了一份合同:「乙方可以通过 TCP 443 端口联系甲方,合同有效期永久有效。」 甲方(App EPG)是「提供方」(Provider),乙方(Web EPG)是「消费方」(Consumer)。 没有合同?对不起,打电话不接。
替代了什么:传统 ACL——但 Contract 是在两个逻辑组之间定义的,而不是在某台具体交换机的某个接口上。一个 Contract 可以自动被编译成数十台 Leaf 上的 TCAM 规则,工程师只需写一次。
精准定义:Application Profile 是一组相关 EPG 及其 Contract 关系的逻辑容器,代表一个完整的应用系统(如「电商平台」包含 Web EPG、App EPG、DB EPG 及它们之间的 Contract)。
精妙类比:就像建筑的「设计图纸」,把所有房间(EPG)和走廊(Contract)都画在一张图上。部署一个新应用,就是在 ACI 中「导入一张设计图」,而不是去每台交换机上手动「砌墙」。
替代了什么:没有直接替代物。这个概念在传统网络中根本不存在——网络工程师不知道(也不关心)某台服务器属于「电商平台的 Web 层」。Application Profile 让网络第一次有了「理解应用」的能力。
新应用上线从「两周」变「两分钟」。APIC 将逻辑策略自动编译成底层 TCAM 规则,无需人工逐台配置。
策略在 APIC 中定义一次,所有节点自动同步。告别「配置漂移」,任何时刻的策略状态都可查询、可验证。
每一次策略变更都有完整的审计日志:谁、在什么时间、做了什么改变。满足合规要求(PCI-DSS、SOX 等)轻而易举。
APIC 提供端到端的健康评分和故障追踪。通过「Troubleshooting Wizard」可以在分钟内定位任意两个端点之间的连通性问题。
管理 100 台服务器和管理 10000 台服务器,在 APIC 中的操作复杂度几乎相同。策略模型不随规模增长而失控。
EPG 之间默认「拒绝一切」,只有显式 Contract 才能开通通信。这天然符合零信任安全模型,无需额外叠加工具。
💡 ACI 的「新概念」不是障碍,它们是钥匙——打开了「让网络真正理解应用意图」的大门。 学会这套语言,你才能和 ACI 「对话」,而不是「命令」它。
前两章我们回答了「为什么」。现在进入「怎么做」——ACI 的三大物理/逻辑支柱:
取代三层架构,实现等价多路径与可预测延迟
集群化的「大脑」,负责策略编译与全局管理
解耦地址与位置,让虚拟机自由迁移
先问一个问题:传统三层架构(Core-Aggregation-Access)当年为什么是主流?
答案很简单——那个时代的流量主要是「南北向」的:用户请求从互联网进来,经过防火墙、负载均衡,打到服务器,数据再原路返回。流量像「电梯」——主要在垂直方向移动,Core 层是唯一的出口,设计成「胖树」(越往上带宽越大)完全合理。
但云计算时代改变了一切:虚拟机克隆、容器编排、分布式数据库……数据中心内部服务器之间的「东西向流量」爆炸式增长。这时传统三层架构的致命缺陷暴露了:
Spine-Leaf 架构用一种优雅的方式解决了这些问题:
这是一个非常关键的区分,很多人会搞混:
APIC 以「三节点集群」方式部署(推荐奇数节点,保证多数投票),三台 APIC 之间保持数据同步,任何一台故障不影响整体工作。
传统网络中,一台服务器的 IP 地址隐含着它的物理位置信息—— 192.168.10.x 的机器在第 10 号 VLAN,而 VLAN 10 只存在于某几台交换机上。 IP 地址 = 身份 + 位置,两者捆绑在一起。
这意味着:当虚拟机从一台物理机迁移到另一台(可能在不同机架、不同 VLAN)时, 要么改变 IP 地址(应用配置需要更新),要么拉长 VLAN(跨交换机 Trunk,管理复杂)。 两种方式都很痛苦。
VXLAN(Virtual Extensible LAN)用一种巧妙的方式解决了这个问题:
| 概念 | 定义 | 类比 |
|---|---|---|
| VTEP VXLAN Tunnel Endpoint |
执行 VXLAN 封装/解封装的节点,在 ACI 中每台 Leaf 都是一个 VTEP,有唯一的物理 IP(TEP 地址) | 收发国际快递的「海关」——负责把国内包裹装箱(封装)或拆箱(解封装) |
| VNI VXLAN Network Identifier |
24-bit 的网络标识符,相当于 VXLAN 版的 VLAN ID,但支持 1600 万个独立网络(vs VLAN 的 4094 个) | 快递箱上的「客户编号」——标明这批货属于哪家公司(哪个租户网络) |
| Underlay | 物理 IP 网络,负责在 VTEP 之间传输 VXLAN 封装后的数据包,只需要 IP 可达即可 | 城市的道路网络——只负责运输,不关心车里装的是什么货 |
| Overlay | 建立在 Underlay 之上的虚拟网络,租户的虚拟机就生活在 Overlay 里,感知不到物理拓扑 | 快递公司的「虚拟网络」——客户只关心货从 A 到 B,不关心经过哪条高速公路 |
| TEP Tunnel Endpoint |
ACI 中每台 Leaf 的物理 IP 地址,用于在 Underlay 中寻址。Proxy TEP 是 Spine 上用于未知目标查询的特殊 IP | 海关的实际地址——邮局(Underlay)通过这个地址把包裹送到正确的海关 |
ACI 使用的是增强版 iVXLAN(internal VXLAN),在标准 VXLAN 头中携带了额外的策略信息字段:
💡 Spine-Leaf 解决了「在哪里转发」,APIC 解决了「谁来定义策略」,VXLAN 解决了「如何让虚拟网络飞翔在物理网络之上」—— 三者共同构成了 ACI 的物理基础。接下来,我们来看策略如何被真正执行:数据包的完整旅程。
前面我们已经了解了 ACI 的核心概念。现在我们要回答一个更深入的问题:
当管理员在 APIC 界面上点击「Web EPG 可以访问 App EPG 的 TCP 443」, 这句话是怎么变成 Leaf 交换机 ASIC 里的硬件转发规则的? ACI 的「白名单」安全模型在底层是如何实现的?
传统网络是「黑名单模型」——默认允许所有流量,通过 ACL 逐条拒绝不需要的。 这就像家门大开,只挡住几个已知的坏人;但新的坏人只要没被写进黑名单,就能自由进出。
ACI 采用「白名单模型(Allow-List)」——默认拒绝所有 EPG 之间的流量, 只有通过 Contract 显式允许的通信才能进行。 这就像家门常锁,只有持有「通行证」(Contract)的人才能进入。
理解 ACI 策略执行的关键,是理解一个叫做 pcTag(Policy Control Tag) 的概念。
| pcTag 范围 | 类型 | 适用场景 |
|---|---|---|
1 – 15 |
系统保留 | 特殊用途:pcTag 0 代表「any」,pcTag 15 代表 0.0.0.0/0 的 L3Out EPG 目的,pcTag 14 代表跨 VRF 流量 |
16 – 16384 |
全局 pcTag(Global Scope) | 跨 VRF 共享服务的 EPG,在整个 Fabric 范围内唯一,供 VRF 路由泄漏场景使用 |
16385 – 65535 |
本地 pcTag(VRF Scope) | 同一 VRF 内的普通 EPG,在 VRF 范围内唯一(不同 VRF 的 pcTag 可以重复) |
现在来回答最核心的问题:管理员在 APIC 中定义的 Contract,是如何一步步变成 Leaf 交换机 ASIC 里的硬件规则的?
除了管理员定义的 Contract 规则,ACI 还会自动创建一组「隐式规则(Implicit Rules)」, 它们构成了安全策略的兜底层。理解这些规则,对于故障排查至关重要。
| 规则名称 | 优先级 | 源 / 目的 | 动作 | 作用说明 |
|---|---|---|---|---|
| class-eq-permit | 3(最高之一) | EPG1 → EPG1(同 EPG 内部) | permit | 同一 EPG 内的端点默认互通,无需 Contract |
| permit ARP unicast | 17 | any → any | permit(仅 ARP) | ARP 单播报文跨 EPG 放行,保证基本网络可达性 |
| permit unknown unicast | 16 | any → BD class | permit | 未知单播泛洪到入向 Leaf,由出向 Leaf 执行策略 |
| any-any-any deny | 21(最低) | any → any | deny + log | 兜底规则:所有未被显式 Contract 允许的 EPG 间流量全部丢弃并记录日志 |
| any-vrf-any deny | 22(比 21 更低) | any → L3Out 0.0.0.0/0 | deny + log | 访问外部网络(0.0.0.0/0 L3Out EPG)时若无 Contract,丢弃流量。仅在启用 Preferred Group 时生效 |
一个 Contract 内部的层级结构如下:
TCAM(三态内容寻址存储器)是交换机中最昂贵的硬件资源之一。 在 ACI 中,每条 Zoning Rule 都消耗 TCAM 空间。 当 EPG 数量达到数百个、Contract 数量达到数千个时,TCAM 资源可能成为瓶颈。
ACI 提供了 Policy Compression(策略压缩) 来优化 TCAM 使用:
默认情况下,一个双向 Contract 需要两条 TCAM 规则(Consumer→Provider 和 Provider→Consumer)。 启用压缩后,两条规则合并为一条,节省 50% TCAM 空间。
当同一个 Contract 被多个 EPG 对复用时,ACI 使用「间接关联」—— 在 Policy Group Table 中存储 EPG 对与标签的映射, 标签再指向实际的 Filter 规则,多个 EPG 对共享同一套 Filter,大幅减少重复规则。
当你需要「VRF 内所有 EPG 都可以访问某个公共服务(如 DNS、NTP)」时, 如果逐个 EPG 配置 Contract,会产生大量重复工作,也会消耗大量 TCAM。
vzAny 是 ACI 提供的优雅解决方案——它代表「某个 VRF 内的所有 EPG 集合」。 一个 Contract 绑定到 vzAny,等价于绑定到该 VRF 内的每一个 EPG, 但只在 TCAM 中生成少量规则(源 pcTag 用 0 代表 any,不随 EPG 数量增长)。
| 场景 | 不用 vzAny | 使用 vzAny | 节省 TCAM |
|---|---|---|---|
| 10 个 EPG 都需访问 DNS EPG | 10 条独立 Contract 关系 → 20 条 TCAM 规则 | vzAny→DNS EPG 1 个关系 → 2 条 TCAM 规则 | 节省 90% |
| 100 个 EPG 全互通(VRF 不强制) | 不可行(C(100,2)=4950 对 Contract) | vzAny→vzAny 1 个 Contract → 2 条规则 | 节省 99.96% |
| VRF Unenforced 模式 | 关闭所有策略强制(危险) | vzAny→vzAny permit all,+ 特定 deny Contract | 灵活可控 |
现实中,一个数据包可能同时匹配多条 Zoning Rule。ACI 按优先级(数字越小优先级越高)决定最终动作:
实战应用: 你可以利用优先级系统实现「先放行大范围,再精确拒绝」—— 例如用 vzAny→vzAny Contract 允许 VRF 内所有通信(优先级 17), 再用 EPG→EPG Contract 配置 Deny 动作(优先级 7)来拒绝特定流量。 高优先级的 EPG 级 Deny 会覆盖低优先级的 vzAny 级 Permit。
当你需要验证策略是否正确下发时,在 Leaf 交换机上执行以下命令:
Leaf1# show zoning-rule scope 2850817
+---------+--------+--------+----------+----------------+---------+-------------------+----------+----------------------+
| Rule ID | SrcEPG | DstEPG | FilterID | Dir | operSt | Name | Action | Priority |
+---------+--------+--------+----------+----------------+---------+-------------------+----------+----------------------+
| 4247 | 32775 | 16390 | 67 | bi-dir | enabled | tenant1:Contract1 | permit | fully_qual(7) |
| 4246 | 16390 | 32775 | 68 | uni-dir-ignore | enabled | tenant1:Contract1 | permit | fully_qual(7) |
| 4250 | 0 | 0 | implicit | uni-dir | enabled | | deny,log | any_any_any(21) |
| 4208 | 0 | 0 | implarp | uni-dir | enabled | | permit | any_any_filter(17) |
+---------+--------+--------+----------+----------------+---------+-------------------+----------+----------------------+
| 字段 | 含义 | 示例解读 |
|---|---|---|
scope |
VRF 的唯一数字 ID(vnid) | 2850817 = tenant1:VRF1 的 VNID |
SrcEPG / DstEPG |
源/目的 EPG 的 pcTag;0 = any | 32775=Web EPG,16390=App EPG,0=任意 EPG |
FilterID |
关联的 Filter 编号;implicit=系统隐式规则 | 67 = HTTPS filter(TCP 443) |
Dir |
方向:bi-dir=双向编程进硬件;uni-dir-ignore=配对规则,与 bi-dir 合并压缩 | bi-dir+uni-dir-ignore 是 Policy Compression 的标志 |
Action |
permit / deny,log / redir / copy | permit=放行;deny,log=拒绝并记录日志 |
Priority |
规则优先级(数字越小越优先) | fully_qual(7) 会覆盖 any_any_any(21) |
💡 Contract 不是「防火墙规则的别名」,它是应用意图的抽象表达—— ACI 的魔法在于:你只需说「Web 应该能访问 App 的 HTTPS」, 系统自动完成从意图到 pcTag 映射、再到 TCAM 硬件规则的全套编译。 这才是「意图驱动网络」的真实含义。
现在我们把前四章的所有知识串联起来,跟随一个真实的数据包, 走完它在 ACI Fabric 中的完整旅程。这是理解 ACI 运作机制最直观的方式。
VM-Web 发出的原始以太网帧(Src MAC: VM-Web,Dst MAC: Default-GW,Src IP: 192.168.1.10,Dst IP: 192.168.2.20,TCP SYN 到 443 端口)到达 Leaf-1 的下行接口。
Leaf-1 根据入向接口 + VLAN 封装识别出该帧属于 Web EPG,将 pcTag 32775 记录在内部数据结构中,准备写入后续 iVXLAN 头的 sclass 字段。这是 ACI「身份打标」的关键一步。
Leaf-1 在本地端点表(Local EP Table)中查找 192.168.2.20:未命中。 这是 TCP 会话的第一个包(SYN),VM-App 从未向 Leaf-1 发送过流量,所以 Leaf-1 没有缓存它的位置。
Leaf-1 也没有 VM-App 的 ARP 记录。此时,ACI 的处理方式与传统网络完全不同: 不广播 ARP,而是将包发往 Spine 的「转发代理」(Forwarding Proxy)。 Spine 上有一个 Anycast TEP 地址(Proxy TEP),专门接收这类「目的未知」的数据包,再通过 COOP 协议查询端点位置。
ACI 默认工作在 Ingress 策略强制模式(Policy Control Enforcement Direction = Ingress)。 这意味着:策略在距离目的端点最近的非边界 Leaf(出向 Leaf)上执行, 而不是在源端的 Leaf 上执行。
为什么这样设计?因为入向 Leaf(Leaf-1)此时还不知道目的端点属于哪个 EPG(dpTag 未知),
无法进行完整的 {sclass, dclass, filter} 三元组匹配。
所以 Leaf-1 暂不执行策略,将判断权交给出向的 Leaf-3。
但是,sclass(源 EPG pcTag = 32775)会被写入 iVXLAN 头,随包一起传递到 Leaf-3—— 这样 Leaf-3 才能知道「这个包来自 Web EPG」。
Leaf-1 将原始以太网帧(含原始 MAC、IP、TCP 头和载荷)整体封装进 iVXLAN:
封装后的数据包经 IS-IS 路由到达 Spine-1。Spine-1 看到外层目的 IP 是 Proxy TEP(10.0.255.255), 知道这是一个「目的地未知」的代理查询请求。
Step ⑥ — COOP 查询:Spine-1 查询本地的 COOP 端点数据库, 搜索内层 IP 192.168.2.20 的位置记录。 由于 VM-App 之前已通过正常通信让 Leaf-3 学习到并上报给 Spine, COOP 数据库返回结果:192.168.2.20 位于 Leaf-3,TEP = 10.0.0.3。
Step ⑦ — 目的改写:Spine-1 将数据包外层 IP 的目的地从 Proxy TEP(10.0.255.255)改写为 Leaf-3 的 TEP(10.0.0.3)。 内层的原始帧和 iVXLAN 头(含 sclass)保持不变。
Step ⑧ — IS-IS 转发:通过 Underlay 的 IS-IS 路由,将改写后的包发往 Leaf-3。 这个转发是纯 Underlay 的 IP 转发,完全不感知租户/EPG/Contract。
Step ⑨ — iVXLAN 解封装:Leaf-3 收到数据包,识别出外层目的 IP 是自己的 TEP(10.0.0.3), 执行 VXLAN 解封装:剥除外层 Ethernet、IP、UDP 头和 VXLAN 头, 恢复出原始以太网帧。同时,从 iVXLAN 头中提取出 sclass = 32775(源 EPG 标签)保留备用。
Step ⑩ — 目的 EPG 分类:Leaf-3 查看原始帧的目的 IP(192.168.2.20), 在本地端点表中查找:VM-App 就连接在 Leaf-3 的某个端口上,属于 App EPG, 对应 pcTag = 16390(dclass)。
至此,Leaf-3 已同时掌握了:sclass = 32775(Web EPG) 和 dclass = 16390(App EPG)。
现在是整个流程中最关键的一步:真正的安全策略执行。
Leaf-3 的 Policy CAM(TCAM 的一个分区)收到三元组查询:
Key: {
VRF Scope: 2850817 ← VRF1 的 VNID
SrcEPG: 32775 ← 来自 iVXLAN sclass
DstEPG: 16390 ← 本地端点表查到的 App EPG pcTag
Protocol: TCP
Dst Port: 443
}
TCAM 硬件执行并行查找,在纳秒级内返回匹配结果:
Rule 4247: src=32775, dst=16390, filter=67(TCP:443)
→ Action: PERMIT ✓
→ Priority: fully_qual(7)
如果此时没有 Contract(或 Contract 不包含 TCP 443),TCAM 会匹配到兜底规则:
Rule 4250: src=0, dst=0, filter=implicit
→ Action: DENY + LOG ✗
→ Priority: any_any_any(21)
Policy-Applied 位在 Leaf-3 设置为 1,标记「策略已执行」。 如果后续还有其他中间节点(如 Service Graph),它们会跳过策略检查。
策略检查通过后,Leaf-3 将原始以太网帧从对应的下行端口(VLAN + 物理端口)发出, VM-App 接收到这个 TCP SYN 包,TCP 握手正式开始。
后续包的处理:TCP 会话建立后,Leaf-1 会通过 COOP 学习到 VM-App 的位置并缓存, 后续同一会话的数据包将直接从 Leaf-1 封装发往 Leaf-3(不再经过 Proxy TEP), 省去了 Spine 的 COOP 查询步骤,延迟进一步降低。
上述流程描述的是「首包」场景(目的端点位置未知)。 当 Leaf-1 已经缓存了 VM-App 的位置时,流程大幅简化:
如果 Web EPG 和 DB EPG 之间没有配置 Contract,VM-Web 尝试访问 VM-DB 会发生什么?
| 节点 | 发生了什么 | 结果 |
|---|---|---|
| VM-Web → Leaf-1 | 原始帧到达,打上 sclass=32775(Web EPG) | 正常封装,发往 Spine |
| Spine-1 | COOP 查询 VM-DB 位置 → 位于 Leaf-2,TEP=10.0.0.2 | 改写目的为 Leaf-2,转发 |
| Leaf-2(出向) | 解封装,识别 dclass=49153(DB EPG);TCAM 查询:{scope, src=32775, dst=49153, TCP:3306} | 无匹配 Contract 规则 → 命中 Rule 4250(隐式 deny-all,优先级 21) |
| Leaf-2 | 丢弃数据包,并生成 ACL 日志记录(deny + log) | VM-DB 收不到 SYN 包,TCP 连接超时 |
| APIC | 汇总 Leaf-2 上报的 deny 日志,在「Tenant → Operational → Packets → L3 Drop」中可查 | 管理员可在 APIC 中快速定位「谁在访问谁」「被哪条规则拒绝」 |
Leaf2# show zoning-rule scope <VRF-VNID>
— 查看当前 VRF 下所有 Zoning Rule,确认是否有对应的 permit 规则Leaf2# contract_parser.py --vrf tenant1:VRF1
— 用人类可读的格式展示所有规则及命中计数,快速定位「被哪条规则拦截」Leaf2# show logging ip access-list internal packet-log deny
— 查看最近被拒绝的数据包日志,确认源/目的 IP、协议、端口
💡 一个数据包在 ACI 中的旅程,是「身份识别 → 位置查找 → 策略执行 → 精确交付」的完美闭环。 没有任何一跳是多余的,每个环节都在做且仅做它该做的事。 这就是为什么 ACI 能在数万端口的规模下保持微秒级的可预测延迟。
这是学习 ACI 过程中绕不开的一个尖锐问题。我们用苏格拉底式辩论来彻底厘清它。
「Google、Facebook、Amazon 等超大规模互联网公司根本不用 Cisco ACI, 他们自建大规模 Spine-Leaf 并用自研 SDN 控制器编排(如 Google B4、Facebook Fabric Aggregator)。 这是否证明 ACI 没有价值?开源方案(SONiC + BGP EVPN)不是更好?」
双方争论的根本原因在于:两类组织对网络的需求存在本质差异。 不理解这个差异,所有比较都是无效的。
「用 SONiC + BGP EVPN 自建,成本更低」——这个结论只计算了硬件采购成本, 忽略了大量隐性成本:
SONiC 专家的市场薪资是 ACI 工程师的 1.5-2 倍, 且需要同时精通 Linux 内核、BGP 协议栈、容器网络。 招募一个 5 人自建方案团队,年成本超过 300 万人民币。
从零搭建一套可生产的 SONiC 自动化平台, 最少需要 6-18 个月的研发验证周期。 这期间业务不等人——ACI 可以在 2-4 周内完成初始部署。
ACI 经过数千家企业客户和 Cisco TAC 的大规模生产验证, 自建方案的 Bug 完全由自己承担。 一次生产网络故障的业务损失,可能远超整套 ACI 采购价格。
自建方案如何向 PCI-DSS QSA(合规审计员)证明策略一致性? 如何导出变更审计日志? 这些需要额外开发合规审计模块,成本不低。
核心工程师离职时,自建方案的「隐性知识」(设计决策、踩坑记录)会大量流失。 ACI 有完整的 Cisco 文档体系,新工程师可快速上手。
SONiC 版本升级、安全漏洞修复、功能迭代…… 自建方案的维护是永久性的工程投入。 ACI 的软件维护成本包含在年度 SmartNet 合同中。
ACI 不是为了让 Google 的网络团队满意而设计的。 它是为了让没有 Google 那样顶级工程师,但依然需要 Google 级别可靠性和自动化的组织服务的。
ACI 的最适合客户通常具备以下特征:
| 特征维度 | ACI 高度适合 | 可能不适合 |
|---|---|---|
| 行业 | 金融(银行、券商、保险)、医疗、制造、政府、大型零售 | 互联网原生公司、云计算服务商 |
| 规模 | 中大型数据中心(50-5000+ 台服务器) | 极小规模(<20 台,用 Meraki 更合适)或超大规模(需自研) |
| 合规要求 | 需满足 PCI-DSS、SOX、HIPAA、等保 2.0/3.0 | 合规要求极简或使用公有云托管合规 |
| 应用特征 | 混合应用(传统 + 现代)、多租户、严格安全隔离需求 | 全云原生、纯 Kubernetes、无需硬件隔离 |
| 团队能力 | 有 Cisco 认证工程师,愿意学习 ACI 体系 | 拥有强大 DevOps 文化,偏好完全开源、代码化基础设施 |
| 风险偏好 | 低风险偏好,倾向于有商业支持的成熟方案 | 高风险容忍,愿意承担自建方案的试错成本 |
公平地说,开源方案确实在特定场景下是更好的选择。以下是客观的对比:
| 评估维度 | SONiC + BGP EVPN(开源方案) | Cisco ACI |
|---|---|---|
| 初期硬件成本 | ✅ 低(白盒交换机,节省 60-70%) | ⚠️ 高(Nexus 9000 系列专有硬件) |
| 厂商锁定 | ✅ 无(开放标准,多厂商选择) | ⚠️ 中(ACI 生态,迁移成本存在) |
| 功能完整性 | ⚠️ 需自行集成(缺少统一 GUI、合规审计等) | ✅ 完整(GUI/API/审计/健康监控一体化) |
| 安全策略模型 | ⚠️ 基于 ACL/防火墙,非意图驱动 | ✅ EPG/Contract 白名单模型,天然符合零信任 |
| 运维复杂度 | ⚠️ 高(需要深厚 Linux/BGP/Python 能力) | ✅ 中(学习曲线存在,但有完整文档和培训体系) |
| 长期 TCO(5 年) | ⚠️ 视团队能力而定,可能高于 ACI | ⚠️ 硬件+许可证+SmartNet,总成本可预测 |
| Kubernetes 集成 | ✅ 优秀(Calico/Cilium 原生支持) | ✅ 良好(ACI CNI/Isovalent 集成,见第七章) |
| AI/GPU 工作负载 | ✅ 灵活(可深度定制 RoCE/ECN 参数) | ✅ 支持(ACI 400G/800G,DLB 动态负载均衡) |
💡 大厂不用 ACI,不是因为 ACI 差——而是因为大厂需要的是 「定制赛车」,而 ACI 是「顶级商务轿车」。 对于 99% 的企业来说,顶级商务轿车才是正确的选择。
过去十年,数据中心网络经历了两次范式革命: 第一次是虚拟化(VMware vSphere),第二次是容器化(Kubernetes)。 现在,第三次革命正在发生——AI 工作负载对网络提出了前所未有的要求。
ACI 的设计者们显然预见到了这种演进压力。本章我们来探讨: ACI 在新时代的定位、局限与应对策略。
先回答一个尖锐的问题:
Kubernetes 有自己的 NetworkPolicy、Service Mesh(Istio/Cilium)可以定义 Pod 间通信策略。 Service Mesh 把策略下沉到应用层,ACI 的 EPG/Contract 模型还有意义吗? 两者是竞争关系还是互补关系?
答案的关键在于理解策略执行的「层次」:
三层策略不是替代关系,而是纵深防御—— 即使 Kubernetes NetworkPolicy 配置错误放通了某个 Pod, ACI 的 EPG Contract 依然可以在硬件层拦截不合规的流量。 这正是金融、医疗等高合规行业需要多层防御的原因。
ACI 提供了多种与 Kubernetes 集成的方案,覆盖从「紧耦合」到「松耦合」的不同需求:
ACI 作为 Kubernetes 的 CNI(容器网络接口)插件。 Pod 直接获得 ACI EPG 身份,Kubernetes NetworkPolicy 被翻译成 ACI Contract。
ACI 与 Isovalent(eBPF 技术的 Cilium 商业版)深度集成。 Cilium 处理 Pod 间 L4/L7 策略,ACI 处理物理 Fabric 层策略,两者共享端点身份信息。
Cisco Nexus One 将 ACI Fabric 与 NX-OS VXLAN EVPN Fabric 统一管理, Kubernetes 集群可以部署在任意 Fabric 上,通过统一策略模型管理。
| 网络功能 | ACI 负责 | Kubernetes / CNI 负责 |
|---|---|---|
| Pod IP 分配 | 分配来自 ACI Bridge Domain 的 IP 子网 | IPAM 请求由 CNI 发起 |
| Pod 间策略 | EPG 间 Contract(硬件线速执行) | Kubernetes NetworkPolicy → 翻译为 ACI Contract |
| 外部访问(Ingress/LoadBalancer) | L3Out 提供外部路由,ACI EPG 管理外部访问策略 | Kubernetes Service/Ingress Controller 定义服务暴露方式 |
| 跨命名空间隔离 | 不同 Namespace 可映射到不同 ACI EPG,硬件隔离 | Namespace 级别 RBAC 和 NetworkPolicy |
| 服务发现(DNS) | 不涉及(ACI 不感知 Service 名称) | CoreDNS 完全由 Kubernetes 管理 |
| 应用层(L7)策略 | 不涉及(ACI 工作在 L2-L4) | Service Mesh(Istio/Cilium)处理 HTTP 级别策略 |
AI/ML 训练工作负载(大语言模型、扩散模型)对网络的要求, 与传统 Web 应用有着根本性的差异:
ACI 在 AI 数据中心场景下,已经具备以下能力,且在持续演进:
Cisco Nexus 9000 系列(N9K-C9316D-GX、N9K-C9332D-GX2B) 支持 400G QSFP-DD 端口,并支持 400G→800G 的演进路径。 ACI 的 Spine-Leaf 架构提供了 AI 训练所需的高对分带宽(Bisection Bandwidth)。
ACI 的 Dynamic Load Balancing 支持 Flowlet 级别的流量分配, 能根据实时拥塞状态动态调整路径——这对 AI 训练的 All-Reduce 集合通信 (大量并发流同时爆发)至关重要,避免 Hash 极化导致的链路不均。
RoCEv2 要求无损以太网(需要 PFC Priority Flow Control + ECN 显式拥塞通知)。 ACI 支持配置 QoS 策略和 PFC,但 AI 数据中心的 RoCE 调优 (PFC Storm 防护、ECN 阈值设置)需要额外专业知识。 Cisco 的 Nexus Hyperfabric 方案针对此场景提供了更专化的支持。
AI 超级计算集群(如 H100/H200 DGX 系统)通常使用「Rail Topology」—— 每台 GPU 服务器有多个上行链路连接不同的 Leaf, 以最大化 All-Reduce 通信的局部性。 ACI 支持此拓扑,但需要配合 Cisco UCS Director 或 Nexus Dashboard 进行专业化编排。
Cisco 清醒地认识到,单靠 ACI 无法完全满足 AI 数据中心的所有需求, 因此推出了 Nexus Hyperfabric——一个专门面向 AI/ML 工作负载的云托管网络解决方案:
观察 ACI 近年来的演进方向,可以看到一个清晰的战略趋势: 从「硬件绑定的 SDN」向「云托管的网络自动化平台」演进。
Cisco Nexus Dashboard 正在成为统一的运营平台—— 不仅管理 ACI Fabric,还管理 NX-OS VXLAN EVPN、 远程 Leaf、Multi-Pod、Multi-Site。 APIC 的职责逐渐聚焦于「ACI 策略引擎」, 而 Nexus Dashboard 承担「全局可视化与编排」。
ACI 支持将 APIC 以虚拟机形态(vAPIC)部署在 AWS、VMware ESXi 或 Nutanix 上, 减少物理 APIC 服务器的机架占用和 TCO。 这体现了 Cisco 将「控制平面云化」的战略—— 让管理平面离开数据中心、运行在公有云上,数据平面仍在本地硬件执行。
Cisco Nexus One 通过 ACI BGW(Border Gateway)节点, 将 ACI Fabric 的 EPG/Contract 策略扩展到非 ACI 的 NX-OS VXLAN EVPN 域。 这意味着企业无需全面替换现有 NX-OS 设备, 可以渐进式地引入 ACI 策略模型,降低迁移风险。
ACI 与 HashiCorp Terraform、Red Hat Ansible 的深度集成, 让网络配置以「代码」形式存储在 Git 仓库中, 通过 CI/CD 流水线自动部署和回滚。 这打通了「网络团队」与「DevOps 团队」之间的技术隔阂, 让网络变更进入软件工程的协作生态。
ACI 不会被 Kubernetes 取代——就像交通法规不会被 GPS 取代一样。 GPS(Service Mesh)告诉你怎么走最快, 交通法规(ACI)决定你能不能走这条路。 两者在不同的层次上工作,缺一不可。
在云原生架构中,ACI 的价值体现在以下场景:
💡 云原生和 AI 时代没有让 ACI 变得过时——它们让 ACI 找到了更清晰的定位: 作为混合数据中心的「物理安全地基」,与 Kubernetes、Service Mesh 形成互补的纵深防御体系。 Cisco 也在用 Nexus Dashboard、Hyperfabric、Nexus One 持续构建下一代网络自动化平台。
学习的最终检验是:你能不能把它教给别人? 本章用三种形式帮你完成对 ACI 知识体系的最终整合: 概念地图串联所有章节、苏格拉底挑战检验理解深度、 电梯陈述和白板脚本帮你随时随地清晰表达。
从「问题」出发,经「设计哲学」→「架构」→「对象模型」→「应用场景」,所有知识点的逻辑连接:
现在角色反转。以下是一个「聪明但零基础同事」会问你的挑战性问题。 试着在心里回答每一个,再展开查看参考答案:
Cisco ACI 是一个意图驱动的数据中心网络系统——
管理员只需在 APIC 中声明「Web 应用可以访问数据库的 HTTPS 端口」,
系统自动将这个意图编译成数百台交换机上的硬件规则,
并在整个生命周期内保持一致、可审计、可快速变更。
它解决的核心问题是:让网络策略像代码一样可管理,而不是像注释一样散落在每台设备的配置文件里。
当你需要向一位刚到岗的同事或业务负责人解释「ACI 是什么、为什么用它」时, 使用以下脚本,配合简单白板图示:
「想象你管着一栋200台服务器的数据中心。每次要给新应用开放网络访问, 你得登录十几台交换机、手动加ACL规则。改一次要两周,还经常出错。 画一排交换机,每台上面写满问号」
「ACI 的核心想法是:把所有的策略定义集中到一个地方——APIC 控制器—— 你在这里说『Web组可以访问App组的HTTPS』,APIC 把这句话自动翻译成 所有交换机上的硬件规则。画一个 APIC 框,用箭头指向所有交换机」
「ACI 里有两个关键概念:EPG 就是『按功能分组的服务器群』—— 不管服务器 IP 怎么变、迁移到哪台物理机,只要它在 Web组,就拥有 Web组的权限。 Contract 就是『两个组之间的通行证』——没有通行证,默认不能通信。 画两个圆圈(Web组/App组),中间画一张'合同'」
「用了 ACI 之后,新应用上线从两周缩短到两分钟; 安全审计不再需要登录一百台设备, APIC 直接导出所有策略的变更记录。 而且每台交换机的配置永远和 APIC 保持一致,不会出现『这台和那台规则不一样』的情况。」
「一句话总结:ACI 让网络第一次可以『读懂』应用的需求, 而不是让应用去适应网络的限制。」
💡 费曼学习法的终极检验: 当你能用一张白板、三分钟、让一个零基础的同事听懂 ACI, 你才真正掌握了它。知识不是记住的,是能教出去的。
我们从「一台新服务器上线需要登录 20 台交换机」的痛苦出发, 用第一性原理问了最简单的问题: 「数据中心网络本质上要做什么?」
传统网络把「复杂性」藏进了每台设备的配置文件,让网络变成了一个没有人能完全看清的黑盒
把「意图」从硬件中解放出来——在一个地方声明「谁能和谁通信」,让机器去负责落地执行
ACI 继续演进为「物理安全地基」,与 Kubernetes、Service Mesh、AI Fabric 共同构成多层次的现代数据中心
ACI 不是终点,它是「让网络工程师从配置工人变成架构师」的一次范式跃迁。 当你不再需要思考「在哪台交换机上加哪条规则」, 你才有精力去思考「这个系统的安全边界应该如何设计」。
↑ 回到顶部重读本文涉及的所有核心术语,按字母顺序排列,提供精准定义与通俗类比。
| 术语 | 全称 / 缩写 | 精准定义 | 通俗类比 |
|---|---|---|---|
| ACI | Application Centric Infrastructure | Cisco 的软件定义数据中心网络解决方案,以应用为中心,通过 APIC 集中管理策略并自动下发到硬件 | 数据中心网络的「智能楼宇管理系统」 |
| APIC | Application Policy Infrastructure Controller | ACI 的集中式管理控制器,负责策略编译与下发,不参与数据平面转发。以三节点集群运行 | 城市规划委员会——制定规则但不指挥具体交通 |
| Application Profile | — | 包含一组相关 EPG 及其 Contract 关系的逻辑容器,代表一个完整应用系统 | 建筑的「设计图纸」,把所有房间和走廊画在一张图上 |
| BD(Bridge Domain) | Bridge Domain | 定义二层广播域和默认网关,一个 BD 属于一个 VRF,可跨多台物理交换机,是 VLAN 的升级版 | 「智能停车场」——知道每辆车在哪,且不受物理边界限制 |
| BGP EVPN | Border Gateway Protocol Ethernet VPN | ACI 中用于 Multi-Pod 跨 Pod 路由分发、端点位置信息交换的控制平面协议 | 跨城市分公司之间的「员工通讯录同步系统」 |
| Contract | — | 定义两个 EPG 之间允许通信的规则集(协议、端口、方向),ACI 白名单模型的核心。由 Subject 和 Filter 组成 | 两个部门之间的「正式通行证合同」 |
| COOP | Council of Oracle Protocol | ACI Spine 上维护的端点位置数据库协议,记录每个 IP/MAC 在哪台 Leaf 上,供 Leaf 查询 | Spine 是「端点位置的神谕」,任何 Leaf 可来询问 |
| DLB | Dynamic Load Balancing | ACI 基于实时拥塞状态动态调整流量路径的负载均衡机制,支持 Flowlet 粒度,优于传统静态 Hash | 实时更新的「交通流量导航」,而非固定路线规划 |
| ECMP | Equal Cost Multi-Path | 同时利用多条等价路径转发流量的技术,Spine-Leaf 中所有链路同时活跃,消除 STP 造成的带宽浪费 | 高速公路同时开放所有车道,不像传统网络只允许一条 |
| EPG | Endpoint Group | 具有相同安全策略需求的端点集合,成员资格基于身份(VLAN/IP/VM属性)而非物理位置,与 pcTag 关联 | 机场的「乘客舱位区域」——基于票价类别而非座位号分组 |
| Filter | — | Contract 中定义流量匹配规则的对象,包含 EtherType、协议类型(TCP/UDP/ICMP)、源/目的端口等字段 | 合同附件中的「具体条款」——允许哪种方式的通信 |
| iVXLAN | internal VXLAN | ACI 使用的增强版 VXLAN,在标准 VXLAN 头中扩展了 sclass(源 EPG pcTag)和 Policy-Applied 位,用于携带策略信息 | 在标准快递箱上额外贴了「发件人身份标签」的特殊快递 |
| IS-IS | Intermediate System to Intermediate System | ACI Fabric 内部 Underlay 使用的链路状态路由协议,用于 Leaf/Spine 之间的拓扑发现和 TEP 地址可达性 | 数据中心内部道路的「GPS 地图数据库」 |
| Leaf | — | Spine-Leaf 架构中的接入层交换机,连接服务器、VM、存储等端点,同时是 VTEP 和策略执行点 | 公司楼层的「前台接待」——直接接触外来访客(端点) |
| MIT | Management Information Tree | APIC 中存储所有管理对象(MO)的层级树结构,从 Root 到 Tenant/VRF/EPG,每个对象有唯一 DN(Distinguished Name) | 公司的「组织架构图」,每个人(MO)都有唯一的职位路径 |
| MP-BGP | Multi-Protocol BGP | ACI 中用于在 Spine 之间分发外部路由(VPNv4/v6)的协议,Spine 充当路由反射器(RR) | Spine 交换机之间的「国际快递路由协调系统」 |
| Nexus Dashboard | — | Cisco 统一运营平台,可管理 ACI、NX-OS VXLAN EVPN、远程 Leaf 等多种 Fabric,提供全局可视化和应用市场 | 整个数据中心网络的「统一仪表盘」,取代分散的管理界面 |
| pcTag(sclass) | Policy Control Tag / Source Class | ACI 中每个 EPG 的唯一数字标识符,写入 iVXLAN 头随包传递,TCAM 策略规则以 pcTag 为匹配键 | 机场登机牌上的「舱位区域码」,安检按此区分待遇 |
| Policy Compression | — | ACI 优化 TCAM 使用的技术:双向规则压缩(-EX及以上)将两条规则合一;策略表压缩(-FX及以上)允许多个 EPG 对共享 Filter | 把相同条款的合同共用一份附件,节省纸张(TCAM) |
| Proxy TEP | Proxy Tunnel Endpoint | Spine 上的 Anycast IP 地址,专门接收目的端点位置未知时的数据包,通过 COOP 查询目标位置后改写目的地 | 快递中转站的「总派发室」——不知道具体地址时先发这里 |
| RoCEv2 | RDMA over Converged Ethernet v2 | AI 训练集群使用的高性能传输协议,基于 UDP,支持 RDMA(远程直接内存访问),需要无损以太网(PFC+ECN) | 「超高速直达专线」——直接读写对方内存,不经过操作系统 |
| Spine | — | Spine-Leaf 架构中的汇聚层交换机,仅连接 Leaf,承载 Underlay 转发和 COOP 端点数据库,不直连服务器 | 城市的「核心高速公路」——只连接各区域出口,不进小区 |
| Subject | — | Contract 的中间层,包含一个或多个 Filter,定义流量是否双向应用及服务图(Service Graph)插入点 | 合同中的「具体条款章节」,每章规定一类通信方式 |
| TCAM | Ternary Content Addressable Memory | 交换机 ASIC 中用于存储策略规则(Zoning Rule)的专用硬件内存,支持三态(0/1/X)并行查询,纳秒级匹配 | 交换机内置的「超高速法规手册」,任何包进来瞬间查到对应规则 |
| TEP | Tunnel Endpoint | ACI 中每台 Leaf/Spine 的物理 IP 地址,用于 Underlay 网络中的 VXLAN 隧道寻址 | 邮局系统里每个邮局的「实际地址」 |
| Tenant | — | ACI 中最顶层的管理和策略隔离边界,不同 Tenant 的资源默认完全隔离,可代表客户/业务域/组织单元 | 写字楼里各自独立的「公司办公室」,共享楼宇设施但互不进入 |
| VNI | VXLAN Network Identifier | 24-bit 的 VXLAN 网络标识符,区分不同虚拟网络,支持约 1600 万个独立网段,是 VLAN(4094个)的数量级升级 | 快递箱上的「客户编号」,区分不同公司(租户网络)的货物 |
| VRF | Virtual Routing and Forwarding | 在同一台设备上实现多个独立路由表的技术,ACI 中 VRF 作为 Tenant 下的逻辑对象,在 APIC 中集中管理 | 同一家公司不同项目的「独立内部通讯录」,号码可以重复 |
| VTEP | VXLAN Tunnel Endpoint | 执行 VXLAN 封装/解封装的网络节点,ACI 中每台 Leaf 都是一个 VTEP,对应一个唯一的 TEP IP 地址 | 海关「检查站」——出境时封装(打包),入境时解封装(拆包) |
| vzAny | vz Any(Managed Object) | 代表 VRF 内所有 EPG 集合的特殊对象,Contract 绑定到 vzAny 等价于绑定到该 VRF 内每个 EPG,只生成极少 TCAM 规则 | 「全体员工通知」——一次发送,所有人(EPG)收到 |
| VXLAN | Virtual Extensible LAN | 将以太网帧封装进 UDP 数据包的隧道技术,24-bit VNI 支持 1600 万虚拟网络,实现 Overlay/Underlay 解耦 | 把信件(原始帧)装进快递信封(UDP),邮局只看信封地址 |
| Zoning Rule | — | APIC 将 Contract 编译后下发到 Leaf TCAM 中的具体策略条目,格式为 {VRF Scope, SrcEPG pcTag, DstEPG pcTag, Filter} → Action | 交通法规被「翻译」成路口红绿灯的具体信号时序 |