Hrvatska akademska i istraživačka mreža
  NASLOVNICA MAPA WEBA TRAŽILICA KONTAKTI CARNET WEB
Hrvatska akademska i istraživačka mreža
 
menu 4
Sigurnost
menu 4
Distribucija
menu 4
Pomoć
menu 4
Dokumenti
menu 4
menu 4

 

 

6-04-06 11:50
Naredba ip route i tablice usmjeravanja

piše ANA KUKEC

U prethodnom smo se članku upoznali s osnovnim principima tzv. longest-prefix match usmjeravanja i naredbom route. Također, upoznali smo tri tipa ruta: unicast, default i reject. Pregledavali smo i uređivali jednu tablicu usmjeravanja tzv. glavnu tablicu usmjeravanja. U ovom ćemo se članku upoznati s podnaredbama route i rule naredbe ip koje imaju daleko veće mogućnosti od naredbe route.

 

Za razliku od tradicionalnog usmjeravanja na temelju najduljeg odgovarajućeg mrežnog prefiksa odredišne adrese, kod tzv. policy-based usmjeravanja ruta se odabire na temelju većeg broja određenih kriterija i iz većeg broja tablica usmjeravanja koje su podržane u Linux jezgrama 2.x. U ovom ćemo članku opisati postojeće tablice i rad s njima pomoću naredbu ip route, dok će usmjeravanje na temelju pravila i naredba ip rule biti opisana u narednim člancima.

 

Neovisno o tradicionalnom ili naprednom usmjeravanju, prvo se pretražuje priručni spremnik ruta (routing cache). Naredba ip, između ostalog, omogućuje:

  • ispis sadržaja spremnika: ip route show cache,

  • brisanje priručnog spremnika: ip route flush cache.

Ukoliko se tražena ruta ne nalazi u priručnom spremniku tada usmjernik konzultira tablice usmjeravanja. Linux jezgra podržava ukupno 255 tablica koje su označene brojem (1 do 255) ili imenom koje je pridruženo broju tablice u datoteci /etc/iproute2/rt_tables koju jezgra automatski stvara. Ispisom navedene datoteke možemo uočiti da postoje vrijednosti koje su unaprijed rezervirane (lokalna, glavna i default tablica), dok se sve ostale vrijednosti mogu dodijeliti nekoj od korisnički specificiranih imena tablica:

 

host:~# cat /etc/iproute2/rt_tables

#

# reserved values

#

255     local

254     main

253     default

0       unspec

 

Glavna tablica usmjeravanja (broj 254) sadrži sve rute koje se proizvoljno brišu i dodaju. Kada se u kontekstu tradicionalnog usmjeravanja i route naredbe spominje tablica usmjeravanja, misli se upravo na ovu tablicu. Ukoliko nije drugačije napomenuto, naredba ip route radi s ovom tablicom, dok naredba route može raditi jedino s ovom tablicom. Vrste ruta glavne tablice usmjeravanja su:

  • unicast ruta: ovo je default tip rute i ne mora se posebno navoditi, a opisuje put do odredišta,

  • unreachable ruta: uzrokuje ispuštanje paketa i slanje ICMP unreachable poruke "Destination unreachable" prema izvorišnoj adresi zapisanoj u paketu koji je "pogodio" ovu rutu,

  • prohibit ruta: uzrokuje ispuštanje paketa i slanje ICMP prohibit poruke "Communication administratively prohibited",

  • blackhole ruta: odbacivanje paketa bez ikakve dojave i ponovnog pokušaja prosljeđivanja,

  • throw ruta: ima značenje kod usmjeravanja na temelju pravila; nailaskom na ovu rutu jezgra se "pretvara" da nije našla poklapanje, iako možda ono postoji u narednim retcima tablice. Ovo ima za posljedicu nastavak potrage za rutom u drugim tablicama usmjeravanja.

Pokažimo primjer ispisa glavne tablice usmjeravanja:

 

host:~# ip route show

192.168.122.0/24 dev eth0 proto kernel scope link src 192.168.122.128

default via 192.168.122.2 dev eth0

 

Noviteti u odnosu na naredbu route su polja: proto kernel (označava da je rutu u tablicu unijela jezgra prilikom aktiviranja mrežnog sučelja) te scope link (područje dosega je lokalna mreža). Preostali protokoli koji označavaju rutu s obzirom na to tko ju je unio u tablicu usmjeravanja nalaze se u datoteci /etc/iproute2/rt_protos, a preostala područja dosega nalaze se zapisana u datoteci /etc/iproute2/rt_scopes:

 

host:~# cat /etc/iproute2/rt_protos

#

# Reserved protocols.

#

0       unspec

1       redirect

2       kernel

3       boot

4       static

8       gated

9       ra

10      mrt

11      zebra

12      bird

#

# The rest of the values are not reserved

 

host:~# cat /etc/iproute2/rt_scopes

#

# reserved values

#

0       global

255     nowhere

254     host

253     link

#

# pseudo-reserved

#

200     site

#

# The rest of the values are not reserved and

# the administrator is free to assign it.

 

Lokalna tablica usmjeravanja (broj 255) sadrži rute za lokalne adrese i adrese razašiljanja. Dozvoljeno je pregledavanje ove tablice i budući da ovom tablicom upravlja jezgra (prema potrebi), nema potrebe za uređivanjem njenog sadržaja. Vrste ruta lokalne tablice su:

  • local ruta: ruta do svih lokalnih adresa koje jezgra dodaju u lokalnu tablicu kada se mrežnom sučelju pridružuje IP adresa,

  • nat ruta: ruta kod koje se odredišna adresa definirana prefiksom prije prosljeđivanja mora preslikati u stvarnu adresu koja se u tablicu dodaje prilikom NAT konfiguracije,

  • broadcast ruta: ruta čije je odredište adresa razašiljanja.

Spomenuta tri tipa ruta mogu se naći isključivo u ovoj tablici usmjeravanja. Pogledajmo primjer ispisa lokalne tablice usmjeravanja:

 

host:~# ip route show table local

local 192.168.122.128 dev eth0 proto kernel scope host src 192.168.122.128

broadcast 192.168.122.0 dev eth0 proto kernel scope link src 192.168.122.128

broadcast 127.0.0.0 dev lo proto kernel scope link src 127.0.0.1

broadcast 192.168.122.255 dev eth0 proto kernel scope link src 192.168.122.128

local 127.0.0.1 dev lo proto kernel scope host src 127.0.0.1

local 127.0.0.0/8 dev lo proto kernel scope host src 127.0.0.1

 

Default tablica (broj 253) je inicijalno prazna i služi dodatnom naknadnom usmjeravanju (post-processing). Lokalnu tablicu (broj 254) u potpunosti uređuje jezgra operacijskog sustava, glavnu tablicu (broj 255) djelomično uređuje jezgra, tablicu 253 kao i sve preostale (korisnički dodane) uređuje administrator ili programska podrška za usmjeravanje.

 

Pokažimo sada primjere naredaba za uređivanje tablica usmjeravanja:

  • dodavanje unicast rute u glavnu tablicu za odredišnu mrežu 161.53.3.0/24 preko sučelja usmjernika 192.168.11.1 (parametar table main moguće je i izostaviti):
    ip route add table main 161.53.3.0/24 via 192.168.11.1

     

  • dodavanje default rute (u glavnu tablicu) preko usmjernika 192.168.11.1:
    ip route add default via 192.168.11.1

     

  • dodavanje prohibit rute za pakete namijenjene odredišnoj mreži 161.53.3.0/24 s izvorišnom adresom 192.168.11.131:
    ip route add prohibit 161.53.3.0/24 from 192.168.11.131

     

  • dodavanje rute za tiho odbacivanje paketa namijenjenih računalu 161.53.3.3:
    ip route add blackhole 161.53.3.3

     

  • brisanje pojedine unicast rute ili cijele tablice:
    ip route del blackhole 161.53.3.3
    ip route flush 161.53.3.0/24
    ip route flush table main

Uz brisanje i dodavanje ruta i tablica, naredba ip route nudi brojne druge mogućnosti. Primjerice, moguće je ispisati put do traženog računala na način kako ga "vidi" jezgra operacijskog sustava. Na primjer, ako je naše računalo 192.168.122.128 i nalazi se u mreži spojenoj na usmjernik s adresom sučelja 192.168.122.2, a tražimo put do računala 161.53.71.180:

 

host:~# ip route get 161.53.71.180

161.53.71.180 via 192.168.122.2 dev eth0 src 192.168.122.128

    cache mtu 1500 advmss 1460 hoplimit 64

 

Evo i primjera kako dodati novu, vlastitu tablicu usmjeravanja, te u nju dodati rute:

 

host:~# echo 5 MojaTablica >> /etc/iproute2/rt_tables

host:~# ip route add table MojaTablica 161.53.71.0/24 dev eth0

host:~# ip route add default via 161.53.3.1 dev eth1

host:~# ip route show table MojaTablica

161.53.71.0/24 dev eth0 scope link

default via 161.53.3.1 dev eth1

 

Prednosti korištenja više tablica dolazi do izražaja kod usmjeravanja na temelju pravila zapisanih u RPDB bazi (Rule Policy Database) pomoću ip rule naredbe. Na taj je način moguće jednostavno implementirati filtriranje paketa, prepisivanje adresa (NAT) i sl. Više o tome, u narednom nastavku.





[Lista]
Ovu uslugu CARNeta realizira Sveučilišni računski centar Sveučilišta u Zagrebu
  Copyright ©2005. CARNet. Sva prava zadržana. Impressum.
Mail to
sys-portal@CARNet.hr