有人知道 Linux Bridge 是否支持传递多个 VLAN 吗?我见过很多例子,比如 eth0.VLAN_id,然后将其添加到 BR0,这样就可以了。我实际上想要的是传递 BR0 上的多个 VLAN,例如 eth0.11、eth0.2、eth0.3。所有这些都绑定到 BR0,但它不起作用。
经过大量搜索,我尝试将 VLAN 绑定到网桥而不是物理适配器,但这种方法行不通。例如,我有 BR0.1 BR0.14 等等。这种方法行不通。添加多个 VLAN 并将它们绑定到物理接口也行不通。将多个 VLAN 绑定到同一个网桥也会导致 VLAN 标记流量被丢弃。
有人知道如何使用 Linux 桥接器实现这一点吗?我问这个问题的原因是,如果我的 FW 在不同的 VLAN 中有许多子接口,并且每个顶级接口都链接到一个 br 接口,该怎么办?换句话说,Linux 桥接器可以是中继端口吗?
答案1
您是否尝试过这样的事情:
network:
version: 2
renderer: networkd
ethernets:
ens1: {}
vlans:
vlan2:
dhcp4: no
dhcp6: no
accept-ra: no
id: 2
link: ens1
vlan3:
dhcp4: no
dhcp6: no
accept-ra: no
id: 3
link: ens1
bridges:
br2:
dhcp4: no
dhcp6: no
interfaces: [ vlan2 ]
br3:
dhcp4: no
dhcp6: no
interfaces: [ vlan3 ]
这实际上会创建一个连接到 ens1 的交换机,为 vlan 2 和 3 进行“中继”。
答案2
您可能必须手动运行适当的“bridge vlan”命令,因为据我所知,netplan 仍在使用旧的子接口方法。
brctl 已被弃用,并且无法正确处理 vlan 标签,所以您肯定不想要这样。
以下是手动配置标签的示例:https://developers.redhat.com/blog/2017/09/14/vlan-filter-support-on-bridge/
如果 netplan 有钩子可以在接口启动后立即执行脚本,那么这可能会起作用,