(Based on first drafts from Davide Salomoni)
IPv6 addresses are 128 bit (16 bytes) long, compared to the 32 bit (4 bytes)
addresses of IPv4. The address allocation for the IPv6 addresses is managed, as
for the IPv4 addresses, by the Regional Local Internet Registries (for the
One of the goals the IPv6 suite wants to reach is that of efficient address allocation, both in terms of routing table allocation and of routing performance; the IPv6 addresses being so bigger than IPv4 addresses, it's necessary to think right from the start about hierarchical allocation of the address space. As an example of this, ARIN have allocated a CIDR (Classless Inter-Domain Routing) block of IPv6 addresses to ESnet; ESnet, being at the moment our "Internet service provider", have allocated to SLAC a subset of their IPv6 addresses.
The IPv6 addresses allocated by ESnet to SLAC are the block 2001:0400:0e10::/48; this means that all of the SLAC IPv6 addresses will begin with these 6 bytes. These 6 bytes are called the Public Routing Topology (PRT) prefix. Since an IPv6 address is made of 16 bytes, we are left with 10 bytes to allocate. This document details the internal allocation of the SLAC IPv6 addresses.
Let's examine the various parts of the PRT prefix; to do this, we need to write it in binary form (see RFC2373, RFC3188 for more details):
20 |
01 |
04 |
00 |
0e |
10 |
00100000 |
00000001 |
00000100 |
00000000 |
00001110 |
00010000 |
The new address allocation should cover the following issues:
The EUI-64 standard identifies a networked interface at the physical layer (what we usually call now the "MAC Address"); this identification is stored in the last 64 bits of the IPv6 address. In other words, the last 8 bytes of an IPv6 address (rather than the current 6 bytes of e.g. an Ethernet address) are used for interface identification.
We are therefore left with 128 (original IPv6 address) -48 (SLAC PRT prefix) -64 (interface ID) = 16 bits to create our hierarchical IPv6 address space. These 16 bits are called the Site-Level Aggregation (SLA) ID.
The SLA ID, starting from the leftmost bit, is defined here as follow:
With this allocation structure, an example of a complete IPv6 test address for test ID = 1 will be the following:
20 |
01 |
04 |
00 |
0e |
10 |
00 |
01 |
|
|
|
|
|
|
|
|
00100000 |
00000001 |
00000100 |
00000000 |
00001110 |
00010000 |
00000000 |
00000001 |
|
|
|
|
|
|
|
|
SLAC PRT Prefix |
Service ID |
Test ID |
64-bit Interface ID |
An host in LAN 1 will have the following IPv6 address:
20 |
01 |
04 |
00 |
0e |
10 |
10 |
01 |
|
|
|
|
|
|
|
|
00100000 |
00000001 |
00000100 |
00000000 |
00001110 |
00010000 |
00010000 |
00000001 |
|
|
|
|
|
|
|
|
SLAC PRT Prefix |
Service ID |
LAN ID |
64-bit Interface ID |
And finally, an IFZ address for IFZ LAN 1 will look like the following:
20 |
01 |
04 |
00 |
0e |
10 |
20 |
01 |
|
|
|
|
|
|
|
|
00100000 |
00000001 |
00000100 |
00000000 |
00001110 |
00010000 |
00100000 |
00000001 |
|
|
|
|
|
|
|
|
SLAC PRT Prefix |
Service ID |
LAN ID |
64-bit Interface ID |
It is likely that it will take some time before all the IPv6 features (among them, routing infrastructure, automatic DNS updates, general availability of IPv6 stacks on hosts) are in place; this transitional period will be very beneficial to validate this proposal. Even renumbering hosts, thanks to the IPv6 autoconfiguration, won't be much of a problem - the only things that will have to be manually changed in case this plan is modified (provided DNSv6 is working properly) are the IPv6 prefixes on the routers.
Back to IPV6 Main Page