As
we discussed in the IPv6 Background Page, Internet
Protocol Version 6 or IPv6 is the next generation
of the Internet Protocol or IP.
In
many ways IPv6 can be compared to IPv4, however,
it is also VERY different in many ways. To place
things in perspective, we’ll use examples
of IPv4 from time to time.
IPv4
as we know it today, is a 32 bit address, represented
in decimal with a ‘dotted quad’ notation.
Examples of an IPv4 address may look something like:
10.137.1.12
10.137.1.12/255.255.255.0
10.137.1.12/24
Some
techniques from IPv4 that we are generally familiar
with are:
- Network
Address Translation
- Port
Address Translation
- Address
Resolution Protocol
- Broadcast,
etc.
Now
the fun of IPv6 starts. An IPv6 address is a 128
bit address, represented in Hexadecimal notation.
An
example of a fully qualified address:
2001:0bd8:0def:0000:0000:0000:0000:0001/64
Or
we can use a technique called elision. This allows
us to write the address in more compressed format
using the following rules:
The
anatomy of a global IPv6 address is looked at in
the following manner. In this case we’ll assume
this allocation was a /32.
| 2001:0bd8: |
0def:0000: |
0000:0000:0000:0001/64 |
| Global
Prefix |
Subnet |
Interface ID |
This
example looks at the traditional anatomy of a typical
IPv6 address. In this case:
-
The first 32bits ( 1-32 )are reserved for the
global prefix, not unlike IPv4.
- The
2nd 32bits ( 33-64 ) are available for sub-netting.
In this example, ~4.2 billion subnets.
- The
last 64 bits ( 65-128 ) are generally reserved
for the interface ID (EUI-64 format).
This
example is a classical application of the spirit
of IPv6 reserving the last 64bits for the host address.
Many have varying opinions of this as that would
give 1.8 Quadrillion addresses to a given segment.
One
other characteristic of IPv6 that will change the
way things are calculated is that IPv6 has no concept
of a broadcast address. A quick example is an address
with a prefix of /126; that will yield 3 usable
addresses.
Also,
with IPv6, there is more than one type of address.
The examples above are a global unicast address.
There are also, the following types of addresses:
Global
Unicast – This is the type of address
that we examined above. Conceptually similar to
today’s IPv4 public addresses.
Link
Local – The name gives it away. This
is an address that is valid ONLY on the local segment.
A link local address has a prefix of fe80::/8. Again,
this is valid only on the local segment.
Anycast
– Anycast addresses are a single
address that is assigned to multiple resources.
In other words, a packet sent to an Anycast address
is routed/delivered to the first available node
in the ‘Anycast Group’
Multicast
– In IPv6 Multicast is very similar to what
existed in IPv4. However, depending on the operation
there may be specialized addresses such as …
FF02:0:0:0:0:0:0:1
All Nodes Address
FF02:0:0:0:0:0:0:2 All Routers Address
Note:
There are many more. RFC4291 is a good resource.
Many
things are different in IPv6, such as the addressing,
no broadcast addresses, no arp, and NAT (Network
Address Translation) are no longer used.
As
you read, keep in mind, on a random host, there
will be at least two addresses on each interface:
the link local address and the global address. Also,
if implemented in your Operating system there may
be a ‘privacy address.’
A
privacy address technically falls into the category
of Global Unicast. However, the EUI-64 address is
randomized based on a proprietary hash to make the
station anonymous. This is powerful in terms of
privacy for the home user, however, consider the
implications in the Enterprise.
This
is just a high level synopsis of IPv6. In order
to enhance the questions and technical debate, we
have set up discussion groups dedicated solely to
the IPv6 protocol and associated technologies.