LINUX.ORG.RU
ФорумAdmin

iptables - урезать кол-во одновременных соединений по UDP


0

1

Есть сеть на 3 машины. Стоит мопед lan422 по нему делиться трафик. Суть проблемы в том, что на одной машине работает noname прога. Она создает кучу udp соединений именно по порту 35288.

cat /proc/net/ip_conntrack выдает

[code] 0x9453b600 0x13baae udp 17 27 src=192.168.1.2 dst=118.157.220.124 sport=35288 dport=61988 src=118.157.220.124 dst=95.71.23.34 sport=61988 dport=35288 use=1 mark=12 0x94a31780 0x13ba88 udp 17 28 src=192.168.1.2 dst=88.204.195.252 sport=35288 dport=29566 src=88.204.195.252 dst=95.71.23.34 sport=29566 dport=35288 [ASSURED] use=1 mark=6 0x9479ed40 0x13b9ff udp 17 20 src=192.168.1.2 dst=79.133.138.124 sport=35288 dport=50446 [UNREPLIED] src=79.133.138.124 dst=95.71.23.34 sport=50446 dport=35288 use=1 mark=6 0x94756700 0x13b9a2 udp 17 13 src=118.168.192.58 dst=95.71.23.34 sport=22138 dport=35288 src=192.168.1.2 dst=118.168.192.58 sport=35288 dport=22138 use=1 mark=12 0x9479a8c0 0x13b934 udp 17 58 src=192.168.1.2 dst=46.159.139.252 sport=35288 dport=64294 src=46.159.139.252 dst=95.71.23.34 sport=64294 dport=35288 [ASSURED] use=1 mark=6 0x947ea940 0x13b8a9 udp 17 28 src=62.122.135.80 dst=95.71.23.34 sport=21604 dport=35288 src=192.168.1.2 dst=62.122.135.80 sport=35288 dport=21604 [ASSURED] use=1 mark=12 0x94533c80 0x13aab1 udp 17 59 src=192.168.1.2 dst=46.12.55.124 sport=35288 dport=18936 src=46.12.55.124 dst=95.71.23.34 sport=18936 dport=35288 [ASSURED] use=3 mark=12 [/code]

Закрытие портов 35288 привело к тому, что прога сменила порт работы на рэндомный. Теперь я мыслю в сторону ограничения количества одновременных подключений с одного IP. Но как это реализовать?! да еще и для udp ??!!!

вот что пишут на сайте разрабов прошивки: [quote]- Добавлена возможность ограничивать кол-во одновременных соединений с компьютеров в сети через правило connmark. [/quote]

на мопеде стоит iptables v1.2.7a модуля --limit в нем нет.

Существует-ли решение этой задачи?!



Последнее исправление: jenrua (всего исправлений: 1)

udp соединений в природе не бывает.

или бань по протоколу или ещё и по порту

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

Закрытие портов 35288 привело к тому, что прога сменила порт работы

протокол банить совсем не вариант

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

тогда или ищи вирьё или поотрубай торенты или поотрубай руки тому кто за этим компом сидит/

единственное что можно сделать в данной ситуации попробывать убить скорость этому конкретному траффикку с помощью tc

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

гугл юзать умеем читайте внимательней:

на мопеде стоит iptables v1.2.7a модуля --limit в нем нет.

# iptables -A FORWARD -p udp -m state --state NEW -m limit --limit 5/second --limit/burst 5 -j ACCEPT iptables v1.2.7a: Couldn't find match `limit'

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

дело в том что скорость на этом трафике соответствует правилам для него. ограничение стоит на 1850kbit. за рамки не выходит. но на остальных машинах пинги до ya.ru вырастают до 300-500. я грешу на кол-во подключение которые создает клиент.

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

руки отрубать тоже не вариант - я от него инет беру :)

jenrua
() автор топика

limit был и в 1.2.6a, другое дело, что вашему модему он, видимо, не достался. Смотрите, какие ещё есть модули. Вобще можно просто скрипт, который постоянно то включает, то выключает прохождение NEW пакетов на нужный порт. Тоже должно дать некторое снижение кол-ва коннектов. Только, возможно, что прога и при дропе пакетов может менять порт...

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

>udp соединений в природе не бывает

угу. но NEW пакеты, ЕМНИП Netfilter таки регистрирует для udp. В tcp NEW пакеты - это SYN. Как в случае udp поступает Netfilter - не интересовался, но факт остается фактом

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

есть connlimit. только не совсем понятно как им пользоваться.

А не получиться как-то использовать mark ? Весь трафик который идtт по его полосе маркируется либо mark=12 либо mark=6. Без -limit можно ограничить кол-во пакетов с одинаковой маркировкой? И есть можно то как?

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

В старых iptables connlimit ограничивал только tcp, udp не понимал. Вобще нужно понять в чём именно проблема. Если у вас заполняется conntrack таблица в ядре, то тут мало чем поможешь.

Ядро на каждый новый (которого нет в conntrack таблице) udp пакет создаёт запись. Причём, если ядро понимает вышестоящий над udp протокол, то запись исчезает при ответном udp-пакете. Иначе она там остаётся, пока 5 мин не будет пакетов по этому соединению. То есть, даже если рассматриваемые пакеты не отвечают и прога вещает в пустоту, то записи будут.

Может попробовать "-j NOTRACK", если ваше ядро это понимает.

Можно попробовать все new udp пакеты от этой проги засовывать в отдельную, совсем узкую полосу, не знаю, поможет это или нет.

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

как вариант - запретить UDP кроме необходимых портов 53-го и т.д. Если это торрент, а мне почему-то кажется, что это именно так, он перейдет на TCP. И задача сводится к ограничению TCP.

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

не поможет. трафика она есть очень и мало, и скорее всего вы правы и прога вещает именно в пустоту. загруженость канала(4Mbit)при ее работе - 25-30kbit. При этом пинг до яндекса от 150 до 300мс. Ядро "-j NOTRACK" не понимает.

временно проблема решилась следующим образом: выяснили че за прога (сосед говорит - клиент Покер Стар). отрубили. и все гуд. На будущее поставлю маршрутизатор с dd-wrt и попробую его покрутить :)

Всем спасибо за советы!

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