De routes die nodig zijn om pakketten naar hun eindbestemming te sturen, worden geconfigureerd in de interface of router. Als de computer een pakket naar het netwerk moet sturen, bekijkt hij de routeringstabel, die de IP-adressen van de bestemming opsomt en de adressen van de interfaces en routers op het thuisnetwerk die het pakket naar het juiste adres kunnen sturen. Als er geen route is opgegeven voor de bestemming, wordt eerst de zogenaamde standaardgateway of standaardroute gebruikt. Hetzelfde patroon wordt waargenomen op de router. Het apparaat kijkt naar het IP-adres van de bestemming, controleert dit in zijn routeringstabel en stuurt het vervolgens door. Laten we nu eens kijken hoe we specifieke routes kunnen configureren en nieuwe routes kunnen aanmaken aan de hand van een voorbeeld.
Voordat je iets gaat veranderen, moet je begrijpen welke regels al in gebruik zijn. Hiervoor biedt het Linux besturingssysteem verschillende commando's. Om dit te doen, gebruiken we het speciale route-commando
:
$ route
Zo ziet de linux routeringstabel eruit. Het geeft eenvoudige informatie, die niet altijd genoeg is om het punt over te brengen. Voor meer gedetailleerde informatie moet je het routel
commando gebruiken:
$ routel
Hier kun je het IP adres (doel), gateway IP adres, bron IP, protocol en zelfs de netwerkinterface zien. Maar er is een handigere manier om de Linux routeringstabel te bekijken met het IP commando:
$ ip route
We zien een resultaat dat lijkt op de uitvoer van het vorige commando. Omdat de uitvoer niet in de handigste vorm is, kun je ip route add
of ip route del
gebruiken als argument voor ip route
add
of ip route del
. Geloof me, dit is erg handig. Op deze manier zul je overal 192.168.1.1
als standaardgateway zien. Laten we het nu hebben over wat de uitvoer van dit commando betekent:
default
- standaardoptie. Dit moet het doel ip-adres of subnetmasker zijn;via 192.168.1.1.1
- geeft aan via welke gateway we dit doel kunnen bereiken, voor ons is dat 192.168.1.1;
dev enp2s0
- de netwerkinterface via dewelke deze gateway toegankelijk zal zijn;proto static
betekent dat de route is ingesteld door de beheerder, kernel betekent dat hij is ingesteld door de kernel;metric
- dit is de prioriteit van de route, hoe lager de waarde, hoe hoger de prioriteit.Laten we nu eens kijken hoe Linux routes worden geconfigureerd.
De gebruiker heeft nog steeds de mogelijkheid om de routeringstabel te configureren met het ip
commando. Om bijvoorbeeld de standaardroute te wijzigen, hoef je alleen maar ip uit te voeren:
$ ip route add default via 192.168.1.1
Op deze manier kun je een route toevoegen voor elk IP-adres, zoals 243.143.5.25
:
$ sudo ip route add 243.143.5.25 via 192.168.1.1
Dus, we specificeren het doel IP adres en dan een gateway op het lokale netwerk waardoor dat adres bereikt kan worden. Het enige probleem is dat zulke routes actief zijn tot de eerste reboot van de computer. Na de herstart worden ze automatisch verwijderd. Om dit te corrigeren moeten de routes worden toegevoegd aan het configuratiebestand.
Systemen uit de Red Hat familie hebben bijvoorbeeld configuratiebestanden /etc/sysconfig/network-scripts/route-ethX
. Elk bestand kan meerdere routes beschrijven, bijvoorbeeld
GATEWAY=10
.10.0.0.1NETMASK=255
.0.0.0.0IPADDR=10
.10.0.0.22
Dit configuratiebestand gebruikt gateway, dit is de gateway voor de interface, netmask
is het netmask en ipaddr
is het ip-adres van de interface. In Debian en gebaseerde distributies kan je routes configureren in het /etc/network/interfaces
bestand. Hier wordt het route commando toegevoegd aan de iface
sectie. Bijvoorbeeld:
up route add -net 10.10.0.0 netmask 255.0.0.0 gw 10.10.0.1
Met iface -net
specificeren we het doelnetwerk, netmask
is het netwerkmasker en gw
is de gateway. Hier is niets ingewikkelds aan. Nu zullen de toegevoegde routes zelfs na een herstart blijven bestaan.
We hebben dus gezien hoe routing werkt in Linux, hoe routing wordt geconfigureerd in Linux en waarom het nodig is.