Počítačové sítě Směrovací protokol OSPF. Jak se směruje v globálním Internetu. Leoš Boháč Jan Kubr
Směrovací protokol OSPF směrovací protokol - OSPF (Open Shortes Path First) je stavově orientovaný a distribuovaný směrovací protokol standardizovaný v RFC 232 a používaný v datových sítích s architekturou TCP/IP OSPF je jedním z vnitřních směrovacích protokolů, podobně jako RIP OSPF je komplexní směrovací protokol, který byl navržen pro rozsáhlé sítě (nikoliv však pro celý Internet!!), přičemž odstraňuje problémy se kterými se můžeme setkat u RIP protokolu rychlost konvergence sítě, nestabilita OSPF je navržen tak, aby byl snadno škálovatelný pro různě rozsáhlé datové sítě, cesta mezi sítěmi není limitována počtem směrovačů v cestě, jako u RIP OSPF používá koncept rozdělení celé velké IP sítě do menších celků, kterým se říká oblasti (area) informace o připojených sítích jednotlivých směrovačů v rámci OSPF směrovací domény se rozesílají speciálním zaplavovacím algoritmem ( LSA flooding ) všem směrovačům v dané oblasti (area), nejen pouze sousedům, jak je tomu u RIP protokolu všechny směrovače uchovávají a aktualizují topologickou tabulku, která musí být za neměnného stavu sítě identická lidově řečeno, každý směrovač vidí stejnou topologii propojení směrovačů v rámci dané oblasti, topologická tabulka obsahuje informace o všech směrovačích v rámci dané OSPF oblasti a jejich vzájemné propojení OSPF používá jednoduchou metriku definovanou parametrem tzv. ceny (cost) propojení mezi směrovači, velikost ceny (cost) je nepřímo úměrná přenosová rychlosti propojovacího datového okruhu mezi směrovači cena jedné celé uvažované cesty v IP sítě je u OSPF dána součtem všech cen dílčích segmentů cesty, které ji tvoří každý směrovač na základě topologické tabulky (definuje co je s čím propojeno a jak) vypočítá nejkratší cestu mezi sebou a každým zbývajícím směrovačem v rámci dané oblasti k výpočtu nejkratší cesty používá OSPF protokol Dijkstra algoritmus, který funguje za předpokladu, že všechna propojení mezi směrovači mají přiřazenou hodnotu metriky větší než nula - což je splněno, cena nemůže být menší než nula na základě výpočtu všech nejkratších cest modifikuje OSPF algoritmus v dalším kroku směrovací tabulku směrovače směrovače používající OSPF si mezi sebou neustále vyměňuji krátké hello zprávy, které slouží pro detekci funkčního či nefunkčního stavu spojení mezi směrovači tyto zprávy se většinou vysílají s periodou s 2
Směrovací protokol OSPF směrovací doménu OSPF lze pro velmi rozsáhlé sítě (několik desítek směrovaču v síti a více) rozdělit do menších OSPF oblastí zvláštní význam má OSPF oblast č., která tvoří pomyslnou páteřní síť všechny ostatní oblasti musí být napojené k oblasti č. (jsou však určité výjimky) rozhraní mezi oblastmi je skryté uvnitř směrovače, který se nazývá hraniční směrovač oblasti ABR (Area Border Router) spojení mezi doménou OSPF a jinými vnějšími doménami zprostředkovává hraniční směrovač OSPF domény - ASBR (Autonomous System Border Router) směrovací doména OSPF oblast 3 jiná směrovací doména např. RIP oblast ASBR směrovač oblast oblast 2 ABR směrovače oblast 3
Směrovací protokol OSPF OSPF protokol chápe IP sítě buď jako koncové nebo tranzitní (pozor, neplést s tranzitním AS systémem u BGP směrování) koncová IP síť je vždy jen zdrojem nebo příjemcem IP paketů, pakety nikdy touto sítí neprochází napříč tranzitní IP síť je sítí, ve které mohou být pakety nejen generované nebo v ní končit, ale také jí mohou procházet funkční dvoubodové propojení směrovačů chápe OSPF protokol jako tranzitní síť dvoubodové připojení koncové stanice k směrovači nebo její připojení přes, chápe OSPF jako koncovou síť z hlediska nalezení nejkratší cesty Dijkstra algoritmem se berou v úvahu jen tranzitní sítě a směrovače celá topologie sítě se překreslí do grafu, v němž směrovače a tranzitní sítě tvoří uzly, hrany grafu jsou tvořeny buď dvoubodovými spoji nebo spoji k tranzitním sítím tranzitní jsou v OSPF nahrazeny virtuálními směrovači = tranzitní koncová tranzitní = koncová koncová koncová = tranzitní
Směrovací protokol OSPF celá fyzická síť se transformuje na orientovaný ohodnocený graf hodnota každé hrany grafu je dána metrikou cost, která je u OSPF nepřímo úměrná přenosové rychlosti datového okruhu a typicky se vypočítá COST= /B, kde B je přenosová rychlost datového okruhu v bit/s, např. pro Mbit/s je COST=, pro rychlost >=Git/s je nutné COST volit ručně každá tranzitní síť je nahrazena v grafu pomyslným virtuálním směrovačem (červená značka), který je v grafu připojen hranami k ostatním uzlům nesymetricky (hrana orientovaná ve směru od virtuálního směrovače má vždy COST=) důvodem je, aby se COST pro tranzitní uvažoval při výpočtu jen jednou, např. pokud je součástí vybrané cesty spojení mezi ID a ID (dílčí segment), vede sice v grafu přes virtuální směrovač ID7, ale ve skutečnosti jsou pakety posílané přímo mezi těmito směrovači pokud by byl hraně grafu vedoucí od virtuálního směrovače přiřazen COST (také ), byl by celkový COST dvojnásobný, což ve skutečnosti ale není pravda ID ID2 ID7 ID3 ID ID9 ID každý směrovač má svůj jednoznačný identifikátor v celé OSFP doméně ID5 ID 5
Směrovací protokol OSPF(5) díky výměně stavových informací řízeným zaplavovacím algoritmem v celé OSPF oblasti (area), vidí všechny reálné směrovače totožnou topologii oblasti, jen každý ze své perspektivy jinak, nejkratší strom se počítá na každém směrovači ze stejné tabulky, ale z pozice daného směrovače graficky znázorněný obsah topologické tabulky ID ID2 ID7 ID3 ID ID9 ID ID5 ID
Směrovací protokol OSPF- Dijkstra, 7 2 3 9 5 v obou směrech stejný COST = COST ve směru od virtuálního směrovače k reálnému směrovači - COST ve směru od reálného směrovače k virtuálními směrovači COST, ID celkový COST k danému uzlu od uzlu č. - po ukončení celého běhu algoritmu bude obsahovat COST nejkratší cesty od uzlu č. k tomtuto uzlu identifikátor předchozího uzlu - po dokončení běhu algoritmu bude obsahovat ID předchozího uzlu, přes který vede nejkratší cesta zpět k uzlu č. nalezena již nejkratší cesta k danému uzlu od uzlu č. 2 3,, 7 7, 9, 9 uzel 7 má 5 nižší hodnotu 3 COST a 3 2 tedy od 2, něj, pokračuj s výběrem jeho sousedů dále 5 7
Směrovací protokol OSPF- Dijkstra,, 7, 7 2, 7, 3 9, 5 5, 7, 7 2, 7, 3 9 5,, 7, 7 2, 2 2, 7 9, 3 9, 5 2, 7 lepší cesta s COST=9 je přes uzel, proto se záznam aktualizuje, 7, 7 2, 2 2, 7 9, 3 9 2, 5
7, Směrovací protokol OSPF- Dijkstra, 7, 7 2, 2 2, 7 9, 3 9, 5 2, 2, 2, 9, 7, 7 2, 2 2, 7 9, 3 9 2, 2, 5 2, 9 9,, 7, 7 2, 2 2, 7 9, 3 9 2, 2, 5 2, 9,, 7 2, 7 2, 2, 7 3 9, 9 2, 5 2, 9 2, 9
Směrovací protokol OSPF- Dijkstra koncová koncová tranzitní tranzitní koncová koncová tranzitní vzhledem k tomu, že směrovače s ID 7,,9 (viz předchozí) jsou jen virtuální, musí spojení pře tranzitní procházet přímo mezi reálnými směrovači smysl zavedení konceptu virtuálních směrovačů v OSPF je snížit celkový počet tranzitních sousedních vztahů v topologické tabulce při spojení N směrovačů v rámci tranzitní sítě, by bylo nutné v topologické tabulce udržovat N*(N-) + záznamů, při zavedení konceptu virtuálního směrovače stačí v topologické tabulce uchovávat jen N+ záznamů, dále se také sníží počet generovaných hello paketů mezi OSPF směrovači v rámci tranzitní sítě virtuální směrovač se u OSPF nazývá vyvoleným směrovačem DR (Designated Router) a jeho roli zastává jeden z reálných směrovačů připojených do tranzitní sítě volí se automaticky vzhledem k tomu, že role DR je velice důležitá, aby OSPF oblast mohla chápat síť jako tranzit, funguje ještě v rámci náhradní vyvolený směrovač BDR (Backup Designated Router), který přebírá roli DR v případě jeho výpadku DR posílá do celé oblasti (area) informaci o IP rozhraních a ID číslech všech k němu připojených reálných směrovačů
OSPF řízená záplava LSA každý směrovač v IP síti generuje stavový záznam připojení LSA (Link State Advertisement), který udává seznam všech připojených sítí různých typů pokud je připojení k dané síti (, ale i dvoubodový spoj) aktivní a funkční, vygeneruje směrovač konkrétní typ LSA a ten řízeným systémem pošle všem směrovačům v dané oblasti (area) typ LSA závisí, kromě jiného, na tom, jestli je daná síť tranzitní nebo jen koncová (Stub network) řízené doručování LSA záznamů všem směrovačům se realizuje postupným zasíláním LSA všem OSFP sousedům, které správný příjem musí potvrdit odesílateli a poté stejným způsobem LSA posílají dále svým dalším sousedům, atd. než se daná informace rozešle po celé oblasti > nový stav sítě se velice rychle rozšíří pokud směrovač zjistí poruchu konektivity k dané síti, musí okamžitě vymazat z celé OSPF oblasti odpovídající LSA každý LSA záznam disponuje sekvenčním číslem, které umožňuje směrovači rozpoznat, který z případným dvou přijatých LSA je aktuálnější každé správně přijaté LSA od souseda se uloží do topologické tabulky OSPF, z níž se poté Dijkstra algoritmem přepočítá nejkratší strom v síti
OSPF - shrnutí funkce směrovač zjistí seznam všech připojených a aktivních IP sítí na těchto sítích zjistí, zda jsou přes ně dostupné OSPF sousedé - pokud je přes danou síť dostupný OSPF soused, bude tato síť ve svém LSA označena jako tranzitní - pokud ne, bude síť označena jako koncová (Stub) při změně obsahu topologické tabulky aktivuje směrovač s jistým zpožděním Dijkstra algoritmus, který přepočítá nejkratší cesty v síti ke každému zbývajícímu směrovači v oblasti a potažmo i k odpovídajícím sítím podle výsledku Dijkstra algoritmu se aktualizují záznamy ve směrovací tabulce směrovače směrovač vytvoří odpovídající LSA (obsahem jsou připojené sítě) a pošle jej do celé oblasti všem směrovačům - tuto LSA taktéž uloží do své topologické tabulky přijímá LSA od ostatních směrovačů -- pokud jsou neporušené a aktuální, uloží je také do své topologické tabulky 2
Koncept přenosu dat v Internetu v době vzniku Internetu se již rozvíjely a implementovaly různé technologie lokálních sítí, ale postupně i veřejných datových sítí jako byla např. síť X.25 cílem návrhářů Internet sítě bylo vytvoření překryvného systému, který by umožnil jednotně a nezávisle na použitých technologiích prvé a druhé vrstvy RM-OSI transport dat mezi jednotlivými sítěmi navzájem vytvoření jednotné globální sítě, proto Inter-Net ( Inter znamená mezi a Net je síť, tedy doslova síť, která vznikne jako propojení dílčích sítí navzájem) původní technicky nesourodé a různě velké (jak geograficky, tak i co do počtu koncových systémů) datové sítě obtížné propojit k propojení mezi sítěmi použijeme směrovače s tím, že pokud budou chtít stanice mezi sítěmi vzájemně komunikovat, musí použit jednotný definovaný IP paket (datagram) a adresaci mezisíťová komunikace musí jít vždy přes směrovač grafická značka směrovače 3
Ideální topologie Internetu ISP_ ISP první úrovně (TIER ) sítě těchto ISP pokrývají celou planetu, směrovače musí obsahovat informace o všech sítích v Internetu (default free zona) - poskytují připojení ISP druhé úrovně ISP_2 ISP druhé úrovně (TIER 2) sítě těchto ISP působí na rozloze jednoho kontinentu např. Evropu a poskytují připojení pro ISP v jednotlivých zemích na daném kontinentu ISP_3 ISP třetí úrovně (TIER 3) sítě těchto ISP působí na rozloze jednoho států a poskytují připojení jednotlivým zákaznickým sítím sítě jednotlivých zákazníků se připojují k ISP třetí úrovně, pro zvýšení spolehlivosti a rozložení zátěže se ve specifických případech může zákaznická síť připojit k jednomu stejnému ISP třetí úrovně ve více místech, nebo dokonce k různým ISP třetí úrovně ve více místech tzv. Multihoming. Většina těchto sítí získá veřejný adresový IP prostor od svého ISP3
Příčkové spoje mezi ISP, NAP, NIX původní stromová topologie propojení ISP v Internetu (viz předchozí obrázek) znamená, že propojení mezi zákazníky v rámci dané lokality, ale v různých ISP, může vést k nadměrné zátěži mezinárodních připojení k ISP vyšší úrovně, které je typicky dražší proto je ekonomicky výhodné, aby se mezi sebou v rámci dané lokality propojily ISP stejné úrovně a předávaly si tímto spojem místní provoz pokud se takto v rámci dané lokality propojí více ISP mezi sebou, vznikne síťový propojovací uzel NAP (Network Access Point) v ČR existuje hlavní síťový propojovací uzel v Praze s názvem NIX (Neutral Internet EXchange) skládající se ze čtyř vzájemně mezi sebou propojených lokalit NIX propojovací uzel je de facto výkonná síť, dnes se v českém NIXu propojuje kolem ISP různé úrovně (viz http://www.nix.cz/) ISP2/ Frankfurt ISP2/2 Paříž ISP3/ Server Praha ISP3/2 NIX Praha Klient Beroun 5
Externí směrovací protokol BGP- Border Gateway Protocol BGP-, je standardizován IETF v RFC 77 je určen jako externí směrovací protokol mezi autonomními systémy v Internetu BGP na rozdíl od interních směrovacích protokolů umožňuje výrazně ovlivnit směrování mezi AS, což nelze tak jednoduše u interních směrovacích protokolů BGP lze asi nejblíže zařadit do skupiny vektorových směrovacích protokolů hlavní cílem BGP bylo dosažení flexibility a možnosti snadné volby propojení a výměny směrovacích záznamů mezi AS sítěmi (většinou ISP nebo sítě velkých organizací) BGP je založen na použití TCP protokolu (port 79) jako transportního datového spoje směrovače mezi sebou vytvoří garantovaný komunikační datový spoj, kterým si mezi sebou přenášejí směrovací informace ve formě záznamů - NLRI (Network Layer Reachability Information) AS systém svým sousedním AS přes BGP protokol sděluje k jakým IP sítím je schopen doručit IP pakety okolní AS sítě se sami rozhodnou (podle své vlastní nastavené směrovací politiky), zda-li použijí ten či onen AS pro směrování k dané síti - > směrovací informace jdou přes BGP ven z mého AS, ale já mohu jejich nastavením ovlivnit provoz, který následně do mého AS bude z okolí posílán v opačném směru moje hraniční BGP směrovače přijímají BGP informace od sousedních BGP směrovačů, jiných AS, které informují, jaké sítě jsou přes ně dostupné -> BGP informace míří ke mně, nicméně já na jejich základě mohu ovlivnit, jak bude k daným cílovým sítím posílán provoz z mého AS
BGP- komunikace mezi sebou AS AS 2 ebgp ebgp ebgp ebgp ibgp ibgp ibgp AS 3 ebgp AS 5 AS BGP se skládá z vnitřní komunikace mezi BGP hraničními směrovači ibgp (internal BGP) a externí komunikace ebgp (external BGP) směrovačům, které mezi sebou komunikuji BGP protokolem se říká peer (čti pír ) pokud si mezi sebou dva ISP vyměňují BGP protokolem směrovací údaji, říká se jim že mezi sebou pírují od slova peering aby BGP správně mohl rozhodnout, jaký směr při více možných vybrat je nutné, aby hraniční směrovače byly mezi sebou (ibgp) propojeny každý s každým pro rozhodnutí, kterou cestu použít (který AS) pro směrování k cílové síti lze použít celou řadu atributů, které jsou součástí BGP standardu volbu a nastavení atributů provádí administrátor na základně domluvené směrovací polity mezi AS 7
BGP-, klíčové rozhodující atributy těmito atributy ovlivňuji kudy půjde provoz z mé sítě ven váha (weight) IP síti dostupné přes konkrétního BGP souseda se lokálně na směrovači přiřadí číslo, pokud na směrovač dojde více nabídek pro stejnou síť od více sousedů, vybere se ta s větším váhou místní preference v rámci daného AS (local preference) AS_cesta (AS_path) výstupní diskriminátor (MED Multi Exit Dsicriminator) pokud je daná sít dostupná od více sousedů, ale na jiných místech mého AS, vybere se ten soused, u něhož je nastavena větší hodnota místní preference pokud je daná sít dostupná od více sousedů, ať na jednom lokálním směrovači nebo na více, vybere se ten směr a cesta která vede přes menší počet AS systémů, AS_path atribut totiž obsahuje seznam AS které musím v pořadí projít, než se dostanu od mé sítě k cílové síti MED je hodnota metriky přiřazená sítím, které já sám posílám sousedům, oni se mohou podle toho atributu rozhodnout, zda použijí ten či onen můj směrovač pro posílání provozu k dané mé síti Preferovány jsou ty vstupu do mého AS, u nichž nastavím MED atribut na nižší hodnotu tímto atributem ovlivňuji kudy půjde provoz do mé síti
Použití atributu váha (weight) k AS 235 k AS 57 k AS 29 k AS 23 AS-232 AS-323 ebgp ebgp k AS 223 2.2../9 2.2../9? přes který AS směrovat AS-295 administrátor nakonfiguruje např. AS 323 vyšší váhu než pro AS 232 9
Použití atributu místní preference (local preference) k AS 235 k AS 57 k AS 29 k AS 23 AS-232 AS-323 k AS 223 2.2../9 ebgp ebgp 2.2../9 přiřaď místní preferenci 2 přiřaď místní preferenci ibgp AS-295 provoz půjde ven přes směrovač s větší preferencí AS323 2
Použití atributu MED (Multi Exit Discriminator) k AS 235 k AS 57 k AS 29 pro síť 2.../9 R AS-232 R2 pakety určené pro síť 2.../9 budu posílat přes výstup s menší metrikou MED, tj. přes R2 k AS 223 2.../9 MED ebgp ebgp 2.../9 MED 5 AS-295 ibgp 2
Použití atributu AS_cesta (AS_path) síť 9.2../9 leží v AS- AS- AS- AS-2 AS- AS-3 AS-5 AS- 92.2../9 AS_path,3, 92.2../9 AS_path,,7, AS-7 22
Dotazy Leoš Boháč, Jan Kubr 23