Переполнение nf_conntrack в Linux
Сеть работала "хорошо", но в один чудесный день, повысилась латентность и стали пропадать пинги…хотя с виду "все норм", ядра "свободны", канал не "перегружен" и т д
выполняем комманду
dmesg
и видим что постоянно появляются сообщения вида:
[ 777.464654] nf_conntrack: table full, dropping packet. [ 777.464693] nf_conntrack: table full, dropping packet. [ 777.464938] nf_conntrack: table full, dropping packet. [ 777.465008] nf_conntrack: table full, dropping packet. [ 777.465595] nf_conntrack: table full, dropping packet. [ 777.465681] nf_conntrack: table full, dropping packet. [ 777.465704] nf_conntrack: table full, dropping packet. [ 777.465779] nf_conntrack: table full, dropping packet.
Это означает что у нас переполнилась таблица conntrack.
Начнем "лечение" в конец файла
/etc/sysctl.conf
добавляем
Значение переменной может меняться, подбирать индивидуально.
net.ipv4.netfilter.ip_conntrack_max=9548576 net.netfilter.nf_conntrack_max=9548576
далее выполняем
sysctl -p
контролируем через
dmesg
на предмет новых сообщений.