Closed stapelberg closed 5 years ago
From reading linux-5.1.1/net/core/neighbour.c, the most likely issue seems gc_list and/or gc_entries going out of sync with the actual neighbor table entries. I won’t claim that I understand the code, though :)
Although closed... Just wanted to update your information: https://lists.netfilter.org/pipermail/netfilter/2002-November/040337.html These days however there should be no more flow cache for IPv4. However I don't know if the IPv6 still contains a flow cache. Anyway a router should usually have a gc_thresh1 > 128 ... a lot bigger.
This is the first time I have encountered the problem, but it is puzzling.
From the serial log:
These messages keep repeating multiple times per second.
tcpdump shows no suspicious traffic on either uplink0 or lan0.
The neighbor table garbage collection settings are unchanged from the default:
The error message (arp_cache instead of ndisc_cache) leads me to believe that the problem is IPv4-related, though the IPv6 neighbor table only contains FAILED, INCOMPLETE and NOARP entries for lan0 (maybe a symptom caused by the IPv4 issue?).
Anyway, the IPv4 neighbor table only seems to contain one entry:
(In normal operation, it contains only one entry on uplink0, but a whole bunch of entries on lan0.)
I also checked
/proc/net/stat/arp_cache
:I tried inserting a new entry into the neighbor table:
I also checked free memory:
It’s a mystery to me how the neighbor table can be considered full with only one entry in it.
This is with Linux 5.1.1.