Формирование полосы пропускания и задержки трафика на основе IP

Формирование полосы пропускания и задержки трафика на основе IP

Я знаю, как формировать задержку и пропускную способность отдельно. Для пропускной способности я могу сделать

wondershaper etho0 100 100

для задержки я могу запустить

tc qdisc add dev eth0 root netem delay 200ms

Однако мне необходимо ограничить шейпинг определенными IP-соединениями и одновременно шейпинговать задержку и пропускную способность.

Как я могу это сделать?

решение1

Вы можете использовать tc для формирования полосы пропускания следующим образом:

Этот класс будет формировать определенные адреса для определенной скорости. Нам также нужно настроить фильтр, чтобы любые пакеты, помеченные как таковые, проходили через это правило

tc class add dev eth0 parent 1:1 classid 1:5 htb rate 256kbps ceil 256kbps prio 1
tc filter add dev eth0 parent 1:0 prio 1 handle 5 fw flowid 1:5

После настройки этого класса вам необходимо настроить iptables, чтобы отметить конкретные пакеты, которые вы хотите формировать.

Далее создайте необходимую таблицу Mangle.

iptables -t mangle -N shaper-out
iptables -t mangle -N shaper-in

iptables -t mangle -I PREROUTING -i eth0 -j shaper-in
iptables -t mangle -I POSTROUTING -o eth0 -j shaper-out

Далее настраиваем метки, которые нам нужны для формирования определенных IP-адресов. Метка 5 — это та, которая сформирована до 256.
iptables -t mangle -A shaper-out -s 10.0.0.5 -j MARK --set-mark 5
iptables -t mangle -A shaper-in -d 10.0.0.5 -j MARK --set-mark 5

Это должно сформировать 10.0.0.5 до 256 кбит/с.

Ссылка (мой блог) -http://sirlagz.net/2013/01/27/как-превратить-raspberry-pi-в-маршрутизатор-wifi-shaping/

Связанный контент