Rutele necesare pentru trimiterea pachetelor la destinația lor finală sunt configurate în interfață sau router. Dacă computerul are sarcina de a trimite un pachet în rețea, acesta consultă tabela de rutare, care enumeră adresele IP de destinație și adresele interfețelor și routerelor din rețeaua de domiciliu care pot trimite pachetul la adresa corectă. Dacă nu este specificată nicio rută pentru destinație, se utilizează mai întâi așa-numitul gateway implicit sau ruta implicită. Exact același model este observat la nivelul routerului. Dispozitivul se uită la adresa IP de destinație, o verifică în tabelul său de rutare și apoi o trimite mai departe. În continuare, să analizăm modul de configurare a rutelor specifice și de creare a unor rute noi utilizând un exemplu.
Înainte de a începe să modificați ceva, trebuie să înțelegeți ce reguli sunt deja în uz. În acest scop, sistemul de operare Linux pune la dispoziție mai multe comenzi. Pentru a face acest lucru, folosim comanda specială route
:
$ route
Acesta este aspectul tabelului de rutare linux. Aceasta furnizează informații simple, care nu sunt întotdeauna suficiente pentru a înțelege punctul de vedere. Pentru informații mai detaliate, trebuie să utilizați comanda routel
:
$ routel
Aici puteți vedea adresa IP (țintă), adresa IP gateway, IP sursă, protocolul și chiar interfața de rețea. Dar există o modalitate mai convenabilă de a vedea tabelul de rutare linux folosind comanda IP:
$ ip route
Vedem un rezultat care este similar cu rezultatul comenzii anterioare. Deoarece rezultatul nu este în cea mai convenabilă formă, puteți utiliza ip route add
sau ip route del
ca argument pentru ip route
add
sau ip route del
. Credeți-mă, acest lucru este foarte convenabil. În acest fel, veți vedea 192.168.1.1
ca gateway implicit peste tot. În continuare, să vorbim despre ce înseamnă rezultatul acestei comenzi:
default
- opțiunea implicită. Aceasta ar trebui să fie adresa ip țintă sau masca de subrețea;via 192.168.1.1.1
- indică gateway-ul prin care putem ajunge la această țintă, pentru noi este 192.168.1.1;
dev enp2s0
- interfața de rețea prin care această poartă va fi accesibilă;proto static
înseamnă că ruta a fost setată de administrator, kernel înseamnă că a fost setată de kernel;metric
- aceasta este prioritatea rutei, cu cât valoarea este mai mică, cu atât prioritatea este mai mare.În continuare, să vedem cum sunt configurate rutele Linux.
Utilizatorul are încă posibilitatea de a configura tabela de rutare folosind comanda ip
. De exemplu, pentru a schimba ruta implicită, tot ce trebuie să faceți este să executați:
$ ip route add default via 192.168.1.1
În acest fel, puteți adăuga o rută pentru orice adresă IP, cum ar fi 243.143.5.25
:
$ sudo ip route add 243.143.5.25 via 192.168.1.1
Așadar, specificăm adresa IP țintă și apoi o poartă din rețeaua locală prin care să ajungem la adresa respectivă. Singura problemă este că astfel de rute sunt active până la prima repornire a computerului. După repornire, acestea sunt șterse automat. Pentru a corecta această deficiență, rutele trebuie adăugate la fișierul de configurare.
De exemplu, sistemele din familia Red Hat au fișiere de configurare /etc/sysconfig/network-scripts/route-ethX
. Fiecare fișier poate descrie mai multe rute, de exemplu:
GATEWAY=10
.10.0.0.1NETMASK=255
.0.0.0.0.0IPADDR=10
.10.0.0.22
Acest fișier de configurare utilizează gateway, acesta este gateway-ul pentru interfață, netmask
este masca de rețea, iar ipaddr
este adresa ip a interfeței. În Debian și distribuțiile bazate, puteți configura rutele în fișierul /etc/network/interfaces
. Aici comanda route este adăugată la secțiunea iface
. De exemplu:
up route add -net 10.10.0.0 netmask 255.0.0.0 gw 10.10.0.1
Cu iface -net
specificăm rețeaua țintă, netmask
este masca de rețea și gw
este gateway-ul. Nu este nimic complicat în legătură cu acest lucru. Acum rutele adăugate vor rămâne chiar și după o repornire.
Astfel, am văzut cum funcționează rutarea în Linux, cum se configurează rutarea în Linux și de ce este necesară.