IPv6 Address Allocation
128 bits ?
There are dogs walking around the streets now who know that the single biggest thing which differentiates IPv6 from IPv4 is that IPv4 addresses are 32 bits while IPv6 addresses are 128 bits. This slightly bland statement doesn't quite do justice to the magnitude of the difference, so here are a few facts and figures which highlight exactly how abundant IPv6 addresses are:-
Total IPv4 Addresses (232) | 4,294,967,296 |
---|---|
Total IPv6 Addresses (2128) | 340,282,366,920,938,463,463,374,607,431,768,211,456 |
That's a pretty big-looking number. But how big is it really ?
- There are 340,282,366,920,938,463,463,374,607,431,768,211,456 IPv6 addresses (3.4 × 1038)
- The surface area of planet Earth (including the seas) is in the region of 509,600,000,000,000,000,000mm2 (5.1 × 1020mm2). There are therefore approximately 667,744,048,118,011,113 (6.7 × 1017) - or nearly a billion billion - IP addresses available for every square millimetre of the Earth's surface
- Estimates put the age of the universe at 12 billion years. That's around 378,691,200,000,000,000 (3.8 × 1017 seconds. If we had started giving out IPv6 addresses at a rate of one per second since the beginning of the universe, we would only got through 0.00000000000000000001% (that's 1 × 10-19) of the available addresses.
It should be fairly clear that IP addresses are never going to be in short supply again
IPv6 Address Allocation
OK...now that we've got the amusing comparisons out of the way, how much address space is really available ?
Right now, addresses beginning with the bit pattern 001 (or 2000: to 3fff: in hex) are designated in RFC 3513 as "Aggregatable Global Unicast Addresses" (i.e. equivalent to the Provider-Aggregatable addresses you receive from your ISP today). This is 1/8 of the entire IPv6 address space.
IANA have begun allocating IPv6 addresses beginning with "2001:" to the various RIRs (Regional Internet Registries, currently ARIN, RIPE, APNIC and LACNIC).
At the time of writing (September 2004) less than half of the block beginning with 2001: has been given out by IANA to the RIRs. If they get through it, there are 8,188 more blocks in the Aggregatable Global Unicast Addresses range (2002: - 3ffd:, leaving out the reserved blocks) sitting on the shelf.
Each RIR is given allocations of size "/23" (i.e. IANA assigns them the first 23 bits and they carve it up). The RIRs will give the LIRs (Local Internet Registries...typically ISPs) allocations of size "/32" from these blocks. An RIR will therefore be in a position to give out 512 such LIR allocations from each "/23" they've received from IANA. In their turn, the ISPs, in turn will typically give out allocations of size "/48" to their individual customers. Each "/32" which the LIR (ISP) receives from the RIR will allow them to give a "/48" to 65,536 customers. Finally, the end-user will take the "/48" received from their ISP and will divide it up into subnets of "/64". There can be 65,535 such subnets, each with the possibility to contain 18,446,744,073,709,551,616 (264) host addresses. The idea is that every subnet (even point-to-point serial links) would be assigned a "/64" subnet, so no more doing binary arithmetic in your head !
Putting all of this together...
- 1/8 of the available address space is designated as "Aggregatable Global Unicast Addresses". This is equivalent to 1,048,576 × "/23" allocations which IANA can make to the RIRs (at the time of writing - September 2004 - they had made 46, so we should be OK for a while yet...)
- From each of these 1,048,576 "/23" allocations, the RIRs can give allocations of size "/32" to LIRs (ISP). That's 512 LIRs per "/23", for a total of 536,870,912 LIR allocations worldwide. Imagine how cheap Internet access would be in a world with five hundred million ISPs ;-)
- From each of these 536,870,912 "/32" allocations, the LIRs can give allocations of size "/48" to end-users. That's 65,536 end-users per "/32" for a total of 35,184,372,088,832 end-user allocations world-wide.
- Each of these end-users will take their "/48" and will divide it up into 65,536 "/64" subnets. There could therefore be 2,305,843,009,213,693,952 individual IP subnets world-wide.
- Each of the 2,305,843,009,213,693,952 could contain up to 18,446,744,073,709,551,616 individual hosts (now there's a broadcast domain for you !!) for a total of 425,35,295,865,117,307,932,921,825,928,971,026,432 (4 × 1037) possible Internet hosts
And all that is before the portions of the IPv6 address space currently unassigned (more than ½ of the total) is even looked at !
References
- RFC 3513, Internet Protocol Version 6 (IPv6) Addressing Architecture
- http://www.iana.org/assignments/ipv6-tla-assignments, IPV6 Top Level Aggregation Identifier Assignments
- IPv6 Address Allocation and Assignment Policy (26 June 2002)