Linux IPv6 router table size.

Bjørn Mork bjorn at mork.no
Sun Jan 16 12:04:44 CET 2011


Ted Mittelstaedt <tedm at ipinc.net> writes:

> I think your still completely missing the point.  Yes it isn't a good
> idea to hard code a limit in an OS if there is a better way to calculate
> the value.  Obviously in this case there is since they are using that
> for IPv4 and it seems like an oversight that they couldn't just do the
> same for IPv6 routes.

Well, is it obvious that the IPv4 way is better?  Yes, it suites the
router application better, but you should be aware that most Linux
systems are *not* routers...  

These things were implemented in a time where systems might have as
little as 4 MB RAM.  They are starting to show their age.  See for
example the recent discussion in
http://kerneltrap.org/mailarchive/linux-netdev/2009/4/27/5574094
which ended in a hard cap on the default IPv4 route cache in Linux
2.6.30 and newer.

> But it also is poor programming practice for a program to punt an error
> back to the user that the program can handle itself.  Quagga could have
> done 2 things here.  First, when it started, it could have checked out
> the system and issued a message to the user for any system parameters
> that appear to be too low - such as the max route limit, or buffers,
> etc.  Second it could have raised the parameter itself - unless on
> Linux the limit isn't settable after the system is booted.

I believe everyone running a router should be aware that they cannot
just run a routing application on top of a host OS and expect every OS
parameter to be perfectly tuned.  The OS knobs are there for a reason:
The sane values will depend on the application. 

Now, the difference between IPv4 route cache and IPv6 route cache size
defaults is still interesting.  Absolutely worth a discussion on netdev.


Bjørn


More information about the ipv6-ops mailing list