SparkFun will be closed Friday 7/3/2020 for the 4th of July holiday. All orders placed after 2 pm MT on Thursday 7/2/2020 will be shipped out on Monday 7/6/2020. SparkFun Support will also resume on Monday 7/6/2020. Have a safe holiday!
If you're wondering what IPv6 or an AAAA record is, let me begin by stressing how important IPv6 is, and more so, how critical it is that the entire world transitions to it quickly. IPv6 is the replacement of the addressing system of the internet. Our current version of the internet's addressing system allots approximately 4.29 billion addresses. This is quite a bit fewer than the number of people in the world, and substantially fewer than the rapidly-growing number of internet-connected devices out there. There were over 300 million new Android phones activated in the last year alone, and that's not even scratching the surface (RFC2324 compliant coffee pots are going to push us over the edge).
During the inception of the internet, the initial address space was thought to be more than adequate, as the founders of IPv4 didn't expect the internet to ever expand outside a few university and military labs back in 1981. Even so, the old addressing system was well thought out for just being an experiment that never ended. 4.29 billion addresses is nothing to sneeze at, but the new address space of IPv6 is beyond gargantuan proportions. IPv6 ensures that this time around, we really won't run out by using a 128-bit address space. How many exactly? 340,282,366,920,938,000,000,000,000,000,000,000,000 - That's enough to assign an address to every eukaryotic cell in our galaxy, assuming that there are at least 10 billion other planets out there in the Milky Way just as alive as earth is. With numbers this large, the decision was made that standardizing allocations of address blocks trumps the immense amount of wasted space. Our /48 subnet allocation alone grants SparkFun an address space of 18,446,744,073,709,552,000 IPs. Unfortunately, this makes for some complex addresses, like: 2001:1926:3df:5:5054:ff:fe05:a221/64. Just a bit more difficult to remember than 192.168.5.61/24. On the other hand, IPv6 brings many new features, and negates the need for services such as DHCP, which is primarily used to allocate addresses from a pool to connected devices. This is because everything can be guaranteed a unique address by performing a stateless autoconfiguration, based on a broadcasted prefix to itself using Modified EUI-64, where the MAC address of the device is slightly modified and appended to the prefix. IPv6 is much, much more than just a larger addressing pool, it redefines traffic at one of the lowest layers in networking.
Earlier this month we made the jump to IPv6 internally, but unfortunately our upstream internet provider and datacenter host has yet to commit to supporting it. Luckily, a tunnel broker known as 'SixXS' granted us a /48 subnet in order to satiate our thirst for connectivity to the new internet (Special thanks to 'Jeroen' for making this happen). This, unfortunately, is a dirty workaround and came with a caveat. Both Windows and Linux systems will 'prefer' IPv6 routes over IPv4 by default, which makes for a substantial amount of traffic for our tunnel broker. The solution for this was to turn off the route, and use it only when needed, until our upstream provider starts routing IPv6 packets. Unfortunately, the adoption of IPv6 is still relatively low, but it's starting to climb quickly.
So, what does this transition mean for most end users? With IPv6, the days of NAT traversal are (almost) gone. NAT came around as a band-aid for the quickly-dwindling number of publically assignable addresses, and allowed you to have a single external address that people could contact all of your devices with. Unfortunately, this complicates life, as you need to tell your device doing your NAT translations where to send inbound traffic, and makes life substantially less fun for network administrators. Specifications such as UPnP and TCP/UDP hole punching such as ICE and STUN(T) consequently arose to allow devices and applications to receive unsolicited external connections. Being able to receive data without first initiating a connection is pretty important, as two devices behind a device doing NAT translation, such as a home router, can't talk to each other without a third party. This, however, led to NAT becoming a sort of security “feature” that helped eliminate many early worms and malware that attacked open ports with insecure services, such as the Blaster Worm.
IPv6 also augments mesh networking and the interoperability of personal area networks with existing networks, and specifications such as 6LoWPAN from the IETF have arisen to compete with ZigBee, currently found on most of our 802.15.4 modules (although ZigBee has announced that they are investigating the possibility of adding IPv6 support). Additionally, traffic can be encrypted using a standard known as IPsec, which was developed in conjunction with IPv6. All standards-compliant IPv6 devices are required to support IPsec, which should help to keep eavesdroppers from snooping in on traffic from your Tricorder -- at least until us mere mortals get our hands on quantum computers capable of using Shor’s algorithm.
The specification for IPv6 was finalized in 1996, and repeated deadlines to make the jump were facetiously missed by governments and large ISPs around the world for over a decade. Luckily, with the clock quickly nearing zero-hour, IPv6 is starting to be taken very seriously and is seeing rapid adoption and backing by large ISPs and companies, many of which have their own IPv6 awareness campaigns. A few of these can be found at Google, Comcast, ATT, and Cisco. If you're part of an organization which has yet to start the transition, urge them to start making preparations for the move!