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

Ограничьте пропускную способность для двух источников трафика вместе, но не для одного из них

Есть 2 источника трафика

Первому из них ничто не должно мешать, он должен иметь возможность привлекать столько доступного трафика, сколько захочет.

Второй, с другой стороны, должен быть ограничен таким образом, чтобы они оба вместе не могли превышать определенный предел. То есть они могут его превысить, но это не должно быть «ошибкой» второго источника - в этом случае весь трафик отводится первым.

Можно ли это сделать с помощью tc?

Прямо сейчас есть решение, ограничивающее трафик для обоих:

tc qdisc add dev eth0 root handle 1: htb default 101
tc qdisc add dev eth1 root handle 1: htb default 101

tc class add dev eth0 parent 1: classid 1:1 htb rate 50000kbit
tc class add dev eth1 parent 1: classid 1:1 htb rate 50000kbit

tc class add dev eth0 parent 1:1 classid 1:101 htb rate 49500kbit ceil 50000kbit prio 0 quantum 16000
tc qdisc add dev eth0 parent 1:101 handle 101: sfq perturb 10
tc filter add dev eth0 parent 1:0 protocol ip prio 0 handle 1 fw classid 1:101

tc class add dev eth1 parent 1:1 classid 1:101 htb rate 49500kbit ceil 50000kbit prio 0 quantum 16000
tc qdisc add dev eth1 parent 1:101 handle 101: sfq perturb 10
tc filter add dev eth1 parent 1:0 protocol ip prio 0 handle 1 fw classid 1:101

tc class add dev eth0 parent 1:1 classid 1:102 htb rate 500kbit ceil 50000kbit prio 1 quantum 16000
tc qdisc add dev eth0 parent 1:102 handle 102: sfq perturb 10
tc filter add dev eth0 parent 1:0 protocol ip prio 1 handle 2 fw classid 1:102

tc class add dev eth1 parent 1:1 classid 1:102 htb rate 500kbit ceil 50000kbit prio 1 quantum 16000
tc qdisc add dev eth1 parent 1:102 handle 102: sfq perturb 10
tc filter add dev eth1 parent 1:0 protocol ip prio 1 handle 2 fw classid 1:102

Удаление ceil параметр первого класса должен помочь. Без него не будет жесткого ограничения для вашего первого источника трафика.