IPv6 Address Space Assignments to RIRs
The following plots show the top-level global unicast allocations made by IANA to Regional Internet Registries (RIRs), as recorded on the IANA address assignments page. These allocations do not necessarily correspond to end-site assignments nor to actual use (we would need to analyze whois data and BGP tables for that).
We exclude certain special-purpose allocations from our plots--namely, the allocations for 6Bone (3FFE::/16 serving the IPv6 deployment testbed) and 6to4 (2002::/16 for connection of IPv6 domains via IPv4 clouds). The 6Bone space contains non-permanent allocations made in support of "an IPv6 testbed network to enable various IPv6 testing as well as to assist in the transitioning of IPv6 into the Internet" (RFC 3701, "6bone (IPv6 Testing Address Allocation) Phaseout"). We exclude the 6Bone space because of its experimental nature. The 6to4 space, in contrast, can be used for production IPv6 networks on a more or less permanent basis (until native IPv6 connectivity becomes more widespread). Anyone with a globally routable IPv4 address can immediately use a prefix of the 6to4 space set aside for that IPv4 address without the involvement of IANA or the RIRs. Because use of the 6to4 space is not managed by the RIRs, and because 6to4 prefixes are not announced in IPv6 routing tables, tracking usage of the 6to4 space is challenging. Therefore, even though the 6to4 space is not an experimental allocation, we exclude it from our plots because of the analysis difficulties.
We exclude two additional special-use blocks from our analysis. The first, 2001:0C00::/23, is designated for assignment to critical infrastructure and for experimental allocations. This block also contains the non-routable documentation block 2001:0DB8::/32 (RFC 3849). The second, 2001:0000::/23, is designated for testing and experimental use by IANA (RFC 2928).
To provide numbers that can be compared with those of Geoff Huston's IPv6 Report (our numbers correspond to the RIR-Managed numbers in the report), we plot allocation sizes in terms of /32 units (also known as /32 equivalents). For example, a /22 is equivalent to 2^(32-22) = 1,024 /32's. However, because of reserved bits in the 2000::/3 space, this simplistic method does not, strictly speaking, correctly compute the actual amount of usable space (that is, space assignable to end sites) in each allocation block. RFC 2374, "An IPv6 Aggregatable Global Unicast Address Format", states that 8 bits are reserved and must be set to zero between the TLA and NLA ID's (this does not apply to the sub-TLA space, 2001::/16). Hence, generally speaking, the allocation sizes shown in the plots below overestimate the amount of usable space by about a factor of 2 (75,264 total /32's according to the simple method of counting vs. 36,352 /32's when reserved bits are set to zero).
- IANA address assignments page -- http://www.iana.org/assignments/ipv6-unicast-address-assignments
- Geoff Huston's IPv6 Report -- http://bgp.potaroo.net/index-v6.html
- 6Bone IPv6 deployment testbed -- http://www.6bone.net/
Appendix: Analysis Scripts
We used the following scripts to generate these plots:
- ianav6_parse.pl -- parses the IANA address assignments page and outputs events
- plot-ianav6 -- reads events and generates data that can be plotted in Grace/Xmgrace
Execute these scripts as follows:
$ wget http://www.iana.org/assignments/ipv6-unicast-address-assignments $ ./ianav6_parse.pl ipv6-unicast-address-assignments | ./plot-ianav6 >assignments.dat $ ./ianav6_parse.pl ipv6-unicast-address-assignments | ./plot-ianav6 -s >assignments-stacked.dat
To plot these data files, start Xmgrace, choose the menu item Data -> Import -> ASCII..., and then select assignments.dat or assignments-stacked.dat. It may be convenient to re-use the following Xmgrace project files, which contain our exact plot settings as well as the data for 2005-08-08: ianav6.agr and ianav6-stacked.agr.