Qemu 中用于丢弃虚拟机数据包的 Iptables 规则

Qemu 中用于丢弃虚拟机数据包的 Iptables 规则

我正在尝试丢弃通过 Tap 接口连接的虚拟机的数据包,但是不起作用。

iptables -A INPUT -i 553d1a58350ea -s 172.16.0.206 -j DROP
ping 172.16.4.119 # Works

我的 QEMU 使用它,它调用如下:(省略不相关的参数)

qemu-system-x86_64 -net nic,model=virtio,netdev=net0 -netdev tap,id=net0,ifname=553d1a58350ea,script=no,downscript=no

我手动创建了 Tap 设备并将其连接到 Open vSwitch 桥。为什么我的规则不起作用?如果我对主机上的另一个接口使用相同的规则,它就会起作用并阻止连接。

tap 接口本身没有 IP 地址,但我可以使用 tcpdump 看到所有流量:

tcpdump -i 553d1a58350ea

这是否与 Tap 设备没有 IP 地址有关?

答案1

过滤表中的转发规则怎么样?

iptables -A FORWARD -s (source ip) -o tap0 -DROP

-o设置规则的传出网络接口,只能与 filter 表中的 OUTPUT 和 FORWARD 链以及 nat 和 mangle 表中的 POSTROUTING 链一起使用。此参数的选项与传入网络接口参数 ( -i) 的选项相同。

相关内容