You know by now that today’s communications rely on the Internet Protocol. The IP address is a unique identifier for each machine connected to the Internet. With the ever growing size of the Internet, the demand for IP addresses increased drastically. Today’s IPv4 supports 2 to the power of 32 addresses. This number may make it sound like there’s plenty of space to accommodate all devices in the world, but the truth is that there are not many free IP classes left. This means that in the following years or even earlier, the whole IPv4 block will be exhausted.
This raises a huge problem with the Internet’s expansion, meaning that new technologies must be adopted to overcome this situation. This is why the new IPv6 technology was developed and implemented in some parts of the world. An IPv6 address is a 128-bit binary value that is represented by 32 hexadecimal digits. The IPv6 block would be sufficient to assign trillions of addresses to everyone from the whole world.
Plug and Play
There are some real advantages of using IPv6. This article will cover the most important aspects of this protocol. The IPv6 protocol supports autoconfiguration technology, meaning that no human interaction is needed for its configuration. This feature provides a good plug-and-play mechanism for all network devices and it can provide global coverage and flexibility. By having enough IP addresses, services like NAT (network address translation) are not required anymore.
This means that the transition from private networks to public ones and vice versa is done instantly without address translation. IPv6 uses multi-homing technology in which a physical device can support multiple IP addresses. IPv6 has a simpler header than IPv4 which has some real advantages, like increased routing performance and no broadcasts or checksums. All communications are done using IPsec technology which is why IPv6 provides increased security and easier portability for mobile users (mobile users can change networks without decreasing security).
Converting to IPv6 Will Take Some Time
Internet’s core communications will change to support the IPv6 protocol. To carry out this transition successfully, the whole operation must be done transparent to end users without any downtime. This process will take time and will not be done overnight. This means that both IPv4 and IPv6 will function in the same time. The migration between these two technologies will be done using some transition mechanisms like 6 to 4 tunneling, dual stacking routing and others.
I’ve written earlier that IPv6 addresses are composed of 128 bits represented as 32 hexadecimal digits. Each hexadecimal digit can be converted as a binary string. Let’s take the following example 2a80::9c62:ef40:769a:464b. This address contains a combination of numbers and digits. You must know that in hexadecimal numbering 10 is represented by the letter A, 11 by B and so on. By converting each group of 4 hexadecimal values, we can obtain the binary value of the whole address. You can see that there is a group of two :: . This representation means that there are groups of 0s to complete the whole 128 bit address. The same thing could be written as 2a80:0000:0000:0000:9c62:ef40:769a:464b. Remember that this mechanism can be used only once. Simply put, :: means that the whole block is composed of 0s. For example, the IPv6 loopback address is written as ::1. Also, with IPv6, we can write groups of four zeros as one 0, something similar to the following example 01a3 :25b6: 9c62:ef40:769a :464b.
There are several types of IPv6 addresses:
Private addresses: These are reserved IP addresses used inside organizations and are not routable in the Internet. These IPv6 addresses start with FE followed by a digit from 8 to F interval. These private IP addresses are divided into two categories:
Link-local addresses – IPs used for communications inside a physical network segment. These IPs are not routable and are used for some special tasks like neighbor discovery or autoconfiguration. These IP addresses start with FE followed by a value from 8 to B, something similar to fe80::9c62:ef40:769a:464b.
Site-local addresses – Even though the site-local IP addresses are deprecated, you would probably be interested to find out about them. These are IPv6 addresses similar to IPv4 private IPs. These addresses begin with FE followed by a value from C to F.
Loopback address – We’ve talked about this earlier, an IPv6 address used for testing purposes. By pinging this IP, we redirect the traffic to the same machine (looping back the traffic).
Reserved addresses – These IPs are not leased to anyone and are reserved for future development
Global unicast addresses – IPs allocated to the five global RIRs. From Wikipedia:
“A regional Internet registry (RIR) is an organization that manages the allocation and registration of Internet number resources within a particular region of the world. Internet number resources include IP addresses and autonomous system (AS) numbers”.
Unspecified address – ::/128 — The address with all bits set to 0 is called the unspecified address (corresponding to 0.0.0.0/32 in IPv4).
“This address must never be assigned to an interface and is to be used only in software before the application has learned its host's source address appropriate for a pending connection. Routers must not forward packets with the unspecified address.
Applications may be listening on one or more specific interfaces for incoming connections, which are shown in listings of active internet connections by a specific IP address (and a port number, separated by a colon). When the unspecified address is shown, it means that an application is listening for incoming connections on all available interfaces.”
Multicast addresses – Though broadcasting is not implemented in IPv6, multicast addresses are used for several operations. In multicasting, one packet is transmitted from one node to server network devices at the same time using one IPv6 address. Because IPv6, supports stateless address configuration, devices will use a combination of multicast addressing, Network Discovery Protocol and IMPv6 to acquire a network address.
I’ve written earlier that the transition from IPv4 to IPv6 will not be done overnight so network devices will need to support both protocols at the same time. For this reason, new technologies were developed to support this transition:
Dual stack is one example of a transition mechanism in which network devices support both IPv4 and IPv6 over the same network portion. These devices use two protocol stacks, one for IPv4 and another one for IPv6. Based on the destination address, a router will choose which stack it will use.
IPv6 tunneling mechanism – IPv6 network packets are encapsulated into IPv4 packets. The header of the packet changes a little bit meaning that it will contain an identifier for the IPv6 packet, the IPv6 data and an IPv4 header. This is not an effective transmission mechanism, but it will serve as an intermediate solution for transmitting IPv6 packets without changing the network devices. This tunneling mechanism can be configured in two ways: manual Ipv6 to Ipv4 tunneling and dynamic 6to4 tunneling. Other well-known tunneling mechanisms include ISATAP and Teredo.
NAT Protocol Translation or NAT-PT – In this technology, routers will forward packets from an IPv4 to an IPv6 network and vice versa.
IPv6 is a complex Internet Protocol that will be adopted globally. There are many aspects to consider when implementing this protocol and probably I don’t know all about it. When using an automatic IPv6 configuration, the MAC address of your physical interface will be integrated to the IPv6 address to form a unique address. This raises a big concern in terms of security because MAC addresses can be discovered by malicious users but also user’s actions can be tracked over the Internet. I don’t know how this problem is resolved in IPv6 so please add anything you think is relevant for this topic. If you’ve enjoyed this article, please share it with others and stay tuned for the following posts from Power Admin.
Author: Popescu Dan-Alexandru