我在 archlinux 上创建了具有桥接接口(使用桥接助手)的虚拟机 (ppc)。机器可以发送数据包,但无法接收任何内容。我可以使用 wireshark 看到数据包(当设置了静态 IP 时,dhcp discover、request 和/或 arp)运行到主机。
我正在使用命令运行机器:
qemu-system-ppc -hda debian_ppc.rawdisk -nographic -net nic -net bridge,br=br0
我也有一台使用相同桥接器在虚拟机中运行的 Windows 机器,并且运行正常。
桥的配置,我使用 br0 作为 qemu 机器,eno1 是心理的
$brctl show
bridge name bridge id STP enabled interfaces
br0 8000.f0921cee9976 no eno1
tap0
winbr 8000.0050b60c205c no enp0s20u6
ebtables 的输出:
$ ebtables -L
Bridge table: filter
Bridge chain: INPUT, entries: 0, policy: ACCEPT
Bridge chain: FORWARD, entries: 0, policy: ACCEPT
Bridge chain: OUTPUT, entries: 0, policy: ACCEPT
$ ebtables -t broute -L
Bridge table: broute
Bridge chain: BROUTING, entries: 0, policy: ACCEPT
最后,输出netstat -i
(您可以看到 tap0 上丢弃了大量数据包)。
Kernel Interface table
Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
br0 1500 89009 0 1572 0 26228 0 0 0 BMPRU
eno1 1500 110239 0 472 0 37831 0 0 0 BMPRU
enp0s20u 1500 0 0 0 0 0 0 0 0 BMU
lo 65536 82788 0 0 0 82788 0 0 0 LRU
tap0 1500 92 0 0 0 1 0 54759 0 BMPRU
winbr 1500 0 0 0 0 0 0 0 0 BMU
如需完整信息,还可输出brctl showstp br0
:
br0
bridge id 8000.f0921cee9976
designated root 8000.f0921cee9976
root port 0 path cost 0
max age 19.99 bridge max age 19.99
hello time 1.99 bridge hello time 1.99
forward delay 14.99 bridge forward delay 14.99
ageing time 299.99
hello 计时器 0.00 tcn 计时器 0.00 拓扑变化计时器 0.00 gc 计时器 1.19 标志
eno1 (1)
port id 8001 state forwarding
designated root 8000.f0921cee9976 path cost 4
designated bridge 8000.f0921cee9976 message age timer 0.00
designated port 8001 forward delay timer 0.00
designated cost 0 hold timer 0.00
flags
tap0 (2)
port id 8002 state forwarding
designated root 8000.f0921cee9976 path cost 100
designated bridge 8000.f0921cee9976 message age timer 0.00
designated port 8002 forward delay timer 0.00
designated cost 0 hold timer 0.00
flags
问题可能出在哪里?几个月前我成功使用了它,它运行正常。非常感谢您的回答!