Я пишу программное обеспечение для управления пропускной способностью в Linux. Я использую TC для формирования полосы пропускания, и он работал нормально. Я хочу на время ограничить полосу пропускания пользователя. Например:
Как лучше всего это сделать?
Вы можете добавить правило iptables для каждого IP-адреса и использовать его для подсчета трафика, прошедшего через правило. Просто добавьте 2 правила для каждого IP:
iptables -A FORWARD -s <ip>
iptables -A FORWARD -d <ip>
И тогда вы можете получить результаты с iptables -nv -L FOWARD
это вернет что-то вроде этого:
# iptables -nvL FORWARD
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT all -- * virbr0 0.0.0.0/0 192.168.122.0/24 state RELATED,ESTABLISHED
Это ноль, но bytes
колонка даст вам то, что вы хотите клянусь :)
После этого все, что вам нужно, это cron
задание, чтобы сохранить эти значения и проверить, не превышают ли они выделенные байты на этой неделе, затем измените правила, чтобы заблокировать трафик или использовать tc
чтобы ограничить их пропускную способность или что-то еще.
В модуль квот iptables тоже может быть весьма полезным.