Збільшення 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 всі разом.

По-друге, перевірте, чи мають сенс ваші записи про контракцію. Іноді таблиці зйомки заповнюються сміттям через неправильну конфігурацію мережі або брандмауера. Зазвичай це записи для з'єднань, які так і не були встановлені повністю. Це може статися, наприклад, коли сервер отримує вхідні з'єднання SYN-пакети, але відповіді сервера завжди втрачаються десь у мережі.

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

Якщо ви знаєте, що вам потрібен conntrack, і він дійсно повинен бути більшим, ніж він є, збільшуйте їх кількість, поки ви не отримаєте більше повідомлень про "повну таблицю". І спостерігайте за використанням пам'яті.

Деякі статистичні дані щодо розподілу пам'яті для об'єктів 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

У сервері ubuntu 10.04 / 2.6.32-45 існує лише ipv4 / netfilter / ip_conntrack_max
okwap

Ваша відповідь відрізняється від antmeetspenguin.blogspot.tw/2011/01/…
okwap
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.