IPv6 Address Space Management Paul Wilson Raymond Plzak Axel Pawlik Document ID: ripe-261 Date: 31 October 2002 Abstract This document provides the management process for IPv6 global unicast address space whereby address allocations are made from a single global pool according to a "sparse allocation" algorithm. This allocation process will maximise aggregation of address space, ensuring that most ISPs retain a single prefix as they grow, and avoiding the address space fragmentation which results from the current IPv4 allocation technique. This document also describes the registration process and the administration of the IP6.ARPA domain. Table of Contents Abstract Table of Contents Overview Common Address Pool Sparse Allocation Algorithm Allocation Request Process Avoiding Fragmentation CAP Contention Review of Allocation Process Common Registration Service Reverse DNS (ip6.arpa) Requirements Author's Addresses Overview Under the current system of management of global IP address space, Regional Internet Registries (RIRs) are responsible for allocation of address space to organisations within their respective geographic regions. RIRs receive address space periodically from IANA, and then manage that address space as a "pool" from which subsequent allocation are made to organisations within their regions. RIRs individually use various allocation techniques within their respective pools of address space (including sparse allocation techniques), in an attempt to ensure that subsequent allocations to ISPs are able to be aggregated. Under this current system, aggregation of allocated address space is limited by several factors. These factors include the requirement for RIRs to utilise their existing pool of addresses to a level of 80% prior to requesting more address space from IANA, as well as the relatively small size of the address pools held by RIRs at any one time. Over a period of several years, a single large ISP may receive many discontiguous allocations from its RIR. This document provides a management system for IPv6 which avoids these problems by delegating to the RIRs collectively a single large pool of IPv6 address space which will be managed under a new allocation system. Under this system, an RIR wishing to make an allocation will receive that allocation from the common pool, rather than from a regional pool already held by that RIR. Furthermore, the allocation it receives from that pool will be selected so as to maximise the room for future expansion of the allocation as a single aggregatable block. Common Address Pool For the purposes of this document, the source of address space described above is referred to as the Common Address Pool (or CAP). The CAP will be established by the IANA as a single allocation of address space for management by the RIRs under this proposed framework. See IANA considerations below. Allocations from the CAP will be selected according to a Sparse Allocation (or "binary-chop") algorithm, designed to maximise aggregation of address blocks allocated. This algorithm is described in the next section. The administration of the CAP will be conducted jointly by the RIRs, through a "registration service" which is described below. For the purposes of this document, the term CRS is used to refer to the Common (Address Pool) Registration Service. Sparse Allocation Algorithm An allocation of IPv6 address space is defined uniquely by a start address (expressed as an IPv6 address) and an address block prefix (expressed as the integer number of bits in the network mask, between 0 and 64). Examples are: 2000::/3 2001::/16 2002:200::/23 2002:298::/35 Under the sparse allocation system, the start addresses for successive allocations are generated according to a simple algorithm, as illustrated below. For example, within a 6-bit address space, the first 16 start addresses would be as follows. Seq# Address Decimal 1 000000 00 2 100000 32 3 010000 16 4 110000 38 5 001000 08 6 101000 40 7 011000 24 8 111000 56 9 000100 04 10 100100 36 11 010100 20 12 110100 52 13 001100 12 14 101100 44 15 011100 28 16 111100 60 The following illustration shows this 6-bit address space (comprising 64 locations), and the location of the first 16 allocations to be made (according to their sequence number), according to the above list. |---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---| 1 | | | | | | | | | | | | | | | | | | | | 2 | | | | | | | | 3 | | | | 4 | | 5 7 6 8 9 13 11 15 10 14 12 16 The effect of the sparse allocation algorithm is to successively subdivide each remaining block of free address space into 2 equal parts, the first being left to accommodate growth of an existing allocation, and the second being made as a new allocation. In the first instance (perhaps for the first 1000-2000 allocations, or as otherwise agreed), successive blocks can be selected according to a predefined list as described above. Subsequently however, it will be desirable to select blocks of free space for subdivision according to their size and the rate of growth demonstrated by the immediately preceding allocation. See "Avoiding Fragmentation" below. Allocation Request Process When a new address block is required by an RIR, a request will be sent to the CRS for a block of the required size. The CRS will apply the sparse allocation algorithm (as described above) to determine the start address of the next free block of address space which at of at least the size required by the RIR. This block will be registered by the CRS in an internal database, and then returned to the requesting RIR. When a subsequent allocation is required by an RIR (that is, in order to expand an address block already allocated by that RIR), a request must be sent to the CRS for the expansion of an existing allocation to the required size. The CRS will then examine the current state of the Common Address Pool to ensure that the required additional space is available, and return a confirmation of the allocation (and updating internal records as above). Avoiding Fragmentation Under the sparse allocation system described here, the "distance" between neighbouring allocations is initially very large, so it is not expected that any fragmentation of address space will occur for some time. However, depending on the rate of allocation, and the rate of growth of individual allocations, the avoidance of fragmentation will need to be addressed eventually. A technique is proposed here which avoids fragmentation of address blocks which exhibit rapid growth. Before allocating a start address for any new allocation, the CAP should be examined to determine whether the immediately preceding allocation is likely to exhaust its available address space in the foreseeable future. If that preceding allocation has grown to occupy more than an agreed percentage of the address space potentially available to it, the selected start address should not be allocated. In the case below, an existing allocation A has grown to occupy 25% of the space potentially available to it. In this case, the candidate address B would not be allocated, and another address would be selected instead. A----------- space available to A ----------> ---|xxxxxxxxxx-----------|---------------------|------- ^ B-- new allocation ---> The question of which alternative address should be selected in this case could be addressed in a variety of ways, but these are not examined in this document. CAP Contention Since the CAP will be accessed by multiple RIRs, a mechanism will be required to manage possible contention by simultaneous requests. This mechanism is beyond the scope of this document. It is also recognised that a central administrative agency, even a very lightweight one, may for various reasons be unavailable or unreachable for a period of time exceeding the required response time on allocation requests. For this reason it will be necessary for the CRS to make provisional allocations to RIRs of multiple address blocks, so that each RIR always has a "reserve" to be used in the exceptional case that the CRS is unavailable. To avoid duplicate allocations, this "reserve" for each RIR would be updated by the CRS with every allocation made to that RIR. Review of Allocation Process The initial set of allocations made under this policy should be limited, on the basis that allocation system is reviewed before the limit is reached, and adjusted in light of experience. Such a review would take place within the communities of the RIRs, through the regional Open Policy Meeting processes. The initial set of allocations will have 2048 entries, with a review to be commenced immediately after the 1024th allocation is made from that set. Common Registration Service A registration service entity will be formed to act as the custodian for the global space. The operation of this entity will rotate amongst the RIRs and will be the Secretariat for the entity. Each RIR will operate a database server, the server that is located at the Secretariat will be the master, the servers at the other RIR locations will be mirrors of the master. This data base will NOT be a whois data base. It will contain only the information necessary to identify the RIR that made the allocation and the information necessary to generate the reverse delegation DNS zone file. All information required for the RIR to manage the address space and to provide whois information will be resident at the respective RIRs and subject to their specific processes and procedures. Allocations will be made from the master server by each RIR using AAA. The mirror data base servers at the other RIR locations server provide robustness to the system by being redundant to the master. Reverse DNS (ip6.arpa) Requirements Administration The ip6.arpa domain and any third level domains will be administered by the registration service entity. Technical administration will be performed by the RIR that is the Secretariat. Each RIR will operate a DNS server, the server that is located at the Secretariat will be the silent master for these domains, the servers at the other RIR locations will be mirrors of the master. The zone files will be created from the master registration data base server that is located at the secretariat location. Each RIR will operate a suite of servers that will be the secondary servers for these domains. The SOA records for these domains will be transparent. Delegation All delegations will be made on a nibble boundary regardless of allocation boundary. Thus a /32 allocation could also have a corresponding delegation, whereas a /35 would have two (2) /36 delegations. The initial delegation will consist of the two (2) /4 prefixes that comprise the unicast address space. Allocations made by the RIRs will be delegated from the appropriate /4 delegation and will be done on a nibble boundary as described above. As the number of delegations in the /4 domain grow, intermediary delegations can be made to move the flat space into a hierarchical tree. IANA Considerations This proposal is intended to provide a deterministic means of allocating address blocks. Once agreed by the relevant communities, this process can be carried out by any party. As discussed above, the algorithm used to generate start addresses will be subject to revision in the light of experience, and both the algorithm itself and the broader allocation policy will be subject to regular review by the addressing community. It is proposed that in order to maximise the benefits of the system, the entire FP001 be allocated by IANA to this system, for management by the RIRs. Author's Addresses Paul Wilson APNIC Level 1, 33 Park Road Milton QLD AUSTRALIA Phone: +61 7 3367 0490 Email: pwilson@apnic.net Raymond Plzak ARIN 3635 Concorde Parkway, Suite 200 Chantilly, Virginia United States Phone: +1 703 227 9850 Email: Plzak@arin.net Axel Pawlik RIPE NCC Singel 258 1016 AB Amsterdam The Netherlands Phone: +31 20 535 4444 Email: axel@ripe.net