Linux IPv6 router table size.

Jan Hugo Prins jhp at jhprins.org
Sat Jan 15 21:45:49 CET 2011


Hi everyone,

This might be something that some people here are interested in to hear.

In the beginning of December the number of IPv6 routes in the BPG router
tables got somewhere close to 4096 and this number is somewhat magical
in Linux. Why is it magical? Well, the default setting for
net.ipv6.route.max_size is hardcoded in the linux kernel to be exactly
this number, this in contradiction with the IPv4 net.ipv4.route.max_size
which is set based upon the size of your memory. Actually, in the IPv4
part of the kernel sources their is a route.c with a nice formula
telling the kernel how big this number should be. For IPv6 their is also
a route.c with some nice formula in it, the formula says exactly the
following:
net->ipv6.sysctl.ip6_rt_max_size = 4096;

The result of all this magic was that when the BGP RIB in my quagga
routers went over the 4096 routes, quagga started complaining that it
couldn't put the routes in the kernel FIB anymore and this went all into
syslog.

It took some digging to find the reason for these error messages, but
after changing this sysctl to something more useful, everything was fine
again.

Greetings,
Jan Hugo Prins



More information about the ipv6-ops mailing list