我正在使用带有桥接网络的 kvm,并且我想限制所有虚拟机每秒的数据包数。
我知道如何使用 iptables 来实现这一点,但它不起作用。尽管如此,并非所有 iptables 规则都适用于路由虚拟机 ips net.bridge.bridge-nf-call-iptables = 1
。
答案1
您需要告诉内核将通过桥接器的数据包传递给 netfilter/iptables:
/proc/sys/net/bridge/bridge-nf-call-iptables => pass (1) or don't pass (0) bridged IPv4 traffic to iptables' chains.
/proc/sys/net/bridge/bridge-nf-call-ip6tables => pass (1) or don't pass (0) bridged IPv6 traffic to ip6tables' chains.
/proc/sys/net/bridge/bridge-nf-filter-vlan-tagged => pass (1) or don't pass (0) bridged vlan-tagged ARP/IP traffic to arptables/iptables.
因此,要过滤 IPv4 流量,您需要设置:
echo 1 > /proc/sys/net/bridge/bridge-nf-call-iptables
如果您使用 VLAN,您可能filter-vlan-tagged
也需要启用该选项。