跳转到内容

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 网桥具体的一张「网」,客户机接的就是它
SubnetVNet 内的一段 IP 范围这张网里划的一个网段
Controller(控制器)部分 Zone 类型需要的外部控制平面(目前只有 EVPN 类型需要)负责算路由的大脑
IPAMIP 地址管理,记录哪些地址已经分配一本地址分配台账
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 bridge

Web UI 的 数据中心 → SDN 页面会列出所有 Zone、VNet 及其状态,应用后状态应变为正常(没有待生效的黄色标记)。

常见问题 ​

改了 Zone/VNet 配置,但没有生效。 SDN 的改动需要手动点 Apply Configuration 才会下发,光是保存表单不够。

创建了 VNet,但客户机接上去没有网络。 检查 Zone 类型对应的底层要求是否满足,例如 VLAN 类型要求物理网络里对应的 VLAN 已经在交换机上放通。

IPAM 自动分配的地址和我手动配置的冲突了。 内置 IPAM 目前是技术预览功能,行为可能不够严谨,混用手动和自动分配容易冲突,建议二选一。

参考资料 ​

延伸阅读 ​

Proxmox VE 非官方中文使用指南,与 Proxmox Server Solutions GmbH 无隶属关系。