When assigning static IPs for my IPv4 LAN I select a range of addresses from my router's DHCP range. So I set the upper limit of the DHCP range and choose static IPs above that limit.

With my IPv6 router, I see the same offering of DHCP range. The simple assumption is that I can perform the same operation for my static IPv6 addresses. That is simple enough, but I am confused by the Link Local assignment.

  1. Is the link local gateway's IP the first address of the link local sequence? Just as is the first address of the IPv4 range of the LAN?

  2. Would I assign two sets of static IPs? One for the global range and one for the local?

  3. What am I missing here?

Anticipating one line of objection to these questions, let me explain:

I want static IPs for reliable hostname resolution on my LAN, and I understand that hostname resolution will happen just fine through IPv4. Functionally I don't need static IPv6 -- I get that.

But as a hobbyist, I want to do this.


While on first sight IPv6 just looks like IPv4 with bigger addresses, it really isn't. There are some fundemantal differences how things work in IPv6 compared to IPv4.

Unlike IPv4, for IPv6 the normal case is having multiple IPv6 addresses on a single interface.

So every IPv6 interface will have at least a link local address, fe80::/10. This address is configured automatically using the MAC address. It is needed for other IPv6 to work, e.g. neighbour discovery.

In addition, routers will distribute IPv6 prefixes. If your ISP allows IPv6, it will tell your home router the prefix (e.g. 2001:...), and the home router will in turn advertise this prefix to all other hosts. The hosts will then pick an address in this range, again either based on the MAC, or with a random component if privacy extensions are enabled.

So now you already have two IPv6 addresses, and everything so far has been automatic, and didn't involve DHCP. The addresses based on the MAC are static, so you could already use those addresses if you want to. If your home router doesn't do DNS, you could enter at least the link local address in /etc/hosts files and so on.

Now if you absolutely need more static addresses, you can tell your router to hand them out via DHCP. To do this, you'll need a valid prefix. In IPv4, the 192.168../16 range is reserved for private IP addresses. The equivalent for IPv6 is a unique local address (ULA), in the range fc00::/7. Any other prefix will potentially conflict with "real" IPv6 addresses used for different purposes.

So use this range for DHCPv6, pick any you want, in any order you want.

Handing out a fourth set of static addresses using a global prefix will be difficult: If you want to use the global prefix assigned by your ISP, this prefix will change, so you can't make the addresses static. If you decide to use a different global prefix, this global prefix will overlap with someone using it, and you won't be able to reach those hosts. So, that would be a misconfiguration.


Having the router at the lowest address is just one convention. Another convention is to use the highest address for the router, and you can use any address withing the address space for the router. You could find out what address your router uses, although it is supposed to send Router Advertisement and respond to Router Solicitation

The link local address range for IPv6 is fe80::/10. See Wikipedia or RFC 4862 for details

In the Internet Protocol Version 6 (IPv6), the address block fe80::/10 has been reserved for link-local unicast addressing

For IPv6 there is an automatic mapping between MAC addresses and link local addresses. As Ethernet MAC addresses have 6 bytes and this is shorter than an IPv6 address (in contrast to 4 bytes for IPv4). 6 bytes MAC are a modified a little and used as the lower 64 bits of the link local address. Your IPv6 stack would normally assign an IPv6 link local address without doing something special. In fact, IPv6 was designed so that for many cases DHCP should not be necessary. For other cases, there is DHCPv6.

There are privacy implications with using an unchanging MAC as part of an IPv6 address, so there are Privacy Extensions that select a random value for the local part of the address and change it regularly.

  • "Having the router at the lowest address is just one convention." Er, actually, RFC 4291 requires a router to answer to the lowest address. – Michael Hampton Sep 22 '18 at 3:11

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.