Wat is nu eigenlijk een IP-adres en waarvoor wordt dat gebruikt? Menigeen duizelt het soms als gesproken wordt over IP nummers, IP adressen, vaste IP adressen en bijvoorbeeld DHCP. Maar echt moeilijk blijkt het niet te zijn.

Een huisnummer

In een land ligt een stad,  binnen die stad ligt een straat en in die straat staat een huis. Zo zullen de bedenkers van het IPv4 adres misschien ooit gedacht hebben toen zij de zogenaamde IPv4 adressen bedachten. Een IP adres is namelijk een code dat uit vier delen bestaat. Het IP nummer, of liever IP adres, wordt toegekend aan een apparaat zoals een pc, printer of mobiele telefoon, zodat dit apparaat binnen een netwerk herkend kan worden. Vandaar dat ieder apparaat een unieke code moet krijgen zoals een huisnummer het ene huis van het andere onderscheidt.

Een voorbeeld van een IPv4 IP adres zou 192.168.68.12 kunnen zijn. In lijn met de analogie zoals hierboven beschreven hebben we hiermee een landnummer (192), een nummer voor de stad (168) een voor de straat (68) en een voor het huisnummer (12). Maar let wel, dit is slechts een analogie. Er is in werkelijkheid geen sprake van bijvoorbeeld een uniek landnummer. Iedere organisatie zou voor zijn netwerk namelijk kunnen beginnen met 192 en veel bedrijven doen dat ook.

Nu zou bedacht kunnen worden dat wanneer iedere organisatie zijn eigen IP adressen kan kiezen, en ze met dezelfde getallen beginnen, er vast dubbele adressen zullen worden gekozen. En dat zou niet goed zijn, want ieder apparaat moet immers een unieke code krijgen.

Weet dan dat deze zelf gekozen IP adressen zich alleen binnen het eigen netwerk bevinden (het LAN). Het LAN wordt door een router begrensd. Aan de ene kant bevindt zich het LAN (het Local Area Network) en aan de andere kant het WAN (het Wide Ares Network, oftewel het internet voor de meeste bedrijven). De IP adressen binnen het LAN worden strikt gescheiden gehouden van die van het WAN. Daarom is een organisatie vrij om de IP adressen binnen het eigen LAN zelf te kiezen. Binnen het WAN kun je zelf geen IP adressen bepalen, deze worden je daarom toegewezen door een provider en “externe IP adressen” genoemd. Een organisatie heeft dus interne en externe IP adressen.

Toch niet geheel vrij

Toch kun je ook niet binnen het LAN zo maar wat kiezen. De keuze om te beginnen met 192.168 voor een LAN is niet willekeurig. De organisatie achter de IPv4 adressen hebben ooit gesteld dat de range 10.0.0.0 – 10.255.255.255, de range 172.16.0.0 – 172.16.255.255 en de range 192.168.0.0 – 192.168.255.255 niet gebruikt zullen worden binnen het WAN (dus op internet) waardoor ze, wanneer je ze gebruikt in een LAN, dus nooit een conflict kunnen opleveren met iets op het internet. Je kunt dus met een gerust hart een printer binnen het LAN IP adres 192.168.50.50 geven want er zal nooit iets op het internet komen met deze code waardoor een conflict zou kunnen ontstaan.

Maar waarom eigenlijk een land, stad en straat noemen als je aan huisnummers binnen een LAN genoeg zou hebben? Daar zijn praktische redenen voor. Om met andere machines te kunnen communiceren moeten alle onderdelen van het netwerk met hetzelfde protocol (set van afspraken) werken. Op internet wordt gebruik gemaakt van het IPv4-protocol. Willen we van internet gebruik maken, dan zullen wij dus ook IPv4 binnen ons eigen netwerk moeten gebruiken of zorg moeten dragen voor een systeem dat het protocol binnen het LAN vertaald naar het protocol op internet. Systeembeheerders kiezen er dan maar liever voor om intern hetzelfde protocol te gebruiken als extern. Om die reden hebben computers en andere apparatuur binnen het LAN een volledige IPv4 adres nodig, al wordt in praktijk meestal alleen op het laatste getal (het huisnummer) gevarieerd.

In het begin van het computertijdperk dacht men overigens niet in LAN’s en WAN’s. Alle computers waren met elkaar verbonden binnen een groot netwerk. De eerste computers konden maximaal tot 254 tellen en men had zich bedacht dat er vast meer machines zouden kunnen komen dan 254. Door een tweede getal in te voeren konden ze gaan van 1.1 tot 254.254. Dat leverde al veel meer nummers op. Maar men bedacht zich dat er wereldwijd wel eens veel meer machines zouden kunnen komen en dat ze pas met vier cijferreeksen (vandaar IPv4) zo belachelijk veel adressen zouden kunnen beschrijven, dat je daar zeker genoeg aan zou moeten hebben. Nu, anno 2018, kijken we daar anders tegen aan. IPv4 is niet genoeg gebleken om aan de vraag naar unieke nummers te kunnen voldoen. Tenminste, als je alle computers rechtstreeks op het internet zou willen aansluiten.

Waarom eigenlijk een uniek huisnummer?

Als je weet waar iemand woont, dan kun je een bericht naar hem sturen. Voor netwerkcomponenten zoals printers en laptops geldt hetzelfde. Door te weten waar deze zich bevinden, kunnen ze nar elkaar berichten versturen en van elkaar ontvangen.

Maar nu gaat het er op zo’n netwerk een beetje rommelig aan toe. In feite weet je niet waar iets staat, hooguit dat het er is. Een bericht voor een bepaald huisadres wordt daarom gewoon los gelaten op het netwerk daarmee aangeboden aan alle aanwezige componenten. Als het adres op het pakket overeenkomt met het adres van het component, dan wordt het bericht geaccepteerd. Zo niet, dan wordt het pakket geweerd. Wordt het bericht geaccepteerd, dan wordt een signaal teruggestuurd dat zegt dat het is aangekomen. Daarmee stopt het verzenden. Er ontstaat dus veel overbodig netwerkverkeer, en om die reden is deze methode niet erg efficiënt te noemen, maar toch werkt het zo. Het is in praktijk namelijk wel effectief.

Een pakket kan in dit geval overigens van alles bevatten. Bijvoorbeeld een printopdracht of een mailtje. Alles wat als data heen en weer wordt verstuurd, wordt verstuurd als een pakketje. Nu verstuurt een netwerk voorzien van het IPv4 protocol alleen maar hele kleine pakketjes waardoor een printopdracht of een mailtje in stukjes moet worden geknipt voor de verzending. Bij aankomst worden die stukjes aan elkaar geplakt zodat het weer een geheel wordt. En om het nog wat complexer te maken: omdat het zo’n rommeltje is op een netwerk komen de pakketjes meestal niet in de juiste volgorde aan (ze worden daarom genummerd) en er ontbreken nog wel eens een aantal pakketjes. Deze worden dan op aanvraag opnieuw verstuurd.

Versturen binnen de straat

Standaard is het mogelijk om binnen dezelfde straat pakketjes te versturen. Daarom kan een component met IP adres 192.168.23.5 pakketjes versturen naar 192.168.23.10. En dat is vaak prima omdat binnen een LAN niet meer als een straat is aangelegd.

192.168.23.5 kan zijn pakketjes dus niet zo maar kwijt aan 192.168.55.87 omdat dit component zich niet in ‘de range’ van 192.168.23.5 bevindt. Standaard is de IP range namelijk niet groter dan de straat (23). Dit wil zeggen dat alles wat zich achter 192.168.23 bevindt naar elkaar kan sturen, maar ook niet naar iets anders dan dat.

Zou je toch iets willen versturen naar een machine die zich buiten deze IP range bevindt, dan moet het pakket ‘gerouteerd’ worden. Dat kan op een aantal manieren. Je kunt dit bijvoorbeeld door een router laten doen (daarom heet hij immers ‘router’) of door middel van een aanpassing in het subnet. In praktijk hebben de meeste mkb’ers dit echter voor hun eigen netwerk (het LAN)  niet nodig. Je kunt standaard namelijk de getallen 1 t/m 254 als huisadres gebruiken. Dit zijn meestal voldoende nummers om alle apparatuur die op het netwerk moet kunnen, te kunnen voorzien van een uniek nummer. Dus waarom zou je een extra straat aanleggen en moeite doen daar mee te kunnen communiceren wanneer je toch voldoende huizen in de eigen straat kunt plaatsen?

Verdergaande beveiliging met VLAN’s

Toch kan daar een reden voor zijn. De meest voor de hand liggende reden is dat je meer dan 254 componenten moet kunnen adresseren. Maar er kan ook een andere reden zijn.

Stel in een organisatie hebben ze de afdelingen Sales, Marketing en Management. Door voor alle drie van deze afdelingen een eigen netwerk (LAN) aan te leggen, kunnen ze niet bij elkaars data komen. Dit is vanzelfsprekend een sterkere beveiliging dan data die alleen door middel van wachtwoorden wordt beveiligd. Deze oplossing brengt ook nog eens een snelheidswinst met zich mee. Immers, alle pakketten die door Marketing op hun LAN worden gezet, zullen de laptops van Sales of Management nooit bereiken en dat zorgt voor een afname van het netwerkverkeer bij de overige afdelingen. Maar wel een gedoe natuurlijk, want je hebt hiervoor wel drie netwerken nodig.

Met een slimme techniek hoeven deze netwerken niet fysiek te worden aangelegd, maar kunnen ze logisch (door middel van software) van elkaar gescheiden worden. Dit betekent dat ze gebruik maken van dezelfde bekabeling, maar dat de afdelingen toch gebruik kunnen maken van hun eigen virtuele netwerk doordat de software het netwerk als het ware in delen apart houdt alsof het losse netwerken waren. Dit soort netwerken worden VLAN’s (Virtual Local Area Network) genoemd.

De VLAN technologie biedt een aantal voordelen waaronder de mogelijkheid dat bepaald kan worden dat bijvoorbeeld de afdeling Management wel op de netwerken kan komen van Sales en Marketing, maar dat Sales en Marketing niet bij elkaar en ook niet bij Management kunnen komen. Wanneer behoefte is aan een dergelijke beveiliging, dan worden dus wel extra ‘straten’ aangelegd. Voor veel mkb’ers zal dit echter niet snel nodig zijn.

Vaste en tijdelijke IP adressen

Het zou vervelend zijn om bij elke printopdracht aan te moeten geven welk IP adres de printer heeft. Om die reden is het verstandig een printer een vast ip adres te geven. Veel van dit soort apparaten, denk ook aan scanners, servers of bijvoorbeeld webcams, hebben om die reden de mogelijkheid om een vast ip adres op te geven.

Het zou echter ook vervelend zijn wanneer een mobiele gebruiker, voor ieder netwerk waar hij komt, een ander ip adres op zijn eigen laptop zou moeten instellen. Om die reden kan worden ingesteld dat een apparaat gebruikt maakt van een tijdelijk toegewezen IP adres (vaak een automatisch IP adres genoemd).

Dit werkt als volgt: het apparaat meldt zich aan op het netwerk en binnen het netwerk draait iets wat een DHCP server wordt genoemd. Deze software zoekt naar een nog niet gebruikt IP adres en kent dat aan het vragende apparaat toe zolang hij dit apparaat op het netwerk “ziet”. Daarmee krijgt de laptop dus automatisch een IP adres toegewezen. Gaat de gebruiker met zijn laptop naar een ander netwerk en meldt hij zich daar aan, dan krijgt hij binnen dat netwerk weer een vrij IP adres toegewezen door de daar aanwezige DHCP server.

Wanneer gebruik wordt gemaakt van een laptop op de zaak en thuis, geldt precies hetzelfde. De router thuis van Ziggo of bijvoorbeeld XS4ALL bevat namelijk een DHCP server. Zodra iemand thuis met zijn laptop contact maakt met de router, wordt daardoor een tijdelijk IP adres toegekend. Thuis wordt dus ook gewoon met een netwerk gewerkt, al is het doorgaans een stuk kleiner dan dat op kantoor.

Vaste IP adressen zijn praktisch voor apparaten die binnen het netwerk blijven en gemakkelijk gevonden moeten kunnen worden. Tijdelijke IP adressen zijn geschikt voor apparaten waar het IP adres regelmatig van aangepast moet worden en die niet zozeer iets leveren aan het netwerk, maar er iets komen ‘halen’.

Een DHCP server reserveert

Het netwerk en daarmee de DHCP server ziet geen verschil tussen een component dat is uitgeschakeld of een component dat geen netwerkverkeer heeft. Zou je met een laptop met een tijdelijk IP adres geen netwerkverkeer creëren, dan zou de DHCP server dus kunnen gaan denken dat het apparaat weg is om vervolgens te besluiten het tijdelijk toegewezen IP adres weer te gaan gebruiken voor een ander apparaat. Dat zou dan mis kunnen gaan omdat twee apparaten in het netwerk dan hetzelfde IP adres zouden krijgen en als dat gebeurt is het niet meer mogelijk om pakketjes op het juiste apparaat af te leveren. We spreken dan van een IP conflict.

Om dit te voorkomen zal een DHCP server, wanneer een apparaat voorzien van een tijdelijk IP adres niet meer door hem gezien wordt, het daarvoor gebruikte IP adres niet meteen vrij geven. De DHCP server reserveert dit adres voor het desbetreffende apparaat. Zodra de machine weer netwerkverkeer nodig heeft, is hij hierdoor zijn ip adres niet kwijt geraakt en in het geval dat het apparaat fysiek uitgeschakeld was en weer werd ingeschakeld, zal de DHCP server hem hierdoor weer van hetzelfde IP adres voorzien.

De DHCP server blijft dit IP adres natuurlijk niet oneindig lang reserveren. Als heel lang niets van een apparaat is vernomen, mag immers aangenomen worden dat hij echt weg is. De periode van de reservering kan worden ingesteld en wordt de “Lease Expiration” genoemd. Vaak ligt dit op enkele dagen.

De reservering vindt overigens alleen plaats wanneer er voldoende tijdelijke IP adressen overblijven om in de vraag te kunnen voorzien. Worden er meer tijdelijke IP adressen aangevraagd, dan zal de DHCP server dus ook deze gereserveerde IP adressen gaan proberen in te zetten. Hij zal dan eerst beginnen met het adres dat het langst ongebruikt is.

Een IP conflict

Als een printer en een server beide hetzelfde IP adres hebben gekregen en je zou een printopdracht het netwerk op sturen, dan kan een deel van de pakketjes worden afgeleverd op de server en een ander deel bij de printer. Dat gaat zorgen voor allerlei problemen die resulteren in storingen en vertragingen van de meest uiteenlopende aard.

IP conflicten zijn lastig omdat ze soms maar moeilijk te herkennen en te herleiden zijn. Onder normale omstandigheden komen ze niet voor. Systeembeheerders kennen immers de vaste IP adressen toe en je mag er van uitgaan dat ze daarbij niet twee keer hetzelfde nummer zullen gebruiken. Daarnaast testen DHCP servers voorafgaande aan het toekennen of een IP adres wel beschikbaar is. Maar toch gaat het wel eens mis. De drie meest voorkomende redenen zijn dat:

  • De systeembeheerder toch twee keer hetzelfde adres gebruikt omdat hij onzorgvuldig gewerkt heeft
  • Er om welke reden dan ook per ongeluk twee DHCP servers tegelijkertijd in het netwerk actief zijn geworden
  • Iemand een vast IP adres op zijn laptop heeft ingeschakeld (meestal voor testdoeleinden), dat vergeten heeft en de laptop op het netwerk aansluit.

Soms wordt de oorzaak snel gevonden en kan dit verholpen worden door het desbetreffende apparaat uit te schakelen of de instellingen daarvan te veranderen. Duurt het echter lang voordat de oorzaak van het IP conflict gevonden is, dan kan het voorkomen dat steeds meer apparaten daarvan “overstuur” raken en dat het herstel betekent dat (grote) delen van het netwerk opnieuw opgestart moeten worden. In dat geval heeft een IP conflict dus een grote impact en moet daarom zorgvuldig vermeden worden.

NAT (Network Address Translation)

Staat nog de vraag open hoe het kan dat een machine in het eigen netwerk met bijvoorbeeld IP adres 192.168.75.100 uniek geadresseerd kan worden vanaf het internet wanneer een ander bedrijf ook een machine zou kunnen hebben met hetzelfde IP adres.

Zoals eerder uitgelegd bevinden zich de 192.168 adressen aan de ‘binnenkant’ van de router. Aan de andere kant heeft de organisatie van haar provider een zogenaamd extern IP adres gekregen. Stel dat dit adres 87.195.27.1 is. De router is dan op internet bereikbaar door naar dit externe IP adres te gaan. Stel nu dat er een pakket wordt afgeleverd aan dit adres, dan bevindt zich in de router een firewall. De firewall controleert of de aard van het pakket wordt toegestaan. Aan een pakket kun je namelijk zien wat er in zit. Het kan bijvoorbeeld een audio bericht of een print opdracht zijn. De router heeft opgekregen welk soort pakketten hij wel en welke hij niet door mag laten en als hij ze doorlaat naar welke machine hij ze dan moet doorsturen. Dit laatste wordt met NAT (Network Address Translation) aangeduid. De router ‘vertaalt’ het pakket dat gestuurd is naar het externe IP adres naar een intern IP adres. Op die manier kan een individuele machine binnen het netwerk met een IP nummer van het LAN toch geadresseerd worden.

IPv4 versus IPv6

Van IPv4 adressen zijn er op dit moment dus niet genoeg om voldoende machines mee te kunnen adresseren wanneer alles op het internet aangesloten zou moeten worden. De verwachting is dat we hiervoor snel te weinig adressen zullen hebben. Zeker nu er steeds meer machines rechtstreeks op het internet kunnen worden aangesloten. Denk hierbij niet alleen aan PC’s en mobiele telefoons, maar ook aan navigators, koelkasten, auto’s en bijvoorbeeld deursloten.

De IPv4 adressen lopen theoretisch van 0.0.0.0 tot 255.255.255.255, maar een deel daarvan is niet te gebruiken omdat ze gereserveerd zijn voor bijvoorbeeld de lokale netwerken. De organisatie achter het internetprotocol zag al in 1990 aankomen dat er hierdoor te weinig IP adressen zouden zijn en dus hebben ze een nieuwe variant bedacht: IPv6.

Naast de mogelijkheid om met IPv6 veel meer adressen te kunnen beschrijven, biedt IPv6 nog enkele andere voordelen omdat hiermee meer informatie met behulp van dit adres kan worden vastgelegd. Als we ons echter alleen richten op het aantal beschrijfbare adressen dan zal het verschil meteen duidelijk worden. Met IPv4 kunnen 4.294.967.296 adressen beschreven worden, met IPv6 maar liefst 340.282.366.920.938.000.000.000.000.000.000.000.000. Dat er nu al stemmen opgaan die aangeven dat dit mogelijk ook in de toekomst nog niet genoeg zou kunnen zijn, zult u kunnen begrijpen, maar die discussie laten we maar even voor wat het is.

IPv6 adressen zien er heel anders uit dan IPv4 adressen. Het bestaan niet alleen uit getallen, maar ook uit letters. Dat maakt het lastiger in gebruik, maar dit is de enige manier om met een beperkt aantal plaatsen veel adressen te kunnen beschrijven. Voor een soortgelijke methode is ooit ook gekozen om nummerborden van auto’s te kunnen beschrijven.

Veel providers geven nog geen IPv6 berichten door. Je zou kunnen denken dat dit vreemd is omdat diensten zoals die van Facebook en Google ook al via IPv6 adressen te bereiken zijn. Men schat momenteel echter in dat nog geen 1% van de diensten via IPv6 bereikbaar is. De diensten die IPv6 ondersteunen, zijn dus ook via IPv4 bereikbaar en daarvoor heb je geen extra investeringen nodig.

Een praktisch probleem hierbij is dat de IPv4 en IPv6 protocollen niet door elkaar begrepen worden. Wil je een met IPv6 adres voorziene server kunnen bereiken, dan moet je dus ook IPv6 op de netwerkkaart gebruiken, maar daarmee ook werken in het netwerk en alle tussenliggende componenten. Dus ook andere onderdelen, zoals DHCP en DNS moeten hierop dan aangepast worden. Veel werk dus en alles moet gebeuren want als een deel niet is omgezet, werkt het geheel niet. Omdat alles ook via IPv4 bereikbaar is, is er geen acute noodzaak om over te stappen.

Providers zouden voor een dergelijke overstap al hun netwerkcomponenten moeten vervangen voor apparaten die zowel IPv4 als IPv6 aan kunnen en systeembeheerders moeten ingrijpende veranderingen in het netwerk doorvoeren. Daarbij moeten beide protocollen ondersteund worden. De meeste diensten en netwerken bevinden zich immers nog op IPv4 en wil je gaan werken met IPv6 dan zul je dit dus naast de bestaande IPv4 moeten installeren anders kunnen mensen niet meer op het overgrote deel van de servers op het internet terecht komen. Dat kost natuurlijk extra inspanning en daarmee gaat veel geld gemoeid. Vandaar dat veel providers nog geen IPv6 ondersteunen en de meeste Nederlandse organisaties dit ook nog niet hebben ingevoerd. Het kost veel en levert op korte termijn dus niets op wat niet ook met IPv4 al gedaan kan worden.

Het einde komt echter steeds meer in zicht en uitstel zal hoogstwaarschijnlijk geen afstel worden. Landen om ons heen, zoals Duitsland en Frankrijk, zijn al veel verder met de implementatie van IPv6. Nederland loopt daarbij opvallend achter. Om die reden is sinds 2005 een  IPv6 Task Force opgericht, op initiatief van de overheid. Men streefde daarbij om in 2010 een implementatie te hebben bereikt van 25%. In 2010 bleek echter dat nog geen 0,1% IPv6 had geïmplementeerd.