LINUX.ORG.RU

настройка Traffic Control

 , ,


0

1

Привет. Вот эти команды должны сделать скорость всем 4, а одному 96, но скорость у всех делается по дефолту 4mbps (1:11). Если поставить по дефолту скорость 96, то у всех будет 96 и команды фильтров ничего не дают.

tc qdisc add dev enp17s10 root handle 1: htb default 11

tc class add dev enp17s10 parent 1: classid 1:1 htb rate 96mbps ceil 100mbps

tc class add dev enp17s10 parent 1:1 classid 1:11 htb rate 4mbps

tc qdisc add dev enp17s10 parent 1:1 handle 10:0 sfq perturb 10

tc qdisc add dev enp17s10 parent 1:11 handle 20:0 sfq perturb 10

tc filter add dev enp17s10 protocol ip parent 1:0 prio 1 u32 match ip src 192.168.3.104 flowid 1:1

tc filter add dev enp17s10 protocol ip parent 1:1 prio 1 u32 match ip src 192.168.3.0/24 flowid 1:11

... match ip src 192.168...

Этим правилом ограничиваешь скорость «от них» на этот хост.
Где ... match ip dst ...?

DiMoN ★★★ ()

У Вас тут чепуха какая-то понаписана. Вы что, не можете даже разжеванную статью применить? Почему у Вас только один подкласс (1:11) создан? Да и второй фильтр Вам зачем, если у Вас назначен дефолтный подкласс?

funky ()
Ответ на: комментарий от chart41

Да и вообще, сейчас уже моветон ограничивать входящий трафик на внутреннем интерфейсе. Ведь внешний интерфейс будет забиваться входящим трафиком. Нужно использовать псевдо устройство IFB (ingress) на внешнем интерфейсе. И уже на нем классифицировать.

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

Просто ограничение 4мбпс на дефолтном подклассе 1:11, а на основном классе 1:1 - 96. И фильтром из дефолта хочется первести на основной класс.

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

Как всегда, Арч вики на высоте. Пример внизу прекрасно подходит к Вашему случаю с выделением гарантированной полосы одному IP.

Есть, правда, один нюанс. Ingress qdisc обрабатывает пакеты перед тем как они проходят обратную NAT трансляцию. То есть во входящих пакетах IP получателя - адрес роутера. По этому входящий трафик нельзя фильтровать по локальному адресу получателя.

Чтобы обойти это ограничение, Вы можете использовать псевдо устройство IMQ (придется патчить ядро) или, если Ваше ядро поддерживает модуль act_connmark, то Вы можете использовать псевдо устройство IFB. В этом случае информация о локальном получателе получается из CONNTRACK (action connmark).

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