Title: 2.6 IPv6
Course: Information and Communication Technology: Module B > Section: Section 2 - Network Addressing Basics

2.6.1 IPv6

IPv4 has served us well for many years, but by 2011, the IPv4 address pool had been exhausted. As we become more dependent on the Internet, we need more IP addresses. Today, not only do our computers have IP addresses but so do our smartphones, cars, homes, and many other systems. The only remaining public IP addresses are those allocated to ISPs and web companies. IPv4 has reached capacity! It is set to expire at the end of 2019 when the DNS, “A Record," will be shutdown.

What then?

The solution is IPv6.

IPv4 uses a 32 bit address giving us about 4 billion total addresses. IPv6 uses a 128 bit address giving us about 340 undecillion addresses. To be precise, this equals:

340,282,366,920,938,463,463,374,607,431,768,211,456 addresses

Enough addresses for every person on earth to have about one million each.

These are some of the advantages of IPv6:

- more efficient address space allocation
- end-to-end addressing: no NAT
- routers do not calculate header checksum
- multicasting instead of broadcasting
- built-in security mechanisms
- single control protocol (ICMPv6)
- auto-configuration

As we move toward IPv6 only, there are several ways of migrating:

- gateways: devices that convert IPv6 to IPv4
- tunnel: IPv6 over IPv4
- dual-stack: IPv4 and IPv6 together
- nirvana: IPv6-only

Companies are slowly growing their IPv6 presence. It will take several years for IPv6 to be viable. Until then, most companies will use both IPv4 and IPv6. They will add an “AAAA Record” to their DNS server, allowing IPv6 to route to the appropriate site.

2.6.2 IPv6

The 128-bit address is written in hexadecimal. It is grouped into four alpha-numeric characters separated by a colon. Each character represents 4 bits. Each group represents 16 bits. There are eight groups total.

2000:0DB8:0000:0000:0008:8000:0000:417A

There are several formatting techniques to help simplify this:

- All leading zeroes can be omitted from each group, for instance,  2000:DB8:0:0:8:8000:0:417A
- A double colon (::) can be used once to represent a string of zeroes - 2000:DB8::8:8000:0:417A or 2000:DB8:0:0:8:8000::417A

2.6.3 IPv6

Each device using IPv6 will be assigned at least two different IP addresses:

- Link-Local Address—The address will always have a FE80::/10 prefix. (Note in the figure, the /10 refers to the first ten bits of the address.) It is similar to the Automatic Private IP Address (APIPA) used in IPv4. It is automatically assigned to an interface and is used for neighbor discovery. It will not be routed to the public.

- Global Unicast Address—This address is used to send packets over the Internet. This address can be manually configured, auto-configured (EUI-64 using the interface MAC address), DHCPv6 configured, or cryptographically generated.

Extended Unique Identifier (EUI-64) is the most common way of assigning the global unicast address. It uses the interface’s MAC address as the interface ID and inserts FFFE between the 6th and 7th character. If the interface MAC is 00-40-63-ca-9a-20, then the IPv6 Interface ID (EUI-64) would be:

::0040:63FF:FECA:9A20

In EUI-64 format, the value of the 7th bit is reversed to give us zero (0) for Local and one (1) for Global. So, if the 7th bit is set to 1, it is Globally Unique, otherwise it is a link-local.

2.6.4 IPv6

IPv6 has many address formats that are designated by their IP prefix (leading bits):

- ::/128 – Unspecified
This address may only be used as a source address by an initializing host before it has learned its own address

- ::1/128 – Loopback
This address is used when a host talks to itself over IPv6. This often happens when one program sends data to another. 127.0.0.1 is the IPv4 equivalent.

- ::ffff/96 – IPv4-Mapped
These addresses are used to embed IPv4 addresses in an IPv6 address. One use for this is in a dual stack transition scenario where IPv4 addresses can be mapped into an IPv6 address. (Similar to private addresses)

- fc00::/7 – Unique Local Addresses (ULAs)
These addresses are reserved for local use in home and enterprise environments. These addresses may not be unique, and there is no formal address registration.

- fe80::/10 – Link-Local Addresses
These addresses are used on an individual device or a non-routed local area network (LAN). They may appear as the source or destination of an IPv6 packet. Routers must not forward IPv6 packets if the source or destination contains a link-local address.

- 2000::/3-3FFF::/3 – Global Unicast
Other than the exceptions listed here, network operators using these addresses can be found using the Who is servers of the RIRs listed in the IANA registry.

- ff00::/8-ff01::/8 – Multicast
These addresses are used to identify multicast groups. They should only be used as destination addresses, never as source addresses.

2.6.5 IPv6

IPv6 address types are different than their IPv4 counterparts. IPv6 addresses can be:

- Unicast—This is a One-to-One address. A unicast address identifies a single interface. Packets addressed to a unicast address are delivered to a single interface. They include the Link-Local and global unicast addresses.

- Multicast—This is a One-to-Many address. A multicast address identifies multiple interfaces. Packets addressed to a multicast addresses are delivered to all interfaces that are identified by the address. An IPv6 address is simple to classify as multicast because it always begins with FF (1111 1111). Multicast addresses cannot be used as source addresses. Multicast addresses include additional structure to identify their flags, scope, and multicast group.

- Anycast—This is a One-to-Nearest address. An anycast address identifies multiple interfaces. With the appropriate routing topology, packets addressed to an anycast address are delivered to a single interface that is nearest in terms of routing distance. Assigning a unicast address to more than one interface makes a unicast address an anycast address.

Please complete assignment 2.6.1 in the lab manual.