We have recently added the ability to perform AAAA record DNS lookups in order to resolve hostnames to IPv6 addresses. Here’s a bit of background on IPv6 and AAAA records.
DNS is the backbone of computer networking today. Every time you use a web browser or other internet connected technology that references a server by name, it uses DNS to turn that name into a numeric address. Since the early 1980′s that numeric address was an IPv4 IP address. These “IP Addresses” are 32-bit numbers that can be written as a decimal number from 0 to 4294967295. The IP for MxToolbox.com is currently written as a decimal number as 1075110789. An easier to read “dotted quad” format is more popular, with 4 8-bit numbers from 0 to 255 separated by periods. In this notation the IP Address for MxToolbox.com is 18.104.22.168.
IPv4 has served well for over 30 years, but it has a limitation. It only has 4.29 billion addresses. In 1981 when specification was published, computers were large, shared, and not terribly common. Today many people have multiple computers and internet connected devices, each needing an address. The solution for this dilemma is IPv6, an update that brings with it an increase in address space. IPv6 allows for 340 billion, billion, billion, billion addresses, so we shouldn’t run out of room too soon.
Having so many addresses is critical, and the by far the largest benefit to IPv6, however trying to communicate such a large number is problematic. For example, as of the time of this blog post our tool reports that google.com resolves to 2607:f8b0:4000:804::1004. However that same IP Address can be written several different ways. Here’s that IP as 128 binary 1′s and 0′s - 100110000001111111100010110000010000000000000000001000000001000000000000000000000000000000000000000000000000000001000000000100. Another not very practical method is to use decimal numbers, in our case the address is written as 50552053919381933569817860797397733380. Here’s that number again with comma’s so you can get a grasp as to how large that number really is 50,552,053,919,381,933,569,817,860,797,397,733,380.
The most common way to write IPv6 is so use hexadecimal, which uses 0-9 and then a-f to represent 16 bits as a single character. Our IPv6 looks like this in hex 2607:f8b0:4000:0804:0000:0000:0000:1004. There are several methods for “compressing” this number to remove unneeded characters. You can turn any group of 0000 into just one 0, after all zero is zero. That gets you to 2607:f8b0:4000:0804:0:0:0:1004. However you can also replace any group of zeros with a single double colon so you get back to our optimal version which we return - 2607:f8b0:4000:0804::1004. You are only allowed to use the :: once per address.
IPv6 and it’s super large address pool is great, and some organizations are using it, but since it’s incompatible with IPv4 directly, there has been and will continue to be a long road as the internet transitions from the old version to the new one. Many people have IPv6 addresses and the AAAA DNS record is how those addresses are published. The path forward to implementing and converting networks to IPv6 is a much longer story and there are plenty of places to read about it online. But for now, if you want to lookup AAAA records and PTR records for IPv6, the MxToolbox tools are ready to help.