Why does "dhclient -6" not work if I haven't already enabled IPv6 on the interface?

AA-01212

IPv6 makes extensive use of the "link-local" address.  This address is configured automatically when the interface is brought up.  Various IPv6 subprotocols, including Neighbor Discovery Protocol (NDP) and DHCPv6, require and use this address.

The IPv6 link-local address is in the FE80::/64 space (which is within the reserved FE80::/10 network.)  Every IPv6-enabled interface will have this address at a minimum.  Link-local means just that: it is local to the link (interface or Ethernet segment) only, and it cannot be routed outside that link.

Your operating system (OS) will statelessly autoconfigure the IPv6 link-local address when IPv6 is enabled on the interface.  The details of how this is done varies per OS, but the governing standard is RFC 4862, IPv6 Stateless Address Autoconfiguration.

DHCPv6 clients use their IPv6 link-local addresses to communicate with the server1.  If you have not enabled IPv6 on the interface, there is no link-local address yet, and the client is unable to reach the server.




[1] See section 1.1 of RFC 3315.

References:
RFC 3315, Dynamic Host Configuration Protocol for IPv6 (DHCPv6)
RFC 4291, IP Version 6 Addressing Architecture (see section 2.5.6)
RFC 4862, IPv6 Stateless Address Autoconfiguration