IPv6 and the DNS: missed opportunities (posted 2020-01-13)
A few days ago I ran into this blog post from 2012: Deprecate, Deprecate, Deprecate, which lists a bunch of IPv6 stuff that's been "deprecated" by the IETF. That means: we changed our minds about this protocol or feature, stop using it.
The list (the blog post obviously has more information):
- IPv4-compatible IPv6 Addresses. Status: Deprecated.
- Site-Local Addresses. Status: Deprecated.
- The 6bone. Status: Deprecated.
- ipv6.exe (Windows XP). Status: Deprecated.
- NAT-PT and NAPT-PT. Status: Deprecated.
- The Type 0 Routing Header. Status: Deprecated.
- Your valid yet older SLAAC IPv6 addresses. Status: Valid (but deprecated).
But what, no IPv6/DNS-related deprecations?
Perhaps the most annoying one of those was the change from ip6.int to ip6.arpa. Originally, the idea was to have reverse mapping of IPv6 addresses under the ip6.int domain name. So for instance, the IPv6 address of this server is 2a01:7c8:aaaa:1fb::2. In the reverse DNS that would then become the following, with a PTR record pointing to the server's name:
Then, around 2003/2005 they decided to change this to:
Which of course led to the situation where you'd get inconsistent results for years as people made the change at various times. So annoying, especially because it's just a cosmetic change, but an invisible one!
There were also some more substantial IPv6/DNS-related deprecations: A6 records and bitlabels. The idea behind those is that IPv6 should make it simple to renumber. For this purpose, a system was designed where a DNS record wouldn't hold the entire IPv6 address, but parts of it. So if you move a bunch of systems to a different subnet, you just change the record that has these subnet bits, and all the other partial address records remain the same. Unfortunately, this proved too ambitious. Not only did we move to AAAA records, which are four times as big as A records, only four times as big, but support for A6 records and bitlabels was swiftly removed from BIND. This actually caused me some trouble as the zone file with my A6/bitlabel experiments in it suddenly wasn't recognized by other servers anymore.
Moral of the story: measure twice, cut once.