我设置了一个 Linux 桥接器,上面有一些虚拟机/容器,以及一个或多个物理接口。目标是让容器接口在不同的 VLAN 上运行,上行链路连接(由 netplan 管理)也在关联的 VLAN 上运行。netplan 设置大致如下所示:
version: 2
bonds:
bond0:
interfaces: [eno3, eno4]
parameters:
mode: 802.3ad
min-links: 1
vlans:
bond0.2001:
id: 2001
link: bond0
dhcp4: no
bridges:
sw:
interfaces: [bond0.2001]
link-local: []
问题在于,netplan 用于将“vlan”接口与网桥关联的机制实际上并没有将其与所需的 vlan 关联桥内:
$ brctl show
bridge name bridge id STP enabled interfaces
sw 8000.2ea3ff2f0b00 no bond0.2001
$ bridge vlan
port vlan-id
bond0.2001 1 PVID Egress Untagged
container1 2001 PVID Egress Untagged
因此,如果网桥内的所有设备都在同一个 VLAN 上运行(或没有 VLAN),并且只有一个物理接口,那么一切就都正常了,物理接口将标记出口流量。但是,由于 netplan 始终为网桥内的每个物理接口提供相同的 VLAN 1,因此在网桥内混合使用 VLAN 似乎是不可能的。我是不是漏掉了什么?