Требуется ограничить исходящий трафик различных типов трафика при помощи управления выходными очередями. Применяется дисциплина Hierarchical Token Bucket.
Пример 1. Ограничение всего исходящего трафика в 100 Кбит/с.
eth0 : ifAddress : : prefix = "192.168.1.1/24" : link : : qdisc : : : queue-type = "htb" : : : htb : : : : default = 1 : : : : classes : : : : : 1 : : : : : : ceil = 100000 : : : : : : rate = 100000
Пример 2. Ограничение в зависимости от каких-либо критериев. Пакеты маркируются средствами IPtables и кладутся в нужную очередь интерфейса. В данном примере трафик TCP маркируется в очередь 2:2 и ограничивается 10000000 бит/с; остальной трафик не маркируется и попадает по умолчанию в очередь 2:1 с лимитом 100000 бит/с.
ip : mangle : : FORWARD : : : 1 : : : : protocol = "tcp" : : : : target = "CLASSIFY" : : : : set-class = "2:2" port : eth0 : : ifAddress : : : prefix = "192.168.1.1/24" : : link : : : qdisc : : : : queue-type = "htb" : : : : handle = 2 : : : : htb : : : : : default = 1 : : : : : classes : : : : : : 1 : : : : : : : ceil = 100000 : : : : : : : rate = 100000 : : : : : : 2 : : : : : : : ceil = 10000000 : : : : : : : rate = 10000000
Дополнительные замечания:
В первом примере можно было бы использовать и простой Token Bucket Filter, но используется HTB как подготовительный пример ко второму. Эквивалентная конфигурация для TBF:
eth0 : ifAddress : : prefix = "192.168.1.1/24" : link : : qdisc : : : queue-type = "tbf" : : : tbf : : : : rate = 100000 : : : : peakrate = 100000