Propojování sítí a směrování
Důvody propojování / rozdělování sítí
- zvětšení rozsahu:
- překonání fyzikálních omezení dosahu technologie lokální sítě
- propojení původně nezávislých sítí, i geograficky vzdálených
- oddělení provozu:
- snížení zátěže sítě (kolize) i stanic (broadcasty)
- lepší odolnost proti poruchám (izolace poruch)
- bezpečnost (odposlouchávání, úmyslné rušení)
Prvky pro propojování sítí
LAN - rozbočovač (hub), most/přepínač (bridge/switch)

WAN - směrovač (router)

Směrování
- zasílání paketů nejkratší cestou sítí skok po skoku k cíli.
- zahrnuje problém hledání této nejkratší cesty
Most (bridge)

- na 2. vrstvě OSI RM
- v rámci jedné síťové technologie (LAN) - stejný formát rámce na
všech rozhraních
- mosty transparentní (samoučící) / zdrojové směrování
- možnost konverze média, kódování, ...
- hlavní parametry mostů: forwarding rate a filtering rate
Dnes aplikovány spíše přepínače
(transparentní most implementovaný hardwarově).
Samoučící (transparentní) most (self-learning bridge)
- zasílá rámce podle tabulky se záznamy ve tvaru <MAC_adresa,
port>
- tabulku si buduje z příchozích rámců (podle zdrojové MAC adresy a
příchozího portu)
- záznamy v tabulce mají časově omezenou platnost (při příchodu
rámce s jistou zdrojovou adresou z jistého portu se časovač příslušné
položky tabulky resetuje)
- rámce, jejichž cílová adresa v tabulce dosud není, se rozesílají
na všechny porty (tzv. flooding)
- rámce s cílovou adresou typu broadcast se rozesílají na všechny
porty
"Plug-and-Play" zařízení, pro stanice je jeho přítomnost v síti
transparentní.
Zdrojové směrování (source routing)
- cestu rámce sítí určuje zdrojová stanice
- v rámci explicitně uveden seznam segmentů, kterými má rámec projít
- typicky použití v síti Token Ring - struktura propojených kruhů
Zdroj cestu získá tak, že před vysláním datového rámce cíli pošle
"průzkumný rámec". Ten se šíří v síti všemi cestami a postupně do sebe
sbírá seznam segmentů, kterými již prošel. Pro zamezení cirkulace se
průzkumný rámec neodesílá se do segmentů sítě, jejichž identifikátor
již v seznamu je. Cíl, který průzkumný rámec přijal, seznam
segmentů otočí a pošle zpět zdroji (po již známé cestě). Zdroj může
získat zpět několik odpovědí s možnými alternativními cestami k cíli,
ty si uloží do cache. Pro zaslání datového rámce k cílové stanici volí
jednu ze získaných cest, seznam segmentů na cestě k cíli vloží do
hlavičky odesílaného datového rámce.
Problém cirkulace rámců v prostředí se smyčkami
(samoučící mosty)

V případě třech paralelních mostů počet rámců dokonce exponenciálně
narůstá.
Řešení: Spanning Tree
- mosty a přepínače implementují algoritmus normalizovány v 802.1d
- neustálá automatická konstrukce stromu pokrývajícího celý graf
sítě (spanning tree)
- některý z portů linkách
tvořících smyčky bude zablokován
- v případě výpadku linky/portu se strom automaticky změní
(odblokuje se některý doposud zablokovaný port)
Princip funkce:
- volba kořenu stromu (root bridge)
- podle nakonfigurovaných priorit, při shodě podle
jednoznačného pevného Bridge ID
- vytvoření stromu nejkratších (nejlevnějších) cest z každého mostu
ke kořeni
- preference linek lze ovlivnit nakonfigurováním cen
- implicitně je cena nepřímo úměrná přenosové rychlosti linky
- porty, které jsou součásí vytvořeného stromu, budou funkční
(forwarding), ostatní blokovány (blocking).
- root generuje co 2 sekundy zprávu BPDU ta se šíří po stromu dolů,
- každý most kontroluje, zda BPDH na svém root portu (portu
vedoucím ke kořeni) neustále slyší
- algoritmus definuje přechodné stavy portů (learning, listening)
- pro zamezení smyčkám během přechodu na jiný strom
- po výpadku přechod na nový strom do max. 50 sekund
Směrovač (router)
- vzájemné propojení lokálních sítí na 3. vrstvě OSI RM
- i pro propojení LAN založených různých technologií (Ethernet,
TokenRing, ...)
- směruje pakety konkrétního síťového protokolu (nebo více
protokolů)
- např. IP, IPX, AppleTalk, ...
- na každém rozhraní (interface) musí být určena adresa
připojené sítě a adresa rozhraní samotného
- u protokolu IP obojí dáno IP adresou rozhraní a maskou podsítě
- pro každý příchozí paket ve směrovací
tabulce najde podle adresy cílové sítě (obsažené v paketu),
kterému sousednímu směrovači (next-hop) paket zaslat
- je-li cílová síť připojená ke směrovači přímo, zašle paket přímo
cílové
stanici
- další funkce: snižování TTL-opatření proti smyčkám, přepočítávání
checksum, fragmentace,
...
Obsah směrovacích tabulek buď definován staticky nebo zjišťován
dynamicky komunikací s
okolními směrovači s využitím směrovacího
protokolu.
Poznámky:
- Terminologická nejednoznačnost: v prostředí TCP/IP se směrovači
původně říkalo "gateway" (někdy také i IMP - Internet Message
Processor). Dnes pod gateway (bránou) rozumíme spíše prvek přemosťující
protokoly na na 4.-7. vrstvě OSI RM.
- směrovač může současně fungovat jako jednoduchý firewall -
filtrace nežádoucího provozu
- pro neznámé protokoly může směrovač fungovat jako most
Směrování

Hledání cesty sítí
- ve spojově orientovaných sítích při
vytváření spojení (nastavování spojovacího pole, budování přepínacích
tabulek virtuálního kanálu)
- v sítích s přepínáním paketů (obvykle obecně polygonálních a s
alternativními cestami) při
přenosu každého jednotlivého paketu
= > každý paket může jít jinou
cestou
- bezpečné proti výpadku spojů
- problémy duplikace, změny
pořadí
Směrovací algoritmus
- část software 3. vrstvy OSI RM rozhodující, kterým rozhraním se
má
odeslat příchozí paket nebo kudy zřídit požadovaný virtuální okruh
- rozhoduje na základě staticky konfigurovaných informací nebo
informací od směrovacího protokolu
- implementován s použitím směrovací
tabulky
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):
- jednoduchost
- robustnost
- stabilita
- férovost
- optimalita
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 >
- jako cílová adresa může být uvedena síť, podsíť nebo i
jednotlivý uzel
- v prostředí IP jsou adresy sítí různé délky
- použije se cesta, která se shoduje s adresou cíle v paketu na co
největší počet míst
= > nutnost projít vždy
celou tabulku = >
časově náročný proces
Implicitní cesta (default route)
- pro sítě připojené jediným rozhraním k hierarchicky vyšší síti
- např. firma k Internetu, pobočka firmy k centrále
- veškeré pakety, pro jejichž cílovou adresu neexistuje položka ve
směrovací
tabulce, se posílají na na default route
- next-hop pro default route se konfiguruje na přilehlé rozhraní
směrovače do vyšší hierarchické úrovně (typicky směrovač ISP)
- smyslem snížení počtu záznamů ve směrovací tabulce
Neadaptivní a adaptivní směrování
Neadaptivní směrování - statické
Adaptivní směrování - mění se podle:
- okamžité topologie sítě
- okamžitého zatížení jednotlivých částí sítě (zde ale nebezpečí
rozkmitání směrování)
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í
- v síti existuje centrální prvek RCC (Routing Control Center),
který shromažďuje informace o okolí od všech směrovačů, kombinuje z
nich
topologii sítě, počítá směrovací tabulky pro všechny směrovače a
předává jim je
- jednotlivé směrovače posílají periodicky do RCC stavové
informace (seznam "živých" sousedů, délky front na jednotlivých
interface, celková zpracovávaná zátěž, ...)
- problém s distribucí tabulek od RCC do jednotlivých směrovačů -
distribuce postupná, směrování v době distribuce nekonzistentní (staré
a nové verze tabulek současně)
Dnes prakticky nepoužívané.
Distribuované směrování
- každý směrovač zná "vzdálenost" (ceny linek) ke všem svým
sousedům a stav těchto linek (funkčnost, přenosovou rychlost, okamžitou
zátěž, ...)
- každý směrovač si vyměňuje své informace o směrování s jinými
směrovači (prostřednictvím sousedů)
- ze získaných informací si směrovač vytvoří směrovací tabulku
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)
- Horký brambor - paket se vkládá do nejkratší výstupní fronty
(cílem je se jej co nejrychleji zbavit)
- Backward learning - do paketů se vkládá identifikace zdrojové
sítě a počítadlo, při průchodu každým směrovačem se počítadlo
zvýší - směrovač z příchozího paketu zjistí, jak daleko je přes dané
rozhraní ke zdrojové síti
- Záplavové směrování (flooding) - paket se vyšle na všechny linky
mimo té, ze které přišel. V paketu je počítadlo přeskoků, likvidace
paketu při dosažení limitu jako opatření proti zahlcení.
- vždy vybírá nejkratší cestu (resp. všechny nejkratší cesty
paralelně)
- použití pro spolehlivé a rychlé rozšíření informace v síti s
neznámou a příp. proměnnou topologií - vojenské aplikace
- používá se jako "normál" pro srovnání ostatních algoritmů
Použití pouze pro speciální účely.
Směrování statické vs. dynamické
Statické směrování
- tabulky v jednotlivých směrovačích konfigurovány "ručně" -
pracnější
- odpadá režie směrovacích protokolů (zabraná šířka pásma,čas na
zpracování)
- bezpečnější (omezení možnosti generování falešných směrovacích
informací, odposlouchání topologie sítě)
- při výpadku linky nutný ruční zásah
- použitelné, pokud se topologie příliš často nemění (od výpadků a
modifikací sítě)
Dynamické směrování
- automaticky reagují na poměry v síti (topologie, zátěž, ...)
- nutnost provozu směrovacích protokolů
- užitečné při častých změnách (příp. i obecně neznámé) topologie
sítě (typicky v Internetu)
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í
- rozdělení sítě do hierarchicky organizovaných celků
- směrovače v
jenotlivých celcích znají jen topologii svého celku a cestu do vyššího
celku (nikoli jeho vnitřní strukturu)
- smyslem omezení rozsahu směrovacích tabulek (agregováním
záznamů a implicitní cestou)
Dělení směrovacích algoritmů
- použitá metrika
- úroveň informovanosti o topologii sitě
- logika šíření směrovací informace (výměna mezi sousedy, záplava
všem, ...)
- technická realizace zasílání směrovacích informací
(broadcast/multicast, perioda)
- doba konvergence - reakce na náběhy a výpadky linek
Metody DVA - Distance Vector Algorithms
- směrovače neznají topologii sítě, pouze rozhraní, přes která se
budou posílat pakety do jednotlivých sítí a vzdálenosti k těmto sítím
(tzv. distanční vektory)
- periodické zasílání směrovací tabulky
sousedům
- na začátku směrovací tabulka obsahuje pouze přímo připojené sítě
- z došlých směrovacích tabulek sousedů (vzdáleností sousedů od
jednotlivých sítí) a výběrem
nejlepší cesty si směrovač postupně upravuje svou směrovací tabulku
- pokud cesta nebyla delší dobu sousedem inzerována, ze směrovací
tabulky se odstraní
- metrikou je počet "přeskoků" (hop count) na cestě mezi zdrojem a
cílem
- nezohledňuje parametry jednotlivých linek (přenosovou
rychlost, zpoždění, okamžitou zátěž, ...)
- pomalá konvergence při změnách topologie, zátěž od broadcastu
směrovacích tabulek
- příliš "optimistické" - směrovač se rychle učí dobré cesty, ale
špatně
zapomíná při výpadcích (čekání na timeout). Žádný směrovač nikdy nemá
metriku horší, než o 1 větší než minimum
z metrik sousedů => pomalé šíření špatných zpráv (nemožnost rychle
rozšířit metriku s hodnotou "nekonečno".
- jednoduchá implementace, historicky starší
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
- směrování na základě znalosti "stavu" jednotlivých linek sítě
(funkčnost, cena)
- směrovače (uzly grafu) znají topologii celé sítě (graf) a ceny
jednotlivých linek (ohodnocení
hran). Tyto informace udržují v topologické databázi.
- všechny směrovače mají stejnou topologickou databázi
- každý směrovač počítá strom nejkratších cest ke všem ostatním
směrovačům (a k nim připojeným sítím) pomocí Dijkstrova algoritmu.
- každý směrovač sleduje stav a funkčnost linek
připojených k
němu, při změně okamžitě šíří informaci (o aktuálním stavu svého okolí)
všem ostatním směrovačům. Ty si ji vloží do topologické databáze
- okamžitá reakce na změnu stavu linky (výpadek,náběh) = >
rychlá konvergence<>
- šíří
se pouze změny (ale do celé sítě) - žádné periodické rozesílání
směrovacích
tabulek
Záznamy
topologické databáze
- ID směrovače
- seznam přilehlých linek, u každé vždy ID sousedního směrovače a
cena linky
Reprezentant:
- protokol OSPF (Open Shortest Path First)
- dnes jeden z nejpoužívanějších směrovacích protokolů
Poznámky:
- nově nastartovaný směrovač může získat topologii sítě od
souseda na
vyžádání (po zabezpečeném protokolu)
- hrany mohou být ohodnoceny obecně více metrikami (např.
rychlost, spolehlivost, cena, ...) = > možnost konstrukce
alternativních stromů nejkratších cest a směrování každého typu
provozu jinou cestou (podle preferencí zdrojové stanice). Toto však
prakticky téměř nepoužíváno.
Algoritmy teorie grafů používané pro směrování
- Dijkstra - pro zvolený uzel hranově ohodnoceného grafu nalezne
strom nejkratších cest do ostatních uzlů. V modifikované variantě
základ protokolu OSPF.
- Floyd - vychází z matice cen grafu, počítá matici vzdáleností
uzlů grafu a úplné směrovací tabulky pro jednotlivé uzly
- Ford-Fulkerson - určení nejkratších vzdáleností ze všech uzlů do
jednoho společného uzlu. V distribuované variantě základ protokolu RIP.
Směrovací protokoly v prostředí TCP/IP
Vnitřní (uvnitř autonomního
systému):
Otevřené standardy:
- RIP (Routing Information Protocol) - distance vector
- OSPF (Open Shortest Path First) - link state
Firemní (proprietární)
- IGRP, EIGRP - Cisco
- NLSP - Novell
Vnější (mezi autonomními
systémy):
BGP (Border Gateway Protocol) - tzv. path vector