День добрый.
Дано:
Шлюз на debian
eth0 - инет
eth1 - локалка
Задача:
Пускать локалку в инет, ограничивать ширину канала для определенных адресов и по портам.
Решил использовать shorewall и шейпиг его встроенными средствами. Протестировал шейпинг с такими настройками:
tcdevices
#INTERFACE IN-BANDWITH OUT-BANDWIDTH
eth0 6Mbit 6Mbit
eth1 100Mbit 100Mbit
tcclasses
#INTERFACE MARK RATE CEIL PRIORITY OPTIONS
eth0 1 2000kbit full 2
eth0 255 1000kbit full 255 default
eth1 255 full full 255 default
tcrules
#MARK SOURCE DEST PROTOCOL PORT(S)
1 0.0.0.0/0 0.0.0.0/0 tcp http,https,8000,8080
На шлюзе из консоли выкачивал файл, но скорость скачки резалась до примерно 1/3 от максимальной скорости. Если закомментировать правила, то по идее должен остаться дефолтный класс для eth0:
eth1 255 full full 255 default
Никаких других ограничений не будет, однако, скорость скачки все равно 1/3. Нормальная скорость возвращается если стопнуть shorewall.
Подскажите, где я не правильно понимаю шейпинг?
UPD. Так, я действительно не понял сам принцип. Шейпится только исходящий трафик, а я фигню какую-то написал. Пойду читать более вдумчиво.