Routing
Routing je proces, který rozhoduje o výběru cesty v jedné nebo více sítích. Směrování v síti je možné nejen díky routerům, ale i jiným koncovým zařízení. Pomocí těchto zařízení můžeme požadovaná data posílat v rámci lokální sítě nebo je posílat i do vzdálenější sítě.
Pro lepší představu uveďme následující praktický příklad. Posíláte e-mail vašemu známému, který se aktuálně nachází v jiné zemi a chcete jej kontaktovat. Samotný proces posílání IP paketů z vašeho zařízení do zařízení vašeho známého začíná tím okamžikem, kdy mu zašlete kupříkladu e-mailovou zprávu. Cestu, kudy se odeslaná zpráva doručí vašemu známému, určují routery. Inkriminovaný paket či více paketů s Vaší e-mailovou zprávu obdrží nejprve router, kterým si daný paket rozbalí a zjistí tzv. destination, tedy cíl zprávy, a podle této informace zašle paket dále na základě znalostí ze své směrovací tabulky. Tento proces se opakuje stále dokola na všech routerech v síti po cestě, dokud paket s daty nedorazí k příjemci, který si poté může zprávu zobrazit na svém cílovém zařízení.
Směrovací tabulka
Směrovací tabulka je nezbytnou součástí routeru nebo jiného síťového zařízení, která obsahují cesty, jenž v odborné terminologii nazýváme routy, do konkrétních síti a vedle nich také ještě informace o topologii sítě.
Pojďme si nyní vysvětlit, jak funguje směrovací tabulka, když uživatel chce zaslat zprávu. Jako příklad uveďme, že posíláte zprávu v naší lokální síti. Díky tomu, že jde o malou síť a její topologie není nijak rozsáhlá můžeme vcelku úspěšně předpokládat, že v tabulce jediného routeru v síti je uložená přímá cesta na finální zařízení, a tím pádem můžeme data poslat přímo na dané zařízení.
Ale jiné je to v případě, kdy posíláme data z jedné sítě do jiné. V tuto chvíli neznáme přímou cestu, ale známe směr k cílové destinaci naší odesílané zprávy. Dané pakety proto router přepošle na nejbližší síťové zařízení, které je ve směru cesty k příjemci. K tomu, aby router nebo jiné síťové zařízení vědělo, jakým směrem má data poslat dále, používá právě onu směrovací tabulku, kterou bychom mohli přirovnat k databázi.
V takové databázi jsou uloženy různé cesty. Na jejich základě se poté router či jiné síťové zařízení rozhoduje, kam zprávu poslat dále. Tento proces se opakuje na všech routerech v síti, dokud nedosáhneme naší destinace
Abychom pochopili podle čeho všeho se router při nahlížení do směrovací tabulky rozhoduje, ukážeme si, co vše směrovací tabulka vlastně obsahuje.
V základu zde vždy můžeme můžeme najít tři informace, a to identifikátor sítě, tzv. „routing metric“ a „next hop“.
Identifikátor sítě: se skládá z masky sítě a podsítí
routing metric: se určuje podle délky cesty, bandwidth (síťové propustnosti), množství výpočetní práce, hop count(úsek mezi výchozí a cílovým zařízením), delay a maximální přenosné délky(kolik dat je možné přenést)
next hop: adresa zařízení, na které bude paket dále poslán
Network destination | Netmask | Gateway | Interface | Metric |
---|---|---|---|---|
0.0.0.0 | 0.0.0.0 | 172.168.0.100 | 172.168.0.1 | 10 |
127.0.0.0 | 255.0.0.0 | 127.0.0.1 | 127.0.0.1 | 1 |
172.168.0.0 | 255.255.255.0 | 172.168.0.100 | 172.168.0.100 | 10 |
172.168.0.1 | 255.255.255.255 | 172.168.0.100 | 172.168.0.100 | 10 |
172.168.0.100 | 255.255.255.255 | 127.0.0.1 | 127.0.0.1 | 10 |
Směrování
Směrování se obecně dělí na statické a dynamické. Obě se úzce váží ke vzniku záznamů ve směrovací tabulce.
Statické směrování
Statické směrování se například používá, když jsou záznamy velmi jednoduché, a nebo když není třeba záznamy měnit. A proto se můžeme s tímto typem směrování často setkat u routeru v malých sítích. Jak jsme si již řekli statické směrování se používá, když se záznamy nemusí měnit z toho můžeme usoudit, že se směrovací tabulka nijak často neaktualizuje. Neboli do tabulky může zapisovat záznamy admin sítě a nebo je tato tabulka tvořena při startu zařízení.
Dynamické směrování
Dynamické směrování funguje tím způsobem, že se směrovací tabulka aktualizuje podle stavu sítě. Neboli sleduje jak mezi sebou zařízení komunikují a podle toho aktualizuje tabulky. Dynamické směrování používá různé protokoly jako centralizované, distribuované, hierarchické a izolované.
Centralizované směrování
Centralizované směrování funguje na tom principu, že centrála zná celou síť. Vše vypočítá, vytváří tabulky a pošle je ostatním zařízením v síti. A právě v tomto spočívá největší nevýhoda centralizovaného a to, že centrála posílá informace a záznamy nejbližším zařízením v síti jako prvním.. Tento protokol se tedy nehodí do velkých sítí, jelikož než se informace dostane na poslední zařízení v síti, tak se může cokoliv změnit a poté nesouhlasí tabulky.
Distribuované směrování
Distribuované směrování se dá pokládat za standardní směrování, když jde o směrování v síti. Funguje tak, že si sousední zařízení mezi sebou postupně posílají data, dokud se rozšíří do celé sítě. Tento protokol řeší problém centralizovaného směrování, protože zvládne i rozlehlé sítě. Jeden z nejvýznamnějších představitelů distribuovaných protokolů je například RIP.
RIP
RIP neboli Routing Information Protocol umožňuje komunikaci několika routerů mezi sebou a reaguje na změny v síti. Bohužel má dvě omezení a to hop count, který nesmí přesáhnout 15 hopů. Jakmile se tak stane daný hop je považován za neplatný. Druhá nevýhoda je, že RIP 1 nepodporuje masky podsítě s proměnou délkou.
Hierarchické směrování
hierarchické směrování je metoda směrování, která je založená na hierarchickém adresování. Tato metoda si hierarchicky seřadí síťové zařízení. Vemte si například firemní síť, která je rozdělena podle oddělení ve firmě. Každé oddělení je připojeno na směrovací zařízení v síti, které pak vede k dalšímu zařízení v síti. Představte si, že posíláte data do všech podsítí, které máte hierarchicky seřazené. Pošlete data všem síťovým směrovacím zařízením a ty pak pošlou data všem ostatním zařízení v rámci své sítě. Tato metoda se velmi uplatňuje ve firemních sítích. Jeden ze známých představitelů hierarchických protokolů je OSPF.
OSPF
OSPF neboli Open Shortest Path First je jeden z nejstarších používaných hierarchických protokolů směrování. Funguje tak, že každé směrovací zařízení v síti zná strukturu celé sítě. Činnost OSPF je rozdělena do tří částí a to správa sousedských relací, šíření směrovacích informací a určování nejkratších cest.
Správa sousedských relací
Tato relace vždy zpravidla existuje mezi dvěma sousedními směrovacími zařízeními. Jde zde hlavně o nashromáždění síťových informací. Existují dva typy sousedství a to 2-way a full. 2-way slouží k směrování. Full také slouží ke směrování, ale ještě k tomu dochází k výměně směrovacích informací.
Šíření směrovacích informací
K šíření směrovacích informací dochází vždy, jakmile došlo ke změně v topologii sítě. Touto změnou je myšlen zánik nebo vznik sousedské relace. Detailní informace o změně dostávají směrovací zařízení v oblasti změny. Ostatní směrovací zařízení dostávají maximálně informace o změně metriky nebo změně směru.
Určování nejkratších cest
Výpočet nejkratší změny se provádí vždy po změně v topologii sítě.
Izolované směrování
Izolované směrování funguje tak, že se každé směrovací zařízení rozhoduje zcela samostatně. Tedy neposílá žádné informace o stavu sítě.
Metody doručování zpráv
Metody se rozlišují podle toho jak posíláme zprávy. Ať je posíláme jednomu zařízení nebo více.
Unicast
Unicast se používá pro přímou komunikaci mezi dvěma zařízeními v síti. Jsou i případy kdy nemůžeme použít multicast, a proto by jsme museli využít unicast, ale v tomto případě by byla velmi zatížená síť. Unicast můžeme také popsat jako posílání dat one-to-one.
Broadcast
Broadcast používáme, když posíláme data všem zařízením v síti. Tímto způsobem může router zjisti jaká zařízení jsou v síti. Ale musíme si dát pozor, protože tímto můžeme lehce zahltit celou síť. Broadcast můžeme také popsat jako posílání dat one-to-all.
Multicast
Multicast můžeme používat, když posíláme data nějaké skupině zařízení. Dobře se to dá přirovnat k videocallu nebo streamu. Jeden člověk vysílá stream a lidé se mohou rozhodnout zda si vysílání spustí či ne. A tak můžeme multicast popsat jako one-to-many nebo many-to-many.
Ukázky routingu v terminálu
Zobrazení routing table
Máme dva příkazy, kterými můžeme zobrazit směrovací tabulku a to:
user:~$ ip route show default via 172.21.160.1 dev eth0 172.21.160.0/20 dev eth0 proto kernel scope link src 172.21.166.48
nebo
user:~$ ip route list default via 172.21.160.1 dev eth0 172.21.160.0/20 dev eth0 proto kernel scope link src 172.21.166.48
Naše defaultní cesta je nastavena přes rozhraní eth0. Například všechny pakety, které nejdou odeslat pomocí předchozích záznamů směrovací tabulky, jsou odeslány přes default gateway 172.21.160.1.
Nastavení cesty do lokální sítě eth0
Když použijeme tento příkaz, tak budeme odesílat všechny pakety do místí sítě 182.168.1.0/24 přes eth0.
user:~$ sudo ip route add 192.168.1.0/24 dev eth0
Nastavení defaultní routy
Všechny pakety, které nemůžeme poslat podle předchozích záznamů ve směrovací tabulce jsou automaticky zaslané přes default gateway. Tímto příkazem si můžete nastavit defaultní routu.
user:~$ sudo ip route add default via 192.168.1.254
Smazání cest ze směrovací tabulky
Když zadáme následující příkaz, tak vymažeme cestu neboli routu ze směrovací tabulky.
user:~$ sudo ip route delete 192.168.1.0/24 dev eth0
Dokonce můžeme vymazat i defaultní routu.
user:~$ sudo ip route delete default via 192.168.1.254 dev eth0