Вы находитесь на странице: 1из 6

Reduce IP Address Fragmentation through Allocation

Mei Wang Larry Dunn Wei Mao Tao Chen

Cisco Systems, Inc. China Internet Network Information Center


{mei, ldunn}@cisco.com {mao, chentao}@cnnic.cn

Abstract— The scalability of Internet addressing and routing the lessons from IPv4, study and design address allocation
has been a serious issue and becomes a more urgent problem schemes that induce minimum fragmentation,
today because of driving factors like IPv6. A radical impacting In this paper, we propose a scheme called GAP: Growth-
element of the scalability is address allocation, as it directly
affects routing table structure, hence, IP lookup and routing based Address Partitioning. GAP takes the growth rate of
efficiency. each customer into account and partitions the address space
A key problem in IPv4 today is address fragmentation, i.e., accordingly to provide the maximum space for each customer.
one entity is represented by multiple non-contiguous IP address We use the real world data to demonstrate that, compared
blocks in the routing table. Address fragmentation increases to the current allocation methods, GAP significantly reduces
routing table size, therefore degrades scalability. Existing address
allocation practices are a major contributor to address fragmen- address fragmentation and improves the efficiency of address
tation. usage.
In this paper, we demonstrate that the performance of ad- We are also developing a software package for further
dress allocation can be dramatically improved. We propose a studies and experiments in address allocation. This software
new address allocation algorithm called GAP: Growth-based can take dynamic requests and simulate real allocations. The
Address Partitioning. Through real data, we show that GAP
can reduce fragmentation by 90% compared to the existing graphics in this software enables the visualization of address
allocation schemes. This is significant for reducing routing table allocations. It provides a platform for analysis of different
size, increasing scalability, and improving the performance of the allocation algorithms and policies.
Internet. We also introduce a software tool being developed for These studies and results would be instrumental in providing
address allocation.
technical guidelines for setting the right policies and standards
for IPv6 address allocation at all levels across the world.
I. I NTRODUCTION The rest of this paper is organized as follows: Section II lays
out the background for how addresses are allocated nowadays.
The Internet routing and addressing scalability is becoming Section III introduces GAP scheme. Section IV presents the
an urgent issue [1]. The fast increasing number of users, multi- result comparisons using real data. Section V describes the
homing, IPv6 [3], traffic engineering, and policy routing are software package for address allocation. Section VI shares
all posing more challenges to the scalability of the Internet. some discussions and future directions.
IP address fragmentation is a critical factor that impacts
addressing and routing scalability, it is also a key problem
II. H OW ARE ADDRESSES ALLOCATED
in IPv4 today. Address fragmentation is the phenomenon
in which a single entity on the network has multiple non- The hierarchical IP address allocation structure is depicted
contiguous IP address blocks or prefixes instead of a single in Figure 1. The size of the address blocks decreases with
prefix in the routing table. Address fragmentation increases each increasing level of the hierarchy. The addresses at the
routing table size, therefore degrades scalability as well as top of the hierarchy are controlled by the Internet Assigned
IP address lookup and routing performance in routers. The Numbers Authority (IANA). IANA allocates large address
opposite of fragmentation is aggregation, combining separated blocks to each of the five Regional Internet Registries (RIRs)
prefixes into one. serving North America (ARIN), Europe (RIPE), Asia Pa-
One major contributor to address fragmentation is a poor ad- cific (APNIC), Africa (AfriNIC), and Latin America and
dress allocation policy. This is because addresses are allocated the Caribbean (LACNIC). The regional registries divide up
to an entity on an as-needed basis. A customer would often file these large address blocks into medium blocks to allocate to
multiple separate requests for addresses over time as it grows. Local Internet Registries (LIRs), consisting mainly of Internet
Thus, the address assignments to the same customer might end Service Providers (ISPs). The ISPs further assign small address
up being non-contiguous. Avoiding, or minimizing, address blocks to their customers, including smaller ISPs, companies,
space fragmentation is a major goal of address allocation. universities, etc.
Little work has been done in the area of address allocation An address allocation consists of three technical elements:
since the massive allocation of IPv4 addresses years ago. As 1) the size of the allocation; 2) the location of the allocation in
IPv6 is taking off, its larger address space (due to 128-bit the address space pool; 3) the requirements a customer needs
addresses) can aggravate the problem. Thus, now is a life time to meet before requesting further expansion. An allocation
opportunity to do it right from the beginning for IPv6, learning standard at each layer should address these three aspects.

1-4244-1251-X/07/$25.00 ©2007 IEEE. 371


Fig. 1. The hierarchy of IP address allocation and the policies on Fig. 2. Bisection scheme.
allocation sizes at different layers.

to its simplicity, sequential scheme is commonly deployed in


At present, documents on allocation mainly specify the size the real world practice. It is a good scheme if the requested
of prefixes and the criteria for allocation expansion. Few sizes are static, i.e., there is no growth of each customer, the
specific procedures exist on how the address space should be total required size for each customer is fixed at the beginning
partitioned, which is the focus of this work, as it is important of the allocation. This is obviously not the case in reality.
to the network structure. For the rest of this paper, we will Each entity often requests a relatively small address block at
refer standards on allocation sizes as “allocation policies”, as the beginning, then comes back for more as it grows, as we
sizes are the main specifications in the current policies; we will will see in real allocation request patterns in section IV.
use “allocation algorithms” to denote address space partitions,
2) Bisection scheme: Bisection scheme is proposed for
i.e., where the addresses are allocated. We will introduce the
IPv6 address allocation practice by regional registries [19].
current practices in these two areas separately in the following
Address blocks are allocated in the following way: each new
two subsections.
address block is allocated by evenly splitting the maximum
available space on the address line between the existing cus-
A. Existing allocation policies tomer and the new customer. This leaves maximum possible
Allocation policies vary for different registries at different space for potential growth of both customers.
layers of the hierarchy. Allocation policies on initial allocation To illustrate this scheme, an example is demonstrated in
size at different levels are shown in Figure 1. For example, in Figure 2. Each customer is given an ID labeling the incoming
the current IPv4 policies [13]–[15], IANA allocates to RIRs sequence of the customers. The first four customers are allo-
in the unit of /8. Different RIRs adopt their own policies for cated by dividing the total address space equally into four parts
allocations to LIR/ISPs with unit sizes varying from /10 to as shown in Figure 2(a). When the fifth customer applies for
/20. The sizes assigned to end users by each ISP also vary an address block, it is placed to evenly split the section labeled
greatly. Due to historical allocation schemes, fragmentation is by the arrow in Figure 2(b). The 6th, 7th, and 8th customer
a common problem in IPv4 [8]: one ISP is often left with will be placed sequentially in the spaces after the 3rd, 2nd,
multiple prefixes. and 4th customer, respectively. Only after the largest empty
For IPv6, although there are 128 bits in the IP address, the slots have been exhausted, will new allocations be assigned to
last 64 bits are assigned to interface ID [4], e.g., an ethernets bisect the smaller slots at the next level. A similar technique
MAC address. Thus, address allocation only considers the can be found for dynamic memory allocation in Operating
top 64 bits. Allocation policies [17] in terms of size are Systems.
shown in Figure 1. There is a proposal [19] from major RIRs Bisection scheme treats each customer equally, it uniformly
recommending a Common Address Pool (CAP) in IANA for separates the allocated blocks to maximize the spacing be-
all RIRs, instead of each RIR keeping a separate pool of tween customers. Regardless whether a customer is big or
addresses for allocation. small, as far as it comes in as the 5th customer in the address
requesting sequence, this customer is always allocated into the
space as shown in Figure 2(b). In reality, different customers
B. Existing allocation algorithms are likely to require different sizes in the address space and
A good allocation algorithm can be applied to any layer in have different growth rates. Thus this uniform partition may
the allocation hierarchy and any registry. It can be combined not be the most efficient way to utilize the address space
with the allocation policy to provide efficient usage of address and give each customer adequate amount of space to grow,
space and preserve address aggregation. especially when there are a few very fast-growing customers.
There are two address allocation schemes that are currently These fast-growers can run out of space for further expansion,
deployed in the real world: the sequential scheme and the due to their occupying neighbors, this phenomenon is called
bisection scheme. collision. When collision occurs, the provider can either find
1) Sequential scheme: Using sequential scheme, each new a separate location on the address line or still expand the
request is allocated into the first empty space available from customer’s space by carving out the section already occupied
left to right on the address line that fits the requested size. Due by its neighbor. Both options lead to fragmentation: non-

1-4244-1251-X/07/$25.00 ©2007 IEEE. 372


continuous address blocks for one entity, i.e., more than one
prefix representing a single entity in the routing table. Such
practice should be avoided whenever it is possible. A third
option is to move either one of the two customers to a different
address location, which will create much hassle and may not
always be viable.

III. GAP: G ROWTH - BASED A DDRESS PARTITIONING Fig. 3. GAP scheme.

To reduce collisions and utilize the address space more


efficiently, we propose Growth-based Address Partitioning
(GAP) scheme to make allocations based on the growth of
each customer. When there are n exiting customers, there are
at most n possible address location candidates for the (n+1)th
customer. Instead of treating each customer equally, as in the
bisection scheme, the GAP scheme evaluates all the options
and chooses the location based on the existing customers’ sizes
and their growth-rates, the available space sizes, as well as the
size and the growth-rate of the new customer. For example, one
can choose the location for the new customer that maximizes
the time before the first collision is projected to take place.
Because the prefix bits are binary, the newly allocated block
has to start at the middle point of the available address space.
Let us assume for now that the growth rate information is Fig. 4. An example of the GAP scheme. The relationship of customers
growth-rates: r2 > r1 > r4 = r5  r3 > r6 .
available. We will further discuss how to obtain the growth-
rate of each customer later. As shown in Figure 3, we define:
n: the number of existing customers;
figure that by the time customer 5 arrives, customer 2 has
n+1: the new customer;
already doubled its space occupation due to its fast growth.
Ai : i=1,...,n,n+1,
The best location for customer 5 would be after 3, according
the allocation for each customer;
to Eq.1, since customer 3 has the slowest growth rate. Note
ri : i=1,...,n,n+1,
that allocation 1 is still far from filling up its potential growth
the growth rate of each customer;
space up to the bisection point. Even so, allocation 5 is not
Xi : i=1,...,n, the empty space available
assigned after allocation 1 because of the fast growth rate of
for the existing customer to grow, i.e.,
1, in contrast to the previous scheme. Figure 4(c) shows that
the empty space behind each allocated block
although the spaces after customers 3 and 5 are smaller than
to bisection point;
those after 1, 2, and 4, all five spaces are treated as candidates
Yi : i=1,...,n, the empty space available
for the 6th customer. Customer 6, along with customer 3,
for newly allocated customer to grow;
has an extremely slow growth rate compared to other existing
The new location is chosen to maximize the time before customers. Based on Eq.1, customer 6 is placed in the small
anybody runs out of space to grow, i.e., the first collision empty space after customer 3. This leaves the fast growers
occurs, using: more space for potential expansion and also saves the larger
blocks for future customers that may need more space.
max{min[t(Xi , Ai , ri ), t(Yi , An+1 , rn+1 )], i = 1, ..., n}.
(1) In order for two address blocks to be aggregated into one
t(X, A, r) is the time it takes for an allocation with size A and prefix, not only do these two address blocks have to be adja-
growth rate r to fill up the space X. In other words, the new cent to each other, but also the aggregated address space size
location is chosen among all available spaces that maximizes has to be an integer power of two. This is because IP addresses
the time it takes for either the existing or the new customer to represent binary address blocks. This constraint limits the ways
run into the boundary. Function t(X, A, r) can be of different one can allocate IP addresses to optimally utilize address space
forms depending on the definition of growth rate r. while maximizing aggregations. For example, in Figure 4(b),
This scheme is further illustrated by an example in Figure all possible choices for a new customer 5 are indicated by
4. For a given address space, we consider allocations for the arrows. Any other choice will not lead to better address
six customers. Assume the order of their growth rates to be: aggregation for the future growth of these five customers.
r2 > r1 > r4 = r5  r3 > r6 , where the indices label the Extensive theoretical analysis and simulations [2] have
incoming sequence of the customers. The address locations demonstrated that GAP outperforms the existing allocation
for the first four customers are shown in Figure 4(a). The schemes. How well will this algorithm work in real world
5th customer can choose among the four bisection points settings? Next section will focus on the results using real
indicated by the arrows in Figure 4(b). We can see from the allocation data.

1-4244-1251-X/07/$25.00 ©2007 IEEE. 373


Comparison using APNIC allocation data
IV. E VALUATIONS WITH R EAL DATA
160

An efficient address allocation scheme can benefit both IPv4 140


and IPv6. However, as IPv4 space is already getting very Existing APNIC allocation
120 New algorithm (GAP)
saturated, how well will a scheme work for the imminent IPv6

Number of fragmentations
allocations demands the focus of the design. The best way to 100

test it is applying the scheme to real data. However, there are 80

very few real IPv6 data available nowadays, while we have a 60

long history of IPv4 allocations. What if we had adopted this 40


proposed allocation algorithm for IPv4 say, six months, one
20
year, or even ten years ago? How would the results compare
with that of the existing allocation? These result comparisons 0
6/2006 7/2006 8/2006 9/2006 10/2006 11/2006 12/2006
Allocation date
can be an objective judgement on how good of an allocation
algorithm is. Fig. 5. With real allocation data from APNIC, the number of fragmentation
Following this thought, we conducted experiments using is significantly reduced using GAP compared to the existing allocation.
data from existing IPv4 allocations from a regional registry
and a country registry. These data are the historical address Comparison using CNNIC allocation data
requesting sequences from various customers. They are fed 140

into the GAP engine in the identical order as they were ac-
120
tually requested, without any knowledge of future allocations. Existing CNNIC allocation
New algorithm (GAP)
This makes it an apple-to-apple comparison with the existing 100

Number of fragmentations
allocations. 80
Without any additional information, GAP estimates the
growth rate of each customer based its requesting history 60

data. According to these growth projections, GAP allocates 40

the address blocks to prolong the time to collision.


20

0
6/2000 12/2000 6/2001 12/2001 6/2002 12/2002 6/2003 12/2003 6/2004 12/2004
A. Data from Asia Pacific Region Allocation date

The real allocation data for Asia Pacific region are from Fig. 6. With real allocation data from CNNIC, the number of fragmentation
Asia Pacific Network Information Center (APNIC). Being one is significantly reduced using GAP compared to the existing allocation.
of the five Regional Internet Registries in the world, APNIC
is in charge of the address allocation and management in Asia
Pacific region.
The data from APNIC span from July 1, 1985 to December registry, in charge of IP address allocation and management
27, 2006. The address blocks are allocated to a region or in China. The same methodology is used for this set of data
a large ISP directly. We processed the data based on each as for APNIC data. The comparison results in Figure 6 show
country or region as an entity. Each entity has a unique ID. the number of fragmentation is reduced from 124 to 30 using
There are 52 entities total in this set of data. To show an GAP.
example, a block of the address 122/7 is used in the experiment In both experiments with APNIC and CNNIC data, the
shown here. Thus, the total address space in this block is 225 . online allocations using GAP fulfilled the same address allo-
The assignments in this block are very recent: from May 2006 cation requests with a much higher degree of aggregation. All
to December 2006. There are 21 entities assigned to this block. the results we experimented consistently demonstrate similar
The largest number of requests from a single entity during degree of improvement in reducing fragmentation using GAP.
this period of time is 39. Among these 21 entities, 6 of them These experiments are conducted based on the constraint
requested for address blocks only once. The majority of the that only one block of addresses, i.e., a small fraction of the
entities (16 out of 21) requested less than 10 times. As 80/20 entire address space, is available as the total address pool
rule indicates, the major part of the address space is assigned for allocation, which has limited room to enable the full
to few entities. advantages of GAP. Also the time span we look at is relatively
The comparison results in terms of the number of fragmen- short. If larger total address space and longer time duration are
tation are shown in Figure 5. Using the same set of APNIC given, the gain of using GAP can be even more substantial,
data, GAP reduces the number of fragmentation from 150 to as more time and space give the algorithm additional buffer
16 compared to the current allocations, a 90% reduction of to better arrange the addresses. This is why it is critical to
fragmentation. do the address allocation right for IPv6 from the beginning.
Further more, these results are achieved without any addi-
tional information taken from customers. All the growth rate
B. Data from China information is derived empirically from the historical data.
The real allocation data for China are from China Internet If projected growths are provided by individual organization
Network Information Center (CNNIC). CNNIC is a country when it requests addresses, even larger enhancements can be

1-4244-1251-X/07/$25.00 ©2007 IEEE. 374


accomplished. implemented and easily plugged in for studies and compar-
isons. Using this software, the results from different algorithms
V. S OFTWARE FOR ADDRESS ALLOCATION can be verified directly.

We are developing a software tool to provide a platform for


VI. D ISCUSSIONS AND FUTURE DIRECTION
address allocation analysis and a visualization for allocation
results. Currently, this software is working for demonstrations The benefits of using GAP algorithm is proportional to
and research studies, we are working to make it a production the accuracy of growth rate information provided. In the
quality software that can be deployed in real allocations and GAP algorithm described in Section III, we assumed that the
available to broader audience. growth-rates are known. Theoretical analysis and simulations
Simulating real allocation process, this software takes ad- demonstrated huge gains when we possess the growth-rates
dress requests in terms of address block sizes from users with [2].
IDs. Then the optimum allocation space for a specific request The estimation of the growth can be acquired through
is calculated based on the allocation algorithm (GAP currently) various means. Each address provider (a registry, an ISP,
implemented in this software, according to all the existing or a company) can access the information of its customers’
customers and previous allocations in the database. The new utilization. Address providers can also collect the growth esti-
allocation is displayed graphically in the total address space. mations directly from customers while continuously calibrate
Figure 7 shows an example. The x-axis is the IP address space, these estimations by monitoring customers’ utilization. Price
the y-axis is time, indicating the year an allocation is made. related incentives can be applied to help collect more accurate
Each customer’s allocation is represented by a horizontal bar estimations of growth rates from customers.
in different color, the position of the bar in the figure shows This scheme still works even when the estimation of the
the allocation time and the location in the address space. The growth rate is not accurate or even wrong. Because for
length of the bar indicates the size of the allocation. Viewing each address allocation there is still space left for potential
the new allocation, in relations with other assignments, the growth. Since we check each available block’s growth every
customer has options to take this assignment or choose a time inserting a new comer, the growth rate can be adjusted
different one. The software also provides the capability for frequently and adaptively according to any changes. GAP is
customers to manually choose a block themselves. Once the online optimum at each step of allocations. In the experiments
assignment is confirmed, the new information is stored in using real data described in Section IV, no estimation of future
the database and displayed permanently in the figure. The growth is provided by customers. The estimated growth of
space immediately above x-axis in Figure 7 shows the overall each customer was derived from its growth history and current
address space occupancy up to date. utilization. GAP shows obvious advantages even in this case.
There are two main parts of the software: the front end takes We have been discussing with registries, as well as policy
the request input dynamically and displays the latest address and standard bodies during this research project. After the
space occupancy graphically; the back end is the address research stage, with all the results, data, and facts, we are
allocation algorithm engine that calculates the online optimum encouraged to officially submit a proposal for standard in
assignment. There is a database where the allocation requests the near future. This will stimulate more studies in deploying
and assignments are stored. Both front engine and back engine efficient allocation algorithms into real practices. The results
refer to the database for inputs and results. will benefit future network in the long run.
A good visualization software can be very instrumental to
address allocation at all levels. Being able to visualize the VII. C ONCLUSIONS
allocations makes it easier for both the customers and address We use real IP address allocation data to demonstrate that
providers. Customers can view what they are offered more GAP, an algorithm based on growth-rate, can dramatically
intuitively. It is more efficient for the registries or ISPs who reduce address fragmentation. This will control routing table
are assigning the addresses to manage the whole address pool size and increase the scalability of the network. The first
using this software. software tool for address allocation is also being developed
How to effectively display the address space and the alloca- and introduced in this work. Both of these results are meant
tions was a challenge. Due to the characteristics of the address to lead to more research and standardization in the area of
prefixes, address blocks connected together are not necessarily address allocation.
able to be aggregated into one prefix. The aggregation has to
be intelligently shown based on both the continuity of the
prefixes and their locations in the address space. Also, how R EFERENCES
to demonstrate a large address space with many assignments [1] IETF Internet Architecture Board, Routing and Address Workshop, Oc-
is not an easy task either. In addition to these difficulties, we tober 2006.
[2] Mei Wang, A growth-based Address Allocation Scheme for IPv6, Net-
have also tried to tackle the issues for comparing different working, 2005.
algorithms visually. [3] S. Deering, R. Hinden. RFC2460 Internet Protocol, Version 6 (IPv6)
This software provides a platform to systematically analyze Specification.
[4] R. Hinden, S. Deering. RFC2373 IP Version 6 Addressing Architecture.
and compare the correctness and performance of different [5] R. Hinden, S. Deering. RFC2374 IPv6 Aggregatable global unicast
address allocation schemes. Any allocation algorithm can be address format.

1-4244-1251-X/07/$25.00 ©2007 IEEE. 375


Fig. 7. A snapshot of the software tool with the implementation of GAP algorithm. The software provides a visualization for allocation results and a platform
for address allocation analysis.

[6] Z. Xu, X. Meng, C. J. Wittbrodt, S. Lu, L. Zhang. IPv4 Address


Allocation and the Evolution of the BGP Routing Table. UCLA Computer
Science Department, 2003.
[7] H. Narayan, R. Govindan, G. Varghese. The Impact of Address Allocation
and Routing on the Structure and Implementation of Routing Tables.
SIGCOMM 2003.
[8] T. Bu, L. Gao and D. Towsley. On Characterizing Routing table growth.
Proceedings of Global Internet 2002.
[9] G. Huston. Allocations vs. Anouncements, The ISP Column, May 2004.
[10] K. Hubbard, M. Kosters, D. Conrad, K. Karrenberg, J. Postel. RFC 2050
Internet Registry IP Allocation Guidelines, November 1996.
[11] A. Durand. RFC 3194 The HD Ratio for Address Assignment Efficiency
[12] IPv4 Address Space Report, http://bgp.potaroo.net/ipv4/
[13] M. Kuhne, P. Rendek, S. Wilmot, L. Vegoda. IPv4 Address Allocation
and Assignment Policies for the RIPE NCC Service Region, October
2003.
[14] ARIN. IPv4 Policies. http://www.arin.net/policy/ipv4.html
[15] Policies for IPv4 Address Space Management in Asia Pacific Region,
March 2004.
[16] http://6bone.net/
[17] APNIC, RIPE, ARIN. IPv6 Address Allocation and Assignment Policy,
June 2002.
[18] IAB, IESG. RFC 3177 IAB/IESG Recommendations on IPv6 address
Allocations to Sites, September 2001.
[19] P. Wilson, R. Plzak, A. Pawlik. IPv6 Address Space Management,
October 2002.

1-4244-1251-X/07/$25.00 ©2007 IEEE. 376

Вам также может понравиться