Добрый день всем. занялся на досуге настройкой шейпера. На шлюзе постоянно работает p2p клиент, и как бы временами мешал, забирая весь трафик. Так вот, решил все это дело маркировать с помощью модуля ipp2p. Собрал, установил, правила настроил. И вроде бы первые минуты все отлично, трафик детектирует, метки ставит, а дальше tc делает свое дело. Но по прошествии времени замечаю что часть трафика (в среднем от 5% до 15%) не маркируется. Правила сделал согласно ману
iptables -t mangle -A POSTROUTING -j CONNMARK --restore-mark
iptables -t mangle -A POSTROUTING -m mark ! --mark 0 -j ACCEPT
iptables -t mangle -A POSTROUTING -m ipp2p --bit -j MARK --set-mark 24
iptables -t mangle -A POSTROUTING -j CONNMARK --save-mark
И смотрим
shorewall show connections | grep mark=0 | grep -v 127.0.0.1 | grep src=мой_внешний_ip | grep -v UNREPLIED | grep 5005
Через пару минут вывод начинает увеличиваться. (5005 это порт который случает торрент клиент).
Если добавить правило, при котором назначаются метки всем пакетам от пользователя UNIX от которого запущен торрент клиент
iptables -t mangle -A POSTROUTING -m owner --uid-owner 10001 -j MARK --set-mark 24
То все нормально, все попадает в очередь. Но так делать не хочется (сделал бы по pid процесса, но это вырезали из iptables, а аналог не нашел)
Что не так? И Почему сперва пакеты метит хорошо, а спустя время часть пропускает?
PS. C входящим трафиком проблем нет (тот что в PREROUTING попадает). А вот с исходящим непонятки