06.09.2010

Очень simple traffic shaping/control

В версии Shorewall 4.4.6 появился новый способ управления трафиком. Очень подходит для шлюза, поскольку прост в настройке и даёт моментальный эффект. В частности, я могу быть уверен, что траффик bittorrent изнутри сети не займёт наглухо весь канал. Я так же могу быть уверен, что голосовая связь будет работать вне зависимости от того насколько канал нагружен. Всё это имеет свои ограничения. Больше, чем канал может пропустить он, разумеется, пропускать не станет. Но утилизация канала в единицу времени однозначно повысится.

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

Для того, чтобы начать получать профит от шейпинга, нужно сделать две простые вещи: включить его в shorewall.conf (TC_ENABLED=Simple) и определить внешний интерфейс в tcinterfaces.


sed -i "s/TC_ENABLED=.*/TC_ENABLED=Simple/" /etc/shorewall/shorewall.conf
echo "ppp0 External 5Mbps" > /etc/shorewall/tcinterfaces

Соответственно ppp0 нужно заменить на свой внешний интерфейс, а 5Mbps на свою ширину канала.

Дальше можно подстраивать приоритеты трафика в конфиге tcpri, который использует знакомый синтаксис конфигов shorewall.

С механизмами управления трафиком можно познакомиться почитав маны tc(8) и tc-prio(8).