云计算网络架构演进

云计算的本质是将计算、存储、网络资源通过虚拟化技术池化后以服务形式交付给用户。其中,网络虚拟化是最复杂、最具挑战性的环节——它需要在一张共享的物理网络上为成千上万的租户构建安全隔离、弹性可扩展、高性能的虚拟网络环境。

本文将从技术演进脉络云厂商实践两个维度,系统梳理云计算网络架构从经典网络到 VPC、从软件转发到软硬一体化、从数据中心网络到云边端一体的完整演进历程。

1. 前云时代:传统数据中心的网络困境

1.1 传统三层网络架构

在云计算出现之前,数据中心网络采用经典的核心-汇聚-接入(Core-Aggregation-Access)三层架构。这种架构源自企业园区网络设计,核心层负责高速转发,汇聚层承上启下并部署安全/负载均衡等服务节点,接入层连接服务器。

这种架构在面对传统企业应用时运行良好,但在虚拟化时代暴露了三个根本性矛盾:

矛盾一:虚拟机迁移与二层网络

虚拟化技术带来的核心需求之一是虚拟机热迁移——在不中断业务的前提下将运行中的虚拟机从一台物理机迁移到另一台。热迁移要求虚拟机的 IP 地址和 MAC 地址在迁移前后保持不变,原因有三:

  • TCP 连接保活:虚拟机上运行的应用可能持有大量 TCP 长连接(如数据库连接池、HTTP Keep-Alive),IP 地址变化意味着所有连接瞬间断开,应用层无法优雅处理。
  • DNS 缓存一致性:客户端和中间件(如 Nginx、Consul)缓存了虚拟机 IP 对应的 DNS 记录,IP 变更后缓存未过期期间流量会持续发送到旧地址。
  • 配置管理成本:IP 变更后需要同步更新防火墙规则、负载均衡后端列表、监控告警目标等大量关联配置,运维负担极重。

然而,IP 子网是二层概念——同一子网内的主机直接通过 ARP 解析 MAC 地址通信,不需要经过三层网关转发。这意味着迁移源和迁移目标必须位于同一个二层广播域

在传统三层架构中,这就产生了根本性矛盾:

  • 跨汇聚层迁移不可能:分属不同汇聚层的两个接入层交换机之间必须经过核心层三层转发,IP 子网无法跨越三层边界延伸。
  • 同汇聚层迁移受 STP 限制:即使在同一个汇聚层下,STP(生成树协议)也会阻塞冗余链路以防环路,导致所有流量只能走单条活跃链路。

STP 的问题:STP 通过选举根桥、阻塞冗余端口来消除二层环路。即便物理上部署了多条上行链路(如接入交换机双上联汇聚),也永远只有一条链路处于转发状态,其余全部被阻塞。假设一台 48 口接入交换机有 2 条 10G 上行链路,STP 阻塞其中一条后,上行带宽从 20G 骤降至 10G,带宽利用率仅 50%。

厂商私有方案:为规避 STP 的限制,厂商推出了 IRF(H3C)、vPC(Cisco)、M-LAG(华为)等设备虚拟化技术,将两台物理交换机虚拟成一台逻辑设备,从而消除环路避免 STP 阻塞。但这些方案存在共同局限:要求特定的拓扑形状(如必须两台汇聚做虚拟化)、扩展性受限(虚拟化成员数量有上限)、跨厂商不兼容。

传统三层架构下虚拟机迁移的困境: ┌──────────────────────────────────────────────────┐ │ Core Switch (三层边界) │ │ 子网无法跨越此边界! │ └────────┬──────────────────────────┬──────────────┘ │ (STP 阻塞) │ ┌────────┴────────┐ ┌───────┴────────┐ │ Agg Sw-1 │ ✗ │ Agg Sw-2 │ │ VLAN 100,200 │───────→│ VLAN 300,400 │ ← 跨汇聚层 │ (Subnet A) │ 无法 │ (Subnet B) │ 迁移不可能! └────────┬────────┘ 迁移 └───────┬────────┘ │ │ ┌────────┴────────┐ ┌───────┴────────┐ │ Acc Sw-1 │ │ Acc Sw-2 │ │ ┌──────────┐ │ │ ┌──────────┐ │ │ │ VM-1 │───┼──?─────┼→ │ VM-2 │ │ │ │10.1.1.10 │ │ 迁移? │ │10.3.1.10 │ │ │ └──────────┘ │ │ └──────────┘ │ └─────────────────┘ └────────────────┘ 同汇聚层迁移: ┌────────────────────────────────────────────┐ │ Agg Switch (STP 阻塞冗余链路) │ │ ┌────────┐ ┌────────┐ │ │ │ Port-1 │ ✗(BLK) │ Port-2 │ ← STP阻塞 │ │ └───┬────┘ └────┬───┘ │ └──────┼───────────────────┼────────────────┘ │ │ (阻塞) ┌──────┴──────┐ ┌─────┴──────┐ │ Acc Sw-1 │ │ Acc Sw-2 │ │ VM可迁移✓ │─────│ VM可迁移✓ │ 只能走单链路 └─────────────┘ └────────────┘ 带宽减半!

矛盾二:VLAN 数量瓶颈

VLAN(Virtual Local Area Network)通过 IEEE 802.1Q 标准在以太网帧中插入一个 4 字节的标签实现网络隔离。其中 VLAN ID 字段仅占 12 比特,取值范围 0~4095,可用 VLAN 最多 4094 个(VLAN 0 和 4095 为保留值)。

在传统企业网络中,4094 个 VLAN 绰绰有余——一个企业通常只有几十到几百个部门或业务区域需要隔离。但在公有云场景下,这个数字远远不够:

  • 多租户隔离需求:每个租户至少需要一个独立的 VLAN 来隔离自己的虚拟网络。一个中等规模公有云可能有 10 万+租户,大型公有云可达百万级。
  • 租户多网络需求:一个租户可能需要多个 VLAN(如生产环境、开发环境、数据库网段),实际需求量是租户数 × 平均网络数。
  • 跨可用区延伸:VLAN 需要在不同可用区的交换机上配置相同的 VLAN ID,多个租户的 VLAN 在核心设备上交叉穿透,管理和排障极其复杂。

简单计算:假设一个公有云有 10 万租户,每个租户平均需要 3 个隔离网络,则需要 30 万个隔离域,远超 VLAN 的 4094 上限。

IEEE 802.1Q 帧格式: ┌─────────┬──────────┬──────────────┬────────────────┐ │ Dest MAC│ Src MAC │ 802.1Q Tag │ Type/Data │ │ (6B) │ (6B) │ (4B) │ │ └─────────┴──────────┼──────────────┼────────────────┘ │ │ ┌────┴──────────────┴────┐ │ 802.1Q Tag (4 Bytes) │ ├────┬─────┬─────────────┤ │TPID│ PCP │ VLAN ID │ │2B │ 3b │ 12 bit │ ← 仅12位! │ │ │ 0~4095 │ 最多4096个 └────┴─────┴─────────────┘ 公有云规模 vs VLAN容量: ┌─────────────────────────────────────────┐ │ 租户数 隔离网络需求 VLAN够不够? │ ├─────────────────────────────────────────┤ │ 100 ~300 ✓ 足够 │ │ 1,000 ~3,000 ✗ 不够 │ │ 10,000 ~30,000 ✗✗ 远远不够 │ │ 100,000 ~300,000 ✗✗✗ 完全不够│ ├─────────────────────────────────────────┤ │ VLAN上限: 4094 │ │ VXLAN上限: 16,777,216 (1600万) │ └─────────────────────────────────────────┘

矛盾三:广播泛洪

VLAN 的广播隔离机制是按 VLAN ID 切分广播域——同一个 VLAN 内的广播报文(ARP 请求、DHCP Discover 等)只在该 VLAN 内泛洪,不会泄漏到其他 VLAN。但这个机制在云数据中心中产生了严重的扩展性问题:

  • 核心设备必须放通所有 VLAN:在核心-汇聚-接入架构中,核心交换机和汇聚交换机作为中转节点,需要承载所有租户的流量,因此必须 Trunk 放通所有 VLAN。一台核心交换机上可能配置了上千个 VLAN。
  • 未知单播泛洪:当交换机收到一个目的 MAC 地址不在 MAC 地址表中的帧时,会将其在所属 VLAN 的所有端口上泛洪。在虚拟机频繁创建/迁移/销毁的云环境中,MAC 地址表不断变化,未知单播泛洪频繁发生。
  • ARP 广播风暴:每台虚拟机首次访问同子网目标时都会发出 ARP 广播请求。在拥有数千台虚拟机的大二层网络中,ARP 广播量可观。更严重的是,某些异常场景(如 ARP 欺骗、网络环路)会触发广播风暴,瞬间消耗整网带宽。
  • 故障爆炸半径大:任何一个 VLAN 内的广播风暴都会影响该 VLAN 经过的所有设备。由于核心设备放通了所有 VLAN,一个 VLAN 的广播风暴可能拖垮整网性能。
广播泛洪在云数据中心的扩散路径: ┌───────────────────────────────────────────────────┐ │ Core Switch │ │ Trunk: VLAN 1~4000 (放通所有租户VLAN) │ │ ┌──────────────────────────────────────────┐ │ │ │ ← 广播报文在所有4000个VLAN端口上泛洪! → │ │ │ └──────────────────────────────────────────┘ │ └────────┬──────────────────────────┬──────────────┘ │ │ ┌────────┴────────┐ ┌───────┴────────┐ │ Agg Sw-1 │ │ Agg Sw-2 │ │ VLAN 1~2000 │ │ VLAN 1~4000 │ │ ↓ 广播冲击 │ │ ↓ 广播冲击 │ └────────┬────────┘ └───────┬────────┘ │ │ ┌────────┴────────┐ ┌───────┴────────┐ │ Acc Sw-1 │ │ Acc Sw-2 │ │ 租户A的VM │ │ 租户B的VM │ │ ↓ ARP风暴冲击 │ │ ↓ ARP风暴冲击 │ │ CPU中断飙升 │ │ CPU中断飙升 │ │ 业务性能下降 │ │ 业务性能下降 │ └─────────────────┘ └────────────────┘ 问题本质: - 1个VLAN的广播 → 影响所有放通该VLAN的设备 - 核心设备放通全部VLAN → 任何VLAN的广播都冲击核心 - 1个租户的异常 → 所有租户受影响 (爆炸半径=全网)
┌──────────┐ │ Core │ │ Switch │ └─────┬─────┘ ┌──────┴──────┐ ┌────┴────┐ ┌────┴────┐ │Agg Sw-1 │ │Agg Sw-2 │ ← 汇聚层(STP阻塞冗余链路) └────┬────┘ └────┬────┘ ┌────┴────┐ ┌────┴────┐ │Acc Sw-1 │ │Acc Sw-2 │ ← 接入层 └────┬────┘ └────┬────┘ ┌────┴────┐ ┌────┴────┐ │Server-1 │ │Server-2 │ └─────────┘ └─────────┘ 问题: STP阻塞链路 / VLAN仅4K / 广播泛洪

1.2 大二层网络:治标不治本

为解决虚拟机迁移问题,业界尝试了大二层网络方案,通过 TRILL、SPB 等协议在三层网络上构建二层连通性。但这些方案本质上仍然受限于 VLAN 的 4K 瓶颈,且协议复杂度大幅增加。真正的突破,要等到 Overlay 技术的出现。

2. Overlay 革命:网络虚拟化的技术基石

2.1 Overlay 技术原理

Overlay(叠加网络)的核心思想是:不改变底层物理网络(Underlay),在服务器端通过隧道封装技术构建虚拟的二层或三层网络

具体来说,Overlay 将原始报文(租户的二层以太帧)封装在外层 UDP/IP 报文中,通过物理三层网络传输。解封装后,租户看到的是完整的二层连通性,对底层网络拓扑完全无感知。

2.2 VXLAN:事实上的标准

在多种 Overlay 封装格式(VXLAN、NVGRE、STT、Geneve)中,VXLAN(Virtual eXtensible LAN) 成为云网络的事实标准:

特性VXLANNVGRESTT
封装格式MAC-in-UDPMAC-in-GREMAC-in-TCP
租户标识VNI(24bit,约 1600 万)VSID(24bit)Context ID(64bit)
硬件友好度高(标准 UDP,可 ECMP)低(GRE,需特殊处理)低(伪 TCP 头)
业界采用广泛(AWS/阿里云/UCloud)微软 Azure少量

VXLAN 的关键优势:

  • 24bit VNI:支持约 1600 万个虚拟网络段,彻底突破 VLAN 的 4K 限制
  • 标准 UDP 封装:物理交换机无需任何修改,现有 ECMP 负载均衡机制天然生效
  • 位置无关性:虚拟机可以在任意物理位置接入和迁移,网络不受物理拓扑约束
┌────────────────────────────────────────────────────┐ │ VXLAN 封装结构 │ ├────────────────────────────────────────────────────┤ │ Outer Ethernet │ Outer IP │ Outer UDP(4789) │ │ ───────────────┼──────────┼───────────────────── │ │ │ │ VXLAN Header (8B) │ │ │ │ ┌─────────────────┐ │ │ │ │ │ Flags │ VNI(24b) │ │ │ │ │ │ │ 16M租户 │ │ │ │ │ └─────────────────┘ │ │ ───────────────┼──────────┼───────────────────── │ │ Original Ethernet Frame (租户原始报文) │ │ ┌─────────────────────────────────────────────┐ │ │ │ Tenant MAC │ Tenant IP │ Payload │ │ │ └─────────────────────────────────────────────┘ │ └────────────────────────────────────────────────────┘ Underlay(物理网络)只看到 Outer IP/UDP Overlay(虚拟网络)只看到 Original Frame
VXLAN 东西向流量走向 (同租户VM跨主机通信): Host-1 Host-2 ┌──────────────────┐ ┌──────────────────┐ │ ┌──────┐ VTEP │ │ VTEP ┌──────┐ │ │ │ VM-A │→(封装)───┼─────────────┼──→(解封)│ VM-B │ │ │ │10.1.1│ +VNI │ VXLAN隧道 │ -VNI │10.1.2│ │ │ └──────┘ │ (物理网络) │ └──────┘ │ │ │ │ │ │ │ │ ▼ │ │ ▼ │ │ ┌──────┐ │ │ ┌──────┐ │ │ │ OVS │ 封装VXLAN│ │解封装 │ OVS │ │ │ │vSwitch│────────┼───Underlay──┼───────→│vSwitch│ │ │ └──────┘ │ IP网络 │ └──────┘ │ └──────────────────┘ └──────────────────┘ 流程: VM-A发原始帧 → OVS封装VXLAN → 物理网络转发 → 对端OVS解封装 → 交付VM-B 租户视角: VM-A和VM-B在同一二层网络

2.3 VTEP:Overlay 的边界智能实体

VXLAN 通过在物理网络边缘设置 VTEP(VXLAN Tunnel End Point) 实现虚拟网络与物理网络的隔离。VTEP 负责封装/解封装,虚拟机完全不感知 VNI 和隧道的存在。VTEP 的位置选择,直接决定了云网络架构的演进方向:

  • 软件 VTEP(vSwitch 方案):VTEP 运行在服务器的 vSwitch(如 OVS)中,物理网络仅做简单的三层转发
  • 硬件 VTEP(硬件/EVPN 方案):VTEP 功能卸载到物理交换机,通过 MP-BGP EVPN 控制平面实现隧道自动发现和广播抑制

3. 物理网络架构演进:从三层到 Spine-Leaf

3.1 三层方案

早期云数据中心直接沿用园区网的三层架构。vSwitch 运行在服务器内部处理所有 Overlay 逻辑,底层网络仅作为简单的转发通道。这种方案的问题在于:汇聚层成为性能瓶颈和单点故障,且跨汇聚层的流量需要经过核心层绕行。

3.2 框式 Spine-Leaf

为解决性能和扩展性问题,CLOS(Spine-Leaf)二层架构被引入数据中心。两台大容量框式 Spine 交换机作为核心层,48 口 10G Leaf(ToR)交换机以 40G/100G 上行连接 Spine,Spine 与 Leaf 之间 full-mesh 全连接。

优势:减少转发跳数,南北向和东西向流量都只需经过 Spine 一跳;全 mesh 多路径天然支持 ECMP 负载均衡。

3.3 盒式 Spine-Leaf

当云数据中心规模继续扩大,多个大容量盒式 Spine 取代两台框式 Spine,利用 CLOS 架构天然的横向扩展(Scale-out)能力,在交换性能、可扩展性、性价比三方面达到综合最优。

架构阶段Spine 类型扩展方式典型规模
三层架构核心-汇聚-接入纵向扩展数百台服务器
框式 Spine-Leaf2 台框式 Spine纵向扩展数千台服务器
盒式 Spine-Leaf多台盒式 Spine横向扩展数万台服务器
┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐ │Spine-1 │ │Spine-2 │ │Spine-3 │ │Spine-4 │ ← Spine层 └───┬────┘ └───┬────┘ └───┬────┘ └───┬────┘ ╔═════╪══════════╪══════════╪══════════╪═════╗ ║ │ Full-Mesh ECMP 多路径负载均衡 │ ║ ╚═════╪══════════╪══════════╪══════════╪═════╝ ┌───┴────┐ ┌───┴────┐ ┌───┴────┐ ┌───┴────┐ │Leaf-1 │ │Leaf-2 │ │Leaf-3 │ │Leaf-4 │ ← Leaf/ToR层 └───┬────┘ └───┬────┘ └───┬────┘ └───┬────┘ ┌───┴────┐ ┌───┴────┐ ┌───┴────┐ ┌───┴────┐ │Server │ │Server │ │Server │ │Server │ │ Rack1 │ │ Rack2 │ │ Rack3 │ │ Rack4 │ └────────┘ └────────┘ └────────┘ └────────┘ 优势: 东西向/南北向都只经1跳Spine ECMP多路径无阻塞, 横向扩展加Spine/Leaf即可

4. SDN 控制平面演进:从人工配置到智能自治

4.1 SDN 的理论基础

2004 年,Jennifer Rexford 在 SIGCOMM 发表 "Network-Wide Decision Making: Toward A Wafer-Thin Control Plane",首次明确提出转发与控制分离的理念,为 SDN(Software Defined Networking)的诞生奠定了理论基础。

SDN 的核心思想:

  • 控制面集中化:由一个(或分布式集群)控制器统一下发转发规则
  • 数据面可编程:转发设备只关心如何处理报文,不参与路由决策
  • 北向 API:向上提供网络抽象,支持自动化编排

4.2 第一代 SDN 控制器:OpenFlow 时代

早期 SDN 严格遵循 OpenFlow 协议,控制器通过 Packet-In/Flow-Mod 机制管理流表。这种模式的问题:

  • 首包时延:每个新连接的首包必须经过控制器,增加 RTT
  • 控制面瓶颈:DDoS 攻击流量和内网扫描流量会穿透到控制面
  • 规模限制:控制器处理能力制约整网性能

4.3 第二代 SDN 控制器:主动推送 + 分布式架构

为解决首包时延和控制面瓶颈,第二代 SDN 控制器采用主动推送模式:路由表、ACL 等静态规则由控制器全量推送到转发设备;点到点转发规则通过预计算和批量下发,减少 Packet-In 依赖;控制器本身采用分布式集群架构,支持水平扩展。

4.4 第三代 SDN 控制器:智能化 + 数据驱动

进入云网络 3.0 时代,SDN 控制器演进为数据驱动的智能控制系统:基于遥测数据(Telemetry)实时感知网络状态;机器学习辅助的异常检测和根因分析;意图驱动网络(Intent-Based Networking):用户声明"想要什么",控制器自动计算"怎么做"。

第一代: OpenFlow Packet-In 第二代: 主动推送 + 分布式 ┌──────────┐ ┌──────────────┐ │ SDN │◄── Packet-In ──┐ │ 分布式SDN │ │Controller│ │ │ Controller │ └────┬─────┘ │ │ Cluster │ │ Flow-Mod │ └──────┬───────┘ ▼ │ ┌──────┴───────┐ ┌──────────┐ 首包 ──────┘ │ 全量推送路由 │ │ Switch │ │ 增量下发流表 │ │ (OVS) │ └──────┬───────┘ └──────────┘ │ 问题: 首包时延 / 控制面瓶颈 ┌──────┴───────┐ │ Switch集群 │ └──────────────┘ 第三代: 数据驱动智能网络 ┌────────────────────────────┐ │ 智能SDN控制器 │ │ ┌──────┐ ┌────────────┐ │ │ │Telemetry│ │ML异常检测 │ │ │ │数据采集│ │根因分析 │ │ │ └──────┘ └────────────┘ │ │ ┌──────────────────────┐ │ │ │ Intent-Based Network │ │ │ │ 声明意图→自动计算策略 │ │ │ └──────────────────────┘ │ └─────────────┬──────────────┘ │ 自动策略下发 ▼ ┌──────────────┐ │ 数据面网元 │ └──────────────┘

5. AWS 网络架构演进

5.1 EC2-Classic 时代(2006-2013)

AWS 于 2006 年推出 EC2 公测版,采用EC2-Classic 共享扁平网络模型。所有实例运行在同一个大二层网络中,通过安全组实现实例级别的访问控制。这种模型简单易用,但存在根本性缺陷:无网络隔离、无路由控制、无法连接本地数据中心。

5.2 VPC 时代(2009-至今)

2009 年 8 月,AWS 发布 Amazon VPC(Virtual Private Cloud),允许用户在 AWS 中创建逻辑隔离的虚拟网络。这是云计算网络发展史上的里程碑事件,VPC 几乎成了云数据中心网络的标准模板。

VPC 的核心组件:

组件功能
VPC CIDR用户自定义私网 IP 地址段(/16 到 /28)
SubnetAZ 级别的子网,关联路由表和 NACL
Route Table控制子网的出向路由
Internet GatewayVPC 访问互联网的网关
NAT Gateway私网子网访问互联网的 SNAT 网关
Security Group实例级有状态防火墙(白名单模式)
NACL子网级无状态防火墙(黑名单模式)
Elastic IP可映射到实例的静态公网 IP

关键演进时间线:

时间事件
2009-08VPC 发布(预览版)
2011-08VPC 正式 GA
2013-11Enhanced Networking(SR-IOV)上线
2013-12新账户默认使用 VPC,EC2-Classic 开始退场
2016-11Elastic Network Adapter(ENA)发布,最高 25Gbps
2017-11Transit Gateway 发布,Hub-and-Spoke 架构
2018-11Elastic Fabric Adapter(EFA)发布,支持 OS-bypass
2022-08EC2-Classic 正式退役
2022VPC Lattice 发布,面向应用的网络连接

5.3 多 VPC 互联架构演进

随着客户采用多账户策略,VPC 之间的互联成为核心需求,架构经历了三次演进:

VPC Peering:点对点连接,简单但不支持传递性路由。大规模部署需要 full-mesh 对等连接,N² 复杂度不可接受。

Transit VPC:一个概念架构而非 AWS 托管服务。通过在中心 VPC 中运行第三方路由设备,建立 Hub-and-Spoke 模型。运维负担重。

Transit Gateway:AWS 托管的 Hub-and-Spoke 网络枢纽。支持传递性路由,可将数千个 VPC 和本地网络连接到同一个 Transit Gateway。

┌────────────────────────────┐ │ Transit Gateway │ │ (Hub-and-Spoke 枢纽) │ │ 路由表 / 安全组 / 多播 │ └─┬─────┬─────┬─────┬───────┘ │ │ │ │ ┌─────────┘ │ │ └─────────┐ ▼ ▼ ▼ ▼ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ VPC-A │ │ VPC-B │ │ VPC-C │ │ VPC-D │ │ (prod) │ │ (dev) │ │ (shared) │ │ (mgmt) │ │10.1.0.0/16│ │10.2.0.0/16│ │10.3.0.0/16│ │10.4.0.0/16│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ 传递性路由: VPC-A ↔ VPC-C OK (VPC Peering无法做到) 混合云接入: ┌────────────┐ ┌──────────────┐ ┌────────────┐ │ 企业IDC │────│ Direct Connect│────│ Transit GW │ │ │────│ 或 VPN │ │ │ └────────────┘ └──────────────┘ └────────────┘

5.4 混合云网络

AWS 提供两种混合云接入方式:Site-to-Site VPN(基于 IPsec 的 VPN 隧道,快速建立)和 Direct Connect(专用物理线路,1Gbps/10Gbps/100Gbps,低延迟高带宽)。

5.5 Nitro 系统:硬件卸载的革命

2017 年随 C5 实例发布的 AWS Nitro System 是云计算虚拟化架构的一次范式革命。Nitro 将传统 Xen 虚拟化中运行在 Dom0 的所有 I/O 功能卸载到专用硬件:

Nitro 组件功能
Nitro Card for VPCVPC 数据面(封装/解封装、安全组、限速、路由、透明加密)
Nitro Card for EBSEBS 数据面(NVMe 协议、加密)
Nitro Card for Instance Storage本地存储数据面(透明加密、限速)
Nitro Controller系统管理(被动 API 端点、协调所有 Nitro Card)
Nitro Security Chip硬件可信根(拦截所有非易失性存储 I/O)
Nitro Hypervisor极简 KVM 虚拟机监控器(仅分配 CPU/内存,通过 SR-IOV 直通 I/O)

💡 Nitro 核心设计理念:最小化 Hypervisor(无网络栈、无文件系统、无 Shell);SR-IOV 直通让客户数据不经过 Hypervisor;物理隔离 Nitro Card 与主机 CPU;零运维访问;VPC 流量在支持加密的 Nitro Card 之间自动端到端加密。

┌─────────────────────────────────────────────────────┐ │ AWS Nitro System │ │ │ │ ┌──────────────┐ PCIe ┌──────────────────────┐ │ │ │ │◄──────►│ Nitro Card for VPC │ │ │ │ 主机 CPU │ │ ENA / VPC数据面 │ │ │ │ (Intel/AMD/ │ │ 安全组/封装/路由/加密 │◄─┼──► VPC网络 │ │ Graviton) │ └──────────────────────┘ │ │ │ │ PCIe ┌──────────────────────┐ │ │ │ │◄──────►│ Nitro Card for EBS │ │ │ │ │ │ NVMe / 加密 │◄─┼──► EBS存储 │ │ │ └──────────────────────┘ │ │ │ │ PCIe ┌──────────────────────┐ │ │ │ │◄──────►│ Nitro Card for │ │ │ │ │ │ Instance Storage │◄─┼──► 本地存储 │ │ │ └──────────────────────┘ │ │ └──────┬───────┘ ┌──────────────────────┐ │ │ │ │ Nitro Controller │ │ │ │ SR-IOV VF │ (系统管理/可信根) │ │ │ │ 直通分配 └──────────────────────┘ │ │ ┌──────┴───────┐ ┌──────────────────────┐ │ │ │ Nitro │ │ Nitro Security Chip │ │ │ │ Hypervisor │ │ (硬件可信根/拦截I/O) │ │ │ │ (极简KVM) │ └──────────────────────┘ │ │ │ 仅分配CPU/ │ │ │ │ 内存给VM │ │ │ └──────────────┘ │ └─────────────────────────────────────────────────────┘ 关键: 客户数据经SR-IOV直通, 不经过Hypervisor Hypervisor无网络栈/无文件系统/无Shell

6. 阿里云网络架构演进——洛神三部曲

6.1 洛神 1.0:云数据中心网络(2010-2016)

2009 年阿里云开始云计算研发时面临"三个空白":国内 SDN 学术研究稀缺、VXLAN 尚处于草案阶段、开源 OpenStack/OpenFlow 尚未成熟。为让业务跑起来,阿里云从零自研了洛神 1.0。

数据面:基于 x86 服务器构建虚拟网络转发层——vSwitch 部署在计算节点(百万级 PPS、万兆带宽),虚拟网关部署在数据中心出入口(千万级 PPS、百 GB 带宽)。

控制面:第一代 SDN 控制器,严格遵循转发与控制分离模式,北向层管理租户实例,南向层管理虚拟网络设备。

2014 年 VPC 产品正式发布,用户获得了自定义 IP/CIDR、子网、路由表的私有网络能力。

6.2 洛神 2.0:云广域网络(2016-2020)

洛神 2.0 实现了三大技术突破:

突破一:Sailfish——可编程高性能转发层。通过软硬件结合自研可编程转发层:P4 可编程交换芯片负责大流量转发(Tbps 级)、自研网卡芯片负责大表项转发、CPU 模块负责业务编排和智能调度。

突破二:Cyberstar——弹性网元平台。基于虚拟机构建 NFV 转发平台,实现了云网络网元技术的 NFV 化。

突破三:第二代 SDN 控制器。跨地域网络控制系统实现全球一张网的统一管理;高性能南向配置层实现十万级设备的秒级配置下发,单 VPC 支持百万级虚拟机。

云企业网(CEN) 是云网络 2.0 的标志性产品,2017 年在业内率先发布。它通过跨域 Overlay 技术在阿里云核心网上构建全球互联的虚拟网络。

6.3 洛神 3.0:应用-云-边-端一体智能网络(2020-至今)

洛神 3.0 的定义是一张应用-云-边-端一体的万物互联的智能云网络,三大核心技术特征:网络智能化(数据赋能网络)、面向应用和生态、云边一体与万物互联。

洛神演进总结:

维度洛神 1.0洛神 2.0洛神 3.0
时间2010-20162016-20202020-
定位云数据中心网络云广域网络应用-云-边-端一体
数据面x86 转发层Sailfish(软硬一体)持续演进
网元平台物理机网关Cyberstar(NFV)容器化弹性网元
控制面第一代 SDN第二代 SDN(跨地域)智能化 SDN
规模指标万级 VM单 VPC 百万 VM千万级虚拟网络资源
洛神1.0 (2010-2016) 洛神2.0 (2016-2020) 洛神3.0 (2020-) ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ 第一代SDN │ │ 第二代SDN │ │ 智能化SDN │ │ 控制器 │ │ 控制器 │ │ 控制器 │ │ (单集群) │ │ (分布式集群) │ │ (数据驱动) │ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ │ │ +跨地域管控 │ +ML/AIOps ▼ ▼ ▼ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ x86 vSwitch │ │ Sailfish │ │ Sailfish++ │ │ + x86网关 │ │ P4交换芯片 │ │ 持续演进 │ │ 百万PPS │ │ +自研网卡 │ │ │ │ │ │ Tbps级 │ │ │ └──────────────┘ └──────────────┘ └──────────────┘ ┌──────────────┐ ┌──────────────┐ │ Cyberstar │ │ 容器化 │ │ NFV网元平台 │ │ 弹性网元 │ │ (虚拟机) │ │ (VM+容器) │ └──────────────┘ └──────────────┘ 定位: 云数据中心网络 定位: 云广域网络 定位: 应用-云-边-端

7. UCloud 网络架构演进——VPC 三代技术架构

7.1 VPC 1.0:经典网络(2012-2016)

UCloud 在 2012 年上线初期采用经典网络模型:云主机和宿主机位于同一个大二层网络,网络转发依赖 Linux Bridge,租户隔离依赖 iptables/ebtables 规则。经典网络的问题:无租户隔离、IP 地址冲突、安全规则爆炸、无法自定义网络拓扑。

7.2 VPC 2.0:基于 SDN 的 VPC 网络(2016-2019)

2016 年底,UCloud 上线基于 SDN 的 VPC 2.0 架构。转发平面引入 OpenVSwitch + OpenFlow 完成 Overlay 流量的转发与隔离;基于 DPDK 开发东西向和南北向网关。控制面自研 SDN 控制器,通过 Packet-In 和 Push 相结合的方式下发流表。

VPC 2.0 的四大痛点:OVS 转发性能不足、异构网络耦合、转发面和控制面流量耦合、首包时延。

7.3 VPC 3.0:软硬件一体化的新一代 VPC 网络(2019-至今)

VPC 3.0 控制平面四层架构:

层次职责
Model Layer(模型层)生成统一业务对象(如 Subnet)
Middle Layer(中台层)对象路由、一致性缓存、对象分片、对象灰度
Mapping Layer(映射层)将业务对象映射为不同网元对象(OpenFlow/P4/TC)
DataPath Layer(推送层)关心具体转发网元,实现高效推送

💡 DCP 协议:VPC 3.0 引入主动推送 + 动态学习相结合的 Flow 下发方式。基于 P4 可编程芯片开发 VPC 网关 BGW,BGW 与计算节点的 Datapath Controller 运行 DCP 协议。相比 VPC 2.0 的 Packet-In 机制,DCP 实现了流表按需学习、无首包时延、转发面学习性能远高于控制面下发。

转发面硬件演进:从 Kernel Bridge → Kernel OVS → 硬件卸载 OVS + 智能网卡(25G 带宽、1000 万 PPS、10G 外网),网关从 DPDK 演进到 P4 可编程芯片(Tbps 级)。

VPC 3.0 还引入了 UXR 中心化网关完成异构网络解耦,以及基于 INT 的全链路 Telemetry 探测系统。

UCloud VPC 3.0 软硬件一体化架构 ┌─────────────────────────────────────────────────────┐ │ 控制平面 │ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌────────┐│ │ │ Model │→│ Middle │→│ Mapping │→│DataPath││ │ │ Layer │ │ Layer │ │ Layer │ │ Layer ││ │ │(业务对象)│ │(路由/缓存│ │(映射到 │ │(推送 ││ │ │ │ │ /分片) │ │ OF/P4/TC)│ │ 网元) ││ │ └─────────┘ └─────────┘ └────┬────┘ └────┬───┘│ └──────────────────────────────────┼────────────┼────┘ │ │ ┌──────────────────────────────────┼────────────┼────┐ │ 转发平面 │ │ │ │ ┌──────────┐ ┌──────────┐ ┌────┴─────┐ ┌───┴───┐│ │ │Kernel OVS│ │HW卸载OVS │ │P4 BGW │ │DPDK ││ │ │(基础) │ │+智能网卡 │ │(VPC网关 │ │网关 ││ │ │ │ │25G/1000w │ │ 流表学习) │ │(LB等) ││ │ └──────────┘ └──────────┘ └──────────┘ └───────┘│ │ │ │ ┌──────────┐ ┌──────────┐ │ │ │ UXR │ │ CGW │ │ │ │(中心网关 │ │(LB网关 │ │ │ │ 异构解耦) │ │ P4/Maglev)│ │ │ └──────────┘ └──────────┘ │ └────────────────────────────────────────────────────┘ DCP协议: OVS未命中 → 转发到BGW → BGW正常转发+DCP报文回传 → 源端Controller学习流表 → 后续流量OVS本地转发

8. 数据面技术演进:从软件到硬件

8.1 软件转发:OVS + DPDK

Open vSwitch(OVS) 是云网络数据面的基石,运行在每个计算节点上,负责 Overlay 封装/解封装、安全组规则匹配、ACL 过滤、流量镜像和 QoS。

模式内核路径性能延迟
Kernel OVS内核态百万级 PPS较高
DPDK OVS用户态(轮询模式)千万级 PPS较低

8.2 SR-IOV:硬件直通的起点

SR-IOV 允许一块物理网卡呈现为多个虚拟功能(VF),每个 VF 可以直接分配给虚拟机,绕过 Hypervisor 的软件交换。AWS 在 2013 年率先在 C3 实例上引入 SR-IOV Enhanced Networking。

8.3 智能网卡(SmartNIC)与 DPU

特性SmartNICDPU
核心能力Fast Path 卸载(OVS/VRouter)全栈卸载(网络+存储+安全+虚拟化)
CPU无或弱 CPU多核 ARM/MIPS 处理器
控制面仍在 Host CPU可完全卸载到 DPU 内部
可编程性有限(eSwitch 规则)高(P4/C 语言/eBPF 混合编程)
典型产品NVIDIA CX5NVIDIA BlueField、AMD Pensando

各云厂商的硬件加速方案对比:

云厂商硬件方案核心特点
AWSNitro System(自研芯片)VPC/EBS/存储三卡分离,SR-IOV 直通,透明加密
阿里云X-Dragon(神龙)Sailfish 可编程转发层,软硬一体
UCloud硬件卸载 OVS + P4 网关BGW/CGW 可编程网关,DCP 协议
从普通网卡到DPU的演进: ┌────────────────┐ ┌────────────────┐ ┌────────────────┐ │ 普通网卡 │ │ SmartNIC │ │ DPU │ │ │ │ │ │ │ │ ┌──────────┐ │ │ ┌──────────┐ │ │ ┌──────────┐ │ │ │ NIC │ │ │ │ eSwitch │ │ │ │ARM CPU │ │ │ │(基础收发) │ │ │ │(Fast Path│ │ │ │(完整OS) │ │ │ └──────────┘ │ │ │ 卸载) │ │ │ │ │ │ │ │ │ │ └──────────┘ │ │ │ ┌──────┐ │ │ │ ▼ │ │ │ │ │ │ │P4/ │ │ │ │ ┌──────────┐ │ │ ▼ │ │ │ │eBPF │ │ │ │ │Host CPU │ │ │ ┌──────────┐ │ │ │ │加速器 │ │ │ │ │处理所有 │ │ │ │Host CPU │ │ │ │ └──────┘ │ │ │ │网络逻辑 │ │ │ │Slow Path │ │ │ └──────────┘ │ │ └──────────┘ │ │ │+控制面 │ │ │ │ │ │ │ │ └──────────┘ │ │ ▼ │ │ Host CPU: 100%│ │ Host CPU: ~50%│ │ Host CPU: ~0% │ │ 网络开销 │ │ 网络开销 │ │ 网络开销 │ └────────────────┘ └────────────────┘ └────────────────┘ (基础) (部分卸载) (全栈卸载)

8.4 P4 可编程数据面

P4 是一种领域特定语言,用于描述数据面的报文处理逻辑。P4 的核心思想:协议无关(不绑定任何特定协议)、目标无关(同一份 P4 程序可编译到 ASIC、FPGA、软件交换机等不同目标)、可重构(运行时修改数据面处理逻辑)。

9. 容器网络演进:从 Bridge 到 eBPF

9.1 容器网络的发展脉络

容器网络经历了四个主要阶段:Docker Bridge + NAT → Overlay CNI(Flannel/Calico)→ Service Mesh(Istio/Envoy)→ eBPF 原生网络(Cilium)。

主流 CNI 方案对比:

方案模式封装性能
Flannel VXLANOverlayVXLAN
Calico BGP路由
Cilium eBPF路由/OverlayVXLAN/Geneve极高

9.2 eBPF:重塑内核网络栈

eBPF 是 Linux 内核的可编程框架,允许在不修改内核源码的情况下安全地扩展内核行为。eBPF 相比 iptables 的核心优势:

维度iptableseBPF
规则匹配O(n) 线性遍历O(1) 哈希查找
规则更新全量替换增量更新单个 Map 条目
数据路径经历 5+ Netfilter hook可绕过整个 Netfilter 栈
延迟高(数百 μs)低(数十 μs)
可编程性仅规则匹配完全可编程(L2-L7)

Cilium 利用 eBPF 实现 host-routing 模式,完全绕过宿主机的 Netfilter 框架:传统方案相比物理机有约 36% 性能损耗,而 Cilium eBPF host-routing 仅约 9% 损耗。

Cilium eBPF Host-Routing 数据路径 (绕过Netfilter): ┌──────────────────────────────────────────────────┐ │ Node (宿主机) │ │ │ │ ┌─────────┐ ┌─────────┐ │ │ │ Pod-A │ │ Pod-B │ │ │ │ veth0 │ │ veth0 │ │ │ └────┬────┘ └────▲────┘ │ │ │ │ │ │ ┌────┴────┐ ┌────┴────┐ │ │ │veth-host│ │veth-host│ │ │ │TC Ingress │TC Ingress │ │ │from_ │ │cil_lxc_ │ │ │ │container │ │policy │ │ │ └────┬────┘ └────▲────┘ │ │ │ bpf_redirect_peer() │ │ └──────────────────┘ ← 跳过整个Netfilter! │ │ │ │ 跨节点: │ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ │ │ Pod-A │ │TC Ingress │ eth0 │ │ │ └────┬────┘ │from_ ├───→│TC Egress│──→ 外部│ │ └────────→│container │ │to_netdev│ │ │ bpf_redirect_neigh() │ └──────────────────────────────────────────────────┘ 传统路径: Pod → veth → Netfilter(PREROUTING→FORWARD→POSTROUTING) → eth0 eBPF路径: Pod → veth → TC BPF → bpf_redirect → eth0 (快3-5倍)

9.3 eBPF 的未来方向

  • XDP 卸载到 SmartNIC:eBPF 程序直接在网卡硬件上执行,CPU 零开销
  • P4 与 eBPF 融合:P4-to-eBPF 编译器使同一份网络逻辑可在不同目标上运行
  • Cilium DPU Offload:将 Cilium 数据面完全卸载到 DPU
  • kube-proxy 终结:eBPF Service 实现可能纳入 Kubernetes 核心

10. 云网络安全演进

10.1 安全组:实例级微分段

安全组是有状态的白名单防火墙,绑定到实例的弹性网卡(ENI)上:默认拒绝所有流量,仅放行明确允许的规则;自动放行响应流量;可引用其他安全组作为规则源。

10.2 微分段与零信任

随着微服务架构的普及,基于 IP 地址的安全策略面临挑战——Pod 生命周期可能仅数秒,IP 地址频繁变化。新一代安全模型向身份驱动演进:Cilium Identity 基于 Kubernetes Label 的安全身份,与 IP 解耦;NetworkPolicy 从 L3/L4 扩展到 L7 策略;零信任网络默认拒绝所有东西向流量。

11. 三大云厂商网络架构横向对比

维度AWS阿里云UCloud
经典网络EC2-Classic(2006-2022)基础网络(2009-2017)经典网络(2012-2016)
VPC 发布2009(2011 GA)20142016
硬件加速Nitro System(2017)X-Dragon 神龙硬件卸载 OVS + P4 网关
跨域互联Transit Gateway(2017)云企业网 CEN(2017)云互联
Overlay 协议类 VXLAN类 VXLANVXLAN/NVGRE
vSwitchNitro VPC CardAVSOVS(内核版/硬件卸载版)
网关技术Nitro 硬件Sailfish + CyberstarP4 可编程网关(BGW/CGW)
最新方向VPC Lattice/Cloud WAN洛神 3.0(云边端一体)VPC 3.0(软硬一体)

12. 未来趋势

12.1 DPU/IPU 成为算力基础设施

DPU 正在从"加速网卡"演进为"算力基础设施的第三颗芯片"(与 CPU、GPU 并列)。全栈卸载(网络、存储、安全、虚拟化全部卸载到 DPU)、eBPF 原生支持、IPU 强调基础设施与业务算力的物理隔离。

12.2 可编程数据面统一

P4、eBPF、OVS 三种数据面技术正在融合:P4-to-eBPF 编译器、OVS eBPF Offload、统一的可编程抽象。

12.3 AI 驱动的智能网络

网络大模型基于 LLM 的网络意图理解;AIOps 异常检测、根因分析、容量预测的自动化;意图驱动网络(IBN)用户声明意图,系统自动生成和部署策略。

12.4 云原生网络统一平面

Cilium ClusterMesh 多集群 Identity 同步;Gateway API 统一南北向流量模型;MCS API 统一东西向多集群服务发现;Kubernetes 成为跨云网络控制面。

12.5 高性能网络:RDMA 与 GPU 直连

AI/ML 训练集群对网络提出了全新要求:RDMA/RoCE v2 远程直接内存访问绕过内核协议栈;GPUDirect RDMA GPU 之间直接通过 RDMA 通信;AWS EFA 支持 OS-bypass 和 SRD 协议;拓扑感知调度将通信密集的 Pod 调度到同一机架。

13. 总结:云计算网络架构演进的核心脉络

回顾云计算网络近二十年的发展,可以提炼出五条清晰的演进主线:

1. 隔离模式:VLAN → Overlay → VPC
从 VLAN 的 4K 隔离域,到 VXLAN 的 1600 万虚拟网络,再到 VPC 的完整私有网络能力。每一层抽象都在解决上一层的规模瓶颈。

2. 网络架构:三层 → Spine-Leaf → 超融合
物理网络从传统三层架构简化为 Spine-Leaf 二层架构,再到软件定义的超融合架构。控制逻辑从分散在各层设备集中到 SDN 控制器。

3. 转发性能:软件 → 半硬件 → 全硬件
从 Linux Bridge 到 OVS+DPDK,到 SR-IOV 直通,再到 SmartNIC/DPU 全栈卸载。每一代都在向"接近裸金属性能"逼近。

4. 网络范围:数据中心 → 广域网 → 云边端一体
从单 Region 的 VPC,到跨地域的云企业网/Transit Gateway,再到覆盖 5G/IoT/边缘的万物互联网络。

5. 智能化:人工配置 → 自动化 → 智能自治
从 CLI 手动配置,到 SDN 控制器自动化,再到数据驱动的智能网络运维。网络的自主性越来越高,人的干预越来越少。

💡 总结:这五条主线交织在一起,推动着云计算网络从一个简单的二层共享网络,演变为今天覆盖全球、软硬一体、智能自治的超级网络基础设施。而每一次架构跃迁的背后,都是规模、性能、安全和效率的不懈追求。

目录