Announcing IPv6 networks without becoming the default router

Posted on 2020-01-31 by ungleich network team

TL;DR

Use AdvDefaultLifetime 0 in your radvd.conf if you don't want the router to become a default router.

Background

Sometimes you have multiple routers in a network and you don't want a router to become the default router for clients, but it should still announce an IPv6 prefix.

radvd

Luckily radvd supports an option to notify the clients of this. From the manpage of radvd.conf(5):

       AdvDefaultLifetime seconds

              The lifetime associated with the default router in units of seconds.   The
              maximum  value  corresponds to 18.2 hours.  A lifetime of 0 indicates that
              the router is not a default router and should not appear  on  the  default
              router  list.  The router lifetime applies only to the router's usefulness
              as a default router; it does not apply to information contained  in  other
              message fields or options.  Options that need time limits for their infor‐
              mation include their own lifetime fields.

              Must be either zero or between MaxRtrAdvInterval and 9000 seconds.

              Default: 3 * MaxRtrAdvInterval (Minimum 1 second).

Sample configuration

A configuration from one of our test sites looks as follows:

interface eth0
{
  AdvSendAdvert on;
  MinRtrAdvInterval 3;
  MaxRtrAdvInterval 5;

  AdvDefaultLifetime 0;

  prefix 2a0a:e5c1:111:10c::/64 { };
};

Client in this test network assign themselves an additional IPv6 address from this prefix.

Note

While clients won't select this router as the default router, they might still choose to use an IPv6 address from this prefix as their source address. More details about it can be found in the RFC 6724.