Hier leg ik uit wat een router doet aan de hand van een voorbeeldconfiguratie, eerst zonder router, dan met een router. |
-
Voorbeeld zonder router
De computer is direct aangesloten op de modem. Je computer heeft als ip 81.164.242.39 (gekregen via DHCP (kabel) of via PPPoE (ADSL) toen je ingelogd bent).
PoortenBepaalde poorten zijn gestandardiseerd: een webserver luistert op poort 80, en een client zal daarom zijn vraag richten aan poort 80. Een client die zijn mail opvraagt zal de vraag richten aan poort 110 (popmail). En zo zijn er honderden gestandardiseerde poorten: de client weet welke poort gebruikt moet worden, dit is de zogenaamde "default"-poort. Bij het gebruik van niet-standaard-poorten, zoals een home server dat vanwege beperkingen opgelegd door de service provider niet op poort 80 kan luisteren moet je gewoon het juiste poortnummer aangeven. Een poort is maar een nummer, als client en server dezelfde poort gebruiken kunnen ze zonder probleem communiceren, welke poort ze ook gebruiken.
Opvragen van een paginaJe typt de url in je browser. Je computer voert een omzetting van de naam naar het IP adres (resolution) en maakt een verbinding met mijn server. server.idemdito.org luistert wel op poort 80 zoals iedere normale server. Deze computer heeft een internet-verbinding dat geschikt is voor servers, met een vast IP en alle poorten open. Bij het aanvragen van een pagina maakt je computer een TCP-verbinding (dit is de meest voorkomende verbinding, de andere zijnde UDP). TCP is een tweerichtingsverbinding, vanaf een poort van je computer naar een poort van een andere computer. In dit geval wordt poort 5000 gebruikt voor de uitgaande verbinding. Het antwoord komt via dezelfde weg (dit is het geval bij de meeste internetprotocollen zoals web en mail). De server stuurt nu het antwoord naar poort 5000 van de klant (via dezelfde verbinding dat aangelegd om de pagina aan te vragen). Of de verbindingen open blijven of na iedere transactie (vraag gevolgd door antwoord) of verbroken worden hangt van het protocol: bij gebruik van het oudere HTTP/1.0 wordt de verbinding verbroken na iedere vraag/antwoord, bij HTTP/1.1 blijven beide verbindingen open zolang er geen time-out gebeurt (aan de server-kant) of als de klant naar een andere site surft. Deze persistente verbindingen zijn sneller omdat er niet altijd een nieuwe verbinding gelegd moet worden. Omdat TCP een protocol met een ingebouwde foutcorrectie is, moet er bij het aangaan van een verbinding niet minder dan 3 datapakketten gewisseld worden tussen client en server. Deze pakketten bevatten geen data, maar zorgen ervoor dat de verbinding dat gemaakt zal worden over een foutcorrectie beschikt. Iedere keer dat er dus een verbinding gelegd moet worden, worden dus eerst 3 berichten verzonden; dit kan vermeden worden door de verbinding persistent te maken. Maar ik vrees dat wij aan het afdwalen zijn... Bij FTP-verbindingen worden er twee verbindingen aangelegd: een controle-poort waardoor de opdrachten en antwoorden gestuurd worden, en een data-poort waardoor de bestanden en de directory-lists gestuurd worden. De dataverbinding wordt afgebroken na iedere verzending, waardoor het protocol niet echt efficient is bij het versturen van talrijke kleine bestanden. |
Voorbeeld met router
Bij een lokaal netwerk heeft iedere computer een lokaal adres, dat verschillend is van het adres dat door de provider toegewezen is. Lokale adressen zal je meestal vinden in de range 192.168.*.*
|
NAT, PAT en overloading
We nemen weer dezelfde situatie. Computer 1 vraagt een pagina aan aan de server gelegen op adres 81.241.241.58 (dit is niet dezelfde server als in het vorig voorbeeld, maar speelt verder geen rol) en gebruikt als uitgaande poort 5000. De computer richt zich nu echter niet meer direct tot de server, maar tot de gateway omdat er een gateway en subnet ingesteld staat in de configuratie van die computer en het adres niet lokaal is (deze configuratie is automatisch gebeurd via DHCP).
Deze omroep wordt door de router omgezet naar het adres van de uiteindelijke server. Veel aan de vraag moest er niet veranderd worden.
Conputer 2 heeft ook een aanvraag aan dezelfde server. Computer 2 gebruikt dezelfde instellingen, en zal ook luisteren op poort 5000. De regel wordt uit de translation table verwijderd van zodra de betreffende verbinding verbroken is. Een FTP-verbinding waarbij er bij iedere bestandsoverdracht een nieuwe dataverbinding opgezet moet worden betekent extra veel werk voor de router. |
Routers en lokale servers
In het vorige heb je geleerd hoe een router het juiste antwoord naar de juiste computer kan sturen. Maar wat gebeurt er als een antwoord binnenkomt voor een vraag dat niet gesteld werd? In dit geval wordt het pakket gewoon weggegooid. Dit is de firewall-funktie van de router: wat niet aangevraagd werd, wordt niet verder verwerkt. Overigens is er zeer weinig verschil tussen een vraag en een antwoord (aan de TCP pakketten kan je het niet zien: het pakket bevat gewoon een adres van de verzender en de bestemmeling + de data). Enkel de uiteindelijke computers weten waarover het gaat. De componenten onderweg sturen gewoon de gegevens door. Enkel een router moet wat meer uit zijn doppen kijken en de adressen controleren. In het volgend voorbeeld heb je een webserver op computer 192.168.1.103 (luisterend op poort 80) en een mailserver op 192.168.1.102 (luisterend op poort 110). Je provider blokkeert alle poorten beneden 1024 in een poging je te verhinderen servers te runnen. In dit geval moet je je router bijkomend configureren. De tabel dat nu gehanteerd wordt lijkt zeer veel op de translation table van hierboven, maar deze moet gedeeltelijk zelf ingevuld worden. Hoe we dit doen wordt later nog uitgelegd.
Je moet namelijk aangeven in je routing table dat aanvragen voor webpagina's (dat je moet laten binnenkomen op poort 20800) doorgestuurd moeten worden naar 192.168.1.103 en aanvragen om mail te lezen naar computer 192.168.1.1022. Beide computers gebruiken de standaard-poorten (zodat je de web- en mailserver niet moet configureren). Hier komt dus PAT en NAT om de hoek kijken. |
Publicités - Reklame