IPv6 Tutorial
What is IPv6?
IPv6 stands for Internet Protocol version 6 which is the most recently revised version of the Internet Protocol (IP). The main reason behind updating the Internet Protocol is due to the fact that IPv4 (the predecessor to IPv6) simply can no longer provide the number of IP addresses required.
The transition process from IPv4 to IPv6 will take a considerable amount of time as IPv4 was deployed in the early 1980's and is still largely used. However, now that more and more devices require an internet connection, there is an increased demand for IP addresses, therefore IPv6 is required in order to continue moving forward.
If we don't overcome the challenges of IPv4 we will slow down the growth of the Internet and lose momentum as an industry. IPv6 is important to all of us, to everyone around the world. It is crucial to our ability to tie together everyone and every device.
This IPv6 tutorial should help clear up the differences that exist between IPv4 and IPv6 as well further explain how IPv6 works and outline the transition mechanisms currently available.
Differences between IPv4 and IPv6
There are many improvements that exist for IPv6 when comparing it to IPv4. The list below outlines some of the major differences between both protocol versions.
- Increased address space - This is the most important aspect of IPv6. The IPv4 address size is a 32-bit number (232) which allows it to provide approximately 4.2 billion IP addresses. On the other hand, IPv6 uses a 128-bit number (2128) which allows it to provide many more IP addresses - approximately 340 undecillion (36 zeros).
- Improved header - The IPv6 header has been simplified in that all options and unnecessary information have been moved to the bottom of the header. Additionally, the IPv6 header is only double the size of IPv4 despite the fact that the address is four times longer.
- Faster forwarding/routing - Since the IPv6 header has been improved, this allows routers to perform faster routing decisions as all the necessary information is located at the top.
- Anycast support - IPv6 supports the Anycast mode of packet routing (more on this topic in the section below). Essentially, multiple machines share the same IP address allowing routers to send a packet to the nearest destination.
- Improved mobility - With IPv6, users are able to use mobile devices in various geographic regions without having their IP address changed.
- Extensible - IPv6 also leaves room for option extensibility whereas IPv4 provides only 40-bytes for options. This allows users to extend the protocol without affecting the core packet structure.
As for the IP address itself, the is an apparent difference in the formatting of IPv6 compared to IPv4 addresses. An example IPv4 address looks similar to 55.157.179.232
whereas an IPv6 address may resemble fdc4:7a9b:5408::/48
. When writing an IPv6 address you can omit the leading zeros, check out the following IPv6 tutorial about address formatting.
IPv6 addressing methods
IPv6 makes use of three addressing methods as described below. These methods are somewhat similar to what IPv4 provided. The differences being that the broadcast method is no longer implemented in IPv6. Additionally, IPv6 also makes use of the anycast method.
Unicast
Using the unicast addressing method restricts an IP address to be associated to only one node in a network, known as a one-to-one association. In this case, the IPv6 contains both the source and destination's IP addresses.
Multicast
The multicast addressing method allows an IPv6 packet to be sent to various hosts simultaneously. All machines interested in the multicast packet join the group and process the packet while all other machines ignore the information.
Anycast
Lastly, as mentioned above, IPv6 also introduced a new addressing method called anycast. With this method, multiple machines are associated with the same IP address. Once a packet is sent from the host via anycast, routers ensure that the request is delivered to the nearest possible machine, thus reducing latency between the host and the server.
Transitioning from IPv4 to IPv6
The transition from IPv4 and IPv6 will take some time. Many services have already implemented IPv6 support or are in the process of doing so. However, with so many devices and services currently available online, the completion of this process will require patience. There are however multiple transition mechanisms available in order to simultaneously operate both protocols to ensure a slow and smooth transition.
Dual IP stack
The first transition method involves implementing the use of a Dual IP stack. This recommended method allows for easy communication between nodes using either protocol as defined in RFC 4213.
Tunneling
If IPv6 dual stack support is not available, tunneling provides a better solution as the user's data is able to use IPv4 infrastructure to carry IPv6 packets. This allows both IPv4 and IPv6 packets to be delivered to the desired network even if there is no infrastructure in place to support the IPv6 packets.
Proxy protocol translation
Lastly, another IPv4 transition method is to use a dual-stack proxy server. For new hosts, it may be that they only have IPv6 connectivity and therefore a proxy solution may be required. Currently, a proposed proxy-based method is to implement the use of NAT64.
Configuring IPv6 on Ubuntu
If you want to configure IPv6 on your Ubuntu Linux operating system, this will require a few simple steps.
First, open the /etc/network/interfaces
file with the following command:
sudo vi /etc/network/interfaces
Add the following snippet to the interfaces file:
### Start IPV6 static configuration
iface eth0 inet6 static
address 2607:f0d0:2001:000a:0000:0000:0000:0010
netmask 64
gateway 2607:f0d0:2001:000a:0000:0000:0000:0001
### END IPV6 configuration
Lastly, you'll just need to reboot the server or restart networking (use the following command if using systemd):
sudo systemctl restart networking
To see your IPv6 address, you can use:
ifconfig eth0
ip -6 address show eth0
Additionally, you can ping an IPv6 address with ping6 yourwebsite.com
as well as perform an IPv6 Traceroute using traceroute6 yourwebsite.com
.
Summary
Hopefully, this IPv6 tutorial has helped clear up some of the questions regarding what this new Internet protocol actually entails. As previously mentioned, the transition process is going to take some time as there are many variables at play. However, moving towards the new protocol will ensure that as the popularity of internet-based devices grows, there is no shortage of IP addresses.
Additionally, If you would like to test the latency of an IPv6 host, check out the IPv6 Ping Test tool which allows you to perform an IPv6 ping to multiple locations simultaneously.