Назад | Перейти на главную страницу

Безопасно увеличивать ip_conntrack_max?

Время от времени я вижу в своих журналах следующее:

ядро: ip_conntrack: таблица заполнена, пакет отбрасывается.

В настоящее время у меня ip_conntrack_max установлено на 65536 (по умолчанию, RHEL5).

Имея в виду использование памяти, насколько я могу безопасно увеличить это значение? У меня на этой коробке 4 ГБ оперативной памяти. Одна из функций, которую выполняет этот компьютер, - это сервер статического содержимого, что, вероятно, объясняет большое количество подключений, а также означает, что я хотел бы сохранить как можно больше памяти ОС, используемой для кэширования.

Кроме того, в чем разница между двумя следующими? / proc / sys / net / ipv4 / netfilter / ip_conntrack_max / proc / sys / net / ipv4 / ip_conntrack_max

Что мне нужно редактировать?

Спасибо!

Сначала задайте себе вопрос: требует ли ваша установка отслеживания соединения? Если это просто сервер и межсетевой экран / NAT выполняется где-то еще, то вы, вероятно, можете отключить conntrack полностью.

Во-вторых, проверьте, имеют ли смысл ваши записи в conntrack. Иногда таблицы conntrack заполняются мусором из-за неправильной конфигурации сети или брандмауэра. Обычно это записи для соединений, которые никогда не были полностью установлены. Это может случиться, например, когда сервер получает входящие пакеты SYN соединения, но ответы сервера всегда теряются где-то в сети.

Единственные машины, на которых у меня были сообщения ip_conntrack: table full, и на которых требовалось увеличение ip_conntrack_max (вместо исправления конфигурации), где маршрутизаторы выполняли NAT для довольно больших сетей (тысячи конечных точек).

Если вы знаете, что вам нужен conntrack, и он действительно должен быть больше, чем есть, увеличивайте число, пока не перестанете получать сообщения «таблица заполнена». И следите за использованием памяти.

Некоторую статистику распределения памяти для объектов conntrack можно найти в файле / proc / slabinfo.

Путь с «netfilter» - это старый способ обращения к той же настройке. Вы можете редактировать любой файл.

# cat /proc/sys/net/ipv4/ip_conntrack_max  
655360
# cat /proc/sys/net/ipv4/netfilter/ip_conntrack_max
655360
# echo 655361  > /proc/sys/net/ipv4/ip_conntrack_max
# cat /proc/sys/net/ipv4/netfilter/ip_conntrack_max
655361