Internet Protocol Version 6 (IPv6)

Internet protocol version 6

Internet Protocol Version 6: Introduction and a brief history

Internet Protocol Version 6 (IPv6 or IPng), is the next-generation Internet Protocol, designed to be a new evolution to IPv4. It is the successor of IPv4, which consists of a 128-bit address in contrast to the 32 bits of IPv4.

The IETF was interested in finding a replacement IPv4 since the 1990s. IPng (IP Next Generation), a working group, was found in 1993. In 1994, the group proposed a new version as Simple Internet Protocol Plus (SIPP), as a basis of IPv6. The first IPv6 specification released in 1995, with a 128-bit address, in contrast to the original SIPP of a 64 bit.

IPv6 somehow believes in the idea of a fixed routing prefix and a host identifier. But in 1998, that rule went under a slight modification. The split of 64-64 would not be applicable for the addresses starting with 000. Preferably, it will constitute an 80-48 bit division as the network and the host portion. For all unicast addresses, other than one starting with a binary value 000, the address format is 64-64. We will discuss this in detail in the upcoming section.

There is no fixed prefix length as in Classful IPv4 classes A/B/C. The prefix length should be specified by the router while advertising the link. Also, in manual configuration, the prefix /64 should be explicitly mentioned.

Need of Internet Address version 6(IPv6)

The traditional IPv4 has helped the Internet grow. With the inclusion of the hand-held devices, PoS equipment, IP cameras, etc. the Internet users around the globe are rising day by day. The current statistic shows that there are about 4.8 billion Internet users by now, which is 62% of the world population. The growth rate of Internet users in 2000-2020 is 1239%. With the “Internet for all” motto of the organizations like ISOC, W3F, etc., the growth is supposed to increase more. The IPv4 free pool held by IANA already has run out in 2011. 

The main reason for IPv6 implementation is the problem of IPv4 called IP address exhaustion. The IPv4 is not able to handle the exponential growth of the Internet due to the limited address space, despite all the measures like Private IP, CIDR, VLSM techniques.

Apart from the IP address exhaustion, other limitations in IPv4 also led to the development of a new protocol like IPv6.

  • Routing tables are growing too large to be manageable with IPv6.
  • Traffic priority and Class of service are not clearly defined or enforced to be used in IPv4. These features are highly desirable in the current model of the Internet.
  • With the exponential growth of mobile data applications, it is difficult for IPv4 to manage forwarding addresses and to realize visitor location network authentication. 
  • There is no integrated security protocol in IPv4, which is highly needed for the current Internet. 

Internet Protocol Version 6 Address representation

IPv6 addresses are written in 8 groups of 4 hex digits, preferably in lowercase letters ‘a-f’. The groups are separated by a colon sign.
fede:0023:1655:0610:aebc:bc37:0061:3210

You can omit the leading zeroes; hence, we can write it as the following:
fede:23:1655:610:aebc:bc37:61:3210
Also, you can omit the group of all zeros with a double semicolon sign replacing the colon sign. This replacement is allowed only once in an IPv6 address, to remove the doubtfulness. For example, the following address can be written as :
fede:0000:0000:0610:aebc:0000:0061:3210
fede::610:aebc:0:61:3210

In case of embedded IPv4 address, IPv4 continues to use the dot (.) as a separator:
ffff::125.4.5.6

Above is the example of the IPv6 standard format for representing IPv4. Note that the expression displays only 48 bits, leaving 80 zeros as the prefix. The details of the embedded address are in the following table.

The loopback address in IPv6 is:
::1
It means 127 zeros followed by a one.
Network prefixes may be written as a slash “/” notation. For example:
11cd:0:0:ab30::/60

Features of IPv6

  • Large address space.
  • Globally unique addressing, based on the prefixes rather than the Classes
  • Auto-configuration of the network interfaces.
  • Support for encapsulation of other protocols.
  • Class of service to distinguish between data.
  • Encryption and authentication.
  • Improved multicast.
  • Migration method from IPv4.
  • Compatibility with IPv4.
  • Mobility
  • Extension Headers
  • Jumbograms

Internet Protocol Version 6 (IPv6) Address space

The address space in IPv6 is 2128, which is equal to 3.4 x 10 38, the exact figure is :
340,282,366,920,938,463,463,374,607,431,768,211,456 

The actual available number is slightly less than it, as there are some reserved addresses for specific purposes. As per the Google statistics, the availability of Google users on IPv6 is 30-33% out of the total Internet users at present.

The address space is that huge in IPv6, if we manage to adjust 268 computers in each square meter of the planet earth, the address will still be enough to connect them all. However, all the addresses of IPv6 are not yet allocated. Only three out of eight parts of IP addresses are assigned to specific purposes.

IPv6 address space Allocation

Out of the 2128 addresses, 1/8th part allocated to the Global Unicast, 1/128th part to the unique local unicast, 1/256th part each for Multicast and IPv4 compatible address, and 1/1024th part for link-local address.

It is worthwhile to mention that even the eighth part of the address is 2125, which is a pretty large number for the Global unicast address.

To find the 1024th part of it, divide 2128 by 1024 or 210, which results in 2118.

Important IPv6 prefixs

PrefixDesignationDescriptionEquivalent IPv4 Address
::/128UnspecifiedAll zeros, this address can only be used by a host as a source address unless it learns its self-address. 0.0.0.0
::1/128LoopbackThis address is used by a host to talk to itself in IPv6 format.127.0.0.1
Embedded IPv4 addresses
::/96
Example
::129.122.123.22
IPv4-compatible IPv6 addressIt consists of 96 bits of zero followed by an IPv4 address. This address is useful when an IPv6 host sends a message to another IPv6 host through an intermediate IPv4 network.No Equivalent in IPv4
Embedded IPv4 addresses
::ffff/96
Example
::ffff:168.128.2.5
IPv4-mapped IPv6 addressThis address consists of 80 bits of zero, 16 bits of one, followed by IPv4 address. It is used when an IPv6 host wants to communicate with an IPv4 host. The packet travels through an IPv6 network to an Ipv4 destination host.No Equivalent in IPv4
fe80::/10
Example:
fe80::200:5aee:feaa:20a2
First 10 bits- (1111111010)
Link-Local AddressesThe first 10 bits are reserved as shown, 54 bits subnet ID is all zeros, 64 bits interface identifier. Link-local is the unicast address used for the single link for the purpose like automatic address configuration and network discovery protocol, etc. These addresses do not need to be globally unique datagram using link-local addresses are not forwarded by the router. But all IPv6 nodes must have this address even if there is a routable address assigned to it. The IPv6 node may have more than one address.169.254.0.0/16
fc00::/7
Example:
fdf8:f53b:82e4::53
First 7 bits-1111-110
8th bit- 0 or 1
Unique Local Addresses (ULAs)Equivalent to the IPv4 private addresses, these addresses are reserved to be used by home or enterprises within itself, and not in the public domain. Packets with Unique local addresses as the source or destination are routed by the routers within the private organization but not in Internet routers.10.0.0.0/8
172.16.0.0/12
198.168.0.0/16
2000::/3
First 3 bits – 001
Global unicast addressGlobal Unicast Addresses are similar to public addresses in IPv4. They are routable globally by Internet routers. The details of Global unicast Address is discussed in the next section.There is no single block equivalent address in IPv4.
ff00::/8
Example:
ff01:0:0:0:0:0:0:2
First 8 bits-11111111
MulticastThe multicast addresses are only used as the destination address, never as a source address. The use of a multicast address is to define a group rather than a single host.
The first 8 bits are 11111111; next 8 bits consists of 4 bits of flags and 4 bits of scope. The flag field defines whether the group is permanent or transient. The third field is the scope field, which specifies the scope parameters of the group address. The various scopes are as shown in the following figure.
224.0.0.0/4
Types of Internet Protocol Version 6 (IPv6) Address, Link-local, Unique Local, Global unicast

The address format for Global Unicast Address is Global Routing Prefix (48 bits) + Subnet Identifier (16 bits) + Interface Identifier (64 bits).

Global routing prefix is the group of first 48 bits, which is used to route the packets to the organization (like ISP), that owns the block. Out of 48 bits, the first 3 bits are reserved, as shown in the figure. Hence, the rest 45 bits can define up to 245 unique organizations, sites, ISPs, etc.

The next group of 16 bits is the Subnet identifier that defines the subnet within the organization. Each of them may have 216= 65536 subnets, which is sufficient enough.

The Interface Identifier is the group of last 64 bits. The interface identifier is somewhat similar to the host ID in IPv4. In IPv6, the interface ID has a fixed size of 64 bits, for the unicast addresses, except those starting with a binary 000. 

Interface ID is derived from the MAC address of the interface in IPv6. The MAC address is a 48-bit physical address of the interface. To convert the MAC address to the interface ID, first, a group of 16 bits (FFFE)16 is inserted in the middle of the MAC address. Then the 7th bit from MSB is changed to 1 if it is 0. 

Let the MAC address be: E4-02-9B-75-92-A7

Binary: 1110 0100-0000 0010- 1001 1011-0111 0101-1001 0010-1010 0111

Now Insert (FFFE)16 i.e, Binary 1111 1111 1111 1110 after 24 bits.

1110 0100-0000 0010- 1001 1011-1111 1111-1111 1110-0111 0101-1001 0010-1010 0111

Change the 7th bit from 0 to 1 (Local to Global)

1110 0110-0000 0010- 1001 1011-1111 1111-1111 1110-0111 0101-1001 0010-1010 0111

Now converting to Hex value, the Interface ID is

e502:9bff:fe75:92a7

Auto-configuration

IPv6 can autoconfigure the IP of the host. The Autoconfiguration of the IP will be like :

10 bit prefix of link-local + 54 zeros + 64 bits Interface identifier
fe80::e502:9bff:fe75:92a7
The host after configuring auto IP verifies it’s uniqueness by sending a neighbor solicitation message and waits for the neighbor advertisement message. However, there is a rare chance of another host using the same IP. Still, if any other host is using the same interface ID, then the host cannot configure its IP by itself. It should now be configured by other means like DHCP.

If the link-local address passes the test, then the host will require a Global unicast address. The host will send the router solicitation message and waits for the router advertisement message. If a router is running in the network, the host will get the global unicast prefix and the subnet prefix. The host will now add the interface identifier to complete the global unicast address.

IPv6 three address types

The destination address in IPv6 must belong to one of these three types:

Unicast Address: A unicast address intends to deliver the packet to a single node (Computer or router). The data packet gets delivered to a specific independent host described in the unicast address. IPv6 has allocated a block of 2125 for global unicast address, as already explained in the above table.

Anycast Address: The anycast address defines a group of computers or routers, all of them sharing a single IP address. However, the data packet gets delivered to only one of them, which is the most reachable. For example, multiple DNS servers can reply to the same DNS query are placed in aa anycast group. The user will get the response from the nearest one in terms of the routing distance.

Multicast address: Like the anycast address, the multicast address also defines a group of nodes. However, it differs from the Anycast addressing in terms of delivery. The multicast address delivers the data to each member of the multicast group. In IPv6, an allocation of separate IP pools is done for the multicast address. See the above diagram of IPv6 address space allocation. The routers send the link advertisement packets in the multicast address.

IPv6 does not define or use the broadcast address, as it is present in IPv4.

Multicast in Internet Protocol Version 6 (IPv6)

IP Security (IPSec)

IPSec, designed as a mandatory protocol for IPv6 earlier, now is being used for IPv4 as well. As of now, the inclusion of IPSec is only recommended rather than being a mandatory protocol for IPv6.

IPSec is an open standard designed by IETF that adds security features to a network. It provides the security of sensitive data being sent on unprotected networks. A detailed description of IPSec will be given in the upcoming chapter.

IPv6 header

IPv6 header is simple with minimum mandatory fields. In comparison to the IPv4 header of 20 bytes, the IPv6 header size of 40 bytes is a smaller one, considering the address size. The source and destination address in IPv4 is 8 bytes, whereas that in IPv6 is 32 bytes.

With the small header size and minimum field information, the processing of IPv6 packets is more efficient. Moreover, the inclusion of fields like traffic class and flow label, it is capable of classifying packets, congestion control, and detect spoofed packets.

The option of the extension header makes it transparent to the other protocols and future modifications. We will explain further about the IPv6 Packets in the upcoming chapter.

Mobility

IPv6 mobility enables mobile devices to move from one link to another without requiring the change in IP address. Without mobility support, the packet can not reach a mobile device when it is away from its home link. The mobile should change its IP address to do so every time it moves to the new link. But the mobile device would not be able to maintain the transport and higher-layer connections when it changes the link. With the tremendous growth of mobile internet users, the mobility of IPv6 is extremely important.

Jumbograms

In contrast to IPv4’s packet size limit of 65535 (216-1)bytes, IPv6 can have a packet size up to 4,294,967,295 (232-1) bytes. The use of jumbograms is indicated in the extension header.

Take a Quiz on this topic :




Share this article.


5 Comments

Leave a Reply

Your email address will not be published. Required fields are marked *