LINUX.ORG.RU
ФорумAdmin

Правильная настройка шейпинга через tc

 , , ,


0

2

Доброго времени суток! Пытаюсь настроить шейпинг через tc на роутере с padavan-прошивкой (Xiaomi 3G). Суть в том, чтобы трафик с некоторых определенных устройств в сети (если он есть) был с наивысшим приоритетом и любой другой трафик подстраивался под эти устройства. В целом - почти ничего сложного и получился следующий скрипт:

#!/bin/sh
[ -z "$(lsmod | grep imq)" ] && modprobe imq
WAN=br0
BW=98mbit
tc qdisc del root dev $WAN || true
tc qdisc add dev $WAN root handle 1: htb r2q 1250 default 90
tc class add dev $WAN parent 1: classid 1:1 htb rate $BW
# tv+radio
tc class add dev $WAN parent 1:1 classid 1:10 htb rate 49mbit ceil $BW prio 1
tc filter add dev $WAN protocol ip parent 1: u32 match ip dst 10.9.12.85 flowid 1:10
tc filter add dev $WAN protocol ip parent 1: u32 match ip dst 10.9.12.101 flowid 1:10
tc filter add dev $WAN protocol ip parent 1: u32 match ip dst 10.9.12.23 flowid 1:10
tc filter add dev $WAN protocol ip parent 1: u32 match ip dst 10.9.12.44 flowid 1:10
tc qdisc add dev $WAN parent 1:10 handle 20: sfq perturb 10
# other
tc class add dev $WAN parent 1:1 classid 1:90 htb rate 49mbit ceil $BW prio 2
tc qdisc add dev $WAN parent 1:90 handle 99: sfq perturb 10
И все отлично работает, если запустить при просмотре iptv (идет по юникасту) обычную закачку по http с левой машины. НО если запустить торрент - поток на ТВ умирает и даже после остановки закачки этого торрента не подымается сам, нужно делать принудительный рестарт. Вопрос собственно в том, что еще нужно дописать в правилах шейпинга чтобы торренты таки «уважали» устройства в секции tv+radio? PS: торрент-клиент ограничен 50 соединениями, что не так уж и много.


Эта тема уже тыщу раз осуждалась. sfq балансирует по потокам. А тебе нужно балансировать по IP. Торрент клиент создает множество потоков и забивает канал.

iron ★★★★★
()
Ответ на: комментарий от inox

или iptables колличество одновременных с хоста ограничь .Также в поиске посмотри + тот же forum.nag.ru

pinachet ★★★★★
()
Ответ на: комментарий от inox

Попробуй после:

tc qdisc add dev $WAN parent 1:10 handle 20: sfq perturb 10
добавить:
tc filter add dev $WAN parent 20: protocol ip handle 1 flow hash keys nfct-dst divisor 256 baseclass 1:10

Пишу по памяти, так как того сервака давно уже нет.

Помнится я так же юзал esfq вместо sfq. Жив ли оно еще и как работает на новых ядрах - хз. Давно дело было.

iron ★★★★★
()
Ответ на: комментарий от iron

Спасибо, попробую этот вариант! Кстати, временно удалось решить проблему путем ограничения $BW до 95mbit (провайдер дает 100 по пакету). Походу ТВ сыпался из-за того, что я упирался уже в провайдерский лимит.

inox
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.