IPv4 Address Lifetime Presented by Paul Wilson, APNIC Research activity conducted by Geoff Huston and supported by APNIC IPv4 Address Lifetime Expectancy • IETF activity within the Routing and Addressing (ROAD) group in the early 1990’s – The objective was to understand the rate of allocation of IPv4 addresses and predict the date of eventual exhaustion of the unallocated pool – At the time the prediction was that the pool of IPv4 addresses would be exhausted around 2008-2011 • This is a re-visiting of this activity considering latest data – IETF, IANA and RIR delegations – Also, ISP announcements to the BGP routing table Modeling the Process 1. IETF definition of IPv4 – Source: IETF standards (RFCs) • Delegation of address space for IANA administration 2. IANA allocations to RIRs – Source: IANA IPv4 Address Registry • Allocation of /8 blocks to RIRs and others 3. RIR allocations to ISPs – Source: RIR Stats files • Allocation of blocks to LIRs 4. ISP announcements – Source: BGP routing table • Amount of address space advertised Modeling the Process IETF RIR RIR ISP Announcement IANA ISP Allocation Allocation Delegation IANA BGP 1. IETF Delegations IPv4 Address Space • Defined by the IETF – 32 bits providing 4B addresses • The IETF has defined space for global unicast (administered by the IANA) and for other purposes • IANA allocates space to the RIRs for further allocation and assignment IPv4 Address Space IETF Reserved, 20.1, 8% Multicast, 16, 6% Unicast, 219.9, 86% Breakdown of IPv4 address Space by /8 block equivalents 2. IANA Allocations IANA Allocations • IANA allocates address space to RIRs • The IANA IPv4 address registry records the date of each /8 allocation undertaken by the IANA • This data has some inconsistencies – Changing IANA administration and practices over many years • However data is stable enough to allow some form of projection IANA Allocations - Current IETF Reserved, 20.1, 8% Multicast, 16, 6% IANA Allocated, 130.9, 51% IANA Pool, 89, 35% IANA Allocations - Historical IANA Allocated IPv4 /8 Address Blocks 140 120 100 80 60 40 20 0 Jan-91 Jan-93 Jan-95 Jan-97 Jan-99 Jan-01 Jan-03 IANA Allocations - Projection IANA Allocated IPv4 /8 Address Blocks 220 200 180 160 140 120 100 Jan-96 Jan-98 Jan-00 Jan-02 Jan-04 Jan-06 Jan-08 Jan-10 Jan-12 Jan-14 Jan-16 Jan-18 Jan-20 IANA Allocations - Projection • Projected date of IANA address pool exhaustion: 2020 • This projection is very uncertain because of: – Sensitivity of allocation rate to prevailing RIR assignment policies – Sensitivity to any significant uptake up of new applications that require end-to-end IPv4 addressing vs use of NATs 3. RIR Allocations RIR Allocations • RIRs allocate address space to LIRs (ISPs) • RIR stats files records the date of each allocation to an LIR, together with the allocation details RIR Allocations - Current IETF Reserved, 20.1, 8% Multicast, 16, 6% Assigned, 116.9, 46% Allocated IANA Pool, 89, 35% RIR Pool, 14, 5% RIR Allocations - Current Address Allocation Status - by /8 16000000 14000000 12000000 10000000 Reserved IANA Unallocated Allocated 8000000 6000000 4000000 2000000 96 10 4 11 2 12 0 12 8 13 6 14 4 15 2 16 0 16 8 17 6 18 4 19 2 20 0 20 8 21 6 22 4 23 2 24 0 24 8 88 80 72 64 56 48 40 32 24 8 16 0 0 RIR Allocations - Historical RIR Assigned IPv4 /8 Address Blocks 120 100 80 60 40 20 0 Jan-83 Jan-85 Jan-87 Jan-89 Jan-91 Jan-93 Jan-95 Jan-97 Jan-99 Jan-01 Jan-03 RIR Allocations - Projection RIR Assigned IPv4 /8 Address Blocks - Projection 220 200 180 160 140 120 100 80 Jan-96 Jan-98 Jan-00 Jan-02 Jan-04 Jan-06 Jan-08 Jan-10 Jan-12 Jan-14 Jan-16 Jan-18 Jan-20 Jan-22 Jan-24 Jan-26 RIR Allocations - Projection • Projected date of RIR address pool exhaustion: 2027 • The projection has the same levels of uncertainty as noted for the IANA projections: – RIR management policies – Technological developments 4. BGP Routing Table BGP Routing Table • The BGP routing table spans a set of advertised addresses – Representing addresses in use by ISPs • A similar analysis of usage and projection can be undertaken on this data • Assumption: BGP routing table represents actual IP address usage – Therefore it “drives” the other trends BGP Routing Table - Current IETF Reserved, 20.1, 8% Multicast, 16, 6% Advertised, 74.5, 29% IANA Pool, 89, 35% Assigned, 42.4, 17% RIR Pool, 14, 5% BGP Announcements - Current Address Allocation Status - by /8 16000000 14000000 12000000 10000000 Reserved IANA Unallocated Unadvertised Advertised 8000000 6000000 4000000 2000000 96 10 4 11 2 12 0 12 8 13 6 14 4 15 2 16 0 16 8 17 6 18 4 19 2 20 0 20 8 21 6 22 4 23 2 24 0 24 8 88 80 72 64 56 48 40 32 24 8 16 0 0 May/03 Mar/03 Jan/03 Nov/02 Sep/02 Jul/02 May/02 Mar/02 Jan/02 Nov/01 Sep/01 Jul/01 May/01 Mar/01 Jan/01 Nov/00 Sep/00 Jul/00 May/00 Mar/00 Jan/00 Nov/99 BGP Announcements - Historical BGP Table - Address Span 200 150 100 50 0 Jan/28 Jan/27 Jan/26 Jan/25 Jan/24 Jan/23 Jan/22 Jan/21 Jan/20 Jan/19 Jan/18 Jan/17 Jan/16 Jan/15 Jan/14 Jan/13 Jan/12 Jan/11 Jan/10 Jan/09 Jan/08 Jan/07 Jan/06 Jan/05 Jan/04 Jan/03 Jan/02 Jan/01 Jan/00 BGP Announcements - Projection BGP Announced Address Space - Projection 200 150 100 50 0 BGP Announcements - Projection • Projected date of address pool exhaustion according to BGP: 2027 • This projection uses a 3 year data baseline to obtain the projection – This is much shorter baseline than the IANA and RIR projections – There are, again, considerable uncertainties associated with this projection BGP Announcements - Projection • Comments received about this projection have prompted a more detailed analysis of the BGP data • It appears that there is a different view that can be formed from the data • Firstly, here’s the raw data – hourly measurements over 3 years… Another look at that BGP data… Another look at that BGP data… • The most obvious noise comes from flaps in /8 advertisements. • The first step was to remove this noise by recalculating the address data using a fixed number of /8 advertisements • The value of 19 was used to select one of the ‘tracks’ in the data Another look at that BGP data… Filter to 19 /8s 1230000000 1180000000 1130000000 1080000000 1030000000 980000000 Nov-99 Mar-00 Jul-00 Nov-00 Mar-01 Jul-01 Nov-01 Mar-02 Jul-02 Nov-02 Mar-03 Jul-03 Another look at that BGP data… • This is still noisy, but there is no systematic method of raw data grooming that can efficiently reduce this noise • Now use gradient smoothing, limiting the absolute values of the first order differential of the data (gradient limiting) to smooth the data Another look at that BGP data… Gradient Filtered Data 1230000000 1180000000 1130000000 1080000000 1030000000 980000000 Nov-99 Mar-00 Jul-00 Nov-00 Mar-01 Jul-01 Nov-01 Mar-02 Jul-02 Nov-02 Mar-03 Jul-03 Another look at that BGP data… • Now, further smoothing is needed to reduce the data set to allow projection models to be generated • The technique used is a sliding window average, with a window of 1501 entries Another look at that BGP data… Smoothed Average 1230000000 1180000000 1130000000 1080000000 1030000000 980000000 Nov-99 Mar-00 Jul-00 Nov-00 Mar-01 Jul-01 Nov-01 Mar-02 Jul-02 Nov-02 Mar-03 Jul-03 Another look at that BGP data… Linear Squares Best Fit 74 72 70 68 66 64 62 60 58 Nov-99 Feb-00 May-00 Aug-00 Nov-00 Feb-01 May-01 Aug-01 Nov-01 Feb-02 May-02 Aug-02 Nov-02 Feb-03 May-03 Aug-03 Another look at that BGP data… • First order differential of total BGP announcement – Until 2000, exponential (accelerating) growth – Since 2000, oscillating differential and overall deceleration – Last 6 months, differential approaching 0 (i.e. no growth) • Linear fit seems most appropriate for this data Another look at that BGP data… daily rate of change in address growth per month 0.016 0.014 0.012 0.010 0.008 0.006 0.004 0.002 0.000 Dec-99 Mar-00 Jun-00 Sep-00 Dec-00 Mar-01 Jun-01 Sep-01 Dec-01 Mar-02 Jun-02 Sep-02 Dec-02 Mar-03 Jun-03 Combining the Data Combining the Data IPv4 Address Space 140 120 100 80 IANA RIR BGP 60 40 20 0 Jan-83 Jan-85 Jan-87 Jan-89 Jan-91 Jan-93 Jan-95 Jan-97 Jan-99 Jan-01 Jan-03 Recent Data IPv4 Address Space 140 120 100 80 IANA RIR BGP 60 40 20 0 Dec-99 Mar-00 Jun-00 Sep-00 Dec-00 Mar-01 Jun-01 Sep-01 Dec-01 Mar-02 Jun-02 Sep-02 Dec-02 Mar-03 Jun-03 Holding Pools Holding Pools: RIR & Unannounced Space Size of Holding Areas (/8) 50 45 40 35 30 UnAnn RIR 25 20 15 10 5 0 Nov-99 Feb-00 May-00 Aug-00 Nov-00 Feb-01 May-01 Aug-01 Nov-01 Feb-02 May-02 Aug-02 Nov-02 Feb-03 May-03 Modeling the Process • Assume that the RIR efficiency in allocation slowly declines, so that the amount of RIRheld space increases over time • Assume that the Unannounced space shrinks at the same rate as shown over the past 3 years • Assume an exponential best fit model to the announced address space projections and base RIR and IANA pools from the announced address space projections, using the above 2 assumptions Modeling the Process - Exponential IPv4 Model IANA Pool Exhaustion 2022 RIR Pool Exhaustion 2024 200 IANA RIR BGP IANA-P RIR-P BGP-P RIR LIR 150 100 50 0 Jan-00 Jan-05 Projections Jan-10 Jan-15 Jan-20 Jan-25 Modeling the Process - Linear IPv4 Model IANA Pool Exhaustion 2030 RIR Pool Exhaustion 2037 200 IANA RIR BGP IANA-P RIR-P BGP-P RIR LIR 150 100 50 0 Jan-00 Jan-05 Projections Jan-10 Jan-15 Jan-20 Jan-25 Jan-30 Jan-35 Jan-40 Jan-45 Observations • Extrapolation of current allocation practices and BGP-based demand model • Derived from 2000-2003 data • Considering – IANA/RIR unallocated pool – Total address space including allocated but unannounced • Assuming exponential growth – Address space lasts until 2025, or up to 2029 • Assuming linear growth – Address space lasts until 2037 - 2047 Issues • This is just a model - reality will be different! • Will the BGP routing table continue to reflect allocation rates? • Is the model of the unadvertised pools and RIR holding pools appropriate? • Externalities… – What are the underlying growth drivers (applications) and how are these best modeled? – What forms of disruptive events would alter this model, and to what extent? Questions? gih@telstra.net http://www.potaroo.net