I recently set up IPv6 for my home network via a tunnel. I have a /48 subnet and have assigned manual IPv6 addresses to my stationary Macs. I would like to set up my laptops to get a dynamic IPv6 address which is same every time I get onto my home network (wired or wireless). The aim would be to be able to connect to these machines via IPv6 from the outside.

As far as I understand OS X has no DHCPv6 client and therefore the IPv6 IP address allocation is done via router advertisement. Is this IP address allocated randomly (within the range of available addresses) or is there some predictability? AFAIK, the MAC address of the ethernet adapter is used as part of the IP address (unless some privacy flag is set). In a way I am trying to set up the equivalent of IPv4 DHCP with fixed IP addresses for IPv6. How would this be possible?

2 Answers 2


Just a small correction, but OSX (at least Mountain Lion) has full DHCPv6 client, which works out of the box to communicate with a DHCPv6 server on your network. The case may be, that Apple Airport does not have a DHCPv6 server and therefore your choice of IPv6 assignment is limited to auto-configuration (SLAAC) and link-local schemes (the ones controlled by privacy setting).

The SLAAC address, as you correctly worked out, uses the last three octets of the L2 MAC address. The other address is the link-local address of the interface.

If you wanted to use a DHCPv6 assignment, then you would run a small inexpensive DHCPv6 server on your network and end up with a third IPv6 address from your chosen DHCP scope, configured on your interfaces (depending on privacy setting).

If you combine this DHCPv6 server with your own DNS server, and configure delegation, you could just use DNS names rather than relying on IPs.


http://blog.ipspace.net/2012/11/ipv6-router-advertisements-deep-dive.html http://blog.belodedenko.me/2013/06/a-practical-guide-to-setting-up-ipv6.html http://en.wikipedia.org/wiki/Link-local_address#IPv6


I got a few things confused here: While I do have a /48 net, typically one would use a single /64 net to configure things. In fact my Apple Airport, that is used as the endpoint used the first available /64. The airport will then help with autoconfiguration by advertising the network part (the first 64 bits)

Next, all machines connecting using autoconfiguration will select, based on the router advertisement of the router (in this case the Apple Airport) at least one address based on the (Ethernet) MAC address used. In fact, if you have the privacy extensions turn on (this is off by default on Macs, but on an e.g., Linux machines) you will have several Global scope addresses.

To find the correct one based on the mac address, look for the address which has a ff:fe as part of the 3rd and 2nd last tuple of the 8 tuple address.

That is the address which you can use to configure incoming connections. E.g. ssh. The other temporary addressed will be used by outgoing connections (e.g. your web browser) to make tracking based on IP more difficult.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .