To address the limitation of IPv4, the IPv6 address space will be used to replace it. The migration has started since 2000, Japan being the first country to integrate IPv6 in their networks. However, the transition will take a lot of years, because there are many IPv4 addresses allocated, and not all devices are IPv6 capable yet.

The IPv4 had only 4 octets, allowing for 2^32 addresses. The new IPv6 has 16 octets, which allows for 3.4×10^38 IP addresses, totaling to 340,282,366,920,938,463,463,374,607,431,768,211,456 addresses. This means, there are many trillions of addresses that can be allocated to every person on the planet and approximately 665,570,793,348,866,943,898,599 addresses per square meter of the surface of the Earth.

IPv6 has some advanced features, compared with IPv4:

  • Enhanced IP addressing:
    • Autoconfiguration
    • Easier multihoming capabilities
    • Plug-and-play
    • End-to-end without NAT
    • Better aggregation of IP prefixes announced in routing tables
  • Mobile and security:
    • Mobile IP RFC-compliant
    • IPsec mandatory or native for IPv6
  • Simple header:
    • Better routing efficiency
    • No broadcasts, eliminating the risk of broadcast storms
    • No checksums required for processing the packets
    • Simplified extension headers
    • Flow labels for per-flow processing

The transition to IPv6 can’t be done overnight, but until then, there are a couple of methods to migrate to IPv6:

  • Dual stack
  • 6to4 tunneling
  • NAT-PT, ISATAP tunneling and Teredo tunneling

Because IPv6 addresses are 128-bits long, the numbering in dotted-decimal would be too long. In IPv6, the addresses use colons to separate entries in a series of 16-bit hexadecimal.

An IPv6 address looks like this: 2031:0000:130F:0000:0000:09C0:876A:130B.

However, this looks too long also. You can shorten the address, using the following guidelines:

  • Leading zeroes in a field are optional. For example 09C0 equals 9C0 and 0000 equals 0, so the address can be written as 2031:0:130F:0000:0000:9C0:876A:130B.
  • Successive fields of zeroes can be represented as two colons “::”. This method can be used only once in an address. Our address becomes 2031:0:130F::9C0:876A:130B.
  • An unspecified address is written as “::” because it contains only zeros.

Let’s take more examples:

0:0:0:0:0:0:0:1 becomes ::1 (which is the loopback address)

FF01:0:0:0:0:0:0:1 becomes FF01::1

3FFE:0501:0008:0000:0260:97FF:FE40:EFAE becomes 3FFE:501:8:0:260:97FF:FE40:EFAE

Because some companies want to “hide” some of their hosts from the Internet, there is also a private address block space IPv6. Private addresses have the first octet “FE” in hexadecimal notation with the next hexadecimal digit being a value from 0 to F. These addresses are further divided into two types, based on their scope:

  • Site-local addresses – are those addresses similar to RFC 1918 addresses. Their scope is to be used inside an organization and never be routed in the Internet. These addresses begin with “FE” then are followed by “C” to “F” for the third hexadecimal digit. However, the use of these addresses became deprecated in 2003 by RFC 3879.
  • Link-local addresses – these are special purpose addresses for tasks such as automatic address configuration, neighbor discovery and router discovery. These addresses are not routed in the Internet and not even within an organization. The value of these addresses begin with “FE” and have a third value from “8” to “B”.

In IPv6, the loopback address is 0:0:0:0:0:0:0:1 which is also noted as “::1”.

IPv6 addresses use interface identifiers to identify interfaces on a link. These identifiers are required to be unique; they are always 64 bits long and can be dynamically derived for a Layer 2 address (MAC). IPv6 addresses can be assigned both statically or dynamically.

Static allocation can be done using a manual interface ID or with a EUI-64 interface ID.

Dynamic assignment is achieved using stateless configuration or DHCP for IPv6.

As stated above, there are different migration strategies to implement IPv6: dual stacking, 6to4 tunneling, NAT-PT, ISATAP tunneling and Teredo tunneling.

Dual stacking is the method of configuring a network device for both IPv4 and IPv6 connectivity, with IPv6 being the preferred protocol.

Tunneling is the most commonly seen method. With this method, IPv6 packets are encapsulated within the IPv4 protocol by a dual-stack router. The packets are transported over the IPv4 network and they get decapsulated by another dual-stack router from the IPv6 network that it has to reach.

Less popular tunneling techniques are ISATAP and Teredo tunneling. ISATAP creates an IPv6 network using the IPv4 infrastructure for transporting the packets, while Teredo creates host-to-host tunnels instead of gateway tunneling.

NAT-PT is the last resort because the translations made are more complex than IPv4 NAT.

We hope you found this introduction to IPv6 concepts exciting. In the next topics we will discuss how to configure a router for IPv6 operations and how to enable the RIPng routing protocol in your network, as part of our Cisco CCNA certification series.