PVE 单机默认使用Linux Bridge进行网络配置。

PVE 集群的Vnets本质上和VMware的vDS分布式交换机很像,就是为了在集群里面给虚拟机一个统一的网络接入选项。当虚拟机在线迁移、故障切换的时候能够自动化,在任意主机节点都能使用对应网络。

参考文档:https://pve.proxmox.com/pve-docs/chapter-pvesdn.html

PVE系列文章:https://songxwn.com/categories/PVE/

PVE单机网络

1
2
3
4
5
6
7
8
VM/CT 虚拟网卡 - 可配置VLAN 
↓
vmbr0 - Linux Bridge 虚拟二层交换机
↓
nic0 - PVE主机物理网卡 / Bond - 多物理网卡捆绑
↓
物理交换机 - VLAN和MTU都需要交换机接口进行适配

Linux Bridge - 二层虚拟交换机

  • 可配置IP/IPv6地址、网关作为PVE管理口。
  • 网桥端口绑定物理网卡、Bond网卡。 (也可不绑定作为仅内部二层交换机)
  • VLAN感知,如果虚拟机网卡需要增加VLAN进行通信需要勾选。
  • MTU,如果需要巨帧通信需要调大。

Linux Bond - 链路聚合

将复数以上的网卡进行绑定为一个逻辑虚拟网卡,用于故障转移和增加带宽。不能直接被虚拟机使用,需要被 Linux Bridge调用。

  • 从属设备:准备加入 Bond 的两张物理网卡

Linux Bond 模式

模式 怎么工作 交换机侧要求 适合什么情况
active-backup(主备,mode 1) 平时只用一张网卡;故障后切到另一张 通常不需要配置链路聚合 最看重稳定和冗余、交换机不方便配置
802.3ad / LACP(mode 4) 与交换机协商聚合,多条链路按哈希规则分担流量 必须配置匹配的 LACP 聚合组 多台虚拟机、多条连接,希望兼顾冗余与总体吞吐
balance-xor(mode 2) 按哈希规则为流量选择成员网卡,不进行 LACP 协商 通常需要配置静态聚合,不能当普通端口用 交换机支持静态聚合、但不用 LACP
balance-rr(轮询,mode 0) 数据包轮流走不同网卡 通常需要匹配的交换机聚合配置 特定场景;可能造成乱序,一般不作为首选
broadcast(广播,mode 3) 同一数据包从每张网卡都发一份 需仔细核对网络拓扑 特殊的高可靠性需求;浪费带宽
balance-tlb(mode 5) 主要对发送流量做负载分担,接收流量通常集中在一张网卡 通常不需要交换机聚合 不能配交换机聚合、但想分担部分流量
balance-alb(mode 6) 在 TLB 基础上,尝试通过 ARP 协调部分接收流量 通常不需要交换机聚合 特定网络环境;机制较复杂,需测试兼容性

模式该怎么选?

  • 只是想一张网卡坏了不断网:优先考虑 active-backup,配置简单。
  • 有可管理交换机,能配置 LACP,且有多台虚拟机或多条并发连接:考虑你图中的 802.3ad / LACP。
  • 交换机端口不能配置聚合:不要选 LACP;可先用 active-backup。
  • 两根线分别接两台独立交换机:active-backup 更容易实现冗余;要用 LACP,交换机必须支持并正确配置跨设备聚合,不能仅把两端都设成 LACP。

Linux VLAN - PVE管理VLAN子接口

在 PVE 里,Linux VLAN 是一个带 VLAN 标签的虚拟网络接口。它让 PVE 宿主机自己接入某个 VLAN。比如创建 vmbr0.20,就可以理解为:宿主机通过 vmbr0 接入 VLAN 20。

  • 名称后面的数字代表使用的VLAN ID。
  • 可配置IP/IPv6地址、网关作为PVE管理口。
  • VLAN原始设备绑定Linux Bridge设备。

应用配置

  • 任何网络修改都需要手动应用之后才能生效,如果修改后网络不正常,可以去/etc/network/interfaces 修改。

PVE SDN集群网络

Simple区域

这是最简单的插件,它将创建一个隔离的vnet桥接器。不链接到物理网卡,VM 流量仅是节点的本地流量。它还可用于 NAT 或路由设置。

VLAN区域

PVE 的 SDN VLAN 区域(VLAN Zone),可以理解为:把现有物理网络上的 VLAN,管理层面包装成集群里统一可选的虚拟网络。跨节点流量仍走你的物理网卡、交换机和 802.1Q VLAN。[1]

它有三层概念:

  • Zone(区域):指定使用哪个已有的本地网桥,例如各节点上的 vmbr0,以及部署到哪些节点。
  • VNet(虚拟网络):属于某个 Zone,并指定一个 VLAN Tag。例如 vlan20 对应 VLAN ID 20。配置应用后,它会作为同名网络接口出现在相关节点,供 VM/CT 选择。[1]
  • Subnet(子网):可选,用来描述 IP 网段、对接 IPAM 等。创建 VLAN VNet 不等于自动有 DHCP 或网关;在 VLAN Zone 中,三层网关通常由你的路由器、防火墙或其他设备提供。[1]

一个典型拓扑是:

1
2
3
4
5
6
7
VM(网卡选择 VNet:vlan20)
│
PVE 节点:SDN VNet → vmbr0 → 物理网卡
│
交换机端口:允许 VLAN 20 通过
│
其他 PVE 节点 / VLAN 20 的网关

配置顺序通常是:

  1. 先确认各 PVE 节点有用于上联的网桥(如 vmbr0),物理交换机到各节点的端口也允许目标 VLAN;常见做法是使用 VLAN-aware 网桥和承载相应 VLAN 的 trunk 链路。[1][2]
  2. 在 数据中心 → SDN → Zones 新建 VLAN 类型区域,Bridge 填各节点已存在的上联网桥,如 vmbr0。
  3. 在 数据中心 → SDN → VNets 新建 VNet,选择刚才的 Zone,Tag 填 20。
  4. 到 数据中心 → SDN 点击 Apply(应用)。SDN 修改会先处于待应用状态,不是创建完立即生效。[1]
  5. 给 VM/CT 的网卡选择这个 VNet;再按你的网络规划配置 IP、DHCP 和默认网关。

最容易混淆的一点:如果 VM 只是加入 VLAN 20,通常选择该 VNet 即可,不需要再给这块 VM 网卡重复设置 tag=20。VNet 的 Tag 已经定义了它对应的物理 VLAN;VNet 的 VLAN Aware 则是另一个选项,用于需要在客户机侧配置 VLAN 的场景。[1]

排障时按路径查:VNet 是否已 Apply → 节点上是否有该 VNet → Zone 的 Bridge 名是否正确 → 网桥/交换机上联是否放行 VLAN ID → VLAN 内是否有 DHCP 或可达网关。如果只是单机隔离网络,不要求与物理 VLAN 或其他节点上的同一 VLAN 互通,Simple Zone 可能更合适;如果底层网络无法承载 VLAN、却要跨节点二层互通,再考虑 VXLAN。[1]

创建VLAN区域

  • ID:区域名字
  • Bridge:每个PVE节点的网桥名字,必须统一可用
  • 节点:默认应用到所有PVE节点。
  • IPAM:不需要IP管理,选择默认的PVE即可。

创建VLAN Vnets

  • 填写名称
  • 选择上面创建的VLAN区域
  • 标记即VLAN tag。

应用配置到所有节点

  • 任何修改都需要应用到所有PVE节点

  • 所有节点可用则代表可以在任意节点使用已创建的Vnets。

QinQ区域 - 堆叠VLAN

QinQ 区域可以理解为“双层 VLAN 区域”:普通 VLAN 只有一层标签;QinQ 在外面再套一层。PVE SDN 中,外层 VLAN ID 在 QinQ Zone 里指定,内层 VLAN ID 在各个 VNet 的「标记(Tag)」里指定。[1]

例如:

1
2
3
QinQ Zone:外层 Service VLAN = 100
├─ VNet A:内层 Tag = 10 → 线上是「外层 100 + 内层 10」
└─ VNet B:内层 Tag = 20 → 线上是「外层 100 + 内层 20」

它适合运营商链路、多租户网络等需要把多个内层 VLAN 封装在同一个外层 VLAN 中传输的场景。如果你只是让 VM 接入交换机现有的 VLAN 20,继续用前面讲的 VLAN Zone 就够了,不需要 QinQ。

在 PVE 里配置时,关键字段是:

  1. Bridge:选择节点上已有的、连接物理网络的 VLAN-aware 网桥,例如 vmbr0。
  2. Service VLAN:填写外层 VLAN ID。
  3. Service VLAN Protocol:选择外层标签协议;PVE 文档写明可选 802.1Q(默认)或 802.1ad。这项必须与对端设备的配置一致。
  4. 创建该 Zone 下的 VNet,在 VNet 的 Tag 填内层 VLAN ID,最后到 SDN 页面点击 应用。[1]

与普通 VLAN Zone 最大的差别在物理网络要求:交换机及沿途设备必须支持并正确放行双层标签;只在 PVE 中建好 QinQ Zone,不会自动把交换机配置好。双标签也有额外开销,PVE 文档提醒要考虑多出的 4 字节:例如物理接口 MTU 为 1500 时,文档给出的 QinQ MTU 示例是 1496。[1]

创建QinQ区域

  • 业务VLAN,即外层VLAN。 需要交换机支持。

创建QinQ - Vnets

运维技术交流群

发送邮件到 ➡️ [email protected]

或者关注WX公众号:网工格物

微信扫码

博客(最先更新)

https://songxwn.com/