The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Раздел полезных советов: Как увеличить размер таблицы контро..."
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Разговоры, обсуждение новостей (Public)
Изначальное сообщение [ Отслеживать ]

"Раздел полезных советов: Как увеличить размер таблицы контро..."  +/
Сообщение от auto_tips on 10-Мрт-06, 16:21 
Если ядро ругается "kernel: ip_conntrack: table full, dropping packet.", причину флуда
(скорее всего вирус или сканирование портов) можно найти по списку /proc/net/ip_conntrack
Если просто общая загрузка большая, увеличить размер таблицы можно через /proc/sys/net/ipv4/ip_conntrack_max

Также можно увеличить размерность хэша через параметр  hashsize модуля ip_conntrack:
/etc/modules.conf:
   options ip_conntrack hashsize=N

Более тонкий тюнинг можно произвести через переменные определенные в /proc/sys/net/ipv4/netfilter

URL:
Обсуждается: https://www.opennet.ru/tips/info/985.shtml

Высказать мнение | Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Как увеличить размер таблицы контроля сессий ip_conntrack в ..."  +/
Сообщение от аноним on 10-Мрт-06, 16:21 
On 128 MB of RAM you will get 8192 possible entries, and at 256 MB of RAM, you will get 16376 entries...
------------------
http://www.faqs.org/docs/iptables/theconntrackentries.html
-------------------
тоесть, если у меня 128мб (больше не предвидится)
и значение стоит 8184, но выскакивает
"kernel: ip_conntrack: table full, dropping packet."
то выхода нет ?
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Как увеличить размер таблицы контроля сессий ip_conntrack в ..."  +/
Сообщение от Maxim Chirkov email(ok) on 10-Мрт-06, 18:33 
>тоесть, если у меня 128мб (больше не предвидится)
>и значение стоит 8184, но выскакивает
>"kernel: ip_conntrack: table full, dropping packet."
>то выхода нет ?

Это значение выставляетмое по умолчанию, никто не мешает поставить через /proc/sys/net/ipv4/ip_conntrack_max больше, из расчета 360 байт на запись. У нас был сервер c 128Мб ОЗУ и ip_conntrack_max=40000.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Как увеличить размер таблицы контроля сессий ip_conntrack в ..."  +/
Сообщение от sire email(??) on 30-Мрт-07, 01:00 
Можно, пожалуйста, подробне про "причину флуда
(скорее всего вирус или сканирование портов) можно найти по списку /proc/net/ip_conntrack"?.
Какой алгоритм поиска засранца?
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "Как увеличить размер таблицы контроля сессий ip_conntrack в ..."  +/
Сообщение от tratatalschik on 15-Янв-08, 21:54 
Только ногами не бейте: нужно было быстро, а как паттерн работает я последний раз помнил года 4 назад. ;) Вот, накалякал для общего удобства:

cat /proc/net/ip_conntrack | awk -f /usr/sbin/conn_analiz | more
cat /proc/net/ip_conntrack | awk -f /usr/sbin/conn_analiz | grep "всего соединений"|more

а увидев кто нагреб больше всех (например 192.168.3.50), сделать вот так:

cat /proc/net/ip_conntrack | grep 192.168.3.50 | awk -f /usr/sbin/conn_analiz | more

нижеследующее загоняешь в какой-нить файл, например: /usr/sbin/conn_analiz и лепишь команду, что я нарисовал выше (можно в маски дорисовать клиентские подсети и свои адреса - может это тебя ддосом лупят).
# начинать катить отсюда
{
    if ($4 ~ /^ESTABLISHED/) {
        estableshed++
        src = substr($5,5)
        dst = substr($6,5)
        if (src ~ /^192.168|^10.10|^127.0/) {
            ip=src
        } else if (dst ~ /^192.168|^10.10|^127.0/) {
            ip=dst
        }
        iplist[ip]++
        est[ip]++
    } else if ($4 ~ /^TIME_WAIT/) {
        time_wait++
        src = substr($5,5)
        dst = substr($6,5)
        if (src ~ /^192.168|^10.10|^127.0/) {
            ip=src
        } else if (dst ~ /^192.168|^10.10|^127.0/) {
            ip=dst
        }
        iplist[ip]++
        t_wait[ip]++
    } else if ($4 ~ /^SYN_SENT/) {
        syn_sent++
        src = substr($5,5)
        dst = substr($6,5)
        if (src ~ /^192.168|^10.10|^127.0/) {
            ip=src
        } else if (dst ~ /^192.168|^10.10|^127.0/) {
            ip=dst
        }
        iplist[ip]++
        syn_s[ip]++
    } else if ($4 ~ /^CLOSE_WAIT/) {
        cl_w++
        src = substr($5,5)
        dst = substr($6,5)
        if (src ~ /^192.168|^10.10|^127.0/) {
            ip=src
        } else if (dst ~ /^192.168|^10.10|^127.0/) {
            ip=dst
        } else {
        iplist[ip]++
        cl_wt[ip]++
    } else if ($4 ~ /^CLOSE/) {
        clouse++
        src = substr($5,5)
        dst = substr($6,5)
        if (src ~ /^192.168|^10.10|^127.0/) {
            ip=src
        } else if (dst ~ /^192.168|^10.10|^127.0/) {
            ip=dst
        }
        iplist[ip]++
        cls[ip]++
    } else if ($4 ~ /^SYN_RECV/) {
        syn_recv++
        src = substr($5,5)
        dst = substr($6,5)
        if (src ~ /^192.168|^10.10|^127.0/) {
            ip=src
        } else if (dst ~ /^192.168|^10.10|^127.0/) {
            ip=dst
        }
        iplist[ip]++
        syn_r[ip]++
    } else if ($4 ~ /^LAST_ACK/) {
        last_ack++
        src = substr($5,5)
        dst = substr($6,5)
        if (src ~ /^192.168|^10.10|^127.0/) {
            ip=src
        } else if (dst ~ /^192.168|^10.10|^127.0/) {
            ip=dst
        }
        iplist[ip]++
        lastask[ip]++
    } else if ($4 ~ /^FIN_WAIT/) {
        fin_wait++
        src = substr($5,5)
        dst = substr($6,5)
        if (src ~ /^192.168|^10.10|^127.0/) {
            ip=src
        } else if (dst ~ /^192.168|^10.10|^127.0/) {
            ip=dst
        }
        iplist[ip]++
        fin_w[ip]++
    } else if ($1 ~ /^udp/) {
        udp++
        src = substr($4,5)
        dst = substr($5,5)
        if (src ~ /^192.168|^10.10|^127.0/) {
            ip=src
        } else if (dst ~ /^192.168|^10.10|^127.0/) {
            ip=dst
        }
        iplist[ip]++
        udp_p[ip]++
    } else if ($1 ~ /^icmp/) {
        icmp++
        src = substr($4,5)
        dst = substr($5,5)
        if (src ~ /^192.168|^10.10|^127.0/) {
            ip=src
        } else if (dst ~ /^192.168|^10.10|^127.0/) {
            ip=dst
        }
        iplist[ip]++
        icmp_p[ip]++
    } else if ($1 ~ /^unknown/) {
        unknown++
        src = substr($4,5)
        dst = substr($5,5)
        if (src ~ /^192.168|^10.10|^127.0/) {
            ip=src
        } else if (dst ~ /^192.168|^10.10|^127.0/) {
            ip=dst
        }
        iplist[ip]++
        unkn[ip]++
    } else if ($10 ~ /UNREPLIED/) {
        unreplied++
        src = substr($4,5)
        dst = substr($5,5)
        if (src ~ /^192.168|^10.10|^127.0/) {
            ip=src
        } else if (dst ~ /^192.168|^10.10|^127.0/) {
            ip=dst
        }
        iplist[ip]++
        unrep[ip]++
    } else print "UNKNOWN!!!!   ", $0
} END {
  print "established=" estableshed
  print "time_wait=" time_wait
  print "syn_sent=" syn_sent
  print "close_wait=" cl_w
  print "close=" clouse
  print "syn_recv=" syn_recv
  print "last_ack=" last_ack
  print "fin_wait=" fin_wait
  print "udp=" udp
  print "icmp=" icmp
  print "unknown=" unknown
  print "unreplied=" unreplied
  print "assured=" assured
  print "всего в таблице соединений = " NR
  print " ==============================================="
  print " ==============================================="
  for (ip in iplist) {
    print ip "                всего соединений:" iplist[ip]
    print "++++++++++++++++++++++++++++++++++++++++++++"
    print "established=" est[ip] "  time_wait=" t_wait[ip] "  syn_sent=" syn_s[ip]
    print "close_wait=" cl_wt[ip] "  close=" cls[ip] " syn_recv=" syn_r[ip]
    print "last_ack=" lastask[ip] "  fin_wait=" fin_w[ip] "  udp=" udp_p[ip]
    print "icmp=" icmp_p[ip] "  unknown=" unkn[ip] "  unreplied=" unrep[ip]
    print " ==============================================="
  }
}
# и досюда

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "Как увеличить размер таблицы контроля сессий ip_conntrack в ..."  +/
Сообщение от Kim email on 21-Окт-09, 02:24 
Помогите, не знаю где-куда и как подключить модуль
ядра на CentOs

error: "net.ipv4.netfilter.ip_conntrack_tcp_timeout_close" is an unknown key
error: "net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait" is an unknown key
error: "net.ipv4.netfilter.ip_conntrack_tcp_timeout_last_ack" is an unknown key
error: "net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait" is an unknown key
error: "net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait" is an unknown key
error: "net.ipv4.netfilter.ip_conntrack_tcp_timeout_established" is an unknown key
error: "net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_recv" is an unknown key
error: "net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_sent" is an unknown key

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема




Спонсоры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2022 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру