Směrování v sítích
Pojmem směrování (routing) je označováno hledání cest v počítačových sítích. Jeho úkolem je dopravit datový paket určenému adresátovi, pokud možno co nejefektivnější cestou. Směrování je základním úkolem síťové vrstvy (L3) referenčního modelu OSI. Prakticky jej zajišťují routery (směrovače) v rámci WAN sítě (Internet).
Problém se smyčkami v síti
Switch je zmatený, když mu chodí zprávy z jedné adresy na různé porty. K čemuž dochází v případě že síť obsahuje cykly.
Řešení: Spanning Tree
Graf sítě, ale bez cyklů, na základě kterého switch nepoužívá některé porty. V případě výpadku nějaké části si graf aktualizuje.
LAN sítě - jsou lokální sítě, tedy počítače propojené HUBy, nebo SWITCHi (může být i routery)
HUB žádné směrování neřeší, to co mu příjde z jednoho portu pošle na všechny ostatní.
SWITCH už je inteligentnější a eviduje si v tabulce kam má jakou adresu směrovat. Toto směrování probíhá na 2.vrstvě OSI modelu. Pokud však posílám data do světa, přichází na řadu router.
WAN sítě - velké sítě komunikující na velké vzdálenosti (Internet) jsou propojeny routry.
ROUTER- zařízení k propojení sítí. Pracuje na 3.vrstvě OSI modelu a využívá protokol IP. Router si vede a aktualizuje routrovací tabulku (směrovací tabulku), které obsahují nejlepší cesty k cílům.
Směrovací tabulka - Základní datovou strukturou, podle které se rozhoduje, co udělat s kterým paketem.Formát: Cílová adresa/maska, Výstupní rozhraní, Brána(next hop), Metrika. Použije se cesta, která se shoduje s adresou cíle v paketu na co největší počet míst.
Výchozí cesta – typická pro sítě připojené jediným rozhraním k hierarchicky vyšší síti. Pro ty pakety, pro které neexistuje položka ve směrovací tabulce bude použita výchozí cesta. Snižuje počet záznamů v tabulce.
Konvergence - je proces a čas potřebný pro konverzi směrovacího protokolu. Dosažena ve chvíli, kdy všechny routry mají kompletní aktuální informaci o topologii.
Metrika - Každý směrovací protokol potřebuje kritérium podle kterého posoudí, která z více možných cest do cílové sítě je nejvýhodnější. Toto kritérium se označuje jako metrika. Různé metriky více (IGRP-bandwidth+delay) či méně (RIP-počet přeskoků v síti) odrážejí skutečné vlastnosti linek.
Pro směrování se používají 2 základní algoritmy: statické a dynamické.
Statické (neadaptivní) směrování
Záznamy v routovacích tabulkach nejsou za běhu měněny. Změnit je může jen správce počítače.
Dynamické (adaptivní) směrování
Tabulky jsou měněny a aktualizovány za provozu počítače a přizpůsobují se změnám v síti. Dynamické směrování dělíme na:
Problém nejkratší cesty
Problém nalezení nejkratší cesty pro pakety.
- Centralizované - při centralizovaném směrování routery posílají všechny informace o stavu sítě do řídícího centra, které je vyhodnotí, vypočítá routovací tabulky a rozesíla je zpátky routerům.
- Distribuované - každý router zná cesty ke svým sousedům (vzdálenost, funkčnost, přenosovou rychlost) a vyměňuje si s nimi i informace o směrování. Tak se šíří informace síti ze souseda na souseda.
- Izolované - routovací tabulky si vypočítává sám na zákadě procházejících paketů, nebo používá jiné metody, které z tabulkou nepracují.
- Záplavové směrování - do paketu umístí počítadlo přeskoků a vyšle jej na všechny linky kromě té z které přišel. Po dosažení limitu na počítadle se paket sám zruší a dál se nešíří.
- Backward learning - do paketu se vkládá počítadlo a identifikace zdrojové sítě. Router z příchozích paketů zjistí jak daleko jsou sítě z kterých paket přichází.
- Horky brambor - router se chce co nejrychleji zbavit paketu, tak jej zařadí do nejkratší výstupní fronty.
- Hierarchické směrování se používá v hierarchicky členěných sítí, které jsou rozděleny na autonomní oblasti. Směrovače těchto autonomních celků znají jen topologií svého celku.
- Distance Vector – vektory vzdálenosti – jednoduchá implementace, historicky starší
- Link State – stavy spojů – složitější, ale rychlejší konvergence
Distance vector
Směrovače neznají topologii sítě, pouze rozhraní, přes která mají posílat pakety do jednotlivých sítí a vektory vzdálenosti k těmto sítím. Na začátku obsahuje směrovací tabulka pouze přímo připojené sítě, tak jak byly nakonfigurovány administrátorem. Celá směrovací tabulka je periodicky zasílaná sousedům. Z příchozích směrovacích tabulek (vzdáleností sousedů od jednotlivých sítí) a výběrem nejlepší cesty si směrovač postupně upravuje svou sm.tabulku. Pokud mi nějaké cesta nebyla dlouho inzerována, odstraním ji z tabulky.
Metrikou je počet přeskoků (hop count) do cíle. Nezohledňuje parametry spojů. Pomalá konvergence při změnách topologie (kvůli periodě). Zátěž od broadcastu směrovacích tabulek.
S každým záznamem ve směrovací tabulce je uložen čítač, který určuje jeho stáří (typicky 3xupdate_perioda). Po vypršení je cesta rozesílaná jako nedosažitelná (route poisoning).
Link state
Směrování na základě znalosti „stavu“ jednotlivých linek (funkčnost, cena). Směrovače znají topologie celé sítě a ceny těchto linek. Informace udržují v topologické databázi (všichni ji mají stejnou). Každý směrovač počítá strom nejkratších cest ke všem směrovačům(a k nim připojeným sítím) pomocí Dijkstrova algoritmu.
Neustálé sledování stavu linek zajišťuje komunikace mezi směrovači pomocí LSA Hello zpráv. Při změně okamžitě šíří informaci o stavu svého okolí všem ostatním. Spotřebovává více pásma (hlavně na počátku zasílá množství LSP) a zdrojů na routeru.
Topologická databáze obsahuje záznamy ve tvaru: ID směrovače, seznam přilehlých linek k sousedním směrovačům (u každé je ID souseda), seznam koncových sítí připojených ke směrovači. U každé linky je i její cena. Z těchto záznamů lze zkonstruovat graf topologie sítě.
Pro zlepšení vlastností se rozděluje na menší oblasti, hraniční routery posílají sumární cesty, využívá multicast, číslování LSA.