IP_conntrack_max sicher erhöhen?

9

Ich sehe von Zeit zu Zeit Folgendes in meinen Protokollen:

Kernel: ip_conntrack: Tabelle voll, Paket wird verworfen.

Derzeit habe ich ip_conntrack_max auf 65536 (Standard, RHEL5) gesetzt.

Wie viel kann ich diesen Wert unter Berücksichtigung der Speichernutzung sicher erhöhen? Ich habe 4 GB RAM auf dieser Box. Eine der Funktionen, die dieser Computer erfüllt, ist ein statischer Inhaltsserver, was wahrscheinlich die hohe Anzahl an Verbindungen erklärt und auch bedeutet, dass ich so viel Speicher wie möglich für das Caching behalten möchte.

Was ist der Unterschied zwischen den folgenden beiden? / proc / sys / net / ipv4 / netfilter / ip_conntrack_max / proc / sys / net / ipv4 / ip_conntrack_max

Welches soll ich bearbeiten?

Vielen Dank!

Neil
quelle

Antworten:

9

Stellen Sie sich zunächst eine Frage: Erfordert Ihr Setup eine Verbindungsverfolgung? Wenn es sich nur um einen Server handelt und Firewall / NAT an einem anderen Ort ausgeführt wird, können Sie wahrscheinlich alle Verbindungen zusammen deaktivieren.

Überprüfen Sie zweitens, ob Ihre Conntrack-Einträge sinnvoll sind. Manchmal sind Conntrack-Tabellen aufgrund einer falschen Konfiguration des Netzwerks oder der Firewall mit Müll gefüllt. Normalerweise sind dies Einträge für Verbindungen, die nie vollständig hergestellt wurden. Dies kann beispielsweise passieren, wenn der Server eingehende Verbindungs-SYN-Pakete erhält, die Serverantworten jedoch immer irgendwo im Netzwerk verloren gehen.

Die einzigen Computer, auf denen ich die Meldung "ip_conntrack: table full" hatte und die eine Erhöhung von ip_conntrack_max benötigten (anstatt die Konfiguration zu korrigieren), auf denen Router NAT für ziemlich große Netzwerke (Tausende von Endpunkten) ausführen.

Wenn Sie wissen, dass Sie einen Conntrack benötigen und dieser wirklich größer sein muss als er ist, erhöhen Sie die Anzahl, bis Sie keine Nachrichten mehr mit "Tabelle voll" erhalten. Und beobachten Sie die Speichernutzung.

Einige Statistiken zur Speicherzuordnung für Conntrack-Objekte finden Sie in der Datei / proc / slabinfo.

Jacek Konieczny
quelle
6

Der Pfad mit "netfilter" ist die alte Art, auf dieselbe Einstellung zu verweisen. Sie können beide Dateien bearbeiten.

# 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
quelle
In Ubuntu 10.04 / 2.6.32-45-Server existiert nur ipv4 / netfilter / ip_conntrack_max
okwap
Ihre Antwort unterscheidet sich von der antmeetspenguin.blogspot.tw/2011/01/…
okwap