MacOS DHCP Client Hostname option
I've seen lots of threads discussing this, but... Many of the ones that had solutions suggested either "remove spaces from host names" (duh, space isn't a valid hostname character and shouldn't be allowed in the UI), but I don't have spaces in my host name. The rest that had solutions all talked about Settings->General->Sharing->Local hostname->Edit->"Use dynamic global hostname".
The first solution did solve things for DHCPv4, but DHCPv6 still doesn't send anything. Now admittedly, DHCP4 works (Option 12, RFC2132) sending just the host name and DHCP6 requires that the client send an FQDN (Option 39, RFC4704).
However, I've set the dynamic global hostname on the mac to string.example.com (not really, but I'm not going to put real FQDNs here).
Still, TCPdump shows a bit of misbehavior in both cases...
For DHCP6, option 39 simply is not present. Nothing.
For DHCP4, option 12 is present, but instead of containing the expected string.example.com, it contains simply string.
(That's with the local host name set to string (with a grayed out .local) and the dynamic global hostname set to string.example.com.)
I'm not allowed to set the domain portion of the local host name.
The behavior is identical whether I put a trailing dot in the dynamic global host name or not.
I think this is a bug in MacOS network stack.
There's another annoying bug in that in violation of RFC4361 section 5, the CLIENT-ID strings for v4 and v6 are quite different (which makes dual-stack DDNS nearly impossible).