在我当前的 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