Помилка 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 вважаються а інакше будуть дефолтні