Server:Fehlermeldung "kernel: Neighbour table overflow"
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
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