Internet verkeer

Portforwarding (1)

In dit blog besteden we aandacht aan het doorsturen van poorten op je router: portforwarding. Om dit goed te begrijpen, in dit eerste blog eerst wat uitleg over wat poorten zijn en hoe internetverkeer werkt. Geen zin in deze uitleg? Hier kun je meteen door naar Portforwarding deel 2.

Alle apparaten die met internet verbonden zijn, hebben een eigen uniek ip-adres. Iedere internetgebruiker beschikt over een router, een apparaat dat twee of meer netwerken aan elkaar verbindt. Gaat het om verschillende signalen (internet via ADSL of coaxkabel naar ethernet) dan zit er in de router ook een modem ingebouwd. De meeste routers hebben tegenwoordig ook een ingebouwd accesspoint voor WiFi.

Internet en je eigen netwerk

Bij een router die ‘aan de buitenkant’ met internet verbonden is, is er dus ook ‘aan de binnenkant’ (in je huis of kantoor dus) sprake van netwerk. Het ip-adres ‘aan de buitenkant’ (de WAN aansluiting) is het adres waarmee je op internet bekend bent. Aan de LAN zijde, je eigen lokale netwerk, kun je gebruik maken van een bedraad netwerk of een draadloos netwerk via WiFi. Op het LAN worden andere ip-adressen gebruikt, elk apparaat in je eigen netwerk krijgt ook een eigen (binnen dat netwerk) uniek ip-adres. Meestal krijgt elk device in je netwerk automatisch een ip-adres toegewezen via een techniek die DHCP heet: deze DHCP-server zit in de router ingebouwd. Het is ook mogelijk om zelf een zogenaamd statisch ip-adres toe te kennen.

Webpagina opvragen

Als je nu bijvoorbeeld op je computer een webpagina opvraagt, wordt eerst de ingevoerde webpagina via een DNS-verzoek vertaald naar een ip-adres. Via de router zal vervolgens een verzoek naar dit ip-adres gestuurd worden: dit gebeurt via het HTTP of HTTPS protocol. HTTPS is de beveiligde variant van HTTP. De website zal op basis van dat HTTP of HTTPS verzoek een webpagina terugsturen. De router weet nog dat dit verzoek van jouw computer afkwam en zal de webpagina naar het (interne) ip-adres van je computer sturen.

Wat is een poort?

Je computer kun je beschouwen als een gebouw met allemaal kamertjes. Elk kamertje heeft zijn eigen specialisatie wat betreft het type communicatie en het afhandelen van het dataverkeer. Je computer als geheel (het gebouw) heeft een ip-adres, alle kamertjes hebben een eigen kamernummer: de poorten. Zo wordt HTTP-verkeer via poort 80 afgehandeld, HTTPS-verkeer gebruikt poort 443 en met het afhandelen van e-mail zijn diverse andere poorten betrokken. Over welke poort voor wat voor soort communicatie wordt gebruikt zijn afspraken gemaakt. Hier vind je een lijstje met een overzicht van deze standaard poortnummers. Het werken met poorten maakt het mogelijk om het dataverkeer via verschillende protocollen af te werken.

Internetverkeer

Standaard zal een HTTP-verzoek naar poort 80 worden gestuurd en HTTPS naar poort 443 (beveiligde websites). Je eigen externe ip-adres waarmee je dus op het internet bekend bent, kun je opvragen via Whatismyip of Watismijnipadres. Als iemand op het internet naar dit ip-adres surft, zal er niets gebeuren tenzij je een eigen website draait op dit adres. Hoe je het ip-adres van je computer opvraagt (dus in je eigen netwerk) leggen we in een ander blog uit.

In de router draait ook een firewall: er kan niet zomaar van buitenaf toegang worden verkregen, tenzij je een of meer poorten hiervoor open zet. Als je in het interne netwerk een eigen webserver draait, zul je ‘portforwarding’ moeten instellen: poort 80 op de router moet dan doorgestuurd worden naar poort 80 op het (interne) ip-adres van de computer waarop de website staat.

Portforwarding

De router maakt voor dit soort doorverwijzingen gebruik van NAT, Netword Address Translation. Dat is een tabel met regels: in die tabel staan de doorverwijzingen van het extern ip-adres:poort naar het interne ip-adres:poort. Per regel kun je een poort laten doorverwijzen. Daarbji  kun je kiezen uit twee communicatieprotocollen: het TCP-protocol (Transmission Control Protocol) en het simpelere UDP-protocol (User Datagram Protocol). Welk protocol gebruikt moet worden is afhankelijk van de toepassing. Beide protocollen maken onderdeel uit van het IP-protocol. Bij verkeer via UDP hoeft er niet eerst een connectie gemaakt te worden, het is te vergelijken met een uitzending op een bepaald kanaal, in dit geval dus de poort. TCP werkt meer als een telefoongesprek, de geadresseerde moet eerst ‘opnemen’ zodat er een connectie gelegd kan worden.

IPv4 en IPv6

We hebben het overigens over IPv4: ip-adressen die worden geschreven in het formaat van 4 keer een decimaal getal (0 – 254). Inmiddels bestaat ook IPv6. IPv6 is onder andere ontwikkeld om de beperkingen en tekortkomingen van IPv4 te verhelpen. Met name het tekort aan beschikbare IP-adressen levert een enorm probleem op. De truc met NAT in routers van bedrijven en consumenten, is eigenlijk een lapmiddel om het tekort aan IPv4 adressen te maskeren. Bij IPv6 krijgt elk device dat internet-toegang heeft een eigen ip-adres op IPv6, daarvan zijn er bijna oneindig veel adressen mogelijk.