Směrovací tabulka
Směrovací tabulka (též routovací tabulka, anglicky routing table) je v informatice označení pro datovou strukturu uloženou v operační paměti počítače nebo routeru sloužící pro směrování dat procházejících počítačovou sítí. Obsahuje zjednodušený obraz topologie sítě, podle které systém rozhoduje, jak naložit s přijatým nebo odesílaným datagramem. Směrovací tabulka obsahuje záznamy odpovídající použitému síťovému protokolu (například TCP/IP, IPX/SPX a podobně). Pro protokoly TCP/IP je směrovací tabulka typicky implementována jako součást jádra operačního systému (tzv. TCP/IP stack).
Charakteristika
Směrovací tabulka je vytvářena při konfiguraci síťového subsystému (obvykle při startu počítače, avšak někdy i za jeho běhu). Záznamy ve směrovací tabulce mohou být statické (tj. nastavené pokaždé stejně) nebo dynamické (měnící se podle situace v počítačové síti). Statické záznamy vytváří správce počítače a jsou typicky uloženy na pevném disku. Dynamické záznamy zařazuje (i odebírá) z/do směrovací tabulky doména nějakého směrovacího protokolu (RIP, OSPF). Při zpracování datagramu je cílová adresa porovnána se záznamy ve směrovací tabulce. Při nalezení shody je podle daného záznamu datagram zpracován.
Centralizované směrování
Centralizované směrování funguje tak, že všechny routery posílají informace o stavu síťového okolí do jeho centra. Toto centrum na základě těchto informací vytvoří mapu sítě, vypočítá směrovací tabulky a ty rozešle nazpět routerům. Výhodou toho způsobu je jeho jednoduchost a díky kompletní mapě sítě schopnost určit globálně optimální tabulky. Centralizovaný způsob směrování ovšem příliš velké uplatnění nenašel. Jeho nevýhodou je velké zatížení centra a síť je pak omezena svou velikostí. Dalším problémem je špatná synchronizace tabulek. Uzly, které jsou k centru blíže, dostanou tabulku dříve, než ty vzdálenější.
Izolované směrování
Izolované směrování je postaveno na individualismu. Žádné síťové zařízení neposílá nikam žádné informace a router se rozhoduje zcela samostatně. Příkladem tohoto způsobu je záplavový algoritmus. Ten funguje tak, že příchozí router příchozí paket rozešle do všech směrů (kromě toho, ze kterého přišel). Tak vyzkouší všechny možnosti cesty a najde vždy tu nejkratší. Nevýhodou tohoto algoritmu je jeho nehospodárnost. Své využití najde hlavně v nadimenzovaných sítích nebo v případech, kdy je třeba rozšířit paket co nejrychleji po celé síti.
Směrovací protokoly
RIP
RIP (Routing Information Protocol) patří mezi nejstarší doposud používané IGP protokoly typu Distance Vector. Dodnes nachází uplatnění v malých sítích pro svou jednoduchost. Poprvé byl nasazen v roce 1968. Omezením protokolu je fakt, že je schopen fungovat v síti s maximálně 15 hopy (skoky, resp. směrovači v řadě za sebou). Zabrání tak routovacím smyčkám, ale zároveň je omezena velikost sítě. V tomto případě je 16 hopů bráno jako nekonečná vzdálenost a používá se pro označení nepřístupných tras. Routery využívající RIP protokol vysílají do sítě aktualizované tabulky každých 30 sekund. Moderní implementace protokolu navíc umožňují nastavení časových intervalů pro každý router zvlášť, aby směrovací tabulky nerozesílaly ve stejný okamžik a nedošlo pak k zahlcení sítě.
Existují tři verze protokolu. První verze (RIPv1) používá routing podle původních tříd IPv4 adres (A, B nebo C). Aktualizace tabulek neobsahují informace o masce sítě, což znemožňuje existenci různě velkých podsítí (nemá podporu v VLSM – Variable-Length Subnet Mask). Také zde neexistuje podpora pro vzdálenou autentizaci routerů a protokol je tedy snáze napadnutelný.
Problém první verze řeší RIPv2 vyvinutý v roce 1993. Zahrnuje možnost přenášet informace o masce sítě a má podporu pro vzájemnou autentizaci routerů. Tato autentizace ovšem stále není velmi bezpečná, hesla jsou přenášena v jednoduché textové (nehashované) podobně. Protokol je při správné konfiguraci kompatibilní s verzí RIPv1.
Třetí verze nazývá RIPng (RIP next generation). Jedná se o rozšíření RIPv2 s podporou IPv6 síťování.
Směrovací tabulka
IP datagramy jsou zpracovány podle záznamů ve směrovací tabulce, která je součástí implementace rodiny protokolů TCP/IP (tzv. TCP/IP stack je obvykle součástí jádra operačního systému).
Pořadí záznamů v tabulce
Záznamy ve směrovací tabulce jsou seřazeny podle délky masky sítě, tj. podle počtu jedniček zleva v binárním zápisu masky sítě. Na začátku tabulky jsou tak umístěny nejkonkrétnější záznamy – pro jednotlivé IP adresy s maskou 255.255.255.255 a malé podsítě). Na konci tabulky je naopak uveden nejobecnější záznam (nejkratší maska, tj. 0.0.0.0) pro bránu do Internetu (tzv. implicitní brána neboli default gateway). Takové uspořádání tabulky dovoluje vytvářet výjimky pro obecně zapsaná směrování (tj. výjimka z velké sítě pro její menší podsíť), takže je možné zmenšit počet záznamů ve směrovacích tabulkách (což je důležité zejména pro centrální routery v Internetu).
Porovnávání adresy cíle se záznamy v tabulce
Cílová IP adresa přijatého IP datagramu je postupně porovnávána s jednotlivými záznamy ve směrovací tabulce, dokud není nalezena shoda. Jak bylo výše zmíněno, záznamy jsou seřazeny od nejdelší masky (255.255.255.255) k nejkratší (0.0.0.0). Porovnání probíhá tak, že se vezme řádek ze směrovací tabulky a cílová IP adresa je pomocí logické funkce AND sloučena s maskou sítě uvedenou v tomto řádku směrovací tabulky. Pokud je výsledek roven číslu sítě v tomto řádku směrovací tabulky, je nalezena shoda a řádek je použit pro odeslání porovnávaného IP datagramu. Pokud shoda není, následuje porovnání s dalším řádkem tabulky. Poslední řádek tabulky typicky obsahuje tak zvanou implicitní bránu (anglicky default gateway), která slouží ke směrování všech datagramů, pro které v tabulce není uveden záznam. Proto je tento záznam označen jako síť 0.0.0.0 s maskou 0.0.0.0, takže pro jakoukoliv cílovou IP adresu dojde po výpočtu vždy ke shodě. Tento záznam zpravidla odkazuje na router (resp. směrovač), který odděluje počítač od zbytku Internetu.
Obsah tabulky
Každá směrovací tabulka musí obsahovat několik základních informací, které jsou při zpracování IP datagramů potřeba:
- Cíl v síti (Adresát)
- Za cíl je považována adresa podsítě, cílového počítače nebo implicitní (resp. výchozí) trasa (tj. adresa routeru, za kterým je typicky zbytek Internetu). Hodnota cíle se pohybuje v intervalu od IP adresy 0.0.0.0 (implicitní brána) do 255.255.255.255 (lokální broadcast). Společně s maskou sítě se cíl používá k porovnávání s cílovou IP adresou z datagramu, který je se záznamy v tabulce porovnáván.
- Síťová maska
- Maska sítě slouží pro určení rozsahu IP adres, pro které záznam v tabulce platí.
- Brána
- Hodnota brány udává IP adresu nejbližšího routeru (směrovače), na který mají být datagramy předávány.
- Rozhraní
- Rozhraní je podle daného systému buď symbolické označení síťového rozhraní (např. eth0) nebo IP adresa síťového rozhraní v místním počítači (tj. síťová karta), která má být použita pro předání IP datagramu.
- Metrika
- Vyjádření relativní ceny při použití dané trasy pro přenos dat k danému cíli. Obvykle bývá metrikou počet směrování – počet směrovačů na dané trase. Pokud je pro daný cíl k dispozici více než jedna trasa a mají různé hodnoty metriky, použije se trasa s nejnižší hodnotou.
- Protokol
- Údaj u protokolu uvádí, jak byly informace o trase získány. Nachází-li se ve sloupci Protokol hodnota RIP, OSPF nebo libovolná jiná hodnota než pojem Místní, směrovač získává potřebné informace o trasách skrze směrovací protokoly.
Příklady směrovacích tabulek
Microsoft Windows
V operačních systémech Windows NT je možné směrovací tabulku vypsat zadáním následujícího příkazu do terminálu:
route print
Po správném zadání by se vám mělo objevit podobně strukturovaný výpis:
=========================================================================== =========================================================================== Aktivní směrování: Cíl v síti Síťová maska Brána Rozhraní Metrika 0.0.0.0 0.0.0.0 10.0.0.138 10.0.0.1 25 10.0.0.0 255.255.255.0 10.0.0.1 10.0.0.1 25 10.0.0.1 255.255.255.255 127.0.0.1 127.0.0.1 25 10.255.255.255 255.255.255.255 10.0.0.1 10.0.0.1 25 127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1 192.168.56.0 255.255.255.0 192.168.56.1 192.168.56.1 20 192.168.56.1 255.255.255.255 127.0.0.1 127.0.0.1 20 192.168.56.255 255.255.255.255 192.168.56.1 192.168.56.1 20 224.0.0.0 240.0.0.0 10.0.0.1 10.0.0.1 25 224.0.0.0 240.0.0.0 192.168.56.1 192.168.56.1 20 255.255.255.255 255.255.255.255 10.0.0.1 10.0.0.1 1 255.255.255.255 255.255.255.255 192.168.56.1 192.168.56.1 1 255.255.255.255 255.255.255.255 192.168.56.1 10.0.0.5 1 Výchozí brána: 10.0.0.138 =========================================================================== Trvalé trasy: Žádné
Unixové systémy
V unixových systémech (např. Linux) je možné směrovací tabulku vypsat příkazem route -n
(přepínač -n
slouží k potlačení převodu IP adres na doménová jména). Řádky výstupu jsou ve výstupu tohoto unixového příkazu vždy seřazeny podle délky síťové masky (nejprve nejdelší maska), protože ve stejném pořadí jsou řádky zpracovávány i síťovým subsystémem jádra (tzv. TCP/IP stack). Výstupem příkazu bude pro koncovou stanici bude v nejjednodušším případě zhruba následující výstup:
$ route -n Směrovací tabulka v jádru pro IP Adresát Brána Maska Přízn Metrik Odkaz Užt Rozhraní 10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 0.0.0.0 10.0.0.1 0.0.0.0 UG 0 0 0 eth0
Ve výše uvedené tabulce je na prvním řádku vlevo uvedeno číslo sítě, ve které se nachází počítač (10.0.0.0 s maskou sítě 255.255.255.0), přičemž vpravo je zapsáno, že se nachází za síťovým rozhraním eth0 (ethernetová síťová karta). Druhý řádek pak obsahuje implicitní cestu (anglicky default route, v příznacích je proto uvedeno písmeno G, v řádku je zapsána cílová síť 0.0.0.0 s maskou 0.0.0.0), která odkazuje na router (směrovač) s IP adresou 10.0.0.1.