On the internet, we have a formal process
on how IP address ranges are assigned.
This usually starts with the Internet Assigned Numbers
Authority, or the IANA.
And they provide blocks of IP addresses
to RIRs, which are Regional Internet Registries.
The regional internet registry then
assign subnets of those blocks to individual internet service
providers.
And the internet service provider then provides you,
the customer, with an IPv6 address that is associated with
a /48 subnet.
Here's the process that this takes.
We'll start with an Internet Assigned Numbers Authority that
is going to provide a block of addresses
to different regional internet registries.
The registry in Europe might be assigned 2A00.
In North America, we have multiple blocks
that are assigned.
It could be two 2600 2400.
But those would then be assigned to individual internet service
providers.
So in North America, our regional internet registry
might take the 2600 block and assign different subnets
to different ISPs.
So if you're on ISP 1, you might be assigned 2600:CCCC.
If you're on ISP 2, you could be assigned 2600:DDDD, and so on.
If you're part of ISP 2, one of their customers,
ISP 2 could then subnet the IPv6 address further.
So customer one might get 2600:DDDD:1111.
Customer two would get the 2222 block.
And customer 3 might get the 3333 block.
This allows us to easily subnet these
into ranges that are easy to keep track of
and easy to understand.
But everyone would then, also, get a separate block,
meaning they have a unique IPv6 address.
Let's say that you are a customer of that ISP,
and you've been assigned 2600:DDDD:1111.
Now it's up to you to subnet this further,
depending on your requirements.
For example, here's an IPv6 address
that has been created from these assigned addresses.
The first three groups of this IP address
are the ones that were assigned by the IANA, the RIR,
and ultimately, the ISP.
We refer to these 48 bits as the Global Routing Prefix.
Then you, as the customer, would create an additional locally
assigned group.
This is a subnet group of 16 bits.
And in this example, we started with the very first one,
which is 0001.
Then the rest of the IPv6 address is the Host ID,
and that's 64 bits long.
So we have an even grouping in this IPv6
address, where the first half of the address is the network,
and the second half of the address are the hosts.
This means that if we wanted to create additional networks,
we could simply change the subnet address in the middle.
So we would have a 0002 network, a 0003 network, a 4 network,
a 5 network, and so on.
With these 16 subnet bits, we could
create 65,536 total subnets and for most organizations
that is more than enough to handle their requirements.
This also means that we would have 64 bits set aside
as a Host ID, which means each individual subnet could
have 18 million trillion hosts on each subnet.
Obviously, you would not put that large number
of hosts on a single subnet.
And if you wanted to even subnet further, you could.
But we have so many subnets available,
and so many host addresses available,
that it's very common to have your network, or prefix, as 64
bits and keep the last 64 bits for your host addresses.
If we were to write out the subnet address for this
network, then, it would be 2600:DDDD:1111:0001
and the rest of this are zeros.
To create the compressed version of that subnet address,
you would use CIDR block notation,
which would be 2600:DDDD:1111:1::/64.
That /64 is the one that designates the 64 bits
for your subnet mask, leaving the 64 bits for the Host ID.
So let's say on your local network
you have an internet connection, and you
have four separate subsets that need to have IPv6 assigned.
Given the IP range that was provided by your internet
service provider, you can then add 2600:DDDD:1111:1 network,
a colon 2 network, 3, and 4.
So this allows you to configure your network
and design it any way you would like.
All you would need to do is change the subnet values
for each individual IP subnet.