Router – Should SLAAC Be Used for IPv6 Address Assignment

dhcpdhcpv6ipv6rfcrouter

I am a little confused by the following 2 RFCs relating to IPv6:

  • RFC 4862 (IPv6 Stateless Address Autoconfiguration)
  • RFC 7084 (IPv6 CE Router Requirements)

RFC 4862 states:

The autoconfiguration process specified in this document applies only to hosts and not routers. Since host autoconfiguration uses information advertised by routers, routers will need to be configured by some other means.

RFC 7084 lists one of its WAN-Side Configuration requirements for address assignment as:

WAA-1: The IPv6 CE router MUST support Stateless Address
Autoconfiguration (SLAAC) [RFC4862].

Is there a contradiction here?

Should a router be able to autoconfigure an IPv6 address for its WAN interface?


Why does RFC 4862 say

Since host autoconfiguration uses information advertised by routers, routers will need to be configured by some other means.

If I am using a router to connect my LAN to an ISP for example, isn't there a router in the ISP's network which is talking to my router?

I would have thought it was perfectly reasonable to have 2 (or more) routers chained together. In which case, why not use SLAAC on the second router's WAN interface?


Maybe the issue comes down to the artificial distinction between hosts and routers? From RFC 4862:

node – a device that implements IP.

router – a node that forwards IP packets not explicitly addressed to itself.

host – any node that is not a router.

But can't a host (i.e. a machine that is hosting servers or applications) also have a routing table, and function as a router? And we are effectively chaining 2 routers together again.


Edit: some extra information I later discovered …

The Linux kernel handles SLAAC, and it follows RFC 4862 closely. Right down to the distinction between hosts and routers. See the kernel documentation on ip-sysctl:

  • HOST behaviour is assumed. Which means Router Solicitations will be sent, and Router Advertisements will used for address autoconfiguration.
  • Only if forwarding is enabled (/proc/sys/net/ipv6/conf/all/forwarding), the device is considered to be a ROUTER. Which means no Router Solicitations will be sent, and Router Advertisements will be ignored.

Turns out this distinction goes way back, pre-IPv6. See the parameter /proc/sys/net/ipv4/ip_forward:

This variable is special, its change resets all configuration
parameters to their default state (RFC1122 for hosts, RFC1812 for
routers)

Best Answer

In RFC 7084, it also states:

W-1: When the router is attached to the WAN interface link, it MUST act as an IPv6 host for the purposes of stateless [RFC4862] or stateful [RFC3315] interface address assignment.

So in short, yes - a router should be able to autoconfigure an IPv6 address for its WAN interface.

In reality though, most ISPs implement DHCPv6 and DHCPv6-PD (RFC3633) for downstream address allocation, along with prefix delegation.

This ensures that your router not only receives an address on it's WAN interface, but that it also receives a prefix it can use on it's internal LAN interface as well.