Още една публикация за контрол на трафика с tc в Linux - Rascal - s

Още една публикация за контрол на трафика с помощта на tc в Linux

Много дистрибуции, ориентирани към рутер (openwrt, dd-wrt, ipcop и т.н.) имат собствена поддръжка на QoS. Въпреки това, такова QoS "извън кутията" не е гъвкаво и е адаптирано към интернет тарифите на "цивилизованите" страни, с постоянна скорост на достъп. В нашата социалистическа реалност скоростта през нощта може да бъде 2 пъти повече от тази през деня и е жалко да загубите този бонус.

В тази публикация ще се опитам да дам пример за работещо решение за приоритизиране на трафика на Linux с помощта на tc и iptables.

Първо, нека дефинираме променливите:

Създаваме основни планировчици на пакети и класове за входящ трафик:

Време е за изходящ трафик:

Сега създаваме 6 класа трафик с различен приоритет:

И така, имаме 6 класа трафик, от 1 (максимален приоритет) до 6 (минимален приоритет). По подразбиране целият трафик има 6-ти минимален приоритет.

Използвайки iptables, ще разложим трафика на класове, за това ще създадем специална верига -qos_tc :

С такова оформяне на трафика можете безболезнено да използвате IM, SSH и да сърфирате в интернет, докато имате десетки активни торенти. Честотната лента ще бъде автоматично разпределена към класове трафик с по-висок приоритет, ако е необходимо.

В някои вградени дистрибуции (например openwrt), за да работи скриптът, може да се наложи ръчно да заредите подходящите модули на ядрото: