Skip to main content

IPv6 Quick Explainer

The best information I've found that explains IPv6 in detail was on free online training from omnisecu.com. I read through all their lessons to get a good understanding of IPv6. However I'm going to briefly go over come key concepts below.

A New LookAddresses

IPIPv6 addresses are no longer 32-bit and represented by decimals in a dotted quad notation like 10.0.4.1. They're now 128-bit and represented in 32 hexadecimal characters broken down into 8 groups seprated by a colon and look like 2001:db8:2458:a2b2:cd47:8abb:8844:1. These groups are sometimes called hextets.

They

Address Types

NameDescription
unicastIdentifies an interface of an individual node.
multicastIdentifies a group of interfaces, usually on different nodes. Packets that are sent to the multicast address go to all members of the multicast group.
anycastIdentifies a group of interfaces, usually on different nodes. Packets that are sent to the anycast address go to the anycast group member node that is physically closest to the sender.

Address Components

Example: 2001:0db8:3c4d:0015:0000:0000:1a2f:1a2b

ComponentValueDescription
site prefix2001:0db8:3c4dThe prefix describes the public topology that is usually allocated to your site by an ISP or Regional Internet Registry (RIR).
subnet ID0015The subnet ID describes the private topology, also known as the site topology, because it is internal to your site.
interface ID0000:0000:1a2f:1a2bThe interface ID is either automatically configured from the interface's MAC address or manually configured in EUI-64 format.

Abbreviating Addresses

IPv6 addresses can be a little scary to look at but there are two tricks when writing them to be a little more readable.

  • Leading zeros in any hextet can be dropped. So 0db8 could be shownwritten as just db8
  • If there are multiplecontiguous hextets that are emptyall zeros like 2001:db8:0000:0000:0000:0000:abcd:1 they can be shortened towith an emptya syntax of ::. So that address could be shownabbreviated as 2001:db8::1. The only gotcha is that you can only do this once in an address, so if there are two sectionsstretches with hextets of 0000 you can only shorten one of them. I thought this would be annoying but I literally haven't run into a situation where that would have been needed.

Prefixes

The leftmost fields of the IPv6 address contain the prefix, which is used for routing IPv6 packets. IPv6 prefixes have the following format:

<prefix> / <length in bits>

Prefix length is stated in classless inter-domain routing (CIDR) notation. CIDR notation is a slash at the end of the address that is followed by the prefix length in bits. For information on CIDR format IP addresses, refer to Designing Your CIDR IPv4 Addressing Scheme.

The site prefix of an IPv6 address occupies up to 48 of the leftmost bits of the IPv6 address. For example, the site prefix of the IPv6 address 2001:db8:3c4d:0015:0000:0000:1a2f:1a2b/48 is contained in the leftmost 48 bits, 2001:db8:3c4d. You use the following representation, with zeros compressed, to represent this prefix:

2001:db8:3c4d::/48

You can also specify a subnet prefix, which defines the internal topology of the network to a router. The example IPv6 address has the following subnet prefix.

2001:db8:3c4d:15::/64

The subnet prefix always contains 64 bits. These bits include 48 bits for the site prefix, in addition to 16 bits for the subnet ID.

Source: IPv6 Addressing Overview (oracle.com)

The prefix 2001:db8::/32 is a special IPv6 prefix that is used specifically for documentation examples.

Terminology

Along with the larger addresses there is some new terminology to get comfortable with. I'll go through the new relevant terms.

Prefixes

IPv6 is all about Prefixes serve as a very similar role to subnet masks in IPv4. It is represented in a similar way to IPv4 CIDR notation.

In IPv6 address 2001:0DB8:0000:000b:0000:0000:0000:001A/64, 2001:0DB8:0000:000b::/64 represents the network prefix and the possible IPv6 addresses ranges from 2001:0DB8:0000:000b:0000:0000:0000:0001/64 to 2001:0DB8:0000:000b:ffff:ffff:ffff:ffff/64.

What is IPv6 Network Prefix