2. 数据中心网络架构与自动化需求
要理解数据中心网络为什么必须走向自动化,不能只从“设备多、命令长”这个角度出发,而要先看清现代数据中心网络本身的架构形态。Spine-Leaf 改变了传统三层网络的收敛方式,VXLAN 改变了二层网络的边界,EVPN 改变了控制平面的学习方式,多租户则改变了网络资源的分配与隔离方式。这四者叠加之后,网络从“一台台设备的集合”变成了“一张需要整体一致性的分布式系统”,自动化正是维持这种一致性的必要手段。
Spine-Leaf:把网络变成可预测的转发矩阵
传统数据中心常采用“核心—汇聚—接入”三层结构,接入交换机上行到汇聚,汇聚再上行到核心。这种结构的问题在于:东西向流量(服务器之间的流量)需要经过汇聚甚至核心,路径长度不一致,收敛比难以控制,扩容时往往要动核心层。Spine-Leaf 采用两层 CLOS 结构:每台 Leaf 交换机与所有 Spine 交换机互联,服务器只接 Leaf,Leaf 之间不直连。任意两台 Leaf 上的服务器通信,路径固定为“源 Leaf → 任一 Spine → 目的 Leaf”,跳数恒定为三跳。
这种结构的价值在于可预测性。假设一个 Pod 内有 4 台 Spine、16 台 Leaf,每台 Leaf 以 100G 上行到每台 Spine,则每台 Leaf 上行带宽为 400G;若每台 Leaf 下联 48 台 25G 服务器,下行总带宽为 1200G,收敛比约为 3:1。这个比例是设计参数,不是运行中随机变化的量。但要让 16 台 Leaf 上的 VLAN、网关、ACL、路由策略保持一致,手工配置的出错概率随设备数量线性上升。自动化在这里的第一个驱动力就是:用同一份意图模板批量生成每台 Leaf 的配置,保证对称性和一致性。
VXLAN:二层网络从“物理位置”中解耦
Spine-Leaf 是纯三层转发结构,但很多业务仍需要二层网络,例如虚拟机迁移时要求 IP 和 MAC 不变。VXLAN 用 UDP 封装把二层帧承载在三层网络之上,每个 VXLAN 网络用 24 位 VNI 标识,理论上可支持约 1600 万个网段,远超 VLAN 的 4094 个。VTEP(VXLAN Tunnel Endpoint)通常位于 Leaf 交换机上,负责封装和解封装。
VXLAN 带来的直接后果是:网络边缘从“物理端口所属 VLAN”变成了“VTEP 上的 VNI 映射”。同一 VNI 的终端可以分布在任意 Leaf 下,二层域不再受物理位置约束。但这也意味着,新增一个租户或一个网段,不再是“在某台交换机上建一个 VLAN”,而是要在所有可能承载该 VNI 的 VTEP 上建立一致的 VNI 到 VLAN 映射、配置对应的二层网关和三层网关。手工逐台配置时,漏配一台 Leaf 就会导致该 Leaf 下的终端无法通信,且故障现象往往表现为“部分主机不通”,排查成本很高。
EVPN:用 BGP 控制平面替代泛洪学习
VXLAN 本身只定义了数据平面封装格式,并没有规定 VTEP 之间如何互相学习 MAC 地址和 ARP 信息。早期实现依赖数据平面泛洪和学习,存在泛洪风暴、表项老化不一致等问题。EVPN 把 MAC/IP 可达性信息作为 BGP 路由发布,用 MP-BGP 的 EVPN 地址族在 VTEP 之间交换。每条 MAC/IP 通告携带路由目标(Route Target,RT)和路由区分符(RD),RT 决定哪些 VTEP 接收这条路由。
EVPN 的关键机制包括:Type-2 路由发布 MAC/IP 绑定,Type-3 路由用于 VTEP 自动发现和头端复制列表构建,Type-5 路由用于发布 IP 前缀实现三层互通。以租户 A 的 VNI 10010 为例,Leaf-1 和 Leaf-3 上配置相同的 RT 65000:10010,Leaf-1 学到本地 VM 的 MAC 后,通过 EVPN Type-2 路由通告给 Spine(作为路由反射器),Spine 再反射给 Leaf-3。Leaf-3 收到后安装到本地 EVPN 表,后续发往该 MAC 的流量直接封装进 VXLAN 隧道,不再泛洪。
这里自动化的驱动力非常具体:RT、RD、VNI、网关地址、BGP 邻居关系必须在所有 Leaf 上严格匹配。RT 配错一位,租户 A 的路由就可能被租户 B 的 VTEP 接收,造成路由泄露;RD 冲突则可能导致相同 MAC 的路由互相覆盖。这些参数之间存在强关联,手工维护时很难保证跨设备一致性。
多租户:隔离维度从“设备”变成“参数组合”
多租户场景下,同一套物理 Spine-Leaf 要承载多个租户,每个租户拥有独立的 VNI、子网、RT、网关和 ACL。租户之间的隔离不再依赖独立物理设备,而是依赖 VNI 隔离、RT 隔离和 ACL 过滤三层机制。假设有 50 个租户,每个租户 3 个网段,则共有 150 个 VNI、150 组 RT、150 个网关地址,分布在 16 台 Leaf 上,参数实例接近 2400 个。任何一个参数在某一台 Leaf 上不一致,都可能造成该租户部分网段不通或跨租户泄露。
更复杂的是变更场景。新增一个租户,需要:分配 VNI 段和 RT 段、在每台 Leaf 上创建 VNI 到 VLAN 映射、配置 EVPN 实例、配置 Anycast 网关、下发 ACL、验证 BGP EVPN 邻居状态和路由数量。手工执行时,这些步骤分散在 16 台设备上,且顺序和参数必须一致。自动化的价值在于把“租户”作为一个整体对象来管理,而不是把“每台设备上的每段配置”作为管理单元。
自动化驱动的具体落点
综合来看,Spine-Leaf 提供了对称的物理拓扑,VXLAN 提供了可扩展的虚拟网络标识,EVPN 提供了基于 BGP 的控制平面,多租户提供了资源隔离需求。四者共同把网络配置从“设备级”推向“网络级”。自动化的具体落点包括:
- 拓扑与参数一致性:用同一份拓扑模型生成所有 Leaf 的 Underlay 路由、BGP 邻居和 VTEP 地址,避免手工逐台配置造成的非对称。
- 租户意图到设备配置的映射:输入租户名称、VNI、子网、RT,自动展开为每台 Leaf 上的 VNI 映射、EVPN 实例、Anycast 网关和 ACL。
- EVPN 路由策略校验:自动检查各 Leaf 的 RT 导入导出策略是否与租户定义一致,防止路由泄露或缺失。
- 变更影响分析:修改一个 VNI 或 RT 前,自动计算受影响的 Leaf、租户和网段,生成变更范围。
- 配置验证:下发后自动采集各 Leaf 的 EVPN 路由表、VXLAN 隧道状态和 BGP 邻居状态,与预期模型比对。
示例:租户 A 的自动化参数模型(教学示例,非实测数据)
tenant: tenant-a
vni: 10010
subnet: 10.10.1.0/24
gateway: 10.10.1.1/24
rt_import: 65000:10010
rt_export: 65000:10010
rd: 10.0.0.1:10010
leaf_scope: [Leaf-1, Leaf-2, Leaf-3, Leaf-4]
acl: allow 10.10.1.0/24 -> 10.10.1.0/24; deny any -> 10.20.0.0/16
控制器读取该模型后,在每台 Leaf 上生成对应的 VNI 映射、EVPN 实例、Anycast 网关和 ACL。验证时检查每台 Leaf 的 EVPN Type-2 路由数量是否等于该租户在本 Leaf 下的 MAC 数量,以及 RT 是否与模型一致。
判断自动化是否真正落地,可以看一个简单指标:新增一个租户时,工程师需要手工登录的设备数量。如果仍然是“每台 Leaf 都要登”,说明自动化只做到了脚本化,没有做到模型驱动。真正的自动化应当让工程师只维护租户意图,设备级配置由系统展开和校验。
Spine-Leaf、VXLAN、EVPN 和多租户并不是四个独立的技术点,而是一套相互依赖的架构组合。Spine-Leaf 决定了转发路径的对称性,VXLAN 决定了网络标识的可扩展性,EVPN 决定了控制平面的可达性传播方式,多租户决定了资源隔离的粒度。它们共同把数据中心网络从“设备配置的集合”变成了“需要全局一致性的分布式系统”。自动化的驱动力,正来自这种全局一致性要求与手工配置能力之间的根本矛盾。