When I set up my new server and moved my DNS records to my name registrar, I also included records for my server’s IPv6 address (2600:3c00::f03c:91ff:fecf:250d), as well as the familiar IPv4 address (126.96.36.199). Supporting both is known as dual stack.
I didn’t have to support IPv6 since I do have an IPv4 address, but if I’m going to do the shiny new with my site, I’m going to go shiny, new all the way.
Besides, there’s no more room at the inn with the old IPv4 system. We’ve run out of web addresses under the old IPv4 addressing system. The current IPv4 system only allows for 4.3 billion addressed, and they’ve all been assigned.
Yeah, haven’t we been prolific on the web.
Fixing the Address problem
To fix the address problem, the powers that be created the IPv6 addressing scheme. Unlike the IPv4 system with its built-in limitations, the IPv6 system allows for 340 undecillion addresses. I kid you not, that’s a number. It’s 340 trillion trillion trillion.
It’s a number so large, it would take three times the age of the universe in order to scan all of them. In other words, we will not run out of IPv6 addresses. Our sun will die before we run out of addresses.
So why aren’t we using IPv6 addresses? Well, it takes time to rework the internet. Think about taking every physical address in the world and switching them to some kind of new coding system. And then multiply that by a Very Large Number.
Still, IPv6 support does exist: in our browsers, our name servers, and our ISPs. The problem, though, is the support can be a little clunky, with significant gaps.
Challenges with IPv6
When I tried to access my new server using SSH the first time, I thought something was broken, it took so long.
The reason why SSH took so long is the SSH client I use, Putty, first attempts to use IPv6 to access the site. Though my site had propagated throughout the name server system, propagation can be slower for IPv6 than IPv4. Putty first tries to connect to a site using IPv6, and has to wait for the IPv6 request to fail before it tries the IPv4 address.
Another problem arose when using the Ubuntu package system,
aptitude, otherwise known as
apt-get. When I tried to use it the first time, the response was as slow as the one I experienced with SSH.
In the case of Putty, I changed the Connections to IPv4 from
Auto, and for
apt-get, I created a rule to force IPv4:
echo 'Acquire::ForceIPv4 "true";' | tee /etc/apt/apt.conf.d/99force-ipv4
One thing I didn’t want to do was disable IPv6 on my server. Seriously, we need to move our butts over to the new addressing scheme before new voices can no longer join the web because there’s no more room.
IPv6 and DNS propagation
Why was IPv6 slower? I suspect DNS propagation is the culprit. This is born out by the following, from the SixXS site:
The real issue here is that when a host becomes IPv6 enabled it will start doing queries for ‘AAAA’ DNS records. As some routers (actually a NAT box) or the upstream DNS have faulty DNS implementations, instead of answering the questing for an ‘AAAA’ DNS record, they simply ignore the question, not answering at all. This causes the computer to wait for the timeout, after which it will try to ask the question again, but now for an ‘A’ DNS Record, which will result in a working answer from the DNS server.
The real solution is to fix the DNS server which is causing these problems.
We’re not ready to switch over from being dual stack to being solely IPv6 just yet. Even though the new addressing scheme has been out for decades, the adoption is still slow. It becomes a neverending problem: we don’t adopt IPv6 because it’s slow, but it’s slow because we’re not fully adopting it yet.
It’s interesting but after a couple of days, I could remove the IPv6 workarounds, and everything works fine. Just needed time for my IPv6 address to make its slow way around the system. Since then, no problems with IPv6…but I’m still holding on to my IPv4 address.
(BTW is you’re curious about your ISP’s IPv6 support, access http://test-ipv6.com.)