Simple Questions about Domain Names and IPv6 Addresses

The IETF week is over and one of the questions raised in one of my documents was as simple as this: What are the restrictions for valid domain names? Guess what, there is no simple answer. There are several RFCs stating some constraints on domain names and there is practical usage of domain names (not necessarily consistent with all relevant RFCs). It turns out that there is not a single specification that states all the restrictions under which valid domain names can be formed and the DNS directorate of the IETF is now helping to sort this out.

Another simple question asked before the last IETF (and discovered independently by others during the last IETF) was this one: What is the canonical textual representation of IPv6 addresses? While RFC 4291 says the preferred format is x:x:x:x:x:x:x:x, where the ‘x’s are one to four hexadecimal digits of the eight 16-bit pieces of the address, it seems most operating systems and server implementations produce a compressed zeros format, likely by calling inet_ntop(). Unfortunately, RFC 3493 only says this about the format produced by inet_ntop():

The inet_ntop() function shall convert a numeric address into a text string suitable for presentation.

By doing some tests to figure out what “suitable for presentation” means to implementors, it was discovered that inet_ntop() implementations indeed do different things (and we did not even bother to investigate the details of the getnameinfo() conversion function). The funny thing is that independent of this investigation, some operators wrote a draft explaining why different textual representations of IPv6 addresses are making life more complicated for operators than it needs to be…