Originally posted to "Platform Networking" forum, but then realised this one is closer.
It looks like Windows DHCP servers, at least on Windows 2003 and 2008, do not support canonical wire format in DHCP option 81 (client FQDN).
RFC4702, which defines option 81, offers two formats for client name - plain ASCII and canonical wire format defined in RFC1035. The format used is defined by bit "E" in Flags field of Option 81. But it looks like MS DHCP servers ignore this bit, and always treat client name as if it was in plain ASCII.
I'm trying to configure Cisco router to register VPN clients in DNS. Router allocates IP addresses for clients from Windows 2008 DHCP server, and sends DHCP option 81 containing client host name.
In DHCPREQUEST, router puts option 81 with bit "E"=1, and prepends client name with length byte (it sends non-qualified name, what is permitted by RFC). But eventually this length byte becomes first byte of DNS name, what is absolutely incorrect. I also analyzed DNS update packets between DHCP and DNS servers, and it is obvious that length byte becomes part of DNS name which DHCP server registers.