Ошибка nf conntrack: table full, dropping packet

Материал из megapuper
Версия от 01:08, 5 мая 2021; Root (обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Описание ошибки "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