Meer dan IPv6

24 september 2010

De huidige crisis in het internet wordt meestal geassocieerd met IPv4-adresschaarste, maar er zijn veel meer problemen, zoals de onveiligheid en de groeiende routeercomplexiteit. Veel van die problemen zijn inherent aan TCP/IP en terug te voeren op het probleem dat TCP/IP geen mechanisme bevat om complexiteit van een deel van het netwerk af te schermen voor de rest. Het end-to-endprincipe keurt zo’n mechanisme zelfs af. Een betere architectuur moet op de eerste plaats zo’n afschermmechanisme bieden. De invoering van IPv6, waardoor qua adressen het internet veel groter kan worden, maar waarbij het nog steeds een platte, open ruimte blijft waarin iedereen iedereen kan zien, is een heilloos plan. Als je op je pc de directories afschaft en alle files direct in de root van C:\ plaatst, krijg je iets vergelijkbaars.

TCP/IP was oorspronkelijk bedoeld voor het koppelen van heterogene netwerken. De aanpak hiervoor bestond uit een nieuw homogeen netwerk dat boven op de deelnemende netwerken werd gelegd. Hoe succesvol dit ook geweest mag zijn, het is in feite een onnodig complexe ingreep. Je moet op elke machine in je eigen netwerk TCP/IP gaan installeren en daarna ligt je hele netwerk voor iedereen open. Alles wat je intern doet, moet je afstemmen met de rest van de wereld, zelfs het simpele kiezen van een adres voor een machine. Er is geen intern/extern. Er is een open ruimte gecreëerd waarin iedereen met iedereen verbonden is, of men dat nou wil of niet. Het spreekt vanzelf dat dit niet schaalbaar is, niet in omvang en al helemaal niet in diversiteit.

Lapmiddelen geven zicht op betere architectuur

Begin jaren tachtig voorzag TCP/IP evenwel in een enorme behoefte, zodat het heel snel kon groeien en we er spoedig aan vastzaten. Vervolgens zien we dertig jaar aan lapmiddelen (CIDR, BGP, DNS, NAT, ...) om de nadelen van deze aanpak te compenseren. Maar die lapmiddelen hebben een belangrijk neveneffect: ze geven zicht op een betere architectuur.

Een van de succesvolste lapmiddelen is NAT (Network Address Translation). NAT was eindelijk een afschermmiddel. Je kreeg opeens veel betere controle over en meer vrijheid in je eigen omgeving, en meer controle over je relatie met de rest van het internet. NAT (expliciet bedoeld als kortetermijnlapmiddel) introduceerde een scheiding van adresruimten (privé en publiek) en een gateway tussen privé en publiek. NAT was compatibel met het bestaande internet. Je kon het lokaal invoeren en dan had je ook al lokaal op de korte termijn voordeel, los van de vraag wat de rest van de wereld deed. Maar NAT past niet goed bij TCP/IP, want de gateway is één machine en kan gemakkelijk een bottleneck vormen. Verder is de scheiding van de adresruimten niet volledig, waardoor NAT niet goed recursief toegepast kan worden. NAT mocht ook niet te mooi worden, want dan zou het een bedreiging kunnen vormen voor de invoering van IPv6.

Veel andere lapmiddelen hadden te maken met het routeerprobleem. Routeren in een platte ruimte is evident niet schaalbaar door de ongebreideld groeiende routeertabellen. Dus hiërarchie in deze ruimte kwam er omdat het onvermijdelijk was, met maatregelen zoals BGP (de AS-nummers) en CIDR, dat iets flexibeler adressering bood voor deelnetwerken dan de oorspronkelijke A-, B- en C-netwerken.

De lapmiddelen laten zien dat we bij datacom ook gewoon een hiërarchisch opgebouwde boomstructuur van namespaces willen. Binnen en buiten het internet struikel je over de voorbeelden hiervan (zie kader ‘Namespaces’): DNS, het telefoonnetwerk, filesystemen et cetera. Maar om mysterieuze redenen wil men dit niet als de basis van het internet en wil men met IPv6 voortborduren op een platte open ruimte, waarschijnlijk omdat die tot nu toe zo succesvol is geweest. Maar ‘success is a lousy teacher’! Er is één belangrijk verschil tussen heden en verleden: schaalgrootte.

Routeren gaat decentraal

De oplossing ligt voor de hand: we moeten naar een architectuur op basis van een hiërarchie van namespaces (afgekort tot NSA: NameSpace Architecture), met elkaar verbonden door gateways. De gateway van een namespace mag geen bottleneck vormen en moet dus zelf gedistribueerd kunnen zijn. Gateways en namespaces leveren een recursieve boomstructuur die onbeperkt naar boven en naar beneden kan groeien. Voor adressering is er geen onderscheid tussen processen, machines en netwerken (het zijn allemaal namespaces): een adres moet een proces of machine kunnen aanduiden maar ook een heel netwerk. Adressen worden paden, net als in een filesysteem. Routeren gaat decentraal: elke namespace heeft zijn eigen routeeralgoritme. Globaal hoef je niet te routeren: om een namespace te vinden kun je het pad aflopen, want een adres is een pad. Meer over de details van deze architectuur vindt men onder andere in het boek van John Day (zie kader ‘NSA’).

Het lijkt niet erg realistisch om even het internet naar een andere architectuur om te bouwen, maar er zijn argumenten die dat minder uitzichtloos maken dan het lijkt. Veel elementen van de architectuur zijn al zichtbaar, zoals scheiding van namenruimten in NAT en adressen in de vorm van paden (pakketten in pakketten zoals in IPsec, VPN en tunnelmechanismen). Maar bovenal gaat de invoering van IPv6 de noodzaak en de voordelen van deze architectuur demonstreren. Men is zo slim geweest om IPv6 niet compatibel te maken met IPv4: een onbegrijpelijke blunder en tegelijk ‘a blessing in disguise’. Hierdoor leidt de invoering van IPv6 tot twee gescheiden namespaces (IPv4 en IPv6) die via gateways gekoppeld moeten gaan worden. Niet voor niets worden de betere NAT-mechanismen en tunnelmechanismen juist in het kader van IPv6-invoering ontwikkeld. De invoering van IPv6 wordt één grote NSA-demo.

Maar wellicht nog belangrijker is dat de nieuwe architectuur, net als NAT, voldoet aan het principe van bottom-up emergence (zie kader ‘NSA’). Om te beginnen is het compatibel met het huidige internet. Het kan omgaan met een willekeurig netwerk, dus ook met het internet. Invoering van de nieuwe architectuur kun je lokaal doen, binnen je eigen netwerk, los van de vraag wat de rest van de wereld doet, namelijk in de vorm van een veel betere NAT dan de versies die nu nog gebruikelijk zijn, met een volledige scheiding van de namespaces en een gedistribueerde gateway.

 

Groei naar ‘the Internet of Things’

We gaan toe naar een internet dat nog veel groter is dan het huidige en met name veel diverser, vaak aangeduid als ‘the Internet of Things’. Zodra de machinerie van namespaces en gateways goed door producten ondersteund wordt, kunnen allerlei bestaande netwerken (IPv4, IPv6, RFID, telefoonnetwerken, voertuigen) gemakkelijk gekoppeld worden, door ze intact te laten en de koppeling in gateways te regelen en niet door ze grondig overhoop te halen en overal een IPv6-adres in te stoppen.

Het invoeren van IPv6 is nuttig, maar je bent halverwege al klaar, zodra de gateways, tunnels en applicatiewrappers geïnstalleerd zijn voor de transitie. Als je het helemaal afmaakt, krijg je met meer werk een slechter, complexer en minder toekomstvast resultaat, want dan ben je je afscherming weer kwijt.

Jos Vrancken is universitair docent ICT aan de TU-Delft.


↑ LITERATUUR:
1. John Day: Patterns in Network Architecture (zie ook de Amazon reviews van dit boek).
2. J. Vrancken e.a. (artikel in wording):
NSA: a NameSpace Architecture for the internet. Zie: http://sk-1.tbm.tudelft.nl/josv/htdocs/Research/IPv6/NSA1.pdf

 
Lees het hele artikel
Je kunt dit artikel lezen nadat je bent ingelogd. Ben je nieuw bij AG Connect, registreer je dan gratis!

Login

Registreren

  • Direct toegang tot AGConnect.nl
  • Dagelijks een AGConnect nieuwsbrief
  • 30 dagen onbeperkte toegang tot AGConnect.nl

Ben je abonnee, maar heb je nog geen account? Activeer dan nu je account!