Nf conntrack: Unterschied zwischen den Versionen

Aus Doku-Wiki
Zur Navigation springenZur Suche springen
Zeile 2: Zeile 2:
 
  nf_conntrack: table full, dropping packet
 
  nf_conntrack: table full, dropping packet
  
 +
=Fhler Beschreibung=
 
* [http://pc-freak.net/blog/resolving-nf_conntrack-table-full-dropping-packet-flood-message-in-dmesg-linux-kernel-log/ Ausführliche Doku zum Problem nf_conntrack]
 
* [http://pc-freak.net/blog/resolving-nf_conntrack-table-full-dropping-packet-flood-message-in-dmesg-linux-kernel-log/ Ausführliche Doku zum Problem nf_conntrack]
 
Diese Meldung wurde bei mir durch eine IPtables Regel verursacht. Kann aber auch durch DDOS Attacken verursacht werden.  
 
Diese Meldung wurde bei mir durch eine IPtables Regel verursacht. Kann aber auch durch DDOS Attacken verursacht werden.  
 
  iptables -A log_rule -m limit --limit 5/min -j LOG --log-prefix "ACCEPT Forward LIMIT "
 
  iptables -A log_rule -m limit --limit 5/min -j LOG --log-prefix "ACCEPT Forward LIMIT "
 
Durch die '''--limit''' Anweisung muss sich der Kernel die Verbindungen merken. Wenn nun ein hoher Durchsatz auf dem Server dazu kommt, werden die Kernel-Tables gefüllt bis sie den MAX Wert überschreiten.
 
Durch die '''--limit''' Anweisung muss sich der Kernel die Verbindungen merken. Wenn nun ein hoher Durchsatz auf dem Server dazu kommt, werden die Kernel-Tables gefüllt bis sie den MAX Wert überschreiten.
 +
 
=Werte ermitteln=
 
=Werte ermitteln=
 
* '''ip_conntrack_max'''
 
* '''ip_conntrack_max'''

Version vom 14. November 2013, 15:19 Uhr

Fehlermeldung

nf_conntrack: table full, dropping packet

Fhler Beschreibung

Diese Meldung wurde bei mir durch eine IPtables Regel verursacht. Kann aber auch durch DDOS Attacken verursacht werden.

iptables -A log_rule -m limit --limit 5/min -j LOG --log-prefix "ACCEPT Forward LIMIT "

Durch die --limit Anweisung muss sich der Kernel die Verbindungen merken. Wenn nun ein hoher Durchsatz auf dem Server dazu kommt, werden die Kernel-Tables gefüllt bis sie den MAX Wert überschreiten.

Werte ermitteln

  • ip_conntrack_max
cat /proc/sys/net/ipv4/netfilter/ip_conntrack_max
  • Aktuellen nf_conntrack_count
/sbin/sysctl net.netfilter.nf_conntrack_count

Wenn der Wert ip_conntrack_max zu klein gewählt ist, kann man diesen erhöhen. Dabei gibt es noch einen zweiten Wert, der dann verändert werden sollte:

Lösung

Werte temporär anpassen

  • ip_conntrack_max erhöhen
sysctl -w net.netfilter.nf_conntrack_max=131072
  • hashsize anpassen

Der Hashsize sollte 1/4 des nf_conntrack_max betragen

echo 32768 > /sys/module/nf_conntrack/parameters/hashsize

Werte permanent anpassen

  • ip_conntrack_max
vi /etc/sysctl.conf  // Am Ende einfügen
net.netfilter.nf_conntrack_count = 131072
  • hashsize
vi /etc/rc.local
echo 32768 > /sys/module/nf_conntrack/parameters/hashsize

Weitere Werte anpassen

  • Am Ende der Datei /etc/sysctl.conf einfügen
net.ipv4.netfilter.ip_conntrack_generic_timeout = 120
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 54000