NFsec Logo

conntrack: table full, dropping packet

23/01/2008 w Debug Brak komentarzy.  (artykuł nr 34, ilość słów: 202)

W

wielu sytuacjach, gdy z jakiegoś starszego sprzętu, na którym instalujemy system Linux robiąc “domowej roboty” router, służący za bramę do Internetu – przy większym obciążeniu i wykorzystaniu mechanizmu NAT i uprzejmości iptables – –state ESTABLISHED, RELATED – prędzej czy później otrzymujemy komunikat “ip_conntrack: table full, dropping packet” i dzielone łącze internetowe pada.

Wynika to z faktu, iż została osiągnięta maksymalna liczba połączeń przewidziana w tablicy śledzenia połączeń. Liczba ta zależna jest od posiadanej pamięci w systemie. Oczywiście możemy w bardzo prosty sposób podrasować system pozwalając na większy limit w tej kwestii, lecz należy także uważać jak wysokie liczby umieszczamy w tej wartości, ponieważ śledzenie stanu każdego, pojedynczego połączenia kosztuje 350 bajtów pamięci (bez pliku stronicowania) jądra systemu. Liczbę aktualnych połączeń możemy uzyskać poprzez komendę:

cat /proc/net/ip_conntrack | wc -l

Wyświetloną wartość podrasować możemy poprzez wydanie polecenia, gdzie wartość 20480 jest tylko przykładowa i powinna zostać dostosowana do każdego systemu osobno:

echo "20480" > /proc/sys/net/ipv4/ip_conntrack_max

Dla systemów korzystających z interfejsu sysctl:

sysctl -w net.ipv4.netfilter.ip_conntrack_max=20480

Wartość można także na stałe wpisać do pliku /etc/sysctl.conf:

net.ipv4.netfilter.ip_conntrack_max=20480

Dla optymalnego działania możemy także zwiększyć liczbę zbiorów mieszania, podczas ładowania modułu ip_conntrack.o:

modprobe ip_conntrack hashsize=1024

Więcej informacji: Netfilter FAQ

Kategorie K a t e g o r i e : Debug

Tagi T a g i : , , ,

Komentowanie tego wpisu jest zablokowane.