Originally Posted by
gregoryfenton
Each server can have /56 addresses (72,057,594,037,927,935 possible addresses but unfortunately you have to assign them manually.
The /56 is an extremely annoying subnet mask used by OVH (which breaks a lot of stuff that can't use LAN segments). In actuality you can "only" assign /64 addresses though (but /56 is still needed for the OVH configuration). Nevertheless, that's a whopping 18,446,744,073,709,551,616 possible IP addresses you can use
I still cant get my head around the numbers involved in IPv6!!
The thing that might confuse some regarding its notation is the permitted use of abbreviations and hexadecimal values.
For IPv4 it's 4 sets of numbers ranging from 0..255, the hexadecimal equivalent of 00h..FFh (a byte); in IPv6, it's 8 sets of numbers ranging from 0..65535, the equivalent of 0000h..FFFFh (unsigned word);
As for hexadecimal values, the leading zero is insignificant as long as we know the full range. So for IPv6, we could for example reduce "000F" to simply "F". "0D22" becomes "D22", etc. So an IPv6 address of
2001:41D0:0001:5803:0001:0002:0003:0004 can be shortened to
2001:41D0:1:5803:1:2:3:4.
Now what about the hexadecimal value of "0000"? Is that "nothing" or "0" or...? Well, this is where the IPv6 abbreviation come into play. Normally, it's "0". So the following IPv6 address
2001:41D0:0000:5803:0000:0000:0000:0001 can safely be rewritten as
2001:41D0:0:5803:0:0:0:1.
But the portion of
0:0:0 can further be reduced with the double-colon abbreviation (:. You can read it as "two or more sets of zeros", whereby we understand that sets are normally separated by a single colon. So the same IPv6 address above becomes
2001:41D0:0:5803::1. The remaining zero in this example can't be replaced by the double-colon for two reasons: 1) it's not
two or more sets (just a single set) and 2) you can use the double-colon only once in an IPv6 address.
The 127.0.0.1 of IPv6 is
0000:0000:0000:0000:0000:0000:0001 and is simply rewritten as
::1. Most applications, which use "0.0.0.0" for a "Listen to all IPs" (ie., a web server) use the "[::]" or "::" for "Listen to all IPv6 addresses".
Now, since you have trillions of more IP addresses to pick from in IPv6, the subnets are different from IPv4 as well. For IPv4 you end at /32 (which is equivalent to a "255.255.255.255" subnet mask).
For IPv6 you end at /128. So using
2001:41D0:1:5803:1:2:3:4 again as an example:
2001:... = /16
2001:41D0:... = /32
2001:41D0:1:... = /48
2001:41D0:1:5803:... = /64
2001:41D0:1:5803:1:... = /80
2001:41D0:1:5803:1:2:... = /96
2001:41D0:1:5803:1:2:3... = /112
2001:41D0:1:5803:1:2:3:4 = /128
Interestingly, the smallest network subnet that can be assigned to an end user is /64. You'd think that's a bit of a waste of the world's available IPv6 addresses - especially since IPv4 has almost been used up by "wasting" - but if you look at it by the number of available IPs, it'll show something different...
Each /32 addressing gives 65536 subnets. Each of those have yet another 65536 subnets. 65536 x 65536 is 4,294,967,296 - the total amount of IPv4 addresses (including the private and reserved IP ranges). Then each of those 4 billion+ are further delegated by a /64 (18,446,744,073,709,551,616 IPs). So it's enough for each person in the world to give every dust particle in their house its own IP address without conflicts...
I hope this makes some sense!