Menu Zavrieť

4.4. Smerovacia tabuľka

Každá stanica aj každý router sú schopné odoslať datagram na ľubovoľnú cieľovú adresu na internete. Keby si všetky stanice aj routre mali uchovávať smer odoslania pre každú možnú stanicu zvlášť, potrebovali by sme zhruba 4 miliardy záznamov. Samozrejme, že uchovávanie takých veľkých tabuliek nie je vyhovujúce. Namiesto toho sa využívajú kombinácie IP adries a masiek tak, aby sa počet záznamov smerovacej tabuľky čo najviac zredukoval.

Vezmime si príklad smerovacej tabuľky na routri s 5 rozhraniami.

cieľ maska brána rozhranie metrika
200.23.24.0 255.255.255.0 0.0.0.0 1 0
200.23.16.0 255.255.248.0 0.0.0.0 3 0
200.23.24.0 255.255.248.0 0.0.0.0 2 0
200.23.24.0 255.255.248.0 0.0.0.0 5 10
0.0.0.0 0.0.0.0 200.23.1.1 4 0

Všimnite si, že riadky tabuľky sú usporiadané podľa počtu jednotiek v maske zostupne. Predstavme si teraz, že na tento router príde datagram s cieľovou adresou 200.23.25.8. Do ktorého rozhrania sa má tento datagram odoslať? Algoritmus výberu postupuje tak, že vypočítava logický AND cieľovej adresy datagramu a masky v príslušnom riadku smerovacej tabuľky (takto sa počíta adresa siete). Ak výsledok je zhodný s hodnotou v stĺpci cieľ, pravidlo je úspešné a datagram sa pošle do toho rozhrania, ktoré uvádza príslušný riadok smerovacej tabuľky. Pravidlá sa vyhodnocujú zhora nadol.

Vyskúšajme si teda výpočet tohto algoritmu pre cieľovú adresu 200.23.25.8. Najprv vypočítame AND s maskou v prvom riadku. Výsledok 200.23.25.0 je rôzny od 200.23.24.0 takže pravidlo je neúspešné. Potom sa vytvorí AND adresy 200.23.25.8 s maskou 255.255.248.0. Výsledok 200.23.24.0 je zhodný s cieľom v treťom riadku, pravidlo je úspešné a datagram je zaslaný cez rozhranie 2.

Tretí a štvrtý riadok tabuľky sa líšia iba v metrike. V takomto prípade je možné posielať tento datagram aj cez rozhranie 5, aj cez rozhranie 2 (obe cesty sú správne), ale preferované je rozhranie s nižším číslom metriky.

Všimnime si, že posledný riadok smerovacej tabuľky má masku 0.0.0.0, s ktorou keď urobíme logický AND, výsledok bude vždy 0.0.0.0. Z toho vyplýva, že ak sa testuje aj posledné pravidlo, je úspešné vždy.

Ešte sme nespomínali, načo je stĺpec brána. Informácie o bráne sú potrebné pre spojovú vrstvu (spomenieme neskôr, keď ju budeme preberať). Ak je v stĺpci brána uvedené 0.0.0.0, znamená to, že dané rozhranie je v rovnakej sieti ako stanica s cieľovou adresou z datagramu. Napríklad vieme, že stanica s IP adresou 200.23.25.8 sa nachádza v rovnakej sieti ako rozhranie routra s číslom 2 a aj rozhranie routra s číslom 5. Samozrejme aj IP adresy týchto rozhraní routra sú potom z rovnakej siete. Napríklad by to mohli byť IP adresa 200.23.25.1 a 200.23.25.254.

Ak je v stĺpci brána uvedená nejaká konkrétna IP adresa, v našom príklade 200.23.1.1, ide o adresu najbližšieho routra, cez ktorý pôjde datagram na svojej ceste k cieľovej stanici. Ak ide o posledný riadok s cieľom aj maskou 0.0.0.0, hovoríme o default routri, teda routri, cez ktorý sa spájame s našim providerom a ktorý nás pripája do internetu.