Here at ServInt, we’ve been getting a lot of questions about IPv6 recently: When are you assigning IPv6 addresses? Will my IPv4 addresses all need to change? What does IPv6 mean for me? There are a lot of questions out there. As a senior ServInt network engineer on our IPv6 Implementation team I thought I’d take a few minutes to fill you in on just what all this IPv6 talk is about.
A Little Background
IPv6 is the most recent version of the Internet Protocol (IP), designed to support more addresses and more features. The improvements come from what was learned from IPv4, which is what the current Internet is based on. (What happened to IPv5? The version 5 tag was used for another project, ST/ST2, so we get to use version 6.)
There are about 4.3 billion IPv4 addresses. You’ll recognize the 32-bit sequence of IPv4 addresses by the common format of four sets of three-digit numbers (000-255) separated by decimal points, for example:
All (100%!) of the total IPv4 addresses have already been allocated to the regional registries (such as ARIN for North America and RIPE NNC covering Europe). These regional registries apportion their allocated IP addresses to hosting companies, large corporations, and government and educational institutions. ARIN and other regional registries still have some IPv4 space left to apportion, but APNIC has officially allocated all of its IPv4 space, leaving only IPv6 addresses for new requests from the Asia Pacific region.
The Benefits and Challenges of IPv6
The most important benefit of IPv6 over IPv4 is that it provides exponentially more IP address space. Instead of a purely numerical standard, IPv6 addresses are made up of eight four digit hexadecimal numbers (0-9 as well as A-F) separated by colons, for example:
This sequence is 128 bits long (when written in binary) providing a lot more addresses: around 340 undecillion or 340,000,000,000,000,000,000,000,000,000,000,000,000. That’s enough IP addresses to give each person on the planet more IPv6 addresses than there are total IPv4 addresses in the world!
The second main benefit of IPv6 over IPv4 when it was designed is that IPv6 makes auto configuration of IP addresses easy – just plug in your computer and it can get an IPv6 address automatically (self generating an address and verifying with the network to determine if that address is unique). When IPv6 was first envisioned nearly 20 years ago, this solved a fundamental problem with IPv4: how to assign an IP address to a computer joining a network. It used to be that every computer had a static IP address. Obtaining an address for a new machine was not a simple affair. When it was created, IPv6 addressed this issue. But long before IPv6 ever went beyond the development stage, DHCP (Dynamic Host Configuration Protocol) solved the same problem independently. And today personal computers use DHCP to dynamically obtain an IP address whenever users connect to a network.
While it may at first seem like an improvement to no longer need DHCP servers, this creates a problem. DHCP was initially designed to simply give out and reclaim dynamic IP addresses and server configuration information (DNS servers, WINS servers, etc). It provided a flexible foundation and was eventually adapted to handle IP address, gateway, nameserver data, and more. The designers have added some functionality into IPv6 to have routers pass nameserver information along as well. Though this solution has bridged the gap, it is likely not the final word (as evidenced by DHCP having been extended as DHCPv6 to support IPv6 users).
Another unintended consequence of IPv6’s auto configuration of IP addresses is in security. IPv6 removes the need for Network Address Translation (NAT), a system in wide use which generally maps a small number (1 or more) of public addresses to a larger number of (normally) private addresses behind the device. NAT lets you put many machines behind one public IP address, and in the process adds some security and firewall features. This was a somewhat “accidental” security feature, which evolved as NAT developed. But with the number of addresses available in IPv6, NAT support became redundant. There was no need for it so it was not included in the design of IPv6.
Since NAT is often used to provide security and firewall features, the lack of NAT in IPv6 has been cited as a stumbling block for IPv6 deployment in consumer and enterprise client environments. NAT is often likened to a “default-deny” firewall, with specific handling for each major protocol. The solution for security is to deploy IPv6 firewalls in a NAT-like default-deny configuration. People switching to or adding IPv6 must upgrade or update their firewalls to continue to have the same level of security as they have now in IPv4.
These concerns are minor though, when compared to the main obstacle on the road to full-fledged IPv6 implementation. Because of the address length, IPv6 is not backwards compatible with IPv4 at the “packet” level. One way of looking at this is that the new address sizes couldn’t fit into the spaces reserved in the old packets. To combat this, the designers of the IPv6 standard made the decision to change the packet format to accommodate the bigger address values and to streamline the packet size. Some IPv6 packets headers are smaller than the equivalent IPv4 headers, despite IPv6 addresses being longer. But the downside is that an IPv6 packet won’t be readable by an IPv4-only device. If you try to access a server with an IPv6-only address from an IPv4 computer, you will not be able to do this. If you try to access a server with an IPv4-only address from an IPv6 computer, you will not be able to do this, either.
To overcome this hurdle, there are easy-to-use services like 6to4 which were designed to allow for a measure of interoperability. Most current operating systems already contain support for the standard.
Furthermore, only limited portions of the Internet actually use IP directly. The Internet operates on a modified OSI (Open Systems Interconnection) model. Services such as HTTP, DNS and others on the Internet use standard protocols like TCP/IP and UDP/IP to get their work done. Both of these standards build upon IP and provide additional services and standardized connection-level guarantees and connection state tracking.
This means that careful development can make changes at the lower level and create TCPv6 and UDPv6 without requiring major changes to the applications which use TCP and UDP. So, operating system developers can create TCPv6 and UDPv6 services which use the same kernel interfaces, but run over IPv6 instead of IPv4. With little to no modification, your favorite applications can (and many already do) support IPv4 and IPv6 at the same time. Today, every major operating system has support for IPv4 and IPv6 using what is called a “dual-protocol stack.” This means that most routers, switches, servers and client computers are ready for IPv6 operation.
IPv6 in the Near Future
Don’t worry, it’s not like someone is about to flip a switch activating IPv6 around the world leaving you and your server in the dark. The near future of the Internet will include networks running IPv4 and IPv6. Most computers and servers will have 2 addresses, one IPv4 and one IPv6, allowing people to transparently access IPv4 and IPv6 servers at the same time. This will ensure that users will be able to access all content on the Internet, whether it is associated with an IPv4 or IPv6 address. As an end user or as someone running a server, you will be able to operate in a hybrid IPv6/IPv4 mode as ISPs deploy IPv6 across their networks.
If you are a home Internet user or an enterprise client, your ISP will work with you to add IPv6 support to your network. For a typical residential Internet user, this may be as simple as your ISP shipping you an update to your home router or cable modem. If you have a server with a hosting company, your provider will work with you to allocate new IPv6 addresses for your servers and to set up dual-stack addressing for your operating system.
This day is coming, but it is not here yet. There is still a lot of work to do to figure out just how IPv6 will function over the Internet. World IPv6 Day, also known as “IPv6 Test Drive Day”, is today, June 8, 2011, and is allowing IPv6 adopters and major infrastructure providers on the Internet to test for proper operation between IPv4 and IPv6 systems. It should be transparent to just about everyone. This does not mean that IPv6 will be fully deployed across the Internet (or even close to it, less than 1% of the traffic on the Internet currently is IPv6), but it is a way to make sure that the ongoing IPv6 deployments won’t cause any problems for the millions of IPv4 users.
ServInt’s IPv6 Implementation Plan
Like many other companies, at ServInt we are currently configuring and testing an island of IPv6 within our own network. But before we can fully implement our solution, we need to interconnect with other networks in the same way we connect with IPv4. This step relies on our upstream providers having IPv6 enabled and in production on their networks, something which is still an on-going process.
Most providers do not yet speak IPv6 all the way to their clients. This requires that tunnels be set up through the IPv4 networks to connect IPv6 networks together. But since these links are inherently fragile they are not always considered mission critical production-level solutions, and therefore cannot be the core of a production-ready solution in the interim.
At ServInt, we’re designing a hybrid IPv4/IPv6 network that we will run for the foreseeable future. We are working closely with our upstream providers, and when they enable their IPv6 solutions we will begin to establish our IPv6 interconnections.
What does this mean for our customers? Eventually, every server will receive an IPv6 assignment in addition to their IPv4 assignment. Every server will need to have ‘A’ records for their IPv4 address and ‘AAAA’ records for their IPv6 address. When the time comes, we will contact each of our customers and provide IPv6 addresses. Then every customer will simply have to add these new addresses to DNS as AAAA records and set them up, just like their current server.
At that time, we will also be providing our customers with advice and tools for any necessary reconfiguration of their servers for security and performance while running IPv6.
And in the mean time, we’ll keep our customers abreast of any important IPv6 developments as they occur.
If you have any questions about IPv6 or would like to know more, please leave a comment, and I’ll see if I can help.
Photo by Becky Lai