Směrování (anglicky routing, též routování) označuje v informatice určování cest datagramů v prostředí počítačových sítí. Směrování zajišťují nejen routery, ale i koncové stanice (při vysílání) a jeho úkolem je doručit datagram (resp. paket) adresátovi, pokud možno co nejefektivnější cestou. Směrování zajišťuje síťová vrstva modelu ISO/OSI a je využíváno v lokálních sítích LAN i na Internetu, kde jsou dnes směrovány zejména IP datagramy. Síťová infrastruktura mezi odesílatelem a adresátem paketu může být velmi složitá, a proto se směrování zpravidla nezabývá celou cestou paketu, ale řeší vždy jen jeden krok, tj. komu datagram předat jako dalšímu.
Analogie
Směrovací proces lze zhruba přirovnat k cestě autem bez mapy nebo navigace. Přijedete ke křižovatce, podíváte se na ukazatele a podle nich se rozhodnete, kam se dát. Řekněme, že jedete do Prahy a Praha je značena vpravo. Zabočíte tedy doprava a neřešíte, jak budete postupovat na další křižovatce. Teprve když na ni dojedete, prohlédnete si zdejší sadu ukazatelů a provedete další rozhodnutí (např. pojedete rovně). A tak dále, dokud nedorazíte do cíle. Podobně každé směrující zařízení v sobě má sadu pravidel (ukazatelů směru), která říkají, kam se mají předávat pakety směřující k určeným cílům. Podle nich data předá některému ze sousedů a tam se rozhodovací proces bude opakovat podle zdejších pravidel. V každém uzlu sítě není možné z kapacitních důvodů uvádět pravidla pro dosažení všech cílů. Proto jsou pravidla při směrování zobecňována podobně, jako při cestě autem, kdy jsou na křižovatkách uvedeny vždy jen důležité cíle (buď v bezprostřední blízkosti nebo obecné dálkové cíle).
Směrovací tabulka
Směrovací tabulka (anglicky routing table) obsahuje informace, které jsou nutné při rozhodování o směrování. Je uložena, používána a může být i vytvářena v aktivních uzlech sítě (router, stanice apod.). Záznamy jsou ve směrovací tabulce rozděleny do řádků, přičemž každý obsahuje jednu směrovací informaci. Řádky jsou seřazeny od nejkonkrétnějších (nejdelší maska sítě) po nejobecnější (kratší maska sítě), přičemž posledním záznamem je generalizovaný odkaz (implicitní brána) na nejbližší router, kterým v případě sítí používajících TCP/IP „vede cesta do Internetu“ (implicitní brána, anglicky default gateway). Každý záznam (tj. řádek) ve směrovací tabulce obsahuje několik informací (ne nutně v uvedeném pořadí, typicky bývají zaznamenány další údaje, které nejsou pro výklad nezbytně nutné, tabulka je pro IP sítě):
-
cíl – obsahuje číslo cílové podsítě, pro kterou je záznam v tabulce proveden ve formátu IP adresy (např. 10.0.0.0)
-
maska podsítě – maska ve spojení s číslem podsítě vymezuje rozsah IP adres, pro které je záznam platný (např. 255.255.255.0)
-
brána – IP adresa routeru, kterému má případně být IP datagram předán (není vyplněno v případě, že je podsíť přímo dosažitelná, tj. nachází se přímo za v záznamu uvedeným rozhraním)
-
síťové rozhraní – skrze které síťové rozhraní je nutné IP datagram odeslat, pokud záznam odpovídá hledanému cíli
Poznámka: Lepší je zapisovat IP adresy v CIDR notaci, je to přehlednější. Místo sítě: 10.1.1.0 maska 255.255.255.0 píšeme: 10.1.1.0/24
Pro snadné počítání sítí, masek apod. je výborný program ipcalc.
Směrování podle tabulky
Pokud je po přijetí IP datagramu zjištěno, že není určen pro toto zařízení, měl by nutně být předán dále tak, že bude předán podle záznamů ve směrovací tabulce dalšímu cíli. V každém IP datagramu je uvedena IP adresa cíle, pro který je určen. Tato cílová IP adresa je porovnávána postupně se všemi záznamy ve směrovací tabulce. Tabulka je setříděna podle délky masky v jednotlivých záznamech od nejdelších (nejvíce jedniček zleva) po nejkratší (nejméně jedniček zleva), což vyjadřuje velikost cílových podsítí. Nejprve jsou tedy záznamy pro jednotlivé počítače nebo malé podsítě a teprve dále jsou záznamy pro postupně větší a větší podsítě. Postup porovnání s každým záznamem ve směrovací tabulce je následující:
-
je proveden logický součin cílové IP adresy a masky ze zkoumaného řádku tabulky
-
je-li výsledek roven cíli uvedenému ve zkoumaném záznamu, je nalezena shoda
-
není-li nalezena shoda, je zpracován další řádek tabulky
-
není-li již k dispozici další záznam v tabulce a shoda dosud nebyla nalezena, je ohlášena nedosažitelnost cílové sítě pro zkoumaný IP datagram
jirka@jirka-Precision-T3610:~/vyuka_sspvc$ route -n
Směrovací tabulka v jádru pro IP
Adresát Brána Maska Přízn Metrik Odkazů Užt Rozhraní
0.0.0.0 192.168.120.1 0.0.0.0 UG 100 0 0 enp0s25
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 wg3
10.10.1.0 0.0.0.0 255.255.255.0 U 0 0 0 wg18
10.11.18.0 0.0.0.0 255.255.255.0 U 0 0 0 wg16
10.11.20.1 0.0.0.0 255.255.255.255 UH 0 0 0 wg15
10.12.23.1 0.0.0.0 255.255.255.255 UH 0 0 0 wg9
10.14.1.0 0.0.0.0 255.255.255.0 U 0 0 0 wg18
10.20.1.0 0.0.0.0 255.255.255.0 U 0 0 0 wg18
10.92.16.1 0.0.0.0 255.255.255.255 UH 0 0 0 wg18
10.92.16.6 0.0.0.0 255.255.255.255 UH 0 0 0 wg18
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 wg0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 wg3
192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 wg9
192.168.3.0 0.0.0.0 255.255.255.0 U 0 0 0 wg15
192.168.4.0 0.0.0.0 255.255.255.0 U 0 0 0 wg16
192.168.22.0 0.0.0.0 255.255.255.0 U 0 0 0 wg9
192.168.101.0 0.0.0.0 255.255.255.0 U 0 0 0 wg3
192.168.110.0 0.0.0.0 255.255.255.0 U 0 0 0 wg7
192.168.111.0 0.0.0.0 255.255.255.0 U 0 0 0 wg15
192.168.112.0 0.0.0.0 255.255.255.0 U 0 0 0 wg9
192.168.114.0 0.0.0.0 255.255.255.0 U 0 0 0 wg15
192.168.120.0 0.0.0.0 255.255.255.0 U 100 0 0 enp0s25
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
192.168.224.0 0.0.0.0 255.255.255.0 U 0 0 0 wg0
192.168.224.1 0.0.0.0 255.255.255.255 UH 0 0 0 wg0
Vznik směrovací tabulky
Podle vzniku záznamů ve směrovací tabulce hovoříme o statickém nebo dynamickém směrování.
Statické směrování
Při statickém (též neadaptivním) směrování nejsou za běhu stanice záznamy ve směrovací tabulce nijak aktivně měněny. Může je do ní zapsat správce počítače (typicky podle údajů poskytnutých správcem příslušné počítačové sítě) nebo jsou do tabulky zapsány při startu počítače. Záznamy mohou být uchovány v konfiguračním souboru (v Microsoft Windows pak v registrech) nebo poskytovány například pomocí protokolu DHCP.
Statické směrování typicky používají koncové stanice nebo routery v malých počítačových sítích (LAN), protože záznamy není nutné v průběhu činnosti zařízení měnit a nebo proto, že jsou záznamy jednoduché.
Příklad
Aby mohly mezi sebou komunikovat počítače na stejné síti, není potřeba nijakého směrování. Počítače se "vidí" a komunikují přímo po ethernetu (nepotřebují žádné směrování).
Směrovací tabulky pro počítače pc-21, pc-22, pc-23
Směrovací tabulky pro pc-21, pc-22, pc-23 budou stejné. Existuje jenom jeden směr jak se dostat někam jinam.
| směr | brána |
|---|---|
implicitní (default gateway) |
10.20.1.1 |
Směrovací tabulky pro počítače pc-41, pc-42, pc-43
Směrovací tabulky pro pc-41, pc-42, pc-43 budou stejné. Existuje jenom jeden směr, jak se dostat někam jinam.
| směr | brána |
|---|---|
implicitní (default gateway) |
10.1.4.1 |
Směrovací tabulky pro servery srv-1, srv-2
Směrovací tabulky pro servery srv-1, srv-2 budou stejné. Existuje jenom jeden směr, jak se dostat někam jinam.
| směr | brána |
|---|---|
implicitní (default gateway) |
10.20.2.1 |
Směrovací tabulka pro router rtr-1
| směr | brána |
|---|---|
10.20.1.0/24 |
10.1.3.2 |
implicitní (default gateway) |
10.1.2.1 |
Směrovací tabulka pro router rtr-2
| směr | brána |
|---|---|
10.20.1.0/24 |
10.1.3.2 |
implicitní (default gateway) |
10.1.2.1 |
Směrovací tabulka pro router rtr-gw
| směr | brána |
|---|---|
10.10.2.0/24 |
10.1.2.2 |
10.20.1.0/24 |
10.1.3.2 |
10.1.3.0/24 |
10.1.2.2 (nebo 10.1.1.2) |
implicitní (default gateway) |
46.253.97.1 |
Pro složitější sítě je lepší používat dynamické routování.
Kdo má raději tabulkový pohled, tak si může směrovací tabulky udělat třeba v Excelu nebo notepadu.
Zdroje a odkazy
Pro kreslení sítí používám program Dia Diagram Editor, ke stažení pro Windows zde. Na Linuxu je dostupné apt install dia (Debian a jeho klony) .