Směrování a směrovací algoritmy

Směrování



Hledání cesty sítí


Směrovací algoritmus

Poznámka:
Tvorba (úprava) směrovacích tabulek pomocí směrovacího protokolu a směrování podle těchto tabulek může probíhat současně (a obvykle tomu tak je).


Požadované vlastnosti směrovacího algoritmu (a směrovacího protokolu):

některé v protikladu, rozhoduje se, které upřednostnit

Směrovací tabulka

Formát záznamu:

< cílová adresa, výstupní rozhraní / adresa next_hop, metrika >

Implicitní cesta (default route)

Neadaptivní a adaptivní směrování

Neadaptivní směrování - statické
Adaptivní směrování
- mění se podle:


Dělení přístupů ke směrování
(centralizované, distribuované, izolované)

Dělení podle informace, která je pro směrování k dispozici, resp. podle toho, zda je algoritmus výpočtu směrovacích tabulek distribuovaný nebo centralizovaný.

Centralizované směrování

Dnes prakticky nepoužívané.

Distribuované směrování

Používá se v mnoha variantách v Internetu

Izolované směrování

- založeno pouze a jedině na lokálně dostupné informaci (délky front na jednotlivých rozhraních, informace získaná z procházejících paketů - např. směr, kterým leží zdroj příchozího paketu)

Použití pouze pro speciální účely.

Směrování statické vs. dynamické

Statické směrování

Dynamické směrování

V praxi často používána kombinace statického a dynamického směrování, staticky nakonfigurované cesty mají obvykle přednost.

Hierarchické směrování


Dělení směrovacích algoritmů

Metody DVA - Distance Vector Algorithms

Reprezentant:

 protokol RIP (Routing Information Protocol)

Problém počítání do nekonečna a jeho řešení

Položka směrovací tabulky se vzdáleností do A:
nahození linky A-B

A B-C-D-E
- - - -
1 - - -
1 2 - -
1 2 3 -
1 2 3 4

výpadek linky do A

AxB-C-D-E
1 2 3 4 C oznámí B, že přes něj je A za 2 přeskoky, B přičte vzdálenost C-B
3 2 3 4 B oznámí C, že přes něj je A za 3 přeskoky; C měl v tabulce cestu
do A přes B za 3 přeskoky, ale B inzeruje jinak, čili přepíše
(s přičtením vzdálenosti C-B)
=> počítání do nekonečna
Podstata problému:
Směrovač, který se dozví od souseda o cestě k nějakému cíli, neví, že tato cesta vede přes tento směrovač samotný.

Řešení 1:
Split horizon - směrovač neposílá informace o síti do toho rozhraní, které sám používá pro dosažení této sítě.

Řešení 2:
Nekonečno číselně nahradíme průměrem sítě + 1, položky směrovací tabulky s metrikou nekonečno se nepoužijí. Např. RIP definuje nekonečno jako 16 skoků.
Funguje i pro směrovací smyčky přes více směrovačů.

Další možná vylepšení

Triggered update
- po výpadku/náběhu přilehlé linky směrovače nebo změně směrovací tabulky po příchodu update od souseda se nečeká na periodu časovače, ale nová směrovací tabulka se sousedům zašle ihned.

Poisson reverse
- jako split horizon, ale cesta do sítě se na rozhraní používaném pro dosažení této sítě nejen neposílá, ale posílá s metrikou nekonečno.

Hold down
- po ztrátě nejlepší cesty do sítě po dobu časového intervalu (holddown) nepřijímáme cesty do téže sítě od jiných směrovačů. Mohlo by totiž jít o falešné cesty využívající linek, jejichž výpadku (o němž my už víme) si nabízející směrovače dosud nepovšimly.


Metody LSA - Link State Algorithms

Záznamy topologické databáze

Reprezentant:
 - protokol OSPF (Open Shortest Path First)
 - dnes jeden z nejpoužívanějších směrovacích protokolů

Poznámky:

Dynamické propagování implicitní cesty (default)

DVA: propaguje síť 0.0.0.0/0 jako každou jinou síť nebo označení některé ze sítí jako Candidate Default
LSA: směrovač v hierarchii výše propaguje do nižší úrovně

Algoritmy teorie grafů používané pro směrování

Směrovací protokoly v prostředí TCP/IP

Vnitřní (uvnitř autonomního systému):

Otevřené standardy:
Firemní (proprietární)
Vnější (mezi autonomními systémy):
BGP (Border Gateway Protocol) - tzv. path vector