Upon testing a within a standalone network with just a DHCPv6 server on it and several client computers with different operating systems, OS X 10.7.4 fails to automatically obtain an IPv6 address from the DHCPv6 server.

Settings are set as the following for IPv6 System Preferences > Network > Ethernet > Advanced... >

Configure IPv6: "Automatically"

Is there a way to make OS X Lion work as a DHCPv6 client for a full IPv6 network with a DHCPv6 server?

Or a way to add a 3rd party DHCPv6 client?

As of now each Macs has to be manually set to a static IPv6 address to get them on the network, which is not ideal.

  • Can't reply this. DHCPv6 working fine here since SL.
    – bot47
    Aug 17, 2012 at 14:10
  • Yes. I haven't tested this thoroughly but I know IPv6 is fully supported. If it's not working for you, there's a problem somewhere.
    – Harv
    Aug 17, 2012 at 16:18

3 Answers 3


Currently OS X does not have a DHCPv6 client built in. Note that in OS X the IPv4 configuration gives you a choice of manual, DHCP, DHCP with manual DNS, BOOTP, or off. The IPv6 choices are manual, automatic, link-local, and off. The "Automatic" is not DHCP, it's autoconfig from a router.

With IPv6, there are multiple ways to get an address. OS X doesn't use DHCPv6, it uses Autoconfiguration (routers provide the information). Windows Vista & Windows 7 both use DHCPv6. But typically routers doing autoconfiguration and DHCPv6 servers don't talk to each other, so collisions and confusion are possible.

This is one of the ugly parts of IPv6 that isn't widely communicated. See http://arstechnica.com/business/2010/09/there-is-no-plan-b-why-the-ipv4-to-ipv6-transition-will-be-ugly/2/ for more info on this.

  • 2
    is that a fancy way of saying no?
    – MrDaniel
    Sep 16, 2012 at 21:38
  • Yes, it is, sadly. Note that in OS/X the IPv4 configuration gives you a choice of manual, DHCP, DHCP with manual DNS, BOOTP, or off. The IPv6 choices are manual, automatic, link-local, and off. The "Automatic" is not DHCP, it's autoconfig from a router.
    – Geek Zero
    Sep 17, 2012 at 0:16
  • Now I'm confused: "Mac OS X Lion has DHCPv6" / mailman.nanog.org/pipermail/nanog/2011-July/038502.html But I also didn't get any DHCPv6 working when trying recently... May 23, 2013 at 9:22
  • This so clearly illustrates Apple's vs. Micorsoft's way of dealing with paradigm shifts. MS "did just fine"" with DHCPv4, so they carry it forward, familiarially, yet vestigially. Apple, on the aother hand would prefer to eliminate any and all possible "settings" (or give a single option, called "Automatic"), and let implementation-agnostic-magic happen (behind-the scenes). They do it with DNS (Bonjour vs. whatever it is MS wants), too. They need to stop with the pissing match and split the difference, so that (both) of their good ideas can saturate the market enough to be useful.
    – alex gray
    Sep 28, 2014 at 3:19
  • It would seem from below that this answer is incorrect - one just needs an RA with the appropriate flags set.
    – Pierz
    Apr 2, 2015 at 15:06

Actually yes it does have a DHCPv6 client. I have verified in 10.8.4 but the email thread referenced above talks about it working with Lion too.

To get it to work, you need to set the IPv6 configuration to "automatic" and then on your router, you also need to configure the routing announcements to indicate that hosts should use DHCP to obtain an address. I believe that's what they're referring to in those emails where they say they've got it working with Lion.

Relevant extract from that email (since links may die eventually):

Quick testing shows that when "Automatic" is used for the IPv6 setting, OS X will correctly look at the A, M, and O flags of an IPv6 RA and make use of DHCPv6 when instructed to.

As an example, on a Cisco ASA 5505 running software version 9.1, you'd need something like this:

interface Vlan1
 nameif inside
 security-level 100
 ipv6 address 2001:db8:1234:1::1/64
 ipv6 nd managed-config-flag
 ipv6 nd other-config-flag

The managed-config-flag is the "m" flag and the other-config-flag is the "o" flag from that email. You might or might not need both, depending on what you want to do.

Don't forget that if your DHCP server is on another interface you'll also need something like:

ipv6 dhcprelay server 2001:db8:1234:2::2 dhcpinterfacename
ipv6 dhcprelay enable inside

So yes, DHCPv6 client, but needs a little help from routers on the network. I can't help feeling it's a bit of a mess, but it works.

Note that you'll also get the EUI-64 address and the privacy extension address in addition to the DHCPv6 assigned address. I don't know how to turn them off I'm afraid. In particular, at the moment, I don't know how the OS decides which one to use for outbound connections, which could present some problems.

  • Not really a mess. This is the way it's supposed to work. Oct 2, 2016 at 5:39
  • Can you please clarify this? Where does one enter the ipv6 dhcprelay entries?
    – B2K
    Dec 13, 2016 at 16:12

Mac OS X has definitely DHCPv6 support. I currently use ISC-DHCPD in combination with radvd on my Raspberry Pi as home Router. It is important that the M and the O Flag are set for route advertisement. That instructs to "switch" to DHCPv6. Radvd then advertises the default route (because, providing the route via DHCPv6 is currently not defined as a final standard). Remaining information is then provided via DHCPv6.

I only have Apple clients in my office environment and it works like a charm. Even my iPad and iPhone get leases via DHCPv6.

Here is an example configuration (I build it on raspbian, another OS with radvd and isc-dhcpd should also do it):


interface wlan0
    AdvSendAdvert on;
    AdvManagedFlag on;
    AdvOtherConfigFlag on;

    prefix 2001:1234:5678:9abc::/64
        AdvOnLink on;
                AdvAutonomous off;
                AdvRouterAddr off;

The important flags O and M are set with these directives:

AdvManagedFlag on;
AdvOtherConfigFlag on;


ddns-update-style interim;    
allow leasequery; 
default-lease-time 600;
    max-lease-time 7200;    
    log-facility local7;

subnet6 2001:1234:5678:9abc::/64 {
    range6 2001:1234:5678:9abc::10 2001:1234:5678:9abc::ff;
    option dhcp6.name-servers 2001:4860:4860::8888, 2001:4860:4860::4444;
    option dhcp6.domain-search "example.com";
    option dhcp6.fqdn "example.com";

    allow unknown-clients;

You must log in to answer this question.

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