某些路由器具有所谓的流量控制中具有“惩罚性限速”的功能:(例如)192.168.1.100在120秒内平均速率超过100KB/S,那么把该IP
列入惩罚队列,惩罚队列速率是40KB/S.
其实,利用iptables的也可以实现类似的功能。脚本如下:
iptables -t mangle -N LMT
iptables -t mangle -N LMT2
iptables -t mangle -I FORWARD -d 192.168.1.100 -m length --length 128: -j LMT
iptables -t mangle -A LMT -m recent --rdest --name badguy --rcheck --seconds 60 -j LMT2
iptables -t mangle -A LMT -m limit --limit 100/sec --limit-burst 5000 -j RETURN
iptables -t mangle -A LMT -m recent --rdest --name badguy --set -j RETURN
iptables -t mangle -A LMT2 -m limit --limit 50/sec --limit-burst 5000 -j RETURN
iptables -t mangle -A LMT2 -j DROP