Home > IPv6 Tutorial

IPv6 Tutorial

Internet has been growing extremely fast so the IPv4 addresses are quickly approaching complete depletion. Although many organizations already use Network Address Translators (NATs) to map multiple private address spaces to a single public IP address but they have to face with other problems from NAT (the use of the same private address, security…). Moreover, many other devices than PC & laptop are requiring an IP address to go to the Internet. To solve these problems in long-term, a new version of the IP protocol – version 6 (IPv6) was created and developed.

IPv6 was created by the Internet Engineering Task Force (IETF), a standards body, as a replacement to IPv4 in 1998. So what happened with IPv5? IP Version 5 was defined for experimental reasons and never was deployed.

While IPv4 uses 32 bits to address the IP (provides approximately 232 = 4,294,967,296 unique addresses – but in fact about 3.7 billion addresses are assignable because the IPv4 addressing system separates the addresses into classes and reserves addresses for multicasting, testing, and other specific uses), IPv6 uses up to 128 bits which provides 2128 addresses or approximately 3.4 * 1038 addresses. Well, maybe we should say it is extremely extremely extremely huge :)

IPv6 Address Types

Address Type Description
Unicast One to One (Global, Link local, Site local)
+ An address destined for a single interface.
Multicast One to Many
+ An address for a set of interfaces
+ Delivered to a group of interfaces identified by that address.
+ Replaces IPv4 “broadcast”
Anycast One to Nearest (Allocated from Unicast)
+ Delivered to the closest interface as determined by the IGP

A single interface may be assigned multiple IPv6 addresses of any type (unicast, anycast, multicast)

Note: There is no broadcast address in IPv6

IPv6 address format

Format:

x:x:x:x:x:x:x:x – where x is a 16 bits hexadecimal field and x represents four hexadecimal digits.
An example of IPv6:
2001:0000:5723:0000:0000:D14E:DBCA:0764

There are:
+ 8 groups of 4 hexadecimal digits.
+ Each group represents 16 bits (4 hexa digits * 4 bit)
+ Separator is “:”
+ Hex digits are not case sensitive, so “DBCA” is same as “dbca” or “DBca”…

IPv6 (128-bit) address contains two parts:
+ The first 64-bits is known as the prefix. The prefix includes the network and subnet address. Because addresses are allocated based on physical location, the prefix also includes global routing information. The 64-bit prefix is often referred to as the global routing prefix.
+ The last 64-bits is the interface ID. This is the unique address assigned to an interface.

Note: Addresses are assigned to interfaces (network connections), not to the host. Each interface can have more than one IPv6 address.

Rules for abbreviating IPv6 Addresses:

+ Leading zeros in a field are optional

2001:0DA8:E800:0000:0260:3EFF:FE47:0001 can be written as

2001:DA8:E800:0:260:3EFF:FE47:1

+ Successive fields of 0 are represented as ::, but only once in an address:

2001:0DA8:E800:0000:0000:0000:0000:0001 -> 2001:DA8:E800::1

Other examples:
– FF02:0:0:0:0:0:0:1 => FF02::1
– 3FFE:0501:0008:0000:0260:97FF:FE40:EFAB = 3FFE:501:8:0:260:97FF:FE40:EFAB = 3FFE:501:8::260:97FF:FE40:EFAB
– 0:0:0:0:0:0:0:1 => ::1
– 0:0:0:0:0:0:0:0 => ::

IPv6 Addressing In Use

IPv6 uses the “/” notation to denote how many bits in the IPv6 address represent the subnet.

The full syntax of IPv6 is

ipv6-address/prefix-length

where
+ ipv6-address is the 128-bit IPv6 address
+ /prefix-length is a decimal value representing how many of the left most contiguous bits of the address comprise the prefix.

Let’s analyze an example:
2001:C:7:ABCD::1/64 is really
2001:000C:0007:ABCD:0000:0000:0000:0001/64
+ The first 64-bits 2001:000C:0007:ABCD is the address prefix
+ The last 64-bits 0000:0000:0000:0001 is the interface ID
+ /64 is the prefix length (/64 is well-known and also the prefix length in most cases)

In the next part, we will understand more about each prefix of an IPv6 address.

Comments (4) Comments
  1. Johnny
    May 24th, 2020

    Given a network of 2001:a:b:c::/64
    Is the last usable host address 2001:a:b:c:FFFF:FFFF:FFFF:FFFF /64

    OR

    2001:a:b:c:FFFF:FFFF:FFFF:FFFE /64

  2. Inferno
    November 18th, 2020

    @Johnny I have known that there is no Broadcast adress or Network adress in Ipv6, so it will be the first one.

  3. Tom
    April 26th, 2021

    @Johnny –

    Given: 2001:a:b:c::/64

    2001:a:b:c::1/64 through 2001:a:b:c:FFFF:FFFF:FFFF:FFFF/64 is usable as there are no broadcasts in IPV6.

  4. Anonymous
    January 29th, 2024

    excellent

Add a Comment