1. 课程导入

在传统数据中心里,网络设备一台台登录配置,VLAN 靠人工规划,安全策略靠逐台下发;当业务从几十台服务器扩展到上万台虚拟机、容器时,这种模式很快会遇到瓶颈:配置周期长、策略不一致、故障定位困难、资源利用率低。SDN(Software-Defined Networking,软件定义网络)把网络的控制逻辑从设备中抽离出来,交给集中的控制器统一决策,设备只负责转发。云平台(如 OpenStack、Kubernetes、VMware vSphere)则负责计算与存储资源的编排。当两者集成后,云平台创建一台虚拟机时,网络侧可以自动完成端口创建、VLAN/VXLAN 分配、安全组下发和路由打通,实现"计算资源与网络资源同步交付"。本课程围绕这条主线展开,帮助读者建立从原理到落地的完整认知。

学习目标

完成本课程后,读者应能达成以下目标:第一,理解 SDN 的三层架构(应用层、控制层、转发层)以及南向接口、北向接口的职责边界;第二,掌握 Overlay 网络的核心封装技术,能说清 VXLAN 的 24 位 VNI、VTEP 隧道端点以及 Underlay 与 Overlay 的关系;第三,能够读懂并编写基于 OpenFlow 或 OVSDB 的基础配置,理解流表匹配字段与动作;第四,掌握云平台与 SDN 控制器集成的典型方式,包括 Neutron ML2 驱动、CNI 插件与控制器北向 API 的对接;第五,能够针对多租户隔离、东西向流量优化、跨机房互通等场景给出合理的网络方案;第六,具备基本的排障能力,能通过流表、隧道状态、ARP/路由表判断问题出在计算侧、网络侧还是控制器侧。

核心概念

要理解本课程,需要先厘清几个关键概念。控制平面与数据平面分离是 SDN 的根基:控制平面负责计算路径、下发策略,数据平面负责按流表转发。控制器是控制平面的实现载体,常见的有 OpenDaylight、ONOS、Floodlight,以及云厂商自研控制器。南向接口是控制器与转发设备之间的协议,OpenFlow 最典型,它定义了流表匹配与动作;OVSDB 则用于管理 Open vSwitch 的网桥、端口和隧道。北向接口是控制器向上层应用或云平台暴露的 API,通常为 RESTful 形式,云平台通过它申请网络、子网、端口和安全组。

Overlay 与 Underlay 是另一组必须分清的概念。Underlay 是物理网络,由交换机、路由器组成,负责 VTEP 之间的 IP 可达;Overlay 是建立在 Underlay 之上的虚拟网络,通过 VXLAN、GRE 等封装实现租户隔离和地址空间复用。VXLAN 报文在原始以太网帧外封装 UDP、IP 和外层以太网头,其中 VNI 占 24 位,可支持约 1600 万个隔离网络,远大于传统 VLAN 的 4094 个。VTEP 是隧道的起点和终点,通常位于虚拟交换机或物理交换机上。多租户场景下,不同租户使用相同私网地址段也不会冲突,因为 VNI 把它们隔离开了。

整体框架

本课程的整体框架可以概括为"自下而上、由内到外"。底层是物理网络与虚拟化基础设施,包括 Spine-Leaf 拓扑、服务器网卡、OVS 或智能网卡;中间是 SDN 控制器与 Overlay 隧道,负责网络抽象与策略下发;上层是云平台与编排系统,负责把网络能力以服务形式提供给业务。集成层是贯穿三层的纽带,它把云平台的资源模型(网络、子网、端口、安全组)映射为控制器的配置对象,再把控制器的状态回传给云平台。下图展示了这一整体框架与数据流向。

SDN 数据中心网络与云平台集成整体框架 应用与编排层 云平台 OpenStack Kubernetes CNI vSphere / NSX 业务系统 / 运维平台 北向接口 RESTful API SDN 控制层 控制器集群 OpenDaylight / ONOS 网络抽象与策略 租户 / 子网 / 安全组 隧道与路由计算 VXLAN / EVPN 状态同步 端口 / 流表 南向接口 OpenFlow / OVSDB / NETCONF 转发层(Overlay + Underlay) vSwitch / OVS VTEP 隧道端点 Leaf 交换机 VXLAN 网关 Spine 交换机 Underlay 路由 物理服务器 / 容器 业务负载 集成层:资源模型映射与状态回传 云资源 → 网络对象映射 端口 / 安全组自动下发 状态与告警回传 控制与数据流方向

从图中可以看到,云平台位于最上层,通过北向接口把网络需求交给控制器;控制器完成策略计算后,通过南向接口把流表、隧道和端口配置下发到转发层;转发层在 Underlay 之上建立 Overlay 隧道,承载租户流量。集成层则负责两侧资源模型的翻译与状态同步,是整条链路能否闭环的关键。

典型应用场景

第一个场景是多租户隔离。某云服务商在同一套物理网络上承载数百个租户,每个租户可以自定义私网地址段。通过为每个租户分配独立 VNI,VXLAN 隧道把不同租户的流量完全隔开,租户之间即使地址重叠也不会互相干扰。安全组则在端口级别控制东西向流量,例如只允许 Web 层访问 App 层的 8080 端口。

第二个场景是跨机房二层互通。企业在北京和上海各有一个机房,希望两地虚拟机像在同一局域网内通信。可以在两地边界 Leaf 上配置 VXLAN 隧道,通过 EVPN 传递 MAC/IP 可达信息,使 Overlay 网络跨越三层 Underlay。此时需要关注 MTU:VXLAN 封装会增加约 50 字节开销,若物理链路 MTU 为 1500,则 Overlay 内建议将虚拟机 MTU 设为 1450,避免分片。

第三个场景是容器网络的自动化。Kubernetes 集群中 Pod 频繁创建销毁,CNI 插件通过调用 SDN 控制器北向 API,为每个 Pod 分配 IP 并接入对应 VNI。控制器再把端口信息写入 OVS 流表,实现 Pod 间互通和网络策略。整个过程无需人工干预,秒级完成。

第四个场景是网络流量可视化与排障。控制器集中掌握全网拓扑、流表和隧道状态,可以在界面上展示任意两台虚拟机之间的路径、经过的 VTEP 和匹配的流表项。当业务出现丢包时,运维人员先看云平台端口状态,再看控制器隧道状态,最后看设备流表计数,逐层缩小范围。

学习建议:本课程概念较多,建议每学完一章,用一张纸画出该章涉及的对象、接口和数据流向,再与课程图示对照。遇到 VXLAN、OpenFlow 等协议时,不要只记名词,要能说清"谁发给谁、封装了什么、依据什么字段转发"。

本课程后续将沿着"原理—协议—集成—实践—排障"的路径展开。第一章建立整体认知后,第二章会深入 SDN 架构与控制器,第三章讲解 Overlay 与 VXLAN 细节,随后进入云平台集成、自动化编排和典型故障处理。希望读者带着"云平台创建一台虚拟机,网络侧到底发生了什么"这个问题贯穿全程,把每个环节的对象、接口和状态变化都弄清楚。