Our Ubuntu server runs as a router for thousands of devices. With the growing number of connecting clients we have noticed 3 overflow problems in the kernel log:
1. Route cache chain too long 2. Neighbor table overflow 3. ip conntrack table full
All 3 table sizes can be extended, and we did so, but we do not understand differences between them, and mechanisms involved.
So can someone in simple terms please explain differences between kernel route cache and neighbor table? They seem to serve similar purpose, work with the same mechanisms (garbage collected) and both manage routes.
Explanation for the connntrack table will also be welcome :)