What is IPv6 and Why Do We Need It?
So Many Devices, So Few Addresses
When IPv4 was introduced decades ago, few people could imagine the rate at which Internet connectivity would grow. It was anticipated that the approximately 4.3 billion addresses available with the 32-bit IPv4 address structure would be more than enough to address all of the network connected devices. As it turns out, 4.3 billion addresses are nowhere near enough! The chart shows how rapidly the number of network connected devices has grown since 2003. And the growth rate does not appear to be slowing down at all, in fact, the rate at which new devices are coming online is increasing. As shown in the figure, it is predicted that more than 50 billion devices will be connected to the Internet by 2020. That is more than six devices per person!
The designers of the IP protocols began to become concerned about running out of IPv4 addresses in the early 1990s. In December, 1993, the Internet Engineering Task Force (IETF) started accepting recommendations for enhancements to the IP protocol in order to support the need for larger address space and to make assigning IP addresses easier for administrators. It took until December, 1995 for the first IPv6 specification to be published (RFC1883, superseded by RFC2460).
The main feature of IPv6 that differentiates it from IPv4 is the change in length of the IP address itself. An IPv4 address is 32 bits (4 bytes) long. In IPv6, the address length is increased to 128 bits (16 bytes). With 128 bits, it is possible to create enough IPv6 addresses to allocate more than the entire IPv4 Internet address space to each person on the planet. IPv6 should provide sufficient addresses for future Internet growth needs for many years to come.
-
Config
- Ipv6 unicast-routing (enable ipv6)
-
Int s0
- Ipv6 address 2001:db8:1111:2::1/64
-
Int gi0/0
- Ipv6 address 2001:db8:1111:1::1/64
-
Int gi0/1
- Ipv6 address 2001:db8:1111:4::1/64
- Or
- Ipv6 address 2001:db8:1111:1::/64 eui-64
- Ipv6 dhcp relay
-
Ipv6 route 2001:db8:1111:3::/64 S0/0/1
- Uses r1 s0/0/1 interface as outgoing interface
-
Ipv6 route 2001:db8:1111:3::/64 2001:db8:1111:2::2
- Uses r2 address as the next hop router unicast address
-
Ipv6 route 2001:db8:1111:3::/64 S0/0/1 FE80::FF:FE00:2
- Uses r2’s s0/0/1 as the outgoing interface and r2’s link local address as the next hop router address
-
Verify
- Ping6 2001:db8:1111:3::22
- Traceroute
- Show ipv6 route [address]
-
Show ipv6 neighbor [address]
- Addresses, age, link layer addr, state, interface
- Show ipv6 protocol
IPv6 to the Rescue
IPv6 addressing will eventually replace IPv4 addressing, although both types of addresses will coexist for the foreseeable future. IPv6 overcomes the limitations of IPv4 and has features that better suit current and foreseeable network demands. The 32-bit IPv4 address space provides approximately 4,294,967,296 unique addresses.
IPv6 address space provides 340,282,366,920,938,463,463,374,607,431,768,211,456 addresses, or 340 undecillion addresses, which is roughly equivalent to the number of grains of sand on Earth. The figure provides a visual to compare the IPv4 and IPv6 address space. Other benefits of the IPv6 protocol include:
• No need for NAT. Each device can have its own globally routable address.
• Autoconfiguration capabilities simplify address administration.
The designers of IPv6 thought that it would be adopted quickly, as the number of remaining available IPv4 address blocks was decreasing rapidly. Initial estimates were that IPv6 would be globally deployed by 2003. Obviously, these estimates were incorrect.
Change is Coming
Why is IPv4 Still in Use?
If IPv6 offers so many more addresses and has other useful features, why do we still use IPv4? The short answer is that it still functions adequately in many networks. This is because protocol enhancements evolved that extended the usability of IPv4. The most commonly used extension is Network Address Translation (NAT).
IPv4 address assignment includes reserved private address space. The development of NAT enabled multiple privately addressed LAN devices to share a single registered IPv4 address (or pool of addresses) when their traffic needed to leave the LAN and travel over the public Internet. Many privately addressed LANs could use the same address blocks without conflicting with each other because their traffic stayed local to their LAN. The need for new IPv4 address space was greatly reduced.
NAT was only meant as an interim solution for IPv4 address depletion. NAT adds complexity, latency and even “breaks” many applications. For example, it is difficult to initiate access to a device, such as a web server that is using NAT and private address.
Facing the Challenge
As shown in the figure, as of January 1st, 2016, Google reported that approximately 10% of users access their services from a native IPv6 address. This number is expected to grow significantly now that four out of five Regional Internet Registries (RIR) no longer have any more IPv4 addresses to allocate to customers. AFRINIC is the only RIR with any IPv4 addresses left. Comcast is IPv6-enabled throughout their network, including to the home user. Because all recent host operating systems are IPv6-enabled by default, many Comcast residential customers have no idea that they are already using IPv6 when accessing most major sites such as Google, Facebook, LinkedIn and NetFlix.
Because of the high demand for IP addresses, mobile providers have been adopting IPv6. Verizon reports that 70% of their cell phone traffic is carried over IPv6. T-Mobile phones are IPv6 only and use a special protocol translation when communicating to an IPv4-only device.
It is predicted that Internet of Things (IoT) will add another 50 billion devices by 2020. IPv6 will be required for this to happen.
From <https://www.coursera.org/learn/data-communication-network-services/supplement/9sLJt/change-is-coming>
IPv6 Differences
In addition to the increase in length, IPv6 addresses have other characteristics that are different than IPv4 addresses. Among the differences are:
• Address autoconfiguration – Stateless Address Autoconfiguration (SLAAC) allows a host to create its own Internet routable address (global unicast address or GUA), without the need for a DHCP server. As shown in the figure, with the default method the host receives the prefix (network address), prefix length (subnet mask), and default gateway from the router’s Router Advertisement message. The host can then create its own unique Interface ID (host portion of the address) to give itself a routable global unicast address.
• Link-local address – Use of link-local address when communicating with a device on the same network, as shown in the figure.
IPv6 is much more than just longer addresses. The developers of IPv6 took this opportunity to make improvements to IP and related protocols such as ICMPv6. These improvements included features related to efficiency, scalability, mobility, and flexibility for future enhancements.
IPv6 Address Formatting
It is no problem for computers to read the new 128-bit IPv6 addressing. IPv6 just adds more 1s and zeros to the source and destination addresses in the packet. For humans, though, the change from a 32-bit address written in dotted decimal notation to an IPv6 address written as a series of 32 hexadecimal digits can be quite an adjustment. Techniques have been developed to compress the written IPv6 address into a more manageable format.
Compressing IPv6 Addresses
IPv6 addresses are written as a string of hexadecimal values. Every 4 bits is represented by a single hexadecimal digit for a total of 32 hexadecimal values. The figure shows a fully expanded IPv6 address and two methods of making it more easily readable. There are two rules that help reduce the number of digits needed to represent an IPv6 address.
Rule 1 – Omit Leading Zeros
The first rule to help reduce the notation of IPv6 addresses is to omit any leading 0s (zeros) in any 16-bit section. For example:
• 0DB8 can be represented as DB8
• 0000 can be represented as 0
• 0200 can be represented as 200
Rule 2 – Omit One “all zero” Segment
The second rule to help reduce the notation of IPv6 addresses is that a double colon (::) can replace any group of consecutive segments that contain only zeros. The double colon (::) can only be used once within an address, otherwise there would be more than one possible resulting address.