LINUX.ORG.RU
ФорумAdmin

Traffic control


0

0

Хочу разделять траффик по разным критерям, основной из которых IP адрес компа в локалке. Инет раздается через SNAT. Добавляю рут дисциплину htb с дефолтом в 1:30, добавляю 1:1, 1:10, 1:20, 1:30, 1:40 Далее, для проверки: iptables -t mangle -A PREROUTING -j MARK --set-mark 2 tc filter add dev eth0 protocol ip parent 1:1 handle 2 fw flowid 1:40 А оно все-равно в дефолтовый 1:30 все идет. Что не так?

anonymous

На сколько я знаю, фильтры вешают на дисциплину, а не на классы.
Попробуйте в tc filter заменить parent на "parent 1:0".

spirit ★★★★★
()
Ответ на: комментарий от anonymous

А вот такой вот еще вопрос.

Как я уже говорил инет по локалке раздается средствами iptables, SNAT. Я вот думаю, что если я буду маркировать пакеты

iptables -t mangle -A FORWARD -s 192.168.1.x -j MARK --set-mark y

то ведь видимо это затронет только исходящие пакеты, а меня гораздо больше волнует контроль входящего траффика. Или механизм state такой умный, что все входящие ответные пакеты тоже будет маркировать? Вроде непохоже, т.к. я сделал фильтр на метку скажем 4, чтобы шло в поток 1:10, у которого rate и ceil стоят в 128kbit. И сделал правило iptables, в как указано выше, чтобы с определенного IP в локалке ставилась метка 4. Проверил на той машине скорость скачки определенно выше 128 кбит. Хотя какие-то пакеты все-равно появились в статистике потока 1:10.

Тогда как можно реализовать фильтр/маркирование на входящий траффик для установленного соединения SNAT? Ведь SNAT происходит уже в POSTROUTING, т.е. mangle сделать после обратной подмены на локальный адрес уже видимо нельзя. Или можно? Или есть другой способ?

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

> Или механизм state такой умный, что все входящие ответные пакеты тоже будет маркировать?
Нет, но это можно сделать с помощью iptables -j CONNMARK.

> как можно реализовать фильтр/маркирование на входящий траффик
Если он транзитный по отношению к тому компу, на котором shaper, то входящим он будет на одном интерфейсе, а на другом будет исходящим, соответственно для этого вида трафика shaper нужно будет вешать на этом другом интерфейсе.
Если трафик не транзитный, либо просто интересует другой вариант настройки ограничения, то это можно сделать с помощью IMQ устройства (вешаем на IMQ shaper и iptables-ом определяем туда интересующий нас трафик).

> т.е. mangle сделать после обратной подмены на локальный адрес уже видимо нельзя. Или можно?
Можно попробовать почитать man iptables на предмет модуля conntrack (параметры --ctorigsrc, --ctorigdst), хотя вам это скорее всего не понадобится.

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