De rutter som krävs för att leverera paket till slutdestinationen konfigureras i gränssnittet eller routern. Om datorn får i uppdrag att skicka ett paket till nätverket tittar den i routingtabellen, som innehåller IP-adresserna för destinationen och adresserna till de gränssnitt och routrar i hemnätverket som kan skicka paketet till rätt adress. Om ingen rutt anges för destinationen används först den s.k. standardgatewayen eller standardrutten. Exakt samma mönster observeras på routern. Enheten tittar på destinationens IP-adress och kontrollerar den mot sin routingtabell och skickar den sedan vidare. Nu ska vi titta på hur du konfigurerar specifika rutter och skapar nya rutter med hjälp av ett exempel.
Innan du börjar ändra något måste du förstå vilka regler som redan används. För detta ändamål tillhandahåller Linux-operativsystemet flera kommandon. För att göra detta använder vi det speciella route-kommandot
:
$ route
Så här ser linux routingtabell ut. Den ger enkel information, vilket inte alltid är tillräckligt för att få fram poängen. För mer detaljerad information måste du använda kommandot routel
:
$ routel
Här kan du se IP-adressen (mål), gateway-IP-adressen, käll-IP, protokoll och till och med nätverksgränssnittet. Men det finns ett bekvämare sätt att se linux routingtabell med hjälp av kommandot IP:
$ ip route
Vi ser ett resultat som liknar utdata från föregående kommando. Eftersom utdata inte är i den mest praktiska formen kan du använda ip route add
eller ip route del
som ett argument för ip route add
eller ip route del
. Tro mig, det här är mycket bekvämt. På så sätt kommer du att se 192.168.1.1
som standardgateway överallt. Låt oss nu prata om vad utdata från det här kommandot betyder:
default
- standardalternativ. Detta bör vara målets IP-adress eller subnätmask;via 192.168.1.1.1
- anger genom vilken gateway vi kan nå det här målet, för oss är det 192.168.1.1;
dev enp2s0
- det nätverksgränssnitt genom vilket den här gatewayen kommer att vara tillgänglig;proto static
betyder att rutten ställdes in av administratören, kernel betyder att den ställdes in av kärnan;metric
- detta är ruttens prioritet, ju lägre värde desto högre prioritet.Låt oss nu se hur Linux-vägar konfigureras.
Användaren har fortfarande möjlighet att konfigurera routningstabellen med hjälp av ip-kommandot
. Om du t.ex. vill ändra standardrutten behöver du bara köra:
$ ip route add default via 192.168.1.1
På så sätt kan du lägga till en rutt för vilken IP-adress som helst, t.ex. 243.143.5.25:
$ sudo ip route add 243.143.5.25 via 192.168.1.1
Vi anger alltså målets IP-adress och sedan en gateway i det lokala nätverket genom vilken vi kan nå den adressen. Det enda problemet är att sådana rutter är aktiva fram till den första omstarten av datorn. Efter omstarten raderas de automatiskt. För att rätta till detta måste rutterna läggas till i konfigurationsfilen.
Exempelvis har Red Hat-familjens system konfigurationsfilerna /etc/sysconfig/network-scripts/route-ethX
. Varje fil kan beskriva flera rutter, t.ex:
GATEWAY=10
.10.0.0.1NÄTMASK=255
.0.0.0.0IPADDR=10
.10.0.0.22
I den här konfigurationsfilen används gateway, vilket är gatewayen för gränssnittet, netmask
är nätmasken och ipaddr
är gränssnittets IP-adress. I Debian och andra basdistributioner kan du konfigurera routes i filen /etc/network/interfaces
. Här läggs kommandot route till i iface-avsnittet
. Ett exempel:
up route add -net 10.10.0.0 netmask 255.0.0.0 gw 10.10.0.1
Med iface -net
anger vi målnätverket, netmask
är nätverksmasken och gw
är gatewayen. Det är inget komplicerat med detta. Nu kommer de tillagda rutterna att finnas kvar även efter en omstart.
Nu har vi sett hur routing fungerar i Linux, hur routing konfigureras i Linux och varför det är nödvändigt.