我正在尝试丢弃通过 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
) 的选项相同。