This Article will simply and clearly sum up the IPv6 Address format, as a reminder and a memo guide.
Address format and Notation
an IPv6 Address = Network ID + Host ID
64 bits 64 bits
written in Hexadecimal Format.
please note that 1 hex letter = 4 bits
1 hex quad = 16 bits
Please note that these are HEXADECIMAL numbers. Thus 2001 ( hex ) = 8193 ( decimal )
We're used with IPv4 addresses to use decimal numbers, and to relate them to binary numbers ( subnets masks, etc ... ). Ipv6 uses Hex numbers, related to binary numbers. Allways keep this in mind.
The IPv6 notation allows to ommit 1 to 3 consequitives ' left ' bits per Quad Hex.
can be written 2001:db8:7a:0:0:e:3254:4785
Furthermore, one only consequtive serie of zero hex-quads can be summed up by using ::
Leading the former exemple to be written :
Pay attention that you can do this only once, to avoid ambiguity. Thus :
can be written either 2001:db8::4:0:0:7 or 2001:db8:00:4::7
but CAN'T be written 2001:db8::4::7 because it would lead to several interpretations ( ie 2001:db8:0:4:0:0:0:7, 2001:db8:0:0:4:0:0:7 or 2001:db8:0:0:0:4:0:7 )
Subnet Mask and CIDR notation
Like in IPv4, an IPv6 address is coupled with a subnet mask. The subnet mask desambiguates the Network ID part and the Host ID part in an IPv6 address. The subnet mask is written in CIDR notation,
and states the number of bits in the IPv6 address that are the Network ID.It is written after a ' slash ' symbol.
Ex : 2001:db8:0:0:4:0:0:7 /64
Here, the subnet mask is /64, thus the Network ID is 2001:db8:0:0/64
when encountering an IP address, a host compares the IP address Network ID with its own Network ID. If they are the same, then the IP address is considered to be on the Local-link, and is dealt with directly. If they are different, the IP address is considered to be out of the Local-link, and all communications with this address are performed through a Local-link Router ( Default Gateway most of the time ). Like in IPv4.
2001:db8::/32 is reserved for documentation purpose by RFC 3849
::/128 0:0:0:0:0:0:0:0/128 unspecified address, used for software self-configuration, reserved
::1/128 0:0:0:0:0:0:0:1/128 Loopback ( cf 127.0.0.1 )
ff02::2 ff02:0:0:0:0:0:0:2 Multicast to ' All link Routers '
ff02::1 ff02:0:0:0:0:0:0:1 Multicast to ' All link Nodes '
Until now we've only been seeing unicast addresses. Notice the last two addresses, they belong to the Multicast Addresses. They are defined as ff00::/8, and play a very important role in IPv6 ( NDP protocol, DHCPv6, ... ).
One last note : if ff00::/8 defines multicast addresses, how does ff02::1 and ff02::2 fit in this definition ? Well .... because ff00::/8 in reality means ff/8 ( remember .. 4bits per hex ). ff02::1 doesn't fit in ff00::16, that's right, but it fits in ff00::/8.
This is the kind of little details you will have to pay attention for, while using IPv6.