Waar zijn de IPv4-adressen gebleven?

Twee maanden geleden kondigde ARIN aan dat ze nu in “fase 4” van de IPv4-uitgifte zitten. Er is geen fase 5. Hoewel de regels iets anders zijn, zit Noord-Amerika nu dus in dezelfde situatie als waarin APNIC (Azië/Australië) zich al drie jaar bevindt en het RIPE NCC (Europa) bijna twee jaar: ISPs en andere gebruikers van IP-adressen kunnen niet langer zoveel IPv4-adressen krijgen als ze nodig hebben. En vorige week voegde LACNIC (Latijns Amerika en de Caraïben) zich bij de club. IPv4-adressen zijn nu dus alleen nog in Afrika makkelijk te krijgen. Wat twee vragen opwerpt: waar zijn al die IPv4-adressen gebleven, en wat nu?

Volgens Vint Cerf, één van de vaders van het internet, was de adreslengte van 32 bits voor TCP/IP alleen maar bedoeld voor de experimentele fase van het netwerk. Maar toen het experiment succesvol bleek werd het langer maken van de adressen op de lange baan geschoven.

Het had erger kunnen zijn: in de jaren ’80 werden er verschillende netwerkprotocollen naast elkaar gebruikt, zoals DECNET, AppleTalk, IPX en CLNP. DECNET gebruikte adressen van 16 bits, AppleTalk 24, IPX 80 en CLNP maximaal 160 bits. Het destijds nieuwe TCP/IP viel dus precies in het midden. Het verschil is wel dat die andere protocollen over het algemeen niet als Internet Protocol bedoeld waren om grote aantallen kleine netwerken samen te ballen tot één groot, wereldwijd netwerk. Daarvoor is 32 bits, wat overeenkomt met 10 cijfers in gewone decimale notatie, nogal aan de magere kant.

Het resultaat was dat al na tien jaar de eerste tekorten begonnen op te treden. Oorspronkelijk waren IP-adressen onderverdeeld in drie klassen: A, B en C. Klasse A heeft 128 netwerken waarbij ieder netwerk een kleine 17 miljoen aangesloten systemen kan herbergen. Klasse B heeft 16.384 netwerken met maximaal 65.536 systemen en klasse C 2,1 miljoen netwerken met maximaal 256 systemen. Een beetje alsof woningen alleen beschikbaar zijn ter grootte van een zolderkamer, villa of sportcomplex, zonder tussenliggende opties.

Universiteiten hadden wel meer dan 256 computers die aangesloten konden worden (of in elk geval de potentie om boven de 256 te groeien) en opteerden dus over het algemeen voor een klasse B blok, die vervolgens rap op begonnen te raken. De oplossing hiervoor was om een universiteit bijvoorbeeld 12 klasse C blokken te geven als ze 3000 computers moesten aansluiten. Maar dat betekende dat er in plaats van één regel voor die klasse B de routingtabellen van routers opgenomen moest worden, dit er twaalf werden. Hierdoor groeiden de routingtabellen veel sneller dan de hardware van begin jaren ’90 bij kon houden. De Internet Engineering Task Force kon echter net op tijd een ramp voorkomen door de klassen af te schaffen. Nu kreeg een organisatie die 3000 adressen nodig had niet een klasse B of twaalf klasse C’s, maar een “/20”: een reeks IP-adressen waarvan de eerste 20 bits gelijk zijn (de prefix) en 32 – 20 = 12 bits overblijven om systemen binnen het netwerk te nummeren.

In de volgende grafiek die (globaal) aangeeft hoeveel IPv4-adressen er ieder jaar in gebruik waren is goed te zien dat de groei enorm afvlakt na de invoering van classless interdomain routing (CIDR). (Gebaseerd op informatie van de RIPE/ARIN/etc FTP-servers.)

De groei van het internet zakte tijdelijk wat in vanwege de “bust” kort na de millenniumwisseling. Maar dit was ook het moment dat we overschakelden van met een modem inbellen naar breedbandinternet via ADSL of de televisiekabel. Inbel-ISPs hadden vaak maar één modem per 15 abonnees, en een inbeller gebruikte alleen een IP-adres zolang zij de verbinding open had staan. Een ISP met 15.000 abonnees had dus zo’n 1000 adressen nodig. Bij breedband was het idee van in/uitloggen snel de wereld uit, en bleven gebruikers 24 uur per dag verbonden. Nu was er dus een adres voor iedere gebruiker nodig. En het duurde niet lang voordat mensen thuis meerdere computers aan hun breedbandverbinding wilden hangen. ISPs waren over het algemeen wel genegen de benodigde extra IP-adressen te leveren, tegen een heel redelijk extra tarief, uiteraard.

Goedkoper is het om één adres met meerdere computers te delen. Dit gaat met NAT, Network Address Translation. De computers (of andere apparaten) in kwestie krijgen nu allemaal een adres uit één van de reeksen voor intern gebruik. Het “echte” (publieke) IPv4-adres dat de ISP ter beschikking stelt gaat naar de thuisrouter. Die vertaalt vervolgende adressen in de pakketten van de interne computers naar het publieke adres. Waar nodig worden de TCP- (en UDP-) poortnummers aangepast zodat alles elkaar niet in de weg zit. Dankzij NAT bleef de groei van het aantal gebruikte IPv4-adressen begin jaren 2000 beperkt, maar rond de opkomst van de smartphone die ook (nagenoeg) continu met het internet verbonden is ging het gebruik weer in een hogere versnelling.

In artikelen over dit onderwerp van een jaar of tien geleden werd vaak vermeld dat de Stanford-universiteit meer IP-adressen had dan heel China. Tien jaar geleden was dat al niet meer waar, China had toen 48 miljoen IPv4-adressen. En Stanford had ongeveer een kwart miljoen. Maar tot 2000 had Stanford (net als MIT) wel een klasse A blok van bijna 17 miljoen, terwijl alle organisaties in China samen op 8 miljoen zaten. In de jaren daarna heeft China dit echter stevig ingehaald: tussen 2008 en 2011 gingen er jaarlijks gemiddeld 50 miljoen IPv4-adressen naar China, waardoor het totaal nu op 330 miljoen komt. Daarmee is China de één-na-grootste gebruiker van IPv4-adressen, na de Verenigde Staten met 1561 miljoen.

Als die getallen omgekeerd waren geweest dan hadden China en de VS allebei ongeveer één adres per inwoner gehad, maar nu is dit ongeveer een kwart adres per persoon in China en bijna vijf in de VS. Alleen in de VS, Canada, delen van Europa (waaronder Nederland) en nog een paar landen zoals Korea en Australië is het aantal adressen groter dan het aantal inwoners. In veel Afrikaanse landen is het zelfs (veel) minder dan één adres per tien inwoners. Wereldwijd zullen we nooit hoger dan 1:2 komen met 3,7 miljard bruikbare adressen. Het totaal aantal mogelijke IPv4-adressen is 4,3 miljard, maar 268 miljoen zijn gereserveerd voor multicast (één pakket gaat naar meerdere ontvangers) en 268 miljoen voor “toekomstig gebruik”. Helaas betekent dit dat veel besturingssystemen het gebruik van die adressen niet toestaan en ze dus waarschijnlijk nooit gebruikt zullen worden.

Nu IPv4-adressen nog maar mondjesmaat beschikbaar zijn is de vraag: wat nu? Het antwoord lijkt tweeledig te zijn: IPv6 lost het lange-termijnprobleem op, maar helpt weinig op de korte termijn. ISPs gaan dus waarschijnlijk op grote schaal CGN (Carrier Grade NAT) invoeren, met name voor nieuwe klanten, om IPv4 in de lucht te houden. Zie ook de tweede helft van mijn stuk voor Ars Technica: With the Americas running out of IPv4, it’s official: The Internet is full.

Over Iljitsch van Beijnum

Iljitsch van Beijnum is consultant en schrijver en schrijft op zijn blog over computernetwerken. Hij schreeft het boek 'BGP' voor O'Reilly en geeft regelmatig BGP- en IPv6-cursussen in samenwerking met NL-ix.