Server:Fehlermeldung "kernel: Neighbour table overflow": Unterschied zwischen den Versionen

Aus manitu Wiki
Zur Navigation springen Zur Suche springen
Zeile 28: Zeile 28:
 
net.ipv6.neigh.default.gc_thresh3</pre>
 
net.ipv6.neigh.default.gc_thresh3</pre>
  
Setzen Sie die entsprechenden sysctl-Variablen entweder für das laufende System oder dauerhaft via <code>sysctl.conf</code>.
+
Dabei bedeuten jeweils
 +
* <code>gc_thresh1</code>: Die minimale Anzahl an Einträgen im ARP-Cache. Der Aufräumprozess des Kernels wird solange keine Einträge aus dem ARP-Cache löschen, solange diese Zahl unterschritten ist.
 +
* <code>gc_thresh2</code>: Die "weiche" maximale Anzahl an Einträgen im ARP-Cache. Der Aufräumprozess des Kernels erlaubt 5 Sekunden lang so viele Einträge im ARP-Cache, anschließend beginnt er mit dem Entfernen der ältesten Einträge.
 +
* <code>gc_thresh3</code>: Die "harte" maximale Anzahl an Einträge im ARP-Cache. Der Aufräumprozess läuft permanent, wenn mehr als so viele Einträge im ARP-Cache vorhanden sind.
  
Wichtig: Falls Sie mit sysctl-Variablen nicht vertraut sind, finden Sie hier weitere Informationen.
+
Die Standard-Werte sind
  
 +
<pre>
 
net.ipv4.neigh.default.gc_thresh1 = 128
 
net.ipv4.neigh.default.gc_thresh1 = 128
 
net.ipv4.neigh.default.gc_thresh2 = 512
 
net.ipv4.neigh.default.gc_thresh2 = 512
Zeile 38: Zeile 42:
 
net.ipv6.neigh.default.gc_thresh1 = 128
 
net.ipv6.neigh.default.gc_thresh1 = 128
 
net.ipv6.neigh.default.gc_thresh2 = 512
 
net.ipv6.neigh.default.gc_thresh2 = 512
net.ipv6.neigh.default.gc_thresh3 = 1024
+
net.ipv6.neigh.default.gc_thresh3 = 1024</pre>
  
 +
Setzen Sie die entsprechenden sysctl-Variablen entweder für das laufende System oder dauerhaft via <code>sysctl.conf</code>.
 +
 +
Wichtig: Falls Sie mit sysctl-Variablen nicht vertraut sind, finden Sie hier weitere Informationen.
  
 
sysctl -w net.ipv4.neigh.default.gc_thresh1=8192
 
sysctl -w net.ipv4.neigh.default.gc_thresh1=8192

Version vom 30. März 2012, 02:51 Uhr

Informationen

Die Fehlermeldung

kernel: Neighbour table overflow

zeigt an, dass der ARP-Cache des Kernels zu klein ist, um alle MAC-Adressen zu nicht gerouteten IP-Adressen zu speichern (zu cachen).

Der ARP-Cache (die neighbour table) des Kernels

Der ARP-Cache des Kernels (auch neighbour table genannt) speichert zu jeder IP-Adresse, die nicht geroutet wird (also in einem Subnetz liegt, das auf einer Netzwerkkarte des Servers konfiguriert ist), eine MAC-Adresse. Dies ist nötig, damit Datenpakete, die nicht zum Router geschickt werden, direkt via Ethernet-Frames übertragen werden können. Logischerweise wird auch die IP-Adresse des Routers (Gateways) auch im ARP-Cache gespeichert.

Müssen zum selben Zeitpunkt mehr IP-Adress-zu-MAC-Adress-Einträge vom Kernel gecacht werden, als der ARP-Cache groß ist, muss der Kernel für jedes zu versendende Datenpaket einen ARP-Broadcast-Request im Ethernet verschicken, was zu erheblichen Performance-Einbußen und zu Beeinträchtigungen des gesamten Subnetzes führen kann.

Der ARP-Cache des Kernels ist standardmäßig auf eine sinnvolle Größe voreingestellt. In besonderen Netzwerk-Setups kann es jedoch nötig sein, den ARP-Cache manuell zu vergrößern.

Beheben (ARP-Cache / neighbour table vergrößern)

Die Größe des ARP-Caches wird über drei sysctl-Variablen gesteuert:

  • bei IPv4
net.ipv4.neigh.default.gc_thresh1
net.ipv4.neigh.default.gc_thresh2
net.ipv4.neigh.default.gc_thresh3
  • bei IPv6
net.ipv6.neigh.default.gc_thresh1
net.ipv6.neigh.default.gc_thresh2
net.ipv6.neigh.default.gc_thresh3

Dabei bedeuten jeweils

  • gc_thresh1: Die minimale Anzahl an Einträgen im ARP-Cache. Der Aufräumprozess des Kernels wird solange keine Einträge aus dem ARP-Cache löschen, solange diese Zahl unterschritten ist.
  • gc_thresh2: Die "weiche" maximale Anzahl an Einträgen im ARP-Cache. Der Aufräumprozess des Kernels erlaubt 5 Sekunden lang so viele Einträge im ARP-Cache, anschließend beginnt er mit dem Entfernen der ältesten Einträge.
  • gc_thresh3: Die "harte" maximale Anzahl an Einträge im ARP-Cache. Der Aufräumprozess läuft permanent, wenn mehr als so viele Einträge im ARP-Cache vorhanden sind.

Die Standard-Werte sind

net.ipv4.neigh.default.gc_thresh1 = 128
net.ipv4.neigh.default.gc_thresh2 = 512
net.ipv4.neigh.default.gc_thresh3 = 1024

net.ipv6.neigh.default.gc_thresh1 = 128
net.ipv6.neigh.default.gc_thresh2 = 512
net.ipv6.neigh.default.gc_thresh3 = 1024

Setzen Sie die entsprechenden sysctl-Variablen entweder für das laufende System oder dauerhaft via sysctl.conf.

Wichtig: Falls Sie mit sysctl-Variablen nicht vertraut sind, finden Sie hier weitere Informationen.

sysctl -w net.ipv4.neigh.default.gc_thresh1=8192 sysctl -w net.ipv4.neigh.default.gc_thresh2=16384 sysctl -w net.ipv4.neigh.default.gc_thresh3=32768

sysctl -w net.ipv6.neigh.default.gc_thresh1=8192 sysctl -w net.ipv6.neigh.default.gc_thresh2=16384 sysctl -w net.ipv6.neigh.default.gc_thresh3=32768