Maršrutai, kuriais paketai pasiekia galutinę paskirties vietą, yra sukonfigūruoti sąsajoje arba maršrutizatoriuje. Jei kompiuteriui pavedama išsiųsti paketą į tinklą, jis žiūri į maršrutizavimo lentelę, kurioje išvardyti paskirties IP adresai ir namų tinklo sąsajų bei maršrutizatorių, galinčių išsiųsti paketą tinkamu adresu, adresai. Jei paskirties vietoje nenurodytas joks maršrutas, pirmiausia naudojamas vadinamasis numatytasis šliuzas arba numatytasis maršrutas. Lygiai toks pat modelis stebimas ir maršrutizatoriuje. Įrenginys pasižiūri į paskirties IP adresą, patikrina jį savo maršruto nustatymo lentelėje ir siunčia toliau. Toliau, remdamiesi pavyzdžiu, panagrinėkime, kaip konfigūruoti konkrečius maršrutus ir kurti naujus maršrutus.
Prieš pradėdami ką nors keisti, turite suprasti, kokios taisyklės jau naudojamos. Šiam tikslui "Linux" operacinė sistema pateikia keletą komandų. Norėdami tai padaryti, naudojame specialią komandą route
:
$ route
Taip atrodo Linux maršrutizavimo lentelė. Joje pateikiama paprasta informacija, kurios ne visada pakanka, kad būtų galima suprasti esmę. Norint gauti išsamesnės informacijos, reikia naudoti komandą routel
:
$ routel
Čia galite matyti IP adresą (tikslą), šliuzo IP adresą, šaltinio IP, protokolą ir net tinklo sąsają. Tačiau yra patogesnis būdas pamatyti Linux maršrutizavimo lentelę naudojant komandą IP:
$ ip route
Matome rezultatą, kuris panašus į ankstesnės komandos išvestį. Kadangi išvestis nėra patogiausios formos, galite naudoti ip route add
arba ip route del
kaip argumentą ip route
add
arba ip route del
. Patikėkite, tai labai patogu. Tokiu būdu visur matysite numatytąjį šliuzą 192.168.1.1
. Toliau pakalbėkime apie tai, ką reiškia šios komandos išvestis:
default
- numatytoji parinktis. Tai turėtų būti tikslinis ip adresas arba potinklio kaukė;via 192.168.1.1.1
- nurodo, per kurį šliuzą galime pasiekti šį tikslą, mūsų atveju tai yra 192.168.1.1;
dev enp2s0
- tinklo sąsaja, per kurią bus pasiekiamas šis šliuzas;proto static
reiškia, kad maršrutą nustatė administratorius, kernel reiškia, kad jį nustatė branduolys;metric
- tai maršruto prioritetas, kuo mažesnė reikšmė, tuo didesnis prioritetas.Toliau pažiūrėkime, kaip konfigūruojami "Linux" maršrutai.
Vartotojas dar gali konfigūruoti maršrutizavimo lentelę naudodamas komandą ip.
Pavyzdžiui, norint pakeisti numatytąjį maršrutą, tereikia įvykdyti:
$ ip route add default via 192.168.1.1
Taip galite pridėti maršrutą bet kuriam IP adresui, pavyzdžiui, 243.143.5.25
:
$ sudo ip route add 243.143.5.25 via 192.168.1.1
Taigi, nurodome tikslinį IP adresą ir vietinio tinklo šliuzą, per kurį pasieksime šį adresą. Vienintelė problema yra ta, kad tokie maršrutai yra aktyvūs iki pirmojo kompiuterio perkrovimo. Po perkrovimo jie automatiškai ištrinami. Norint ištaisyti šį trūkumą, maršrutus reikia įtraukti į konfigūracijos failą.
Pavyzdžiui, "Red Hat" šeimos sistemose yra konfigūracijos failai /etc/sysconfig/network-scripts/route-ethX
. Kiekviename faile gali būti aprašyti keli maršrutai, pvz:
ADRESŲ SĄRAŠAS: GATEWAY=10
.10.0.0.0.1NETMASK=255
.0.0.0.0.0IPADDR=10
.10.0.0.0.22
Šiame konfigūracijos faile naudojamas gateway, tai yra sąsajos šliuzas, netmask
yra tinklo maskuotė, o ipaddr
yra sąsajos ip adresas. Debian ir kitose distribucijose maršrutus galite konfigūruoti /etc/network/interfaces
faile. Čia route komanda pridedama prie iface
skirsnio. Pavyzdžiui:
up route add -net 10.10.0.0 netmask 255.0.0.0 gw 10.10.0.1
Pavyzdžiui, su iface -net
nurodome tikslinį tinklą, netmask
- tinklo kaukę, o gw
- vartus. Čia nėra nieko sudėtingo. Dabar pridėti maršrutai išliks net ir po perkrovimo.
Taigi pamatėme, kaip Linux sistemoje veikia maršrutizavimas, kaip Linux sistemoje konfigūruojamas maršrutizavimas ir kodėl jis reikalingas.