I am back again with the second post in this series, in the first post we had an overview of IPv6 and the need for it in the near future. In this post we will start breaking the technical ice of IPv6; I am going to discuss basic IPv6 addressing. This will need more than one post to finish.
My philosophy for this series will be “Cut the jargon and keep things, simple and straight as possible”. That’s why I will try to keep it short and to the point . Let us begin:
IPv6 Address size and space:
This is the major change that were made to IPv6 vs IPv4 and was the biggest reason to create this thingIPv6 from the beginning. The need for more address space; but how many will be enough?
IPv6 size was increased from the 32bit in IPv4 to 128bit which is really a very large address space. Open your calculator and do the math yourself to come up with the address space size (2128); its a very long number that I will not write here because I was not able to read it. However, to make it easy on you IPv6 provides about 340 trillion address.
This big address space is to ensure that we will never run of addresses again, at least this is not imaginable so far. May be the depletion of IPv4 due to unexpected changes in technology was the motive beyond this overestimation or underestimation “the days will tell, may be hundred years from now :)”.
IPv6 Address representation:
IPv4 addresses are represented in the known dotted decimal format by converting every 8bits block to its decimal equivalent and separating them by dots. Using the same dotted decimal representation for IPv6 is not very practical specially for humans. To make the IPv6 address representation shorter it was decided to use a hexadecimal representation. I will have to admit that it enhances the situation a little bit, however IPv6 representation is still ugly at least in my point of view.
The hexadecimal notation converts each 16bits block into its hexadecimal equivalent and delimited with a colon instead of the dot used for IPv4. Here is an example below:
The address above is using the hexadecimal colon notation that we talked about each two bytes are written in hexa format with a colon separating them. One of the common shortcuts that can be used is the zero compression technique.
The zero compression technique allows a single contiguous sequence of 16-bit blocks set to zero in the colon hexadecimal format can be compressed to ::, known as a double colon. However this double colon can appear only once in the address representation. Look at above address rewritten using this method:
It becomes shorter, but still ugly 🙂
IPv6 Prefix numbers:
IPv6 still needs to be subnetted to keep routing tables manageable, so please keep your old information about subnetting, Network and Host IDs.
Prefixes for IPv6 subnet identifiers and routes are expressed in the same way as Classless Inter-Domain Routing (CIDR) notation for IPv4. An IPv6 prefix is written in address/prefix-length notation.
Lets look at an example below:
In the above example the first 48 bits of the address represents the main prefix or network ID and the last 80 bits are used for individual host ID. The prefix notation will be found in routing tables and used to express main networks or subnets.
Of course you can still subnet the main prefix to as you used to do with IPv4 networks, however its a little bit harder and will need some practice. You can also use an IPv6 subnet calculator to automate the Job.
IPv6 Address types:
We are used to the normal Unicast, Multicast and Broadcast address types of IPv4. The first two is still used by IPv6 while the latter is not used anymore. However, IPv6 also has three address types as summarized below:
Unicast Addresses: These are the ones you know, normal unicast addresses assigned to hosts and router interfaces. Packets destined to unicast address are delivered to a single interface.
Multicast Addresses: These are addresses that represent various groups of IP devices: a message sent to a multicast address goes to all devices in the group.
Anycast Addresses: Anycast addresse identifies multiple interfaces. Packets destined to anycast address are delivered to the nearest interface identified by the address. Anycast addressing is used when a message must be sent to any member of a group, but does not need to be sent to them all.
The broadcast addressing of IPv4 does not exist in IPv6. All broadcast types of IPv4 are performed using multicast address type of IPv6.
P.S.: IPv6 addressing is outlined in RFC 2460 and most of the details are in RFC3513 and 3587.
That’s it for today, please never hesitate to ask your questions, send your corrections and feedback to make the best of this thread. See you next time.