Ошибка nf conntrack: table full, dropping packet — различия между версиями
Root (обсуждение | вклад) |
Root (обсуждение | вклад) |
||
Строка 11: | Строка 11: | ||
И применяем настройки | И применяем настройки | ||
# sysctl -p | # sysctl -p | ||
+ | |||
Посмотреть текущее значение можно вот так: | Посмотреть текущее значение можно вот так: | ||
Строка 18: | Строка 19: | ||
Посмотреть, насколько уже заполнена таблица отслеживания соединений, можно вот так: | Посмотреть, насколько уже заполнена таблица отслеживания соединений, можно вот так: | ||
# sysctl net.netfilter.nf_conntrack_count | # sysctl net.netfilter.nf_conntrack_count | ||
+ | |||
+ | |||
+ | Пропорционально должная быть увеличена и хэш-таблица, в которой хранятся списки conntrack-записей | ||
+ | # echo 163840 > /sys/module/nf_conntrack/parameters/hashsize | ||
+ | |||
+ | Правило простое: hashsize = nf_conntrack_max / 8 |
Версия 11:24, 4 мая 2021
Описание ошибки "nf_conntrack: table full, dropping packet", которая может появляться в логах сервера, работающего на ОС Linux и том, как эту ошибку исправить.
В случае большого количества сетевых соединений, в логах сервера, работающего под ОС Linux, может появляться следующая ошибка:
kernel: nf_conntrack: nf_conntrack: table full, dropping packet
Как видно из текста, ошибка связана с переполнением таблицы, в которой модуль nf_conntrack хранит всю информацию.
Чтобы таких ужасов не происходило, необходимо увеличивать размер таблицы - в соответствии с проходящим через интерфейс трафиком:
# echo "net.netfilter.nf_conntrack_max = 1310720" >> /etc/sysctl.conf
И применяем настройки
# sysctl -p
Посмотреть текущее значение можно вот так:
# sysctl net.netfilter.nf_conntrack_max
Посмотреть, насколько уже заполнена таблица отслеживания соединений, можно вот так:
# sysctl net.netfilter.nf_conntrack_count
Пропорционально должная быть увеличена и хэш-таблица, в которой хранятся списки conntrack-записей
# echo 163840 > /sys/module/nf_conntrack/parameters/hashsize
Правило простое: hashsize = nf_conntrack_max / 8