three per section—are also omitted. When this is done, the result is called the
canonical form. For example, fe80::1 is the canonical form of
fe80:0000:0000:0000:0000:0000:0000:0001, and
2001:db8:b:23c1:49:4592:efe:9982 is the canonical form of
2001:0db8:000b:23c1:0049:4592:0efe:9982.
It is also possible to write the last 32 bits of an IPv6 address using the well-
known IPv4 format. For example, 2002::10.0.0.1 corresponds to the
long form 2002:0000:0000:0000:0000:0000:0a00:0001, which
then can be compressed to the canonical form 2002::a00:1.
As in IPv4, an IPv6 address has sections for the network and for the device.
However, an IPv6 address has a dedicated section for subnetting. The
following examples use 1s to show the section of the address being described
(in binary because that is easier for us humans) and 0s for the rest of the
address.
In IPv6, the first 48 bits are for Internet routing (network addressing):
Click here to view code image
1111111111111111.1111111111111111.1111111111111111.0000000000000000.
0000000000000000.0000000000000000.0000000000000000.0000000000000000
The 16 bits from the 49th to the 54th are for defining subnets:
Click here to view code image
0000000000000000.0000000000000000.0000000000000000.1111111111111111.
0000000000000000.0000000000000000.0000000000000000.0000000000000000
The last 64 bits are for device (interface) IDs:
Click here to view code image
0000000000000000.0000000000000000.0000000000000000.0000000000000000.
1111111111111111.1111111111111111.1111111111111111.1111111111111111
It is easier for humans to conceive of these using binary, but to actually use
this information, you have to convert numbers from binary to hexadecimal.
Fortunately, this is easily accomplished on the web using a quick Google
search for “binary to hex” conversion.
Let’s say you want to break your corporate network into 64 subnets. The
binary mask just for the subnetting range would be 1111110000000000 ,
which translates to a hex value of FC00. Some IPv6 masking tools work with
just this one hex word; otherwise, a full 128-bit hex mask would be
FFFF:FFFF:FFFF:FC00:0:0:0:0.
Here are some special-use, reserved IPv6 addresses: