IPv6

IPv6 is the most current version of the Internet Protocol. Originally made official on June 6, 2012, it is the result of the IETF’s effort to create the “new generation of IP” (IPng: Internet Protocol next generation), whose guidelines were described by Scott Bradner and Allison Marken, in 1994, in the RFC 1752. Its main specification is found in RFC 2460.

The protocol is being gradually deployed on the Internet and should work side by side with IPv4, in a situation technically called “dual stack” or “dual stack”, for some time. In the long term, IPv6 is intended to replace IPv4, which only supports around 4 billion(short scale)/billion(long scale) (4×109) IP addresses, versus around 340 undecillion(short scale)/sextillion( long scale) (3.4×1038) of addresses of the new protocol.

The subject is so relevant that some governments have supported this implementation. The United States government, for example, in 2005, determined that all its federal agencies must prove to be capable of operating with the IPv6 protocol by June 2008. In July 2008, a new revision of the recommendations for the adoption of IPv6 was released. at federal agencies, setting a July 2010 date for ensuring IPv6 support.

Motivations for deploying IPv6

IPv4 exhaustion and the need for more Internet addresses

The main reason for deploying IPv6 on the Internet is the need for more addresses, because the availability of free IPv4 addresses has ended.

To understand the reasons for this exhaustion, it is important to consider that the Internet was not designed for commercial use. In the early 1980s, it was considered a predominantly academic network, with a few hundred computers interconnected. Despite this, it can be said that the IP version 4, 32-bit address space is not small: 4,294,967,296 addresses.

Even so, already in the beginning of its commercial use, in 1993, it was believed that the Internet’s address space could be exhausted in a period of 2 or 3 years. But, not because of the limited amount of addresses, but because of the initial allocation policy, which was not favorable to a rational use of these resources. This space was divided into three main classes (although there are currently, strictly speaking, five classes), namely:

  • Class A: with 128 segments/networks, which could be individually assigned to entities that needed them, with approximately 16 million addresses each. This class was classified as /8, as the first 8 bits represented the network, or segment, while the rest could be used freely. It used the space between the addresses 00000000.*.*.* (0.*.*.*) and 01111111.*.*.* (127.*.*.*).
  • Class B: with approximately 16 thousand segments of 64 thousand addresses each. This class was rated /16. It used the space between the addresses 10000000.0000000.*.* (128.0.*.*) and 10111111.11111111.*.* (191.255.*.*).
  • Class C: with approximately 2 million segments of 256 addresses each. This class was classified as /24. It used the space between the addresses 11000000.0000000.00000000.* (192.0.0.*) and 110111111.11111111.11111111.* (213.255.255.*).

The remaining 32 /8 blocks were reserved for Multicast and for the Internet Assigned Numbers Authority ( IANA ), the entity that controls the global allocation of numbers on the Internet .

The space reserved for class A would serve only 128 entities, however, it occupied half of the available addresses. However, companies and entities such as HP, GE, DEC, MIT, DISA, Apple, AT&T, IBM, USPS, among others, received allocations of this type.

The initial predictions, however, of an almost immediate depletion of resources, did not materialize due to the development of a series of technologies, which worked as a palliative solution to the problem brought about by the accelerated growth:

  • CIDR ( Classless Inter Domain Routing ) , or classless routing, which is described by RFC 1519 . With CIDR, the class scheme was abolished, allowing to assign blocks of addresses with arbitrary size, as needed, bringing a more rational use of space.
  • The use of NAT ( Network Address Translation ) and RFC 1918 , which specifies private addresses, not valid on the Internet, in corporate networks. NAT allows, with only one valid address, an entire network based on private addresses, to have a connection, albeit limited, to the Internet.
  • The Dynamic Host Configuration Protocol ( DHCP ), described by RFC 2131 . This protocol made it possible for providers to reuse Internet addresses provided to their customers for non-permanent connections.

The combination of these technologies reduced the demand for new IP numbers, so that the expected exhaustion for the 1990s was postponed to the 2010s. However, the worldwide adoption of IPv6 is slow: according to Google, the adoption IPv6 worldwide was 2% in 2014, 5% in 2015, 8% in 2016, 14% in 2017, 20% in 2018, 25% in 2019, 30% in 2020, 33% in 2021 and 35% in 2022; according to APNIC, worldwide IPv6 adoption was 2% in 2014, 3% in 2015, 5% in 2016, 9% in 2017, 16% in 2018, 19% in 2019 , 24% in 2020, 27% in 2021 and 29% in 2022.

Other motivating factors

The main factor driving the deployment of IPv6 is its need in the Internet infrastructure. It’s a business continuity issue, for providers and a host of other companies and institutions.

However, there are other factors that motivate its implementation:

  • Internet of Things : It is imagined that, in a future where computing is ubiquitous , the technology will be present in several devices currently not yet intelligent, which will be able to autonomously interact with each other – invisible computers linked to the Internet, embedded in the objects used in the day by day – making life even more liquid. One can imagine connected home appliances, automobiles, smart buildings, medical monitoring equipment, etc. Tens, perhaps even hundreds or thousands of devices will be connected in every home and office. IPv6, with abundant, fixed, valid addresses, is necessary to make this future a reality.
  • Expansion of networks: Several factors motivate an increasingly accelerated expansion of the Internet: digital inclusion, mobile networks (3G, 4G, 5G), etc. More IPs are needed.
  • Quality of service: The convergence of future telecommunications networks to the common network layer, IPv6, will favor the maturing of services that are incipient today, such as VoIP , real-time video streaming , etc., and will make new ones appear. IPv6 has improved support for different classes of service, depending on the requirements and priorities of the service in question.
  • Mobility: Mobility is a very important factor in today’s society. IPv6 supports the mobility of users, they can be contacted on any network through their source IPv6 address.

What’s New in IPv6 Specifications

  • Address Space . IPv6 addresses are 128 bits long.
  • Address autoconfiguration . Support for automatic allocation of addresses in an IPv6 network, the DHCP server we are used to in IPv4 can be omitted .
  • Hierarchical addressing . It simplifies the routing tables of network routers , thus reducing their processing load.
  • Header format . Totally remodeled in relation to IPv4: more simplified and efficient.
  • Extension headers . Option to save additional information.
  • Differentiated quality support . Audio and video applications start to establish appropriate connections taking into account their requirements in terms of quality of service (QoS).
  • Extension capability . Allows you to add new specifications in a simple way.
  • encryption. Several extensions in IPv6 allow, from the outset, support for security options such as authentication, data integrity and confidentiality.

IPv6 Datagram Format

An IPv6 datagram consists of a base header, illustrated in the figure below, followed by zero or more extension headers, followed by the data block.

IPv6 datagram base header format:

  • It has less information than the IPv4 header. For example, the checksum has been removed from the header, as this version considers lower layer error handling to be reliable.
  • The Traffic Class field (8 bits) is used to indicate the class of service to which the package belongs, thus allowing different treatments to packages coming from applications with different requirements. This field serves as the basis for the functioning of the quality of service (QoS) mechanism in the network.
  • The Flow Label field (20 bits) is used with new applications that require good performance. It allows associating datagrams that are part of the communication between two applications. Used to send datagrams along a predefined path.
  • The Payload Length field (16 bits) represents, as the name implies, the volume of data in bytes that the packet carries.
  • The Next Header field (8 bits) points to the first extension header . Used to specify the type of information that follows the current header.
  • The Hop Limit field (8 bits) has the number of hops transmitted before discarding the datagram, that is, this field indicates the maximum number of hops (passing through routers) of the datagram before being discarded. This field overrides the IPv4 TTL.
  • The Source Address field (128 bits) indicates the packet’s source address.
  • The Destination Address field (128 bits) indicates the destination address of the packet.

Fragmentation and course determination

In IPv6, the host that sends the datagram is responsible for fragmentation , not the intermediate routers as in the case of IPv4. In IPv6, intermediate routers discard datagrams larger than the network MTU . The MTU will be the maximum MTU supported by the different networks between the source and the destination. For this the host sends ICMP packets of various sizes; when a packet arrives at the destination host , all the data to be transmitted is fragmented in the size of this packet that reached the destination.

The MTU discovery process has to be dynamic, because the path can change during the transmission of datagrams.

In IPv6, a non-fragmented prefix of the original datagram is copied to each fragment. Fragmentation information is stored in a separate extension header. Each fragment starts with a non-fragmentable component followed by a fragment header.

Multiple headers

One of the novelties of IPv6 is the possibility of using multiple chained headers. These extra headers allow for greater efficiency, as the header size can be adjusted as needed, and greater flexibility, as new headers can always be added to satisfy new specifications.

Current specifications recommend the following order:

  1. IPv6
  2. Hop-By-Hop Options Header
  3. Destination Option Header
  4. Routing Header
  5. Fragment Header
  6. Authentication Security Payload Header
  7. Destination Options Header
  8. Upper-Layer Header

Blocks and Allocations

The responsibility for allocating and managing the pool of IPv6 addresses was delegated to the IANA in December 1995. Since then, the IANA has distributed the blocks as needed to the RIRs for subsequent delegation to other entities.

PrefixAllocationDataObservation
0000::/8Reserved by the IETF
0100::/8Reserved by the IETF
0200::/7Reserved by the IETFDepreciated in December 2004
0400::/6Reserved by the IETF
0800::/5Reserved by the IETF
1000::/4Reserved by the IETF
2000::/3Global Unicast
2001:0000::/23IANA01/07/1999
2001:0200::/23APNIC01/07/1999
2001:0400::/23ARIN01/07/1999
2001:0600::/23RIPE NCC01/07/1999
2001:0800::/22RIPE NCC11/02/2002
2001:0c00::/23APNIC05/02/2002
2001:0e00::/23APNIC01/01/2003
2001:1200::/23LACNIC11/01/2002
2001:1400::/22RIPE NCC01/07/2003
2001:1800::/23ARIN01/04/2003
2001:1a00::/23RIPE NCC01/01/2004
2001:1c00::/22RIPE NCC05/04/2004
2001:2000::/19RIPE NCC03/12/2013
2001:4000::/23RIPE NCC06/11/2004
2001:4200::/23AFRINIC01/06/2004
2001:4400::/23APNIC06/11/2004
2001:4600::/23RIPE NCC08/17/2004
2001:4800::/23ARIN08/24/2004
2001:4a00::/23RIPE NCC10/15/2004
2001:4c00::/23RIPE NCC12/17/2004
2001:5000::/20RIPE NCC09/10/2004
2001:8000::/19APNIC01/30/2004
2001: a000 :: / 20APNIC11/30/2004
2001:b000::/20APNIC03/08/2006
2002:0000::/166to401/02/2001
2003:0000::/18RIPE NCC01/12/2005
2400:0000::/12APNIC10/03/2006
2600:0000::/12ARIN10/03/2006
2610:0000::/23ARIN11/17/2005
2620:0000::/23ARIN09/12/2006
2630:0000::/12ARIN11/06/2019
2800:0000::/12LACNIC10/03/2006
2a00: 0000 :: / 12RIPE NCC10/03/2006
2a10:0000::/12RIPE NCC05/09/2019
2c00:0000::/12AFRINIC10/03/2006
2d00:0000::/8IANA01/07/1999
2e00:0000::/7IANA01/07/1999
3000:0000::/4IANA01/07/1999
3ffe::/16IANA01/04/2008
4000::/3Reserved by the IETF
5f00::/8IANA01/04/2008
6000::/3Reserved by the IETF
8000::/3Reserved by the IETF
a000 :: / 3Reserved by the IETF
c000::/3Reserved by the IETF
e000::/4Reserved by the IETF
f000 :: / 5Reserved by the IETF
f800 :: / 6Reserved by the IETF
fc00::/7Unique Local Unicast
fe00::/9Reserved by the IETF
fe80::/10Link-Scoped Unicastreserved for protocol
fec0::/10Reserved by the IETFDeprecated by RFC3879
ff00 :: / 8MulticastAssignments for this block registered by the IANA

Addressing

Addressing in IPv6 is 128 bits (four times that of IPv4), and includes network prefix and host suffix . However, there are no address classes, as in IPv4. Thus, the prefix and suffix boundary can be anywhere in the address.

A standard IPv6 address must consist of a provider ID , subscribe ID , subnet ID , and node ID field . The node ID (or interface identifier) ​​must be 64 bits long, and can be formed from the physical address (MAC) in EUI 64 format.

To obtain the node ID through the physical address in EUI 64 format, follow these steps:

  • Split the physical (MAC) address in half into two groups of 24 bits.
  • Add the FFFE (16-bit) hexadecimal number between these two groups of bits.
  • Invert the value of the seventh bit from left to right of the number formed by the second step.

IPv6 addresses are usually written as eight groups of 4 hexadecimal digits. For example,2001:0db8:85a3:08d3:1319:8a2e:0370:7344

For ease of writing, leading zeros and sequences of zeros can be abbreviated. For example,2001:0db8:85a3:03fa:0000:0000:0000:7344

is the same IPv6 address as the previous example:2001:db8:85a3:3fa::7344

There are special types of addresses in IPv6:

  • unicast – each address corresponds to an interface (device).
  • multicast – each address corresponds to multiple interfaces. A copy is sent to each interface.
  • anycast – matches multiple interfaces that share a common prefix. A datagram is sent to one of the devices, for example, the closest one.

Unlike IPv4, IPv6 does not have a broadcast address, which is responsible for directing a packet to all nodes in the same domain.

With IPv6 all LANs must have /64 prefixes. This is required for autoconfiguration and other functionality to work.

Users of any type will receive /48 networks from their providers, that is, they will have at their disposal a sufficient number of IPs to configure approximately 65 thousand networks, each with{\displaystyle 2^{64}}2^{{64}}addresses (18 quintillion). It should be noted, however, that some providers are considering giving home users networks with a /56 size, allowing them to be divided into only 256 /64 networks.

Interface Identifiers (IID)

IPv6 addresses are split between network and machine identification. According to the CIDR standard, the first 64 bits are for the network and the last 64 bits for the machine. The latter are the interface identifiers (IID). In this way, they are reserved{\displaystyle 2^{64}}2^{{64}}(18,445,744,073,709,551,616) machines per network, which is more than enough for current and future demand.

Interface identifiers (IID), used to distinguish interfaces within a link, must be unique within the same subnet prefix. The same IID can be used on multiple interfaces on a single node, however, they must be associated with different subnets.

The IID is normally formed from the physical address of the machine ( MAC ), so it is not necessary to use DHCPv6, which becomes optional if the administrator wants to have more control over the network.

The IID based on a 48-bit MAC address is created as follows:

  • First add the FF-FE hexadecimal digits between the third and fourth bytes of the MAC address (turning it into a 64-bit address).
  • Then, you must complement the seventh bit, from left to right, of the MAC address (called the U/L – Universal/Local bit), that is, if it is 1, it will be toggled to 0, and if it is 0, will be switched to 1.
  • If the interface is based on a 64-bit MAC address, the first step is unnecessary.

Transition address structures

IPv6 addresses can be mapped to IPv4 and are designed for routers that support both protocols, allowing IPv4 to “tunnel” through an IPv6 backbone. These addresses are automatically constructed by routers that support both protocols. Coexistence is possible through tunneling in both segments – IPv6 encapsulated in IPv4 and IPv4 encapsulated in IPv6, although the former is much more common and depends on free services from “Brokers”. The role of the “Broker” is exactly to be the gateway to the IPv6 world through the IPv4 connection. There are some common types of tunneling like TunTap and 6to4.:

For this, the 128 bits of IPv6 are divided as follows:

  • 80-bit field set to ‘0’ (zero), 0000:0000:0000:0000:0000 …
  • 16-bit field set to ‘1’ (one), … FFFF …
  • 32 bit IPv4 address

IPv6 addresses mapped to IPv4:::FFFF:<endereço IPv4>

Other IPv6 Address Structures

There are other IPv6 address structures:

  • ISP addresses – format designed to allow individual users of an ISP to connect to the Internet .
  • Site Addresses – for use on a Local Area Network.

IPv6 adoption worldwide

Even with the forecast and full exhaustion of IPv4 addresses in different parts of the world, the adoption of IPv6 occurs in a discrepant way in the countries of the world. Google is just one of the companies that continuously collects statistics on the adoption of IPv6 on the Internet, providing a graph of the percentage of users who access Google through IPv6 and a map of the adoption of the protocol by parents.

The country with the largest number of Google users who have adopted IPv6 is Belgium, with 52% of them having access to the protocol. Akamai, another company that provides statistics related to IPv6 adoption, points to India as the country with the highest deployment, with 62.4% of adoption. On both sites, the lowest percentages of adoption are in several countries in the Middle East, North and West Africa regions, many counting at 0%.

Although the deployment of IPv6 is a trend due to the exhaustion of IPv4, it is not the obligation of ISPs in most countries to support this internet protocol. Belarus was the first country to take a legislative stance, determining that as of January 1, 2020 all providers would be required to support the IPv6 protocol and provide IPv6 addresses to all their customers. By Google analysis, the percentage of Belarusian users who rely on IPv6 to access the site is only 4.67%.

Currently, most web servers and data centers rely on IPv4 alongside IPv6. However, the trend is that, with the continuous increase in the adoption of the most recent protocol, the use of only this one is chosen, allowing a reduction in operating costs, reduction of complexity and elimination of threat vectors related to working with two protocols. The United States Office of Budget Management (OMB) plans an IPv6 implementation plan for the year 2021, aiming that, by the end of 2025, 80% of federal IP-enabled networks will only use the IPv6 protocol.

Leave a Reply