Nf conntrack: Unterschied zwischen den Versionen
Aus Doku-Wiki
Zur Navigation springenZur Suche springenUli (Diskussion | Beiträge) |
Uli (Diskussion | Beiträge) |
||
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
Inhaltsverzeichnis
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