Похоже, с современными iptables ограничение трафика является довольно простой задачей.
Соблюдайте квоту модуля:
iptables -A OUTPUT -p tcp --dport 80 -m quota --quota 1024 -j ACCEPT iptables -A OUTPUT -p tcp --dport 80 -j DROP
Это примет 1 КБ данных, а затем отбросит все соединения :), --quota
непрерывно уменьшая счетчик, и когда оно достигает 0, правило больше не совпадает, поэтому следующий включается и блокирует все.
Вы даже можете увидеть, сколько осталось трафика
# iptables -L OUTPUT -v Chain OUTPUT (policy ACCEPT 3640 packets, 1753K bytes) pkts bytes target prot opt in out source destination 1 40 ACCEPT tcp -- any any anywhere anywhere tcp dpt:http quota: 984 bytes 0 0 DROP tcp -- any any anywhere anywhere tcp dpt:http
и через некоторое время
# iptables -L OUTPUT -v Chain OUTPUT (policy ACCEPT 3814 packets, 1773K bytes) pkts bytes target prot opt in out source destination 8 996 ACCEPT tcp -- any any anywhere anywhere tcp dpt:http quota: 0 bytes 9 504 DROP tcp -- any any anywhere anywhere tcp dpt:http
Похоже, если я смогу установить этот модуль на OpenWRT, ограничение трафика будет легкой задачей.