Architecture of IPv6 Addresses

Types of IPv6 Addresses

An identifier for a single interface. A packet sent to a unicast address is delivered to the interface identified by that address.

An identifier for a set of interfaces (typically belonging to different nodes). A packet sent to an anycast address is delivered to one of the interfaces identified by that address (the "nearest" one, according to the routing protocols' measure of distance).

An identifier for a set of interfaces (typically belonging to different nodes). A packet sent to a multicast address is delivered to all interfaces identified by that address.

There is no special broadcast IPv6 address. All broadcast functions have been merged into multicasting.

Subsetting the IPv6 Address Space

Like IPv4, the first few bits of an IPv6 address determine the type of address.

  Allocation                            Prefix         Fraction of
					(binary)       Address Space
  -----------------------------------   --------       -------------
  Reserved                              0000 0000      1/256
  Unassigned                            0000 0001      1/256

  Reserved for NSAP Allocation          0000 001       1/128
  Reserved for IPX Allocation           0000 010       1/128

  Unassigned                            0000 011       1/128
  Unassigned                            0000 1         1/32
  Unassigned                            0001           1/16

  Aggregatable Global Unicast Addresses 001            1/8
  Unassigned (was provider)             010            1/8
  Unassigned                            011            1/8
  Unassigned                            100            1/8
  Unassigned                            101            1/8
  Unassigned                            110            1/8

  Unassigned                            1110           1/16
  Unassigned                            1111 0         1/32
  Unassigned                            1111 10        1/64
  Unassigned                            1111 110       1/128
  Unassigned                            1111 1110 0    1/512

  Link-Local Unicast Addresses          1111 1110 10   1/1024
  Site-Local Unicast Addresses          1111 1110 11   1/1024

  Multicast Addresses                   1111 1111      1/256

The Classless Society

Unlike IPv4, there is no such thing as a class A, B or C address ­ IPv6 always uses Classless Inter Domain Routing (CIDR). This splits the 128 bits into n "routing" bits and 128-n "user" bits. Routers look at the n bits they care about and ignore the rest.

The value of n varies from site to site and according to which routing layer the packet is passing through. For example, top level routers (backbone) look at the first 16 bits, ISP routers look at the first 48 bits, a site router looks at the first 64 bits (roughly).

Converting IPv6 Addresses to Human Readability

  1. Split the 128 bits up into 8 chunk of 16 bits.
  2. Write each chunk in hex with ':' between them.
  3. Drop leading zeroes from each hex chunk.
  4. A single set of consecutive zero chunks can be omitted and replaced by '::'.
Bits01011111 0000010011000101 0000000011001011 0010110111010011 0000000000000000 0000000000000000 0000000000000100 0011001011100110 11111111
Hex chunks5F04:C500:CB2B:B300:0000:0000:0432:E6FF
Drop leading zeroes5F04:C500:CB2B:B300:0:0:432:E6FF
Merge zero chunks5F04:C500:CB2B:B300::432:E6FF

Final result 5F04:C500:CB2B:B300::432:E6FF.

The following addresses:

1080:0:0:0:8:800:200C:417Aa unicast address
FF01:0:0:0:0:0:0:43a multicast address
0:0:0:0:0:0:0:1tde loopback address
0:0:0:0:0:0:0:0tde unspecified addresses
may be represented as:
1080::8:800:200C:417Aa unicast address
FF01::43a multicast address
::1tde loopback address
::tde unspecified addresses

If the last 32 bits of an IPv6 address are an embedded IPv4 address (common during transition) then you can write the IPv4 portion in the normal dotted quad format. Examples



or in compressed form:



To denote a network address, follow the IPv6 address with '/n' where 'n' is the number of bits that make up the network portion. For example, machine 5F04:C500:CB2B:B300::432:E6FF is on network 5F04:C500:CB2B:B300::/64, i.e. the first 64 bits of that host address are the network address. You can combine host and network into a single string as 5F04:C500:CB2B:B300::432:E6FF/64.

Top level routers would have entries like 5F04:C500::/16.

For host addresses, the last 64 bits is generally the IEEE MAC address.

© Keith Owens O. C. Software P/L 1997