I have just installed LEDE trunk on a ramips router. So far so good, except one thing: local DNS does not work for DHCPv6 leases (DHCPv4 works). As far as I understand, dnsmasq is not used for DHCPv6 — odhcpd is used instead.
The problem occurs with all clients I have here (Windows 10, NetworkManager's internal DHCP client, dhclient, iOS 10), so I do not know what to suspect. Looking at odhcpd's lease file, it seems that hostnames are not there, so either the clients do not send hostnames or odhcpd does not receive them. Is it a known problem of odhcpd or a common deficiency in DHCPv6 clients?
OK, so it looks like it's the latter. Apparently NetworkManager's dhclient backend explicitly ignores non-FQDN hostnames with DHCPv6 due to a deficiency in dhclient, and other backends do not implement either DHCPv6 at all or sending hostname with DHCPv6.
I managed to make this work by forcing NM to send an FQDN for this connection —
nmcli con modify <connection> ipv6.dhcp-hostname <FQDN> — so in the end it looks like a common deficiency in clients. Strangely enough, if I write a custom config for dhclient and just say
send host-name "<my hostname>" in there, it works as well, though I never bothered to check if the aforementioned bug in dhclient is really fixed or it's just odhcpd being too lax with input data. Anyone to confirm?