De ruter, der er nødvendige for at levere pakker til deres endelige destination, er konfigureret i grænsefladen eller routeren. Hvis computeren får til opgave at sende en pakke til netværket, kigger den på routingtabellen, som viser destinationens IP-adresser og adresserne på de interfaces og routere på hjemmenetværket, der kan sende pakken til den rigtige adresse. Hvis der ikke er angivet nogen rute til destinationen, bruges den såkaldte standardgateway eller standardrute først. Præcis det samme mønster ses på routeren. Enheden ser på destinationens IP-adresse og tjekker den i sin routingtabel og sender den derefter videre. Lad os nu se på, hvordan man konfigurerer specifikke ruter og opretter nye ruter ved hjælp af et eksempel.
Før du begynder at ændre noget, skal du forstå, hvilke regler der allerede er i brug. Til dette formål har Linux-operativsystemet flere kommandoer. Til det formål bruger vi den særlige route-kommando
:
$ route
Sådan ser linux-routing-tabellen ud. Den giver enkle oplysninger, som ikke altid er nok til at forstå pointen. Hvis du vil have mere detaljerede oplysninger, skal du bruge kommandoen routel
:
$ routel
Her kan du se IP-adresse (mål), gateway-IP-adresse, kilde-IP, protokol og endda netværksinterface. Men der er en mere praktisk måde at se linux-routing-tabellen på ved at bruge IP-kommandoen:
$ ip route
Vi ser et resultat, der ligner outputtet fra den forrige kommando. Da outputtet ikke er i den mest praktiske form, kan du bruge ip route add
eller ip route del
som argument for ip route add
eller ip route del
. Tro mig, det er meget praktisk. På denne måde vil du se 192.168.1.1
som standardgateway overalt. Lad os nu tale om, hvad resultatet af denne kommando betyder:
default
- standardindstilling. Dette bør være mål-ip-adressen eller subnetmasken;via 192.168.1.1.1
- angiver, gennem hvilken gateway vi kan nå dette mål, for os er det 192.168.1.1;
dev enp2s0
- den netværksgrænseflade, hvorigennem denne gateway vil være tilgængelig;proto static
betyder, at ruten blev indstillet af administratoren, kernel betyder, at den blev indstillet af kernen;metric
- dette er rutens prioritet, jo lavere værdi, jo højere prioritet.Lad os nu se, hvordan Linux-ruter konfigureres.
Brugeren har stadig mulighed for at konfigurere routingtabellen ved hjælp af ip-kommandoen
. Hvis man f.eks. vil ændre standardruten, skal man bare udføre den:
$ ip route add default via 192.168.1.1
På den måde kan man tilføje en rute til en hvilken som helst IP-adresse, f.eks. 243.143.5.25
:
$ sudo ip route add 243.143.5.25 via 192.168.1.1
Så vi angiver mål-IP-adressen og derefter en gateway på det lokale netværk, hvorigennem vi kan nå den adresse. Det eneste problem er, at sådanne ruter er aktive indtil den første genstart af computeren. Efter genstarten slettes de automatisk. For at rette op på denne mangel skal ruterne tilføjes til konfigurationsfilen.
For eksempel har systemer i Red Hat-familien konfigurationsfilerne /etc/sysconfig/network-scripts/route-ethX
. Hver fil kan beskrive flere ruter, f.eks:
GATEWAY=10
.10.0.0.1NETMASK=255
.0.0.0.0IPADDR=10
.10.0.0.22
Denne konfigurationsfil bruger gateway, som er grænsefladens gateway, netmask
er netmasken, og ipaddr
er grænsefladens ip-adresse. I Debian og andre baserede distributioner kan man konfigurere ruter i filen /etc/network/interfaces
. Her tilføjes kommandoen route til afsnittet iface
. Et eksempel:
up route add -net 10.10.0.0 netmask 255.0.0.0 gw 10.10.0.1
Med iface -net
angiver vi målnetværket, netmask
er netværksmasken
, og gw
er gatewayen. Der er ikke noget kompliceret ved dette. Nu vil de tilføjede ruter forblive, selv efter en genstart.
Så vi har set, hvordan routing fungerer i Linux, hvordan routing konfigureres i Linux, og hvorfor det er nødvendigt.