Bezpiecznie zwiększasz ip_conntrack_max?

9

Co jakiś czas widzę w moich logach:

jądro: ip_conntrack: pełna tabela, upuszczanie pakietu.

Obecnie mam ip_conntrack_max ustawiony na 65536 (domyślnie, RHEL5).

Pamiętając o zużyciu pamięci, ile mogę bezpiecznie zwiększyć tę wartość? Mam 4 GB pamięci RAM w tym pudełku. Jedną z funkcji obsługiwanych przez ten komputer jest statyczny serwer treści, co prawdopodobnie wyjaśnia dużą liczbę połączeń, a także oznacza, że ​​chciałbym zachować jak najwięcej pamięci systemu operacyjnego używanej do buforowania.

Jaka jest różnica między następującymi dwoma? / proc / sys / net / ipv4 / netfilter / ip_conntrack_max / proc / sys / net / ipv4 / ip_conntrack_max

Które powinienem edytować?

Dzięki!

Neil
źródło

Odpowiedzi:

9

Najpierw zadaj sobie pytanie: czy Twoja konfiguracja wymaga śledzenia połączenia? Jeśli jest to tylko serwer, a firewall / NAT jest wykonywany w innym miejscu, prawdopodobnie prawdopodobnie możesz wyłączyć conntrack razem.

Po drugie, sprawdź, czy twoje wpisy Conntrack mają sens. Czasami tabele conntrack są pełne śmieci z powodu błędnej konfiguracji sieci lub zapory. Zazwyczaj są to wpisy dotyczące połączeń, które nigdy nie zostały w pełni ustanowione. Może się tak zdarzyć, np. Gdy serwer otrzymuje przychodzące pakiety SYN połączenia, ale odpowiedzi serwera zawsze są tracone gdzieś w sieci.

Jedyne maszyny, które miałem wiadomości „ip_conntrack: tabela pełna” i które wymagały zwiększenia ip_conntrack_max (zamiast naprawiania konfiguracji), w których routery wykonują NAT dla dość dużych sieci (tysiące punktów końcowych).

Jeśli wiesz, że potrzebujesz conntrack i naprawdę musi on być większy niż jest w rzeczywistości, zwiększaj liczbę, aż nie będzie już więcej komunikatów o „pełnej tabeli”. I obserwuj zużycie pamięci.

Niektóre statystyki dotyczące alokacji pamięci dla obiektów Conntrack można znaleźć w pliku / proc / slabinfo.

Jacek Konieczny
źródło
6

Ścieżka z „netfilter” to stary sposób odwoływania się do tego samego ustawienia. Możesz edytować dowolny plik.

# 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
źródło
W Ubuntu 10.04 / 2.6.32-45-server istnieje tylko ipv4 / netfilter / ip_conntrack_max
okwap
Twoja odpowiedź jest inna od antmeetspenguin.blogspot.tw/2011/01/…
okwap