Помилка nf_conntrack table full, dropping packet

Дивимося dmesg. чисто в профілактичних цілях, виявляємо масу повідомлень виду: nf_conntrack: table full, dropping packet.

З назви видно хто є джерелом даного косяка - фаєрвол iptables. якщо конкретно показувати пальцем, то nf_conntrack. Один з модулів netfilter. відслідковує стану з'єднань і класифікує пакети, цим з'єднанням, що належать. Наприклад даний модуль netfilter визначає такі стани як:

  • NEW - syn пакети, що встановлюють з'єднання;
  • ESTABLISHED - пакети, що належать уже встановленим з'єднанням;
  • RELATED - пакети на створення нового з'єднання, на підставі вже існуючого (пасивний FTP);
  • INVALID - означає що приналежність пакета до якого-небудь типу з'єднання не встановлена;

Наприклад, пара правил штатного фаєрвола в Linux - iptables. що використовують даний модуль:

Всі свої дані nf_conntrack зберігає в таблицях, а вищезгадане повідомлення говорить про те що ці таблиці переповнені.
Дивимося що у нас там по дефолту:

debian: / # sysctl -a | grep conntrack_max
net.netfilter.nf_conntrack_max = 65536
net.nf_conntrack_max = 65536

Мабуть замало, трохи поправимо настройки ядра linux:

Проблема з iptables повинна зникнути.

Thanks! It works!

Як здолати щоб echo "net.netfilter.nf_conntrack_max = 1048576" >> /etc/sysctl.conf працювало після перезавантаження?

якщо прописано в sysctl, воно і буде після перезавантаження працювати

не працював. але запис у файлі була, я зделал так. в файл /etc/rc.local. засунув sysctl -p.

ну, коротше, цій людині я навіть цвях забити не довірив би.
людина з серії - "тяп-ляп, і так зійде!" (Халтурник)

в / etc / modules треба його дописати щоб примусово довантажувати модуль при завантаженні ядра тоді параметри з sysctl.conf вважаються а інакше будуть дефолтні