Ga naar hoofdinhoud

IP-adressering

Namen zoals www.ap.be zijn er voor mensen. Het netwerk zelf werkt met nummers. Elk toestel dat meedoet aan een netwerk heeft een IP-adres: een uniek nummer binnen dat netwerk, waarmee pakketten hun weg terugvinden.

Zonder dat adres is er geen communicatie mogelijk. Een pakket zonder bestemmingsadres is een brief zonder envelop.

Wat is een IP-adres?​

IPv4​

Het adres dat je het vaakst ziet, is een IPv4-adres: 32 bits, geschreven als vier getallen van 0 tot 255, gescheiden door punten.

192.168.0.14

Elk van die vier getallen is één octet van 8 bits. Dat verklaart meteen de grens van 255: het grootste getal dat in 8 bits past, is 11111111, oftewel 255. Wie de omzetting wil nakijken, vindt de methode terug bij binaire getallen.

192 . 168 . 0 . 14
11000000 . 10101000 . 00000000 . 00001110

32 bits geven ongeveer 4,3 miljard mogelijke adressen. Dat leek in 1981 eindeloos. Vandaag zijn er meer toestellen dan adressen, en dat tekort verklaart twee dingen die verderop terugkomen: private adressen en IPv6.

IPv6​

IPv6 gebruikt 128 bits, geschreven als acht groepen hexadecimale cijfers:

2001:0db8:85a3:0000:0000:8a2e:0370:7334
2001:db8:85a3::8a2e:370:7334 (ingekort: nullen weggelaten)

Dat levert een aantal adressen op met 39 cijfers. In de praktijk draaien beide systemen naast elkaar: je toestel heeft vaak tegelijk een IPv4- en een IPv6-adres.

IPv4IPv6
Lengte32 bits128 bits
NotatieDecimaal, 4 octettenHexadecimaal, 8 groepen
Voorbeeld192.168.0.142001:db8::7334
Aantal adressen± 4,3 miljard± 3,4 × 10³⁸
StatusOveral in gebruik, adressen opAan het uitrollen

Publiek versus privaat​

Dit onderscheid is het belangrijkste van deze pagina, en het verklaart waarom je laptop twee adressen tegelijk lijkt te hebben.

Privaat IP-adresPubliek IP-adres
GeldigEnkel binnen je eigen netwerkOp het volledige internet
UniekEnkel lokaal (miljoenen netwerken gebruiken 192.168.0.1)Wereldwijd uniek
Toegekend doorJe router (via DHCP)Je internetprovider
Zichtbaar voor het internetNeeJa
Voorbeeld192.168.0.1481.164.23.117

Drie reeksen zijn officieel gereserveerd voor privaat gebruik. Ze worden nooit doorgestuurd op het internet:

ReeksNotatieWaar je ze tegenkomt
10.0.0.0 – 10.255.255.25510.0.0.0/8Bedrijfsnetwerken, VPN's
172.16.0.0 – 172.31.255.255172.16.0.0/12Docker, bedrijfsnetwerken
192.168.0.0 – 192.168.255.255192.168.0.0/16Vrijwel elk thuisnetwerk

NAT: hoe iedereen thuis toch op het internet raakt​

Alle toestellen bij jou thuis hebben een privaat adres, maar je gezin heeft samen slechts één publiek adres. De router lost dat op met NAT (Network Address Translation): hij vervangt bij elk vertrekkend pakket het private adres door het publieke, onthoudt wie wat vroeg, en stuurt het antwoord naar het juiste toestel terug.

Schema van een thuisnetwerk: drie toestellen met een privaat adres achter één router die naar buiten één publiek adres heeft, met de NAT-vertaling van uitgaand en inkomend verkeerThuisnetwerk: private adressenDrie toestellen, drie private adressen, één publiek adres.Internet: publieke adressenLaptop192.168.0.14Gsm192.168.0.21Printer192.168.0.33RouterNATbinnen192.168.0.1buiten81.164.23.117WAT DE ROUTER VERTAALTuitgaand 192.168.0.14:53412 → 81.164.23.117:40001antwoord 81.164.23.117:40001 → 192.168.0.14:53412De router onthoudt wie wat vroeg, en bezorgt het antwoord bij het juiste toestel.www.ap.be185.135.13.219:443uitgaandantwoord
Wat dit betekent voor je dev server

Start je een dev server op 192.168.0.14:5173, dan kan een klasgenoot op hetzelfde wifi-netwerk die pagina openen. Iemand thuis kan dat niet: dat adres bestaat bij hem ook, maar wijst daar naar een ander toestel. Wil je je server toch van buitenaf bereikbaar maken, dan heb je port forwarding op de router nodig, of een tunneldienst zoals ngrok of Cloudflare Tunnel.

localhost en 127.0.0.1​

Eén adres is bijzonder: 127.0.0.1, met de naam localhost. Dat is het loopback-adres: verkeer naar dat adres verlaat je toestel niet, maar keert meteen terug naar binnen.

Daarom werkt http://localhost:5173 ook zonder netwerkkabel, zonder wifi en zonder internet. De hele reeks 127.0.0.0/8 is hiervoor gereserveerd, maar in de praktijk gebruik je enkel het eerste adres.

AdresWat het betekentWanneer gebruik je het
127.0.0.1 / localhostDit toestel zelfJe eigen dev server bekijken
0.0.0.0Alle netwerkinterfaces van dit toestelEen server die ook van buitenaf bereikbaar moet zijn
192.168.0.14Dit toestel binnen je lokale netwerkJe klasgenoot laat meekijken op hetzelfde wifi
81.164.23.117Je netwerk gezien vanaf het internetWat een website registreert als jouw bezoek
Waarom je collega je dev server niet ziet

Veel dev servers luisteren standaard enkel op 127.0.0.1. Dan is de pagina letterlijk onbereikbaar voor elk ander toestel, ook op hetzelfde netwerk. Laat de server op alle interfaces luisteren en het probleem verdwijnt:

npm run dev -- --host # Vite: luistert op 0.0.0.0
python -m http.server 8000 --bind 0.0.0.0

Je eigen adressen opzoeken​

Je private adres​

BesturingssysteemCommando
Windowsipconfig
macOSifconfig of ipconfig getifaddr en0
Linuxip a (of ip addr show)

Zoek in de uitvoer de interface die je effectief gebruikt (Wi-Fi, en0, wlan0) en daarin de regel met het IPv4-adres:

Draadloos LAN-adapter Wi-Fi:

IPv4-adres. . . . . . . . . . . . : 192.168.0.14
Subnetmasker. . . . . . . . . . . : 255.255.255.0
Standaardgateway. . . . . . . . . : 192.168.0.1

Drie regels, drie betekenissen: jouw adres, hoe groot je netwerk is, en het adres van de router die alles naar buiten stuurt.

Schermafbeelding van ipconfig met aanduidingen bij het IPv4-adres, het subnetmasker en de standaardgateway.

Basisafbeelding: Meridian Outpost, met eigen aanduidingen.

Je publieke adres​

Je toestel weet zijn eigen publieke adres niet: dat is van de router. Je moet het dus aan iemand buiten vragen:

curl ifconfig.me
curl https://api.ipify.org

Of open een site als whatismyip.com in je browser.

De kern van het verschil

ipconfig toont wat je router aan jou gaf. curl ifconfig.me toont wat de rest van de wereld ziet. Zijn die verschillend, dan zit er NAT tussen, en dat is thuis vrijwel altijd zo. Vraag je klasgenoot naast je om hetzelfde te doen: op hetzelfde netwerk hebben jullie een verschillend privaat adres, maar hetzelfde publieke adres.

Hoe krijgt een toestel zijn adres?​

Meestal automatisch, via DHCP (Dynamic Host Configuration Protocol). Zodra je verbinding maakt, vraagt je toestel aan de router om een adres. Dat krijg je in lease: voor een bepaalde tijd, waarna het vernieuwd of opnieuw uitgedeeld wordt. Daarom kan je laptop morgen een ander adres hebben dan vandaag.

Een statisch adres stel je handmatig in en verandert niet. Dat is de regel voor servers, printers en netwerkapparatuur: als het adres verandert, weet niemand hen nog te vinden.

Subnetmasker en gateway​

Naast je adres krijg je nog twee gegevens mee:

  • Het subnetmasker (255.255.255.0, ook geschreven als /24) bepaalt welk deel van het adres het netwerk aanduidt en welk deel het toestel. Bij 192.168.0.14/24 is 192.168.0 het netwerk en 14 het toestel: alles wat met 192.168.0. begint, is dus een buur.
  • De standaardgateway (192.168.0.1) is het adres van je router. Alles wat níet voor een buur bestemd is, gaat daarheen.

Dat is precies de beslissing die je toestel bij elk pakket neemt: zit de bestemming in mijn eigen netwerk, dan lever ik rechtstreeks af; zit ze erbuiten, dan geef ik het pakket aan de gateway.

Test jezelf​

1. Je laptop toont `192.168.0.14` bij `ipconfig`, maar `curl ifconfig.me` geeft `81.164.23.117`. Hoe kan dat?

2. Welk adres is een privaat adres?

3. Je klasgenoot wil je dev server bekijken, maar krijgt geen verbinding met `192.168.0.14:5173`. Wat is de meest waarschijnlijke oorzaak?

4. Waarom werkt `http://localhost:5173` ook als je wifi uitstaat?

Onthoud
  • Een IPv4-adres is 32 bits: vier octetten van 0 tot 255. IPv6 gebruikt 128 bits omdat IPv4 te klein werd.
  • Private adressen (10.x, 172.16–31.x, 192.168.x) gelden enkel lokaal; je publieke adres hoort bij je router en is wereldwijd uniek.
  • NAT laat alle toestellen van een netwerk samen één publiek adres delen.
  • 127.0.0.1 (localhost) is loopback: dat verkeer verlaat je toestel niet. 0.0.0.0 betekent net het omgekeerde: luister op alle interfaces.
  • Je private adres zoek je op met ipconfig of ip a, je publieke met curl ifconfig.me.
  • Het subnetmasker bepaalt wie je buren zijn; de gateway is de router waar al de rest naartoe gaat.