IPv6 – The Basics

Since about three weeks I’m using IPv6 on my client. Since then I’ve learned some basics, which I would like to share.

Some facts:

  • 128-Bit long
  • Written with hexadecimal characters
  • Written in 16-Bit blocks (8 blocks, maximal 4 hexadecimal characters each)
  • Blocks separated using colons (:)
  • Double colon (::) means omitted blocks (replaced with 0)
  • Networks are using CIDR-Notiation for the network mask (e.g. /48)
As loopback address there is one address reserved, the very first (means all bits 0 except the last one):

There are no private addresses like IPv4 knows them ( or There are two reasons: There is no need to save addresses, because there are plenty! Because of that, there is also no such thing like NAT, because every computer who uses the internet has it’s own IPv6 address (this used to be in IPv4 networks too, oh, the good old internet :-)). But sometimes it’s just not needed to have public routed addresses, therefor IPv6 knows link local addresses:


This address is generated using the interfaces unique EUI-64 address (extended unique identifier, which is a 64-bit backward compatible MAC address, or in other words, it’s the 48-bit mac address with some zero’s preceding). They are automatically generated, without communicating at all. They are available on every system and can be used to communicate within a network. Because they are link local, one has to specify the link used when pinging such an address:

ping6 -I eth0 fe80::216:ef5f:ac10:35d2

Most applications have no ability to define this interface, therefor most application simply don’t work with link local addresses…

There are also multicast addresses


“Common” addresses usually starts with a 2, such as


Browsers (and many other applications) require bracket’s to define IPv6 addresses


IPv6 uses also the concept of DNS. There are special entries for IPv6 addresses (AAAA instead of A). So a client can choose if he would like a IPv6 or an IPv4 address. Many applications (such as ssh or nslookup) requiring the parameter -6 to force them using IPv6:

ssh -6 host.example.com

Browsers usually have a setting which protocol they prefer. Current Chrome and Firefox versions prefer IPv6 over IPv4.

Leave a Comment