Dnes sleva 50% na webhosting NoLimit

Routování v síti Internet

Routování je mechanismus pro hledání cest v počítačové síti od zdroje k cíli. Je na něm založena funkčnost jak menších podnikových sítí, tak celého Internetu. Článek přináší seznámení s routery a s protokoly OSPF a BGP.

Datum: 29.07.2010


V tomto článku naleznete trochu teorie k problematice routování. V dalším článku představíme konkrétní sofware, které jej realizuje.

O routování se starají tzv. routery (směrovače). Obvyklý router má několik síťových rozhraní, na která mu přichází IP pakety, a on se musí rozhodnout, kam má paket poslat dál tak, aby dorazil do požadovaného cíle (přes které rozhraní jej má předat kterému dalšímu routeru). Každý paket tak od zdroje k cíli putuje třeba přes několik desítek routerů.

Router se ale musí nějak "naučit", kterým směrem (přes které síťové rozhraní) se nachází jaké sítě. Učení se může dít staticky - administrátor routeru explicitně uvede, které sítě jsou dostupné přes které rozhraní. To je možné použít pro jednoduché podnikové sítě, kde neexistují redundantní cesty a nejsou příliš vysoké požadavky na spolehlivost.

Druhým řešením je dynamické routování, kdy si router vyměňuje informace se sousedními routery a cesty do všech míst si na základě těchto informací nějak "spočítá". Své výsledky předává dál sousedům a ti jej využívají ke svým výpočtům.

Dynamické routování nabízí mnoho výhod:

  • cesty do všech částí sítě se najdou samy (tedy pokud administrátor router správně nakonfiguruje)
  • při poruše na síti si router dokáže najít cestu jinou
  • routery dokáží z několika možných cest k jednomu cíli zvolit "lepší"

V Internetu, kde existuje asi 300 tisíc sítí, to samozřejmě bez dynamického routování vůbec nejde. Internet se každou sekundou dynamicky mění, sítě se objevují a mizí, trasy padají a znovu ožívají, routery se porouchávají a znovu spravují.

Práce routeru je rozdělena do 2 vrstev (když se na to podíváme třeba z pohledu Linuxu):

  1. Jádro operačního systému si vede tzv. routovací tabulku. Je to seznam všech dostupných sítí, u každé je uvedeno rozhraní a další skok (další router). Jádro pak jen mechanicky podle této tabulky přehazuje pakety mezi rozhraními. Kde se vezme obsah této tabulky ho nezajímá. Ke každé dostupné síti zde existuje jeden záznam.
  2. Routovací daemon - program běžící na routeru, jehož úkolem je plnit routovací tabulku jádra. Tedy pomocí dynamických routovacích protokolů vyhledávat dostupné sítě, cesty k nim, z více možných cest zvolit tu "lepší" a tu pak zaznamenat do routovací tabulky. Dále musí reagovat na změny - spadlá linka, porucha sousedního routeru aj. a podle toho přepočítávat nejlepší cesty.

Pro komunikaci se sousedy používá router tzv. routovací prokoly. Jsou to pravidla popisující jak si routery mezi sebou vyměňují informace. Existuje několik protokolů pro různé potřeby. My využíváme následující dva:

  • OSPF (Open Shortest Path First) - protokol pro routování uvnitř sítě (autonomního systému). Protokol si na stanovených síťových rozhraních sám vyhledává sousedy (pomocí multicastu). Pro výpočet nejkratších cest ke všem známým cílům se využívá Dijkstrův algoritmus. Pokud je autonomní systém rozsáhlejší, lze jej rozdělit na několik částí (area). Routery si pak vyměňují informace pouze v rámci své oblasti, do dalších oblastí se data dostávají přes hraniční routery.
  • BGP (Border Gateway Protocol) - tento protokol je naopak určen pro propojení dvou různých sítí, resp. autonomních systémů. Právě na tomto protokolu je založeno routování v Internetu. Slouží k hledání cest mezi autonomními systémy, ale co se děje uvnitř autonomních systémů jej již nezajímá. Každý AS si může interně využívat jakýkoliv protokol ho napadne, ale vně musí používat právě BGP.

Každý router si routovací tabulku vypočítává nezávisle na ostatních (s využitím informací od sousedů), neexistuje tedy v Internetu žádné centrální místo, které by globální routování řešilo. To byl ostatně cíl při budování Internetu (resp. jeho předchůdce Arpanetu, jehož vytvoření si vyžádalo Ministerstvo obrany USA) - když část sítě nepřítel zničí, zbytek funguje dál.

Routery v Internetu používající BGP lze vlastně považovat za jeden gigantický distribuovaný výpočetní systém, kdy si stovky tisíc routerů mezi sebou vyměňují informace o svých autonomních systémech a dostupných sítích. Samozřejmě nekomunikuje každý s každým, přímo mezi sebou komunikují jen přímí sousedé.

Chcete-li si pořídit router, máte mnoho možností. Lze zakoupit specializovaná zařízení, nejčastější jsou zařízení od společnosti Cisco (a také jsou nejdražší). My jsme na to šli naopak - používáme servery s operačním systémem Linux a na něm provozujeme routovací daemon BIRD (více v dalším článku).