Повышение ip_conntrack_max безопасно?

9

Я часто вижу в своих журналах следующее:

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

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

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

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

Что я должен редактировать?

Спасибо!

Нил
источник

Ответы:

9

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

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

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

Если вы знаете, что вам нужен conntrack, и он действительно должен быть больше, чем он есть, увеличивайте это число до тех пор, пока вы не получите больше сообщений 'table full'. И следите за использованием памяти.

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

Яцек Конечный
источник
6

Путь с «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
BrianEss
источник
В Ubuntu 10.04 / 2.6.32-45-server существует только ipv4 / netfilter / ip_conntrack_max
okwap
Ваш ответ dfferent от antmeetspenguin.blogspot.tw/2011/01/...
Okwap