Martijn Bellaard

Overzicht van artikelen >

Why NAT sucks

Geplaatst op 13-2-2009 19:02 door Martijn Bellaard

Als wiskundige heb ik geleerd dat je iets kan bewijzen door aan te nemen dat het klopt om vervolgens op zoek te gaan naar een uitzondering die het tegendeel bewijst. Dat wil ik nu ook gaan doen.


Stelling: Dankzij NAT hebben we geen IPv6 nodig

NAT for the ISP


Het idee achter deze stelling is dat, als straks de IPv4 nummers op zijn, een ISP er voor zou kunnen kiezen om hun gehele netwerk achter een NAT router te plaatsen. Hierdoor is het mogelijk dat de ISP één IP nummer aan de buitenkant heeft en aan de binnenkant een complete 10 range gebruikt voor zijn klanten. De klinkt als een mooie oplossing, maar er is toch een hoop mis met deze oplossing


 

What is NAT ?


Voordat we ingaan op wat er nu mis gaat met het bovenstaande model  wil ik kort ingaan op hoe NAT werk.

Het idee achter NAT is dat door een relatie te leggen tussen een interne IP nummer en poort met een externe poort nummer netwerk verkeer over één IP nummer naar buiten gerouteerd kan worden..  Elke host die een connectie aangaat met een andere host, gebruikt een random poort voor de connectie. De NAT router onderschept dit bericht en onthoudt over welke random poort de host communiceerde. Samen met zijn prived IP nummer slaat hij deze gegevens op in zijn NAT tabel en koppelt dat aan een poort aan de buitenkant. Op die manier onthoudt de NAT router welke connectie bij welke host hoort.


 

Whats wrong?

Er zijn 16 bits voor het poortnummer gereserveerd, dus een NAT router kan maximaal 65536 IP nummers en poortcombinaties maken.  Dus je kunt zeggen dat er maximaal 65536 hosts door één NAT router bedient kunnen worden. Dat zou kloppen als je maar naar  één simpele website zou gaan.

Laten we daarom eens naar www.ngn.nl gaan en het aantal connecties tellen. Ik zet dus 1 tab open met 1 website. Als ik dan het commando netstat  uitvoer zie ik dat er meteen 10 extra connecties bij zijn gekomen. Dus als al de gebruikers van een ISP naar www.ngn.nl gaan kan ik maximaal 6553 gebruikers hosten. Als ik vervolgens naar het forum ga zie ik dat ik er nog eens 20 connecties bij gekregen heb. Dit geeft me dus ruimte voor 3276 gebruikers. Maar dan moeten we geen MSN of zo iets gaan gebruiken. Of nog erger via het web onze mail gaan lezen. Dan kom je al snel uit op 40 connecties per gebruiker. Let op, ik doe nog niet zulke rara dingen. Ik lees mijn mail en kijk in het NGN forum.

Nu gaan nog iets veel ergers doen. Ik ga naar Google en zoek op NGN. Ik open de eerste drie hits in een nieuwe tab. Ik zit nu al op 56 connecties. Als ik dan ook nog een bezoek breng aan maps.google.nl om te kijken waar het kantoor van de NGN is dan zit ik 65 hits.  Als ik daarnaast naar het weer ga kijken en mezelf op de hoogte wil brengen van het laatste nieuws zit ik als snel op 100 connecties. Ik ben nog steeds een light user. Dus een doorsnee ISP kan over 1 NAT router maximaal 655 light users ondersteunen.

Een medium user zal als snel 200 connecties open hebben staan. Onder een medium user versta ik een user die naast het open zetten van een aantal websites, gebruik maakt van MSN en luistert via internet naar de radio. Daarnaast beschikt de medium user over meer dan 1 PC.

Een heavy user loopt het aantal connectie al snel op naar de 400. Aangezien internet steeds een grotere rol in ons leven gaat spelen zullen we allemaal richting de heavy user gaan. Dus een ISP zou in dat geval maximaal 163 gebruikers achter één NAT router kunnen plaatsen, maar laten we voorlopig uitgaan van 200 connecties per gebruiker. Dan kunnen er ongeveer 300 gebruikers per NAT router aanwezig zijn. Er zijn ongeveer 7.000.000 huizenhouding in Nederland. Dus om alle huishoudingen achter de NAT routers te plaatsen heb je zo’n 2333 Nat routers nodig en mag er niet meer dan één PC per huis aanwezig zijn.  Voor het gemak vergeet ik de bedrijven maar even.

Is this all?

Nu is dit niet het enige wat mis is met NAT. We hebben nu alleen gekeken naar uitgaande verkeer. Maar er gaat ook verkeer de andere kant op. Doordat we gebruik maken van een NAT router is het lastig om een host achter de NAP router te bereiken.  Dit wordt gezien als één van de grote voordelen van een NAT router. Op die manier krijg je een stuk extra beveiliging. Maar deze extra beveiliging heeft ook zo zijn keerzijde. Denk bijvoorbeeld aan IPSec. IPSec is een protocol dat het mogelijk maak om encryptie en authenticatie in elk TCP/IP pakketje te stoppen, maar IPSec gaat niet door NAT heen. Hiervoor is dan ook weer een speciale versie van IPSec ontworpen, IPSec-T. In de toekomst zullen we steeds meer protocollen zien die niet werken door NAT heen. Denk hierbij aan  Video, voice software en remote support software. Vooral als security belangrijker wordt zul je de host willen kunnen identificeren  achter de NAT router. NAT houdt dit soort mogelijkheden op dit moment tegen.
Daarnaast zullen er steeds meer servers komen die een eigen IP nummer willen hebben op internet. Als je deze achter NAT plaatst krijg je het IPSec probleem in het kwadraat. Een host achter een NAT router wil misschien niet dat hij direct vanaf het internet bereikbaar is, maar voor servers geldt dit niet. Die moeten juist direct  bereikbaar zijn vanaf het internet.  We zien dit soort problemen vandaag de dag ontstaan, als we gebruik gaan maken van SSL. SSL wordt gebruikt om de security te verhogen, maar een NAT router (of reverse proxy) heeft het hier moeilijk mee, tenzij je voor elke SSL applicatie een eigen IP nummer aan de buitenkant geeft en die raken nu dus juist op.

So I said it, Nat Sucks


Ik begon met de stelling : Dankzij NAT hebben we geen IPv6 nodig.
Deze stelling klopt als we toestaan dat  er niet meer dan 1 PC per huis komt en dat we niet teveel websites tegelijk bezoeken en geen nieuwe servers op internet gaan plaatsten. 

Natuurlijk kun je dan nog gaan kiezen voor NAT achter NAT achter NAT achter NAT en zo door. Dan kunnen we nog wel een tijdje door gaan, maar dit zal de performance niet ten  goede komen en dan heb ik het nog niet over problemen zoals met IPSec en SSL.

Reacties

Stelling: IP6 komt er niet van 25-3-2009 16:43

"als straks de IPv4 nummers op zijn"... Tsja, dat hoor ik al 15 jaar lang. RFC1883 stamt uit 1995, en sindsdien wordt er al geschermd met het idee dat we straks "allemaal aan de IP6 moeten". Maar om de een of andere reden is dat er nog altijd niet van gekomen, en anno 2009 zijn de IP4 adressen nog altijd niet op. Ik zie het er dus niet meer van komen. Een "standaard" die na 15 jaar nog altijd niet breed geaccepteerd is gaat het gewoon nooit worden...

Afzender: Frank van Wensveen

Maar wel binnen twee jaat ;-) 25-3-2009 18:43

Beste Frank

Je reactie is begrijpelijk, maar ik ga deze week in een blog in op je jou opmerking. Dus hou mijn blog in de gaten.

Afzender: Martijn Bellaard

nat achter nat? 11-5-2010 09:34

Goed stuk, alleen het einde begrijp ik niet. Met nat achter nat moet ik nog steeds alle uiteindelijke hosts door dat ene IP adresje proppen, of ik dat nu met een grote NAT router doe, of in een gelaagde structuur.

De enige manier om iets op te lossen is om met proxy's te gaan werken en te zorgen dat veel verkeer nooit op internet komt. Bedrijfsmatig is hier nog wel wat te winnen, maar met de prive huishoudens waar ik hoogstens DNS in de private IP omgeving kan afhandelen, en niet windows update / anti-virus update / tijd / een goede web-proxy (want de telegraaf 's morgens is al lang een keer opgeroepen, en om 15:00 beginnen de file site's te komen), en dan heb ik het nog niet eens over de heavy users en alle dynamische site's . . .

Nee, IPv6 komt wel, alleen weet denk ik niemand precies wanneer het doorbreekt. Er zal toch een killer-app nodig zijn.

Zodra IPv4 adressen geld gaan opleveren komen er denk ik nog heel wat stukken en stukjes vrij. Nu denkt iedereen, ik heb het toch, kost me niets. Waarom zou ik teruggeven en evt omconfigureren.

Als echter IPv6 eerder doorbreekt hebben we daar geen last van.

Eerst maar eens standaard IPv6 in de huis-tuin en keuken routers standaard inbouwen, en standaard IPv6 aanbieden, maar dan moeten eerst de trail's een beetje succesvol zijn.

Blijft spannend.
Afzender: Thomas Roes

Reageer op dit artikel

Naam:
Uw Email adres:
Titel:
Bericht: