Что такое conntrack
conntrack - это таблица отслеживания сетевых соединений в netfilter. Каждое TCP/UDP соединение, NAT, kube-proxy, Docker, firewall проходит через нее. Если таблица переполнена, сеть начинает ломаться без ошибок в приложениях.
Симптомы переполнения
Соединения не устанавливаются, random timeouts, сервисы живы, но клиенты не могут подключиться, CPU норм, сеть есть, но ничего не работает. В логах ядра:
dmesg | grep conntrack
типичный вывод:
nf_conntrack: table full, dropping packet
Проверяем текущее состояние
# сколько соединений сейчас
cat /proc/sys/net/netfilter/nf_conntrack_count
# максимальный лимит
cat /proc/sys/net/netfilter/nf_conntrack_max
Если count ≈ max, то ты уже в зоне риска.
Временное решение
Увеличить лимит на лету:
sysctl -w net.netfilter.nf_conntrack_max=262144
Постоянная настройка
В /etc/sysctl.conf или /etc/sysctl.d/conntrack.conf:
net.netfilter.nf_conntrack_max=262144
net.netfilter.nf_conntrack_tcp_timeout_established=600
И применить:
sysctl -p
Вывод
Переполненный conntrack выглядит как непонятная поломка сети. Проверка занимает 10 секунд, но лучше заранее заняться настройкой правильного лимита.
LinuxCamp | #utils
