外观
SDN 概念:Zone、VNet、Subnet、IPAM 与 DHCP
用Linux Bridge和 VLAN已经能覆盖大多数单机、小规模场景。当你需要跨节点的虚拟网络、给不同租户隔离网段,或者用 Web UI 而不是手写 FRR 配置来管理路由,就是 SDN(软件定义网络,Software Defined Network)该登场的时候了。这篇先把几个核心概念讲清楚,具体动手配置见SDN Zone 实战和 SDN Fabrics。
解决什么问题
传统方式下,跨节点的虚拟网络(比如所有节点上的某个 VLAN,或者跨机房的一段二层网络)需要在每个节点上手动配置一致的 /etc/network/interfaces,改一次要跑一遍所有节点,容易漏改、配置漂移。
SDN 把这些定义集中放在 /etc/pve 里(通过 pmxcfs 自动同步到所有节点),点一次 Apply 就在整个集群生成一致的底层配置。它本质上是一层自动化和抽象,底层最终还是落回 Linux Bridge、VLAN、VXLAN 或 FRR 路由配置。
核心概念
| 概念 | 是什么 | 类比 |
|---|---|---|
| Zone(区域) | 一个独立的虚拟网络区域,可以限定在哪些节点上生效,并挂接权限 | 一整个「网络方案」,比如「VLAN 方案」「VXLAN 方案」 |
| VNet | 属于某个 Zone 的一个虚拟网络,在每个节点上表现为一个普通的 Linux 网桥 | 具体的一张「网」,客户机接的就是它 |
| Subnet | VNet 内的一段 IP 范围 | 这张网里划的一个网段 |
| Controller(控制器) | 部分 Zone 类型需要的外部控制平面(目前只有 EVPN 类型需要) | 负责算路由的大脑 |
| IPAM | IP 地址管理,记录哪些地址已经分配 | 一本地址分配台账 |
| DHCP | 基于 IPAM 数据自动给客户机发地址 | 台账的自动化前台 |
一句话理清关系:Zone 里包含若干 VNet,VNet 里可以定义 Subnet,Subnet 可以交给 IPAM 管理并选配 DHCP。
Zone 类型一览
Zone 的类型决定了这个虚拟网络底层怎么实现,详细配置见SDN Zone 实战,这里先建立印象:
| 类型 | 底层实现 | 是否跨节点 | 需要 Controller |
|---|---|---|---|
| Simple | 孤立的网桥,仅本节点内部 | 否 | 否 |
| VLAN | 复用节点上已有的 VLAN-aware 网桥 | 是(靠物理网络的 VLAN) | 否 |
| QinQ | 双层 VLAN 标签(Service VLAN + 内层 VLAN) | 是 | 否 |
| VXLAN | 用 UDP 封装二层帧,跨三层网络传输 | 是 | 否(用静态对等地址列表,可选配合 Fabric 自动填充) |
| EVPN | 基于 BGP 的可路由三层网络 | 是 | 是,需要 EVPN Controller(基于 FRR) |
Simple 和 VLAN 最容易上手
如果只是想要「跨节点复用同一个 VLAN 网段」,用 VLAN 类型的 Zone 就够了,前提是每个节点上已经有一个 VLAN-aware 的 Linux 网桥。VXLAN 和 EVPN 适合更复杂的多站点、多租户场景,配置和排错成本也更高。
IPAM 与 DHCP 的现状
PVE 内置一个简单的 IPAM(叫 pve),在 Subnet 里可以选择自动给客户机分配 IP;配套的 DHCP 功能基于 dnsmasq 实现,是可选启用的能力。根据官方文档,IPAM(含内置 DHCP)以及依赖 FRR 的路由控制器(EVPN/BGP/OpenFabric/OSPF)目前仍标注为技术预览(technology preview),核心的 Zone/VNet 功能已经是正式支持状态。上生产环境前,先在你的版本界面里确认对应功能的支持标注是否有变化。
配置怎么生效
SDN 的所有定义存放在 /etc/pve/sdn/ 目录下,经由 pmxcfs 同步到集群所有节点。和改 /etc/network/interfaces 不同的是,SDN 的改动先记录为待应用状态,在 数据中心 → SDN 总览页点 Apply Configuration 才会一次性、原子地下发到所有相关节点,生成对应的网络接口配置(以及 EVPN/Fabric 场景下的 FRR 配置)。
Apply 是集群范围的操作
点一次 Apply 会把所有待生效的 SDN 改动一起下发到相关节点,不只是你刚编辑的那一个 Zone 或 VNet。如果集群里还有别人在改 SDN 配置,操作前最好先确认清楚当前的待生效列表。
检查结果
sh
# 宿主机 shell,确认 SDN 相关配置文件存在
ls /etc/pve/sdn/
# 应用后,确认对应网桥已经在本节点生成
ip link show type bridgeWeb UI 的 数据中心 → SDN 页面会列出所有 Zone、VNet 及其状态,应用后状态应变为正常(没有待生效的黄色标记)。
常见问题
改了 Zone/VNet 配置,但没有生效。 SDN 的改动需要手动点 Apply Configuration 才会下发,光是保存表单不够。
创建了 VNet,但客户机接上去没有网络。 检查 Zone 类型对应的底层要求是否满足,例如 VLAN 类型要求物理网络里对应的 VLAN 已经在交换机上放通。
IPAM 自动分配的地址和我手动配置的冲突了。 内置 IPAM 目前是技术预览功能,行为可能不够严谨,混用手动和自动分配容易冲突,建议二选一。
参考资料
- Software-Defined Network - Proxmox VE Wiki
- Proxmox VE Administration Guide - Software-Defined Network