[6bone] Network Address translation question

Perry Lorier perry at coders.net
Thu Jun 23 14:12:03 PDT 2005


> No idea. Don't know if any implementations allow it, and how is
> implementation dependent. Would be quite interesting to know how
> much of 3484 is implemented in different systems, and also how
> to change policy if possible.

Linux (as of 2.6.11) has a rather dumb source address selection policy
in the mainline kernel.  From my reading of the code it selects the
first address on an interface that isn't tentative and has identical
scope.  It also prefers non deprecated, non temporary (or temporary
addresses if configured to do so) addresses where possible.

This however means it always uses the address that was added last, so if
you have a slow tunnel to somewhere that takes longer to setup, that
will be the source address it will prefer over any other one, much to my
dismay.

The Linux community seem to have indicated that they want preferences
handled by having a preferred source address used per route.  I was
looking at the source to Linux and the code appears to be there to use a
source address if one is specified in the routing table, however the
code to insert one somewhere seems broken (either in user space or
kernel space, I didn't figure it out).  If there is no source address
specified in the routing table it falls back to the algorithm uses above.

The code is in net/ipv6/addrconf.c in the function ipv6.*_get_saddr.*
functions.


More information about the 6bone mailing list