我有一个使用 netplan 设置的 Linux 桥 (br0),如下所示:
version: 2
renderer: networkd
ethernets:
eno1:
dhcp4: no
dhcp6: no
bridges:
probr:
interfaces:
- eno1
macaddress: ab:cd:ef:01:02:03
addresses:
- 51.x.y.z/24
nameservers:
addresses:
- 8.8.8.8
- 1.1.1.1
parameters:
stp: false
forward-delay: 0
dhcp4: no
dhcp6: no
routes:
- to: 0.0.0.0/0
via: 55.x.y.254
- to: 55.x.y.z/28
scope: link
我使用带有网络参数的 libvirt virt-install:virt-install ... --network type=bridge,source=br0,model=virtio,filterref=clean-traffic,mac=00:11:22:33:44:55
网络按预期工作,但我注意到,如果我有多个虚拟机,发往已关闭虚拟机的流量将被广播到所有正在运行的虚拟机。这会泄露连接信息。有没有办法配置网桥不这样做?也许使用 ebtables?我注意到以下 ebtables 规则可以工作,但我正在寻找更通用的规则,因为我事先不知道接口名称(vnet1):ebtables -A FORWARD -p IPv4 --ip-destination 55.x.y.z -o ! vnet1 -j DROP
对非 mac 进行过滤将不起作用,因为 IP 和 MAC 是用于已关闭虚拟机的,但网桥仍出于某些原因决定广播它。