我有一个无线路由器其中wlan0
接口(无线电接口)是桥接的使用以太网接口eth0
(连接到充当 DHCP 的另一台服务器)
/ # brctl show br0
bridge name bridge id STP enabled interfaces
br0 8000.bce67c4d8fb0 no eth0
wlan0
Linux内核版本:4.4.60 nftables版本:v0.9.6
我试图在 ip6 系列中设置一条规则来限制 ipv6 流量的速率。这是我的规则:
/ # nft list chain ip6 ngadre_rate_limiting ngadre_counter
table ip6 ngadre_rate_limiting {
chain ngadre_counter {
type filter hook prerouting priority raw; policy accept;
limit rate 625 kbytes/second counter packets 1945 bytes 609744 accept
counter packets 0 bytes 0 drop
}
}
当我运行sudo ping6 2006:db8:0:f101::10 -i 0.1
规则时,计数器会增加。但是当我运行时iperf3 -V -c 2006:db8:0:f101::10 -p5678 -i1 -tinf
,规则是命中计数器不会增加,并且流量不受速率限制。
我应用了以下规则维基百科:
nft add rule filter input limit rate 10 mbytes/second accept
我是否遗漏了 ip6 规则中的某些内容?
更新 1:我尝试过limit rate 2/second
并快速尝试ping6 -i 0.1
,这里的规则是命中和丢弃计数器递增,而且 ping6 的速率限制为每秒 2 个数据包。这意味着与icmpv6似乎没有任何问题limit rate
,但是当我尝试时iperf3,这个规则甚至不命中和掉落计数器也不递增。
答案1
在我的组织的一些内部帮助之后,在其他地方添加了某些在数据包上进行标记的规则,我无法在开放论坛上分享这些规则。基于此,数据包跳过了速率限制规则。我通过设置适当的标记解决了这个问题。