An Internet Protocol Version 6 address (IPv6 address) is a numerical label that is used to identify a network interface of a computer or a network node participating in an IPv6 computer network and for locating it in the network. IP addresses are transmitted in the fields of the packet header to indicate the source and the destination of each network packet. The IP address of the destination address is used to make decisions about routing IP packets to other networks. IPv6 is the successor to the first addressing infrastructure of the Internet, Internet Protocol version 4 (IPv4). In contrast to IPv4, which defined an IP address as a 32-bit value, IPv6 addresses have a size of 128 bits. Therefore, IPv6 has a vastly enlarged address space compared to IPv4.
An IPv6 network uses an address block that is a contiguous group of IPv6 addresses of a size that is a power of two. The leading set of bits of the addresses are identical for all hosts in a given network, and are called the network’s address or routing prefix. Network address ranges are written in CIDR notation. An IPv6 address is represented as eight groups of four hexadecimal digits, each group representing 16 bits (two octets, a group sometimes also called a hextet). The groups are separated by colons (:). An example of an IPv6 address is: 2001:0db8:85a3:0000:0000:8a2e:0370:7334.
The same exclusivity is applied to your IP address so your digital requests are sent to your network and not another network.
How to configure IPv6?
Cisco routers do not have IPv6 routing enabled by default. To configure IPv6 on a Cisco routers, you need to do two things:
1. Enable IPv6 routing on a Cisco router using the ipv6 unicast-routing global configuration command. This command globally enables IPv6 and must be the first command executed on the router.
2. Configure the IPv6 global unicast address on an interface using the ipv6 address address/prefix-length [eui-64] command. If you omit omit the eui-64 parameter, you will need to configure the entire address manually. After you enter this command, the link local address will be automatically derived.
Here is an IPv6 configuration example:
R1(config-if)#ipv6 address 2001:0BB9:AABB:1234::/64 eui-64
We can verify that the IPv6 address has been configured by using the
show ipv6 interface Gi0/0 command:
R1#show ipv6 interface Gi0/0
GigabitEthernet0/0 is up, line protocol is up
IPv6 is enabled, link-local address is FE80::201:42FF:FE65:3E01
No Virtual link-local address(es):
Global unicast address(es):
2001:BB9:AABB:1234:201:42FF:FE65:3E01, subnet is 2001:BB9:AABB:1234::/64 [EUI]
Joined group address(es):
MTU is 1500 bytes
We will also create an IPv6 address on another router. This time we will enter the whole address:
R2(config-if)#ipv6 address 2001:0BB9:AABB:1234:1111:2222:3333:4444/64
Notice that the IPv6 address is in the same subnet as the one configured on R1 (2001:0BB9:AABB:1234/64). We can test the connectivity between the devices using ping for IPv6 Type escape sequence to abort.
R1#ping ipv6 2001:0BB9:AABB:1234:1111:2222:3333:4444
IPv6 address Prefix
IPv6 address prefixes can be represented much the same way that IPv4 address prefixes are written in CIDR notation. An IPv6 address prefix (the network portion of the address) is represented using the following format:
prefix-length is a decimal value indicating the number of leftmost contiguous bits of the address. It identifies the prefix (that is, the network portion) of the address. It is also used with unicast addresses to separate the prefix portion of the address from the Interface ID.
Let’s look at an example using the address 2001:db8:aaaa:1111::100/64. The longest preferred form how the /64 prefix length identifies the prefix, or network portion, of the address. The /64 prefix length leaves another 64 bits, which is the Interface ID portion of the address.
In IPv6, just as in IPv4, the number of devices you can have on a network depends on the prefix length. However, due to the 128-bit length of an IPv6 address, there is no need to conserve address space as is needed with IPv4 public addresses. Notice that the /64 prefix length results in an Interface ID of 64 bits. A /64 prefix length gives us 18 quintillion devices on a single network.
IPv6 Global Unicast Address
IPv6 global unicast addresses are similar to IPv4 public addresses. A company that needs IPv6 addresses asks for a registered IPv6 address block, which is assigned as a global routing prefix. These addresses are routable on the Internet and only that company will use them. An IPv6 unicast address is used to identify a single interface in a node. An IPv6 Unicast address identifies only one node in networks and unicast addresses are used for one to one communication. IPv6 Aggregate Global Unicast Addresses are similar to IPv4 public addresses. Aggregate Global Unicast Addresses are globally routable addresses on IPv6 Internet.
Global unicast addresses start with 2000::/3 (hex 2 or 3). They consists of two parts:
subnet ID – 64 bits long. Contains the site prefix (obtained from a Regional Internet Registry) and the subnet ID (subnets within the site).
Interface ID – 64 bits long. It acts like the IPv4 host field and is typically composed of a part of the MAC address of the interface.
Here is a graphical representation of the two parts of an IPv6 global unicast address:
Global Unicast Addresses prefixes:
The prefix is the part of the IPv6 address that indicates the network. Prefixes for IPv6 routes and subnet identifiers are similar to Classless Inter-Domain Routing (CIDR) notation for IPv4. For the IPv4 network 172.16.0.0 255.255.0.0, we can consider 172.16/16 as the prefix.
Consider an IPv6 example. 21DA:D3::/48 (the first three fixed bits 001 and remaining 45 bits, 45+3 = 48 bits) is a route prefix and 21DA:D3:0:2F3B::/64 is a subnet prefix. Here the fourth part of the IPv6 address “2F3B” is the subnet part. Which means that, currently first 48 bits of an IPv6 address are used to identify the network globally. The next 16 bits are used for subnetting (which makes 48+16=64 bits, network part) and the remaining 64 bits are used for identifying the hosts (host part).
IPv6 Unique Local Address
IPv6 Unique Local addresses are the addresses which can be used inside an enterprise company at multiple sites. Unique local IPv6 addresses have the same function as private addresses in IPv4 – to allow communication throughout a site while being routable to multiple local networks. They are not registered with any numbering authority and cannot be routed to the Internet. Unique local IPv6 addresses begin with FD00::/8.
Unique Local addresses as IPv6 unicast address format that is globally unique and is intended for IPV6 local communications. IPv6 Unique Local addressess are not expected to be routable on the Internet, but IPv6 Unique Local addressess are routable inside of a company’s multiple sites.
Like Global Unicast IPv6 addresses, Unique Local addresses also have a global scope. But the scope of Unique Local addresses are defined by organizations by routing topology and filtering policies at the site boundary level. The well-known prefix of IPv6 Unique Local addresses can be used for filtering the inbound and outbound IPv6 traffic with Unique Local source and destination addresses at site level. DNS entries for Unique Local IPv6 Addresses are not created in public Internet DNS. Unique Local IPv6 addresses can be viewed as globally unique “private routable” IPv6 addresses, which are typically used inside an organization.
IPv6 Link Local Address
A link-local address is an IPv6 unicast address that can be automatically configured on any interface using the link-local prefix FE80::/10 (1111 1110 10) and the interface identifier in the modified EUI-64 format. Link-local addresses are not necessarily bound to the MAC address (configured in a EUI-64 format). Link-local addresses can also be manually configured in the FE80::/10 format using the ipv6 address link-local command.
These addresses refer only to a particular physical link and are used for addressing on a single link for purposes such as automatic address configuration and neighbor discovery protocol. Link-local addresses can be used to reach the neighboring nodes attached to the same link. The nodes do not need a globally unique address to communicate. Routers will not forward datagram using link-local addresses. IPv6 routers must not forward packets that have link-local source or destination addresses to other links. All IPv6 enabled interfaces have a link-local unicast address.
IPv6 Link Local addresses are auto-generated and many international technology leaders generate IPv6 Link Local addresses from MAC Address of the interface. View the following output of show command “show ipv6 interface gigabitEthernet 0/0”, in a Cisco router.
The output shows the IPv6 Link Local address as FE80::C800:EFF:FE74:8, for interface gigabitEthernet 0/0
We already know the first 64 binary bits of IPv6 Link Local addresses are reserved as 1111111010000000 0000000000000000 0000000000000000 0000000000000000 (FE80::/64 in hexadecimals, is the link local IPv6 address prefix). Next, view the interface information of the same interface mentioned above using the IOS command “show interfaces gigabitEthernet 0/0”. The MAC address of interface gigabitEthernet 0/0 is ca00.0e74.0008.
Now we have the IPv6 Link local address of interface gigabitEthernet 0/0 as FE80::C800:EFF:FE74:8 and MAC address as ca00.0e74.0008.
The IPv6 Link Local addresses are made from the first 64-bit reservation (FE80::/64) and remaining bits are taken from the MAC address of the interface. But, MAC addresses are 48 bit numbers. 64+48 is only 112bits to form IPv6 address (IPv6 addresses are 128 bit in length). What about the remaining 16 bits (128-112=16)? The answer is, an hexadecimal number “FF:FE” is added in between the MAC address of the related interface to form the complete 128 bit IPv6 Link Local addresses. Also the 7th bit (from left) in the MAC address is flipped. Which means, if the 7th bit in the MAC address (from left) is 1, change it to 0 or if the 7th bit (from left) in the MAC address is 0, change it to 1. Refer the following table.
The above IPv6 Link local address we got from combining FE80::/64 prefix and MAC Address part can be further simplified as FE80::C800:EFF:FE74:8.
IPv6 Anycast Address
Anycast is a network addressing and routing methodology in which a single connection origination endpoint address has multiple routing paths to two or more endpoint destinations. Routers will select the desired path on the basis of number of hops, distance, lowest cost, latency measurements or based on the congested route. Anycast networks are widely used for content delivery network (CDN) products to bring their content closer to the end user.
Anycast addresses are available for both IPv4 and IPv6, initially defined in RFC 1546, Host Anycasting Service. Anycast was meant to be used for services such as DNS and HTTP but was never really implemented as designed. There is no special prefix for an IPv6 anycast address. An IPv6 anycast address uses the same address range as global unicast addresses. Each participating device is configured to have the same anycast address. For example, servers A, B, and C in Figure could be DHCPv6 servers with a direct Layer 3 connection into the network. These servers could advertise the same /128 address using OSPFv3. The router nearest the client request would then forward packets to the nearest server identified in the routing table.
IPv6 Multicast Address
Multicast is a technique in which a device sends a single packet to multiple destinations simultaneously (one-to-many). Multiple destinations can actually be multiple interfaces on the same device, but they are typically different devices. An IPv6 multicast address defines a group of devices known as a multicast group. IPv6 multicast addresses use the prefix ff00::/8, which is equivalent to the IPv4 multicast address 184.108.40.206/4. A packet sent to a multicast group always has a unicast source address. A multicast address can never be the source address. Unlike IPv4, there is no broadcast address in IPv6. Instead, IPv6 uses multicast, including an all-IPv6 devices well-known multicast address and a solicited-node multicast address.
The first 8 bits are 1-bits (ff), followed by 4 bits allocated for flags and a 4-bit Scope field. The Scope field defines the range to which routers can forward the multicast packet. The next 112 bits represent the Group ID.
Well-known multicast addresses have the prefix ff00::/12. This means that the third hexadecimal digit, the Flag field, is always set to 0. Well-known multicast addresses are predefined or reserved multicast addresses for assigned groups of devices. These addresses are equivalent to IPv4 well-known multicast addresses in the range 220.127.116.11 to 18.104.22.168. Some examples of IPv6 well-known multicast addresses include the following:
ff02::1: All IPv6 devices
ff02::2: All IPv6 routers
ff02::5: All OSPFv3 routers
ff02::a: All EIGRP (IPv6) routers
Extended Unique Identifier (EUI)
Extended Unique Identifier (EUI), as per RFC2373, allows a host to assign iteslf a unique 64-Bit IP Version 6 interface identifier (EUI-64). This feature is a key benefit over IPv4 as it eliminates the need of manual configuration or DHCP as in the world of IPv4. The IPv6 EUI-64 format address is obtained through the 48-bit MAC address. The MAC address is first separated into two 24-bits, with one being OUI (Organizationally Unique Identifier) and the other being NIC specific. The 16-bit 0xFFFE is then inserted between these two 24-bits for the 64-bit EUI address. IEEE has chosen FFFE as a reserved value which can only appear in EUI-64 generated from the an EUI-48 MAC address. Here is an example showing how a the MAC Address is used to generate EUI.
Next, the seventh bit from the left, or the universal/local (U/L) bit, needs to be inverted. This bit identifies whether this interface identifier is universally or locally administered. If 0, the address is locally administered and if 1, the address is globally unique. It is worth noticing that in the OUI portion, the globally unique addresses assigned by the IEEE has always been set to 0 whereas the locally created addresses has 1 configured. Therefore, when the bit is inverted, it maintains its original scope (global unique address is still global unique and vice versa).
we have a fully functional EUI-64 format address.