IPv6 uses 128-bit (2128) addresses, allowing 3.4 x 1038 unique IP addresses. This is equal to 340 trillion trillion trillion IP addresses. IPv6 is written in hexadecimal notation, separated into 8 groups of 16 bits by the colons, thus (8 x 16 = 128) bits in total.
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 22.214.171.124/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 126.96.36.199 to 188.8.131.52. 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
IPv6 Multicast Address
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.