Proxmox VE 的 SDN (Software Defined Networking) 是从 8.1 版本开始正式引入(之前是实验性插件)的重磅功能。它允许你在数据中心级别(Datacenter)统一管理跨节点的复杂网络拓扑,而不再需要去每一台主机的 /etc/network/interfaces 里肉搏。
既然你已经在玩 PVE HA 集群和 Debian 13,SDN 对你来说不是“选修课”,而是管理多节点架构的“必杀技”。
1. PVE SDN 的核心概念
在配置之前,你需要理解这四个层级:
- Zone (区域): 网络类型。比如 Simple(单机)、VLAN(物理交换机支持)、QinQ、以及最强大的 VxLAN(跨节点二层隧道)。
- VNet (虚拟网络): 相当于一个“虚拟交换机”。你给虚拟机分配网卡时,直接选这个 VNet 名字。
- Subnet (子网): 定义这个 VNet 下的 IP 范围、网关和 DHCP 配置。
- IPAM (IP 地址管理): 自动分配 IP。PVE 自带一个简单的,也可以对接外置的 NetBox。
2. SDN vs. WireGuard:本质区别与优势
虽然两者都能“连接网络”,但它们工作的维度完全不同:
| 特性 | PVE SDN (以 VxLAN 为例) | WireGuard (VPN) |
|---|---|---|
| 工作层级 | Layer 2 (二层)。支持广播、组播、非 IP 协议。 | Layer 3 (三层)。只负责 IP 包转发。 |
| 性能 | 极高。基于内核 VxLAN 模块,支持硬件卸载,内网带宽几乎无损。 | 较高。虽然快,但存在加密解密开销,受限于 CPU 性能。 |
| 配置粒度 | 宿主机级。虚拟机完全不知道 SDN 的存在,像插网线一样简单。 | 系统级。每个 VM 内部都需要装客户端、生成密钥、写配置。 |
| 集群集成 | 完美。VM 迁移(Migration)到另一台 PVE 后,网络自动无缝漂移。 | 麻烦。迁移后可能需要重新处理路由或保持连接。 |
| 主要用途 | 跨物理节点构建统一的虚拟局域网。 | 跨公网或不信任网络构建加密隧道。 |
简单一句话: 如果你的 PVE 节点都在内网(或有专线),用 SDN;如果你的节点跨越了公网 VPS,用 WireGuard 做底层,SDN 跑在 WireGuard 隧道上面。
3. 进阶经验与实战技巧
A. 针对你的 HA 集群:选 VxLAN
你有多个节点,VxLAN 是最优解。它通过 UDP 封装,让不同物理机上的 VM 感觉自己连在同一个物理交换机上。
- 技巧: VxLAN 需要一个
Peer Address List(所有节点的内网 IP)。如果有 3 个以上节点,建议开启EVPN控制平面,它能自动处理路由发现,避免手动维护 IP 列表。
B. 必备的软件包
SDN 默认没完全装好,你需要手动安装这个包才能在 Web 界面看到完整功能:
apt update && apt install libpve-network-perl
# 安装后需要重启 pve-cluster 服务或重启节点
systemctl restart pve-firewall pvestatdC. IPAM 与 DHCP 的妙用
你可以为不同的业务(如 Seafile 存储、Mastodon 数据库)划分不同的 VNet,并在 SDN 里开启 DHCP:
- 经验: 这样你新建 VM 时,不需要手动进系统改
/etc/network/interfaces,开机即联网,配合 Cloud-Init 简直是自动化运维神器。
D. 安全隔离 (Isolation)
在 SDN 的 Zone 配置里,有一个 bridge_ports 的选项。如果你不填,这个 Zone 就是一个纯虚拟隔离网络,里面的 VM 只能互相通信,无法上外网。这非常适合存放你那些敏感的数据库(Postgres/Redis),然后通过一个“跳板机”或者“双网卡 VM”来对外提供服务。
4. 你的“最佳实践”建议
考虑到你正在管理 Seafile 和 Mastodon,你可以这样规划:
- 管理 Zone (WireGuard): 保持现在的 wg1,用于你从外网远程操作 PVE 宿主机。
业务 SDN Zone (VxLAN): 创建一个名为
prod_vnet的二层网络。将你的 Seafile、Mastodon、Discourse 全部挂在这个 VNet 下。- 优势: 哪怕你把 Seafile 容器从节点 A 迁移到节点 B,它的内网 IP 永远不变,服务不会中断。
- DB 专属隔离 Zone: 把数据库放在一个没有外部网关的 SDN 子网里,只允许应用服务器访问。
注意: 每次在 Web 界面修改 SDN 配置后,记得点击那个蓝色的 「Apply」 按钮,否则配置不会下发到各个节点。