Korte uitleg: Routering: de wegwijzers in het netwerk

Korte uitleg: Routering: de wegwijzers in het netwerk

Uit andere Korte uitleg kun je opmaken dat TCP/IP pakketjes worden verstuurd van verzenders naar ontvangers. Ze gaan daarbij van computer naar router, naar router, naar …, naar computer. In ieder van deze punten (computers en routers) moet het pakketje naar het goede volgende knooppunt worden gestuurd. Routers (en soms ook computers) zijn verbonden met verschillende netwerken (die kun je allemaal zien als LANs met een adresserie zoals uitgelegd in Korte uitleg: IP adressen). Een pakketje moet dus naar het goede LAN en op dat LAN naar de goede partner worden gestuurd.

Daarom zit in ieder met het netwerk verbonden systeem (computer/router) een “wegwijzer”. Dit heet de routeringstabel of routing table.

Hoe werkt het?

De tabel wordt gesorteerd op de lengte van het netwerk gedeelte. Hieronder een (gefingeerde) routing tabel van een computer in een LAN met twee routers, één naar de andere netwerken van het bedrijf (10.0.0.1) en één naar het Internet (10.0.0.138):

Bestemming      Masker          Uitgang
0.0.0.0         0.0.0.0         10.0.0.138
10.0.0.0        255.0.0.0       10.0.0.1
10.0.0.0        255.255.255.0   LAN

Na sortering op de lengte van het masker ziet dat er dus zo uit:

Bestemming      Masker          Uitgang
10.0.0.0        255.255.255.0   LAN
10.0.0.0        255.0.0.0       10.0.0.1
0.0.0.0         0.0.0.0         10.0.0.138

Een bestemmingsadres wordt achtereenvolgens vergeleken met deze netwerk adressen voor wat betreft het netwerk gedeelte. Voorbeelden:

  • Bestemming 10.0.0.154. In de eerste regel worden de eerste 24 bits vergeleken: 10.0.0 met 10.0.0. Raak! Stuur het pakketje naar het LAN.
  • Bestemming 10.6.3.15. In de eerste regel worden de eerste 24 bits vergeleken: 10.6.3 met 10.0.0. Mis, door naar de tweede regel. Hier worden de eerste 8 bits vergeleken: 10 met 10. Raak! Stuuur het pakketje naar router 10.0.0.1 (en hoe kom je daar?).
  • Bestemming 130.57.66.6. Zowel de eerste als de tweede regel passen niet. In de derde regel worden de eerste nul bits vergeleken. Altijd raak! Omdat deze laatste regel altijd past en dus de bestemming bepaalt van alle pakketjes die niet bij één van de vorige regels horen, heet deze route de “default route”. Stuur het pakketje naar de default router 10.0.0.138 (en hoe kom je daar?).

Denk hier even over na en je zult een idee krijgen over de routeringstabellen in de grote routers op het Internet. Die hebben vaak minder regels dan je zou denken, omdat ze alleen met korte maskers werken en de fijnverdeling aan routers verderop overlaten. Overigens gaat dit voordeel verloren als bijv. het hele 12.0.0.0/8 netwerk in Azië ligt behalve 12.13.14.0/24, dat in IJsland is. Dan moeten ook centrale routers aparte regels hebben voor die uitzondering. En dat is wat is gebeurd toen de IPv4 adressen dreigden op te raken. IPv6 is zo ontworpen dat dergelijke uitzonderingen niet meer nodig zijn.

Op je eigen computer

De routeringstabel zit in de draaiende Kernel. Hij gaat dus verloren bij een Shutdown en wordt weer opgebouwd bij Boot. Een aantal regels wordt automatisch toegevoegd, anderen later. Je kunt de huidige tabel zien met:

henk@boven:~> netstat -r
Kernel IP routing table
Destination     Gateway           Genmask         Flags   MSS Window  irtt Iface
default         adsl.henm.xs4all  0.0.0.0         UG        0 0          0 enp1s8
10.0.0.0        *                 255.255.255.0   U         0 0          0 enp1s8
loopback        *                 255.0.0.0       U         0 0          0 lo
henk@boven:~> netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         10.0.0.138      0.0.0.0         UG        0 0          0 enp1s8
10.0.0.0        0.0.0.0         255.255.255.0   U         0 0          0 enp1s8
127.0.0.0       0.0.0.0         255.0.0.0       U         0 0          0 lo
henk@boven:~>

In het eerste geval zie je host/domeinnamen (als die gevonden kunnen worden) en andere aanduidingen in begrijpelijke tekst (default, loopback en *). Met de -n optie zie je de IP adressen.

  • De laatste regel is de local loop via het lo apparaat. Die wordt automatisch toegevoegd bij het opstarten van het netwerk. Pakketjes naar localhost (127.0.0.1) gaat dus via lo.
  • De middelste regel wordt automatisch toegevoegd bij het UP zetten van een NIC. De gegevens worden afgeleid van het IP adres en het netmask waamee de NIC wordt geconfigureerd. We zien dus dat pakketjes voor het LAN via de NIC enp1s8 naar buiten moeten.
  • De eerste regel geeft aan dat alle pakketjes die niet naar een andere bestemming (localhost of LAN) moeten naar de default router gaaan, zijnde 10.0.0.138. De NIC enp1s8 wordt hier automatisch aan toegevoegd omdat 10.0.0.138 volgens de middelste regel daarheen gaat, een soort “weg afsnijden”.

Omdat de laaste twee regels automatisch worden aangemaakt, is hier zelden iets mis mee. De default route moet echter goed zijn als je tenminste met “buiten” (het Internet) wilt communiceren. Met het route -rn commando kun je dus controleren of die default route bestaat en of hij naar het goede IP adres wijst.

2 Likes