[radvd-devel-l] Special prefix ::/64, Base6to4Interface, Base6Interface in radvd 1.9 forward

Mark Smith radvd at 02a76c927861ca7413a122f2a73a0d37.nosense.org
Thu May 5 18:07:31 EDT 2011

Hi Reuben,

On Thu, 5 May 2011 10:13:29 -0700
Reuben Hawkins <reubenhwk at gmail.com> wrote:

> Hi All,
> I don't like the Base6Interface or Base6to4Interface mechanisms in the
> config file.  It's on my wish list to remove/deprecate these options and
> replaces them with something like a "DiscoverPrefixes" option on the
> interface.  The prefixes can be discovered from /proc/net/ipv6_route or from
> netlink (on linux, but I'm sure there's similar info available on BSD, etc).

I strongly agree. In IPv6 it is quite valid and likely to become
common to have a number of prefixes on an interface, such as a ULA and
a global, or a ULA and multiple globals (as a new global is being
phased in while an old one is being phased out). The existing method of
selecting a single prefix makes the value of the auto detect options
quite limited.

> The prefix directive in the file, in my opinion, should be entirely static.
> By Static, I mean if the prefix is whatever::/whatever, radvd advertises
> whatever::/whatever.  Right now, as it is, there are at least three things
> which make the prefix do weird stuff.....
> 1) Special prefix "::/64" is also supported on systems that implement
> getifaddrs() (on other systems, configuration activation fails and radvd
> exits). When configured, radvd picks all non-link-local prefix assigned to
> the interface and starts advertising it.
> 2) Base6to4Interface, which I think requires 0::/64
> 3) Base6Interface which requires something other than 0 in 0::/64
> If anyone has other opinions, objects or requirements let us know.

Perhaps a more general address matching mechanism would satisfy these
requirements, where a set of prefix and prefix lengths are matched
against the set of prefixes on an interface, with match successes
advertised. For example,

2000::/3 would match all global address prefixes.

2000::/3 and fc::/7 would match all global and all ULA prefixes.

2001:db8:1234:4567::/64, fd:6739:8673:1234::/64 and
fd:6739:8673:8765::/64 would match the single global /64 and two
ULA /64s.

::/0 would match all prefixes, with link-locals specifically being
excluded from the RAs.


More information about the radvd-devel-l mailing list