向 Linux 添加 VLAN 透明网桥 (Debian)

向 Linux 添加 VLAN 透明网桥 (Debian)

在我当前的 Debian 系统上,我使用 VLAN 标记,并创建用于 LXC 容器的网桥 br-wan 和 br-lan:

auto lo br-lan br-wan

iface lo inet loopback

iface br-wan inet manual
    bridge_ports eth0.3
    bridge_maxwait 0

iface br-lan inet static
    address 192.168.200.10
    netmask 255.255.255.0
    gateway 192.168.200.1
    bridge_ports eth0.2
    bridge_maxwait 0
      
iface eth0.1 inet static
    address 10.7.1.10
    netmask 255.255.255.0

现在我想添加一个 KVM 来宾,它可以透明访问 eth0,并在内部使用 VLAN 标记(例如,在 eth0.2 和 eth0.3 之间创建虚拟化路由器路由)。为了测试,我做了以下操作:

brctl addbr br-master
brctl addif eth0

然后我创建了一个 KVM guest 虚拟机,用--network=bridge=br-master,model=virtio它创建了一个接口 vnet0,该接口也作为桥接端口添加到 br-master。来宾内部添加了 VLAN 接口。在主机上,我在 vnet0 ( tcpdump -i vnet0 -e vlan) 和 br-master ( tcpdump -i br-master -e vlan) 中看到带标记的数据包。但是,流量永远不会到达主机上的 eth0。

我确信这个故事没有那么简单。如何在不破坏旧配置的情况下将这样一个 VLAN 透明的“主桥”添加到我的系统中?

答案1

我还没有尝试过这个,但它应该与bridge vlan ...命令一起使用。

对于您使用的每个 VLAN ID,vnet0您必须执行以下操作:

for vlanid in 1 2 3 4; do
    bridge vlan add dev eth0 vid $vlanid untagged
done

相关内容