The earlier version of IP i.e. IPv4 had been popular for many years and still widely used. But with the rapid growth of Internet and exponential use of IP address, the IPv4 address range began to look less and would get complete saturated leaving no additional computer network devices to connect to the Internet.
To the rescue came the IPv6 which is also popular now and a successor to the IPv4 version. The best part is that we can use IPv4 and IPv6 together and they are compatible.
IPv6 was developed by IETF (Internet Engineering Task Force)
IPv4 defines a 31 bit address i.e. 2^32 (4,294,967,296) IP addresses available for use. Thus the concern of depletion of the IP addresses range or space.
The 32bit IP addressing (IPv4) involves a two level addressing hierarchy
These IPv4 addresses are divided into 5 classes namely:
Class A -> N.H.H.H
Class B -> N.N.H.H
Class C -> N.N.N.H
Class D -> Used for Multicast
Class E -> Was Reserved for Research
Many IP addresses get wasted with the use of IPv4.
Steps taken to use IPv4 more effectively
b) Class Internet Domain Routing (CIDR)
c) Network Address Translation (NAT)
- Larger address space due the use of 64 bits instead of 32 bits
- Addressing hierarchy is Aggregation based
- Efficient backbone routing
- Has efficient and effective datagram
- Stateless Address Auto configuration
- Integrated Security with use of IP Sec
- Simplified configuration
- Compatibility with IPv4
The format of an IPv6 address is formed with 8 groups of 16 bit hexadecimal numbers which are separated by a colon “:”
In an IPv6 address the leading zeros can be ignored or removed while writing, example:
Can also be represented as:
Each group separated by the colon is also called field.
If the IP address has the entire field with zeros, then the IP address can be written as in below address:
Can be written as:
As know and used widely, IPv4 uses the concept of subnet mask to define the network and host portion on the address. The same subnet mask can also represented using the CIDR notation. E.g. 192.168.2.5 /24
In case of IPv6, the only way to represent an address is using CIDR (Class Inter domain Routing) It helps us understand what bits are used for prefix and host.
The /64 indicates that the first 64 bits of this address identify the prefix
- In an IPv4 address the host portion does not rely on the hardware address of the interface. In IPv4 the ARP ( Address Resolution Protocol) is used for mapping the IP address ( logical) to MAC Address ( Physical)
- In IPv6, if using unicast the first 64 bits of the address is used to identify network or prefix and the last 64 bits for host, also known as interface id. This interface id used is based on the hardware address of the interface.
Hierarchy of IPv6 Address
In IPv4, the hierarchy was defined by the classes of addresses. The class was identified by the use of high-order bits in the first octet.
The IPv6 has a more scalable structure. The address spaces are divided into different types on the basis of high order bits of the first field.
a) Special addresses – These addresses begin with 00xx:
b) Link Local Addresses – These addresses begin with FE8x:
c) Site Local Addresses – Addresses beginning with FECx:
d) Aggregate Global : address that begin with either 2xxx: or 3xxx:
e) Multicast Addresses : Addresses that begin with FFxx:
In the above addresses the ‘x’ can be any hexadecimal number.
In IPv6 there is no concept of broadcast, thus only have multicast and unicast.
Group of interfaces on multiple hosts are identified by Anycast address.
Link Local Address
These are used on a single link. All IPv6 interfaces on a device such as host or router is assigned a link-local address. The Link-local address is always a unicast address and /10 prefix is used for these addresses. The first filed will always be FE8x(1111 1110 10). These do not follow any hierarchy.
- The first 10 bits are always same and fixed also known as the Format Prefix. ( FE8)
- The next 54 bits will be set to 0
- The remaining 64 bits are used for the interface id which also has hardware address
Site Local Address
These are similar to the Private IP addresses used in IPv4. These addresses cannot be used on the Internet but can be used in organizations as Private IPs.
The Site Local address has its first field as FECx (1111 1110 11). These are also unicast and follow to the hierarchy.
- FEC is the first 10 bits which are fixed also known as FP. Format Prefix.
- The next 38 bits are set as 0
- The following 16 bits are used for identification of Private subnet ID
- The last 64 bits is the interface id based on the hardware address.
Aggregate Global Addresses
These are similar to the Public addresses in IPv4 and can be used over the Internet. So devices that need to communicate over the Internet need to have this address assigned and should be unique.
The first field is always 2xxx (001). These addresses are unicast.
- The first 3 bits are the fixed Format Prefix FP.
- The next 13 bits are the top-level aggregation identifier (TLA ID).
- The following 8 bits are reserved for future use.
- The next 24 bits are the next-level aggregation identifier (NLA ID).
- The next 16 bits are the site-level aggregation identifier (SLA ID).
- The last 64 bits similar to link and site local are used as the interface ID
These addresses are equivalent of the multicast addresses used in IPv4. Packets are sent to more than one device. Multiple multicast groups can be can be set and interface are assigned to them.
The multicast address always begins with FFxx (1111 1111)
IPv6 and IPv4 configured devices can still communicate with each other using transition mechanisms like:
- Dual IP Stack: In this both the version of protocols run on the same device / network infrastructure and no encapsulation is required.
- Tunneling: As many users do not have IPv6 support and cannot make use of IPv6 addresses, thus IPv4 infrastructure should be used to carry IPv6 packets. In tunneling the IPv6 packet is encapsulated in an IPv4 packet
Configuring Basic IPv6
R1(config)#interface FastEthernet 0/0
R1(config-if)# ipv6 address fc00:11:11:11::1/64
R1(config-if)# ipv6 address 2001:12:12:12::1/64
R2(config)#interface FastEthernet 0/0
R2(config-if)# ipv6 address fc00:22:22:22::2/64
R2(config-if)# ipv6 address 2001:12:12:12::2/64
R2(config-if)#clock rate 64000
Some commands that can be used for verification of IPv6
Show ipv6 interface brief
Show interface FastEthernet 0/0
Show interface serial 1/0