Network Layer – IPv6 (Internet Protocol version 6) address , IPv6 tunnel And IPv6 subnetting
Howdy fellas !!
Hope you all are really enjoying this step by step learning series regarding the network layer of OSI model. So in the last post, we have seen the IPv4 in detail along with some of the limitations. Since there are some valid limitations and hence there should be a sort of solutions. The solution is the upgraded version of IP i.e version 6.
What are the features of IPv6 ?
IPv6 is the next-generation Internet Protocol designed as the next step of the IP version 4. IPv6 was designed to enable high-performance and larger address space. This was achieved by overcoming many of the weaknesses of IPv4 protocol and by adding several new features.
In order to overcome the deficiencies of IPv4, IPv6 (Internetworking Protocol, version 6) also known as IPng (Internetworking Protocol, next generation), was proposed and is at present a standard.
In IPv6, the Internet protocol has been extensively modified to accommodate the unforeseen growth of the Internet. The format and also the length of the IP addresses were changed along with the packet format .
Let us see some of its important features first :
Improved header format : In its header format the options are separated from the base header.These options are inserted when needed, between the base header and upper-layer data. The speed of the routing process increases and the routing time is reduced.
Larger address space : IPv6 has 128-bit address, which is 4 times wider in bits is compared to IPv4’s 32-bit address space. So there is a large increase in the address space.
More security : IPv6 includes security in the basic specification. It includes encryption of packets (ESP: Encapsulated Security Payload) and authentication of the sender of packets (AH : Authentication Header) for enhancing the security.
Possibility of extension : The design of IPv6 is done in such a way that there is a possibility of extension of protocol if required.
Support to resource allocation : To implement better support for real-time traffic (such as video conference). IPv6 includes a flow label in the specification.
Plug and play : IPv6 includes plug and play in the standard specification. It is therefore must be easier for any novice users to connect their machines to the network , it will be done automatically.
Clearer specification and optimization : IPv6 follows good practices of IPv4, and omits flaws/obsolete items of IPv4.
IPv6 Address Format
An IPv6 address is 128 bit long. It consists of 16 bytes as shown :
IPv6 uses a special notation called hexadecimal colon notation. In this, the total 128 bits are divided into 8 sections, each one is 16 bits or 2 bytes long. The 16 bits or 2 bytes in binary corresponding to four hexadecimal digits of 4-bits each.
Hence the 128 bits in hexadecimal form will have 8 x 4 = 32 hexadecimal digits. IPv6 uses 128-bit addresses. Only about 15% of the address space is initially allocated, the remaining 85% being reserved for future use.
Types of Addresses in IPv6
IPv6 defines three different types of addresses :
Unicast address : A unicast address is meant for a single computer as a destination. A packet sent to a unicast address is meant to be delivered to the computer specified by the address.
Multicast address : A multicast address defines a group of computers which may/may not share the same prefix and may/may not be connected to the same physical network. A packet sent to a multicast address is meant to be delivered to each member of the group.
There are no broadcast addresses in IPv6, because multicast addresses can perform the same function. The type of address is determined by the leading bits.
Anycast address : This is a type of address that is used to define a group of computers with addresses that have the same prefix. A packet sent to an anycast address must be delivered to exactly one of the member of the group which is the closest or the most easily accessible.
IPv6 Packet Format
Below figure shows the packet format of IPv6. Each packet can be divided into two parts viz: base header and payload.
Base header is the mandatory part and payload is an optional~ one. The payload follows the base header. The payload is made up of two parts :
- Optional extension headers and
- The upper layer data.
The base header is 40 byte long whereas the payload consisting of the extension header and upper-layer data can have information worth upto 65, 535 bytes.
Base header :
Version (VER) : The contents of this 4 bit field define the version of IP such as IPv4 or IPv6. If VER = 6, then the version is IPv6.
Priority : This 4 bit field contents define the priority of the packet which is important in connection with the traffic congestion.
Flow label: It is a 24 bit (3 byte) field that is supposed to provide special handling for a particular flow of data.
Payload length : The contents of the 16 bit or 2 byte length field are used to indicate the total length of the IP datagram excluding the base header.
Next header: It is an 8 bit field which defines the header which follows the base header in the datagram.
Hop limit: Contents of this 8 bit (1 byte) field have the same function as TTL (time to live) in IPv4.
Source address: It is a 16 byte (128 bit) Internet address that corresponds to the originator or source which has produced the datagram.
Destination address: This is a 16 byte (128 bit) internet address which corresponds to the address of the final destination of datagram.
NAT – Network Address Translation
The problem that the existing number of IP addresses is less than the actually required ones is practically important. A long term solution to this problem is that the whole Internet should be migrated from IPv4 to IPv6.
This has begun, but will take a year to get complete. (That means all the computers should have IPv6 addresses instead of IPv4 addresses). A quick solution to this problem is NAT i.e. Network Address Translation. It is described in RFC 3022.
The basic idea in NAT is that each company is assigned a single IP address or at the most a small number of IP addresses so as to access the Internet.
Within the company, every computer gets a unique IP address which is used for routing the internal traffic of the office. But when a packet goes out of the company, and goes to ISP, the translation of IP address takes place there.
How to convert IPv4 to IPv6 (Compatibility between the twp versions of IP)
It was IPv4’s success that made an upgrade necessary, which means that there is a large number of IPv4 users to be upgraded to IPv6. Keeping the transition orderly was a major objective of the entire IPng program.
The cutover date when IPv6 would be turned on and IPv4 turned off has not been decided.
The simple strategy for upgrading involves deployment of IPv6 protocol stack in parallel with IPv4. In other words, hosts that upgrade to IPv6 will continue to simultaneously exist as IPv4 hosts.
An experimental IPv6 backbone, or 6bone, has been set up to handle IPv6 Internet traffic in parallel with the regular Internet. Such hosts will continue to have 32·bit IPv4 addresses but will add 1 28 bit IPv6 addresses.
By 1999, hundreds of networks were linked to the 6bone. The transition can be achieved through two approaches: protocol tunneling or IPv4/IPv6 dual stack.
The adoption of IPv6 has been slow. The reason is that the original motivation for its development, depletion of IPv4 addresses, has been remedied by short-term strategies such as classless addressing and NAT.
However, the fast-spreading use of the Internet, and new services such as mobile IP, IP telephony, and IP-capable mobile telephony, may eventually require the total replacement of IPv4 with IPv6
Mobile IP (Routing for Mobile Hosts)
A large number of people have portable computers and they want to work on them wherever they . are in the world, Such computers are called mobile hosts. To route a packet to a mobile host, the network has to first find the mobile host. Let us now understand the routing procedure in mobile :
When a packet is to be sent to a mobile user it is first routed to the user’s home LAN.
This packet is intercepted by the home agent.
This home agent then looks for the mobile user’s current location and finds the address of the corresponding foreign agent.
The home agent then encapsulates the packet in the payload field of an outer packet and sends it to the foreign agent. This is called tunneling.
This packet is received by the foreign agent, who removes the original packet from the payload field and sends it to the mobile user as a data link frame.
The home agent then tells the sender to send the packets directly to the mobile user. The packets are then routed directly to the user via the foreign agent.
Concept of Tunneling in IPv6
Tunneling is a strategy , which is used when two computers using IPv6 want to communicate with each other and the packet should pass through a region that uses IPv4.
In order to pass through this region, the packet must have an IPv4 address. So the IPv6 packet is encapsulated in an IPv4 packet when it enters the region, and it leaves its capsule when it exits the region.
A tunneling is basically realized by encapsulating each user packet in another packet that can be forwarded along the tunnel.Here IPv6 packets are first forwarded from the source to the tunnel head end in the IPv6 network. At the tunnel head-end packets are encapsulated into IPv4 packets.
Then IPv4 packets are forwarded in the IPv4 network to the tunnel tail end. Where the reverse process of decapsulation is performed. Finally IPv6 packets are forwarded from the tunnel tail end to the destination.
In the next post we will understand the RARP (Reverse Address Resolution) protocol in detail. So stay tuned.
Aric is a tech enthusiast , who love to write about the tech related products and ‘How To’ blogs . IT Engineer by profession , right now working in the Automation field in a Software product company . The other hobbies includes singing , trekking and writing blogs .