Назад | Перейти на главную страницу

Пропускная способность и задержка формирования трафика на основе IP

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

wondershaper etho0 100 100

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

tc qdisc add dev eth0 root netem delay 200ms

Однако мне нужно ограничить формирование определенными IP-соединениями, и мне нужно одновременно формировать задержку и полосу пропускания.

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

Вы можете использовать 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/how-to-turn-the-raspberry-pi-into-a-shaping-wifi-router/