Link-state protokoly, OSPF Josef Horálek
Vnitřní a vnější směrovací protokol vnitřní směrovací protokoly - (Interior Gateway Protocols, IGP) se používají pro směrovaní uvnitř jednoho autonomního systemu14 vnější směrovací protokoly - (Exterior Gateway Protocols, EGP) se používají pro směrování mezi různými autonomními systémy (používají algoritmus vektor cesty).
Vektor vzdálenosti X Link-State Kvalitativně odpovídají dopravnímu značení (routery pouze ukazují kudy vede cesta k cíli) Stav linky Kvalitativně srovnatelné s GPS navigací s opravdu aktuálními mapovými podklady
Vektor vzdálenosti vektor vzdálenosti (distance vector) – vektor vzdálenosti znamená že směry (cesty) jsou inzerovány jako vektory vzdálenosti a směr. Vektor je zadán metrikou (metric) (například počet skoků) a směrem (direction).
Stav linky stav linky (link state) – na rozdíl od činnosti protokolů vektor vzdálenosti může směrovač s nastaveným protokolem typu stav linky vytvořit „úplný přehled“ nebo model topologie sítě shromažďováním informací ze všech ostatních směrovačů. Směrovač s protokolem stavu linky používá informace o stavu linky k vytvořeni topologické mapy a k výběru nejlepší cesty do všech cílových sítí v celé topologii. Neposílají se periodické aktualizace. Potom, co je síť konvergována, jsou aktualizace stavu linky posílány pouze při změně v topologii.
Typy protokolů
OSPF Protokol vhodný pro středně velké až velké topologie Rychlá konvergence Trochu složitější konfigurace a ladění Dostupný na i non-CISCO zařízeních Dostupný na většině platforem Pro IPv6 velmi vhodný a komfortní Velmi dobrá perspektiva dalšího vývoje Na IPv4 využívá vlastní transportní protokol č. 89 a dvě multicastové IP adresy: 224.0.0.5: všechny OSPF směrovače na daném segmentu 224.0.0.6: DR/BDR směrovač na daném segmentu AD je 110 Metrikou je cena (cost), obvykle vypočtená z šířky pásma
Dijkstrův algoritmus Algoritmus „nejkratší cesta první“ (Shortest Path First, SPF) akumuluje ceny (costs) každé cesty od zdroje do cíle. Každý router počítá vše sám a hodnotí cesty ze své perspektivy Edsger Wybe Dijkstra (1930 – 2002) byl holandsky vědec v oboru počítačů
Postup zpracování algoritmu SPF na směrovači 1. Každý směrovač se dozví o každé k sobě přímo připojené síti 2. Každý směrovač řekne „hello“ (= pošle kontaktní pakety) každému sousedovi v přímo připojené síti, tak se vytvoří vztah sousedství (adjacency) 3. Každý směrovač sestavuje pakety stavu linky (Link-State Packet, LSP), které obsahují stavy každé přímo připojené linky LSP obsahuje údaje o lince mezi dvěma směrovači ID souseda, typ linky, adresa sítě, maska, přenosová kapacita, cena, nebo informace o netranzitní siti. 4. Kdykoliv při změně topologie (vytvoření/zánik vztahu sousedství), každý směrovač zaplavuje (flood) všechny sousedy v přímo připojených, přilehlých sítích pakety stavu linky (LSP) ve směrovací oblasti, kteří potom ukládají všechny přijaté LSP do své link-state database (LSDB). Nezapomeňte: LSP není posílán periodicky! Každý směrovač ve směrovací oblasti (area) bude mít LSP ze všech směrovačů v této oblasti 5. Jednotlivé směrovače si vytvářejí úplnou a synchronizovanou mapu topologie sítě a nezávisle počítají nejlepší cestu do každé cílové sítě. Vytváří si strom sítě (Link State Tree) – mapu neobsahující smyčky.
Pojmy OSPF Link Link-state Link-state ID Router ID Area Rozhraní routeru Link-state Vlastnosti rozhraní (IPa+maska, sousedství, metrika) Link-state ID Unikátní identifikátor v databázi LSDB pro konkrétní link-state záznam Router ID 4B číslo jednoznačně identifikuje router v AS (obvykle některá jeho IPa) Area Množina směrovačů, které sdílí společné informace o topologii, ale neznají topologii zbytku AS Area ID je 4B číslo Každá area musí být spojená s oblastí 0 (backbone) Hranice oblastí jsou na smerovačích (ne na linkách!) Link State Advertisement (LSA) Datová struktura posílaná v paketech OSPF protokolu, která přenáší topologické informace Není to samostatný paket!
Role směrovačů v OSPF Area Border Router (ABR) Směrovač na rozhraní mezi různými oblastmi V OSPF musí každý ABR být členem area0 (páteř) ABR plní úlohy při šíření, filtrování a sumarizaci směrovacích informací mezi oblastmi Autonomous System Boundary Router (ASBR) Směrovač na rozhraní AS a zbytkem světa ASBR plní úlohy při plnění, filtrování a sumarizaci směrovacích informací do OSPF z vnějšku Designated Router (DR) Směrovač na multiaccess části, je centrálním bodem pro výměnu směrovací informace: ostatní na adresují informace na DR, který je předává ostatním v segmentu a do dalších segmentů. Jeden DR se volí dynamicky pro každý multiaccess segment (t.j. pro každou IP síť na multiaccess segmentu) Backup Designated Router (BDR) Zálohuje činnost DR a přebírá jeho roli v případě jeho výpadku Nemusí existovat
Vztahy mezi routery Neighborhood Adjacency Komunikační vztah mezi dvojicí sousedních routerů Vzniká při shodě na hodnotě povinných parametrů Přes neighborhood sa nepřenáší routovací informace, jen o schopnosti se domluvit Neighborhood je teda vytvořený vždy mezi správně nakonfigurovanými routery Adjacency Adjacency je užší komunikační vztah, který umožňuje výměnu směrovacích informací Vytváří se pouze mezi vybranými směrovači
Pakety OSPF OSPF má 5 základních druhů paketů Hello paket Database Description Packet (DDP nebo DBD) Link State Request (LSR) Link State Update (LSU) Link State Acknowledgement (LSAck)
Hello paket Slouží k objevení a udržování neighborhood se sousedními směrovači a na volbu DR/BDR Přenáší informace, které musí být na obou koncích spoje stejné, jinak nedojde k navázání adjacency. Číslo area musí souhlasit Adresa společné sítě i maska musí být shodné Hello a Dead interval musí být shodné Autentifikace musí proběhnout (pokud je zapnuta) Hello paket se posílají každých 10 s na sítích typu broadcast a Point-to-Point 30 s na sítích typu NBMA a Point-to-Multipoint Na směrovačích Cisco je dead interval implicitně 4-krát větší než Hello interval
Database Description Packet Používá se při úvodní synchronizaci topologických databází mezi dvojicemi routerů Přenáší jen seznam Link State ID (databázové klíče) položek obsažených v topologické databázi daného směrovače, spolu s pomocnými informacemi o jejich verzi a stáří. Nepřenáší vlastní směrovací informace DDP komunikují routery ve fázi synchronizace topologických databází, když si vytváří seznam položek topologické databáze (Co je u souseda novějšího? resp. Co vůbec nemám?)
Zbylé 3 typy paketů 3) Link State Request (LSR) Pomocí LSR si router vyžádá konkrétní položku se sousedovy topologické databáze Přenáší požadovaný Link-state ID (databázový klíč) 4) Link State Update (LSU) LSU nese samotnou topologickou informaci Topologická informace je vnitřně obsažená v LSU jako jedna nebo několik LSA položek 5) Link State Acknowledgement (LSAck) Slouží k potvrzování úspěšného přijetí LSA V jednom LSAck může být potvrzeno mnoho jednotlivých LSA
Činnost OSPF Rozběh OSPF je možné rozdělit do 5 kroků Lokalizace sousedů a vytvoření partnerství (adjacency) Volba DR/BDR, pokud má smysl Synchronizace topologických databází Výpočet stromu nejkratších cest (Dijkstra) a naplnění routovací tabulky Udržování aktuálního stavu směrovací databáze
2. Krok – volba DR a BDR
3. Krok Synchronizace topologických databází Každá dvojice routerů prochází několika fázemi při vytváření komunikačního vztahu Fáze Down: Odesílá Hello, ale zatím žádný nedostal Fáza Attempt: To samé, ale na jen na NBMA sítích. Odesíláme Hello na konkrétního souseda Fáza Init: Od souseda jsme dostali Hello paket a informace v něm jsou OK. Nevidíme však svoje vlastní RID v tomto Hello paketu. Fáza 2-Way Od souseda jsme dostali Hello paket a informace v něm splňují kritéria, a navíc v něm vidíme vlastní RID
3. Krok Synchronizace topologických databází Fáze ExStart: Probíhá určování autority pro jednotlivé sítě (kdo bude mater/slave) – více v CCNP Fáze Exchange: Výměna DBD pakety s popisem topologických databází Na základe informací v přijatých DBD paketech si každý router tvoří seznam LSA, které má soused novější a které si bude chtít stáhnout Fáze Loading: Routery si během fáze Exchange vytvořily seznamy LSA, které chtějí od souseda stáhnout. Ve fázi Loading si tyto topologické komponenty navzájem vyžádají pakety LSR, pošlou pakety LSU a potvrdí pakety LSAck. Fáze Full: Fáze Full nastává v momentě, když router od souseda získal všechny informace, o které měl zájem. Dva ve stave Full mají identické topologické databáze a jsou plně synchronizované.
3. Krok Synchronizace topologických databází
Kroky 4 a 5 – Strom nejkratších cest a jeho údržba Router, s plně synchronizovanou databází, může spustit Dijkstrův algoritmus a určit strom nejkratších cest od sebe do ostatních sítí. Každá změna topologické databáze vyvolá Informovaní okolí o změně Spočítaní nového stromu nejkratších vzdáleností Informování o změně: Když je na síti DR/BDR, potom směrovač, který zpozoroval změnu, posílá o ní info pomocí LSU na adresu 224.0.0.6. DR tuto informaci šíří všem OSPF směrovačům na adrese 224.0.0.5. Ti potvrzují zasláním LSAck Dvojice routerů ve Full stavu si info posílá bezprostředně.
Pohled hlouběji do nitra OSPF zpracovává tři databáze: Adjacency Database (show ip ospf neighbor) Databáze sousedů a komunikačních vztahů mezi nimi Link-state Database (show ip ospf database) Topologická databáze obsahující orientovaný graf sítě Forwarding Database (show ip route) Routovací tabulka V OSPF teoreticky směrovač zná celou cestu od sebe až do cílové sítě, ve směrovací tabulce je však jen následující směrovač (brána)
Číslování LSA Každý LSA v LSDB má vlastní sekvenční číslo velké 4 B Číslovaní libovolného LSA začíná od konstanty 0x80000001 a končí hodnotou 0x7FFFFFFF Hodnota 0x80000000 je vyhrazená a nepoužitá. OSPF router pošle každých 30 minut všechny LSA ze své LSDB kvůli jejich obnově Při každém tomto kroku se příslušné sekvenční číslo každého LSA inkrementuje. Po jistém čase sekvenční číslo dosáhne hodnotu 0x7FFFFFFF Další inkrementování by vedlo na hodnotu 0x80000000 Při pokusu inkrementovat hodnotu sekvenčního čísla nad hodnotu 0x7FFFFFFF se dané LSA nechá expirovat (rozešle se do sítě s věkem 60 minut), čím bude z topologických databází odstraněné. Následně se začne toto LSA posílat znovu se sekvenčním číslem 0x80000001. Pokud router přijme víceré instance stejného LSA, musí určit, které je novější. LSA s vyšším sekvenčním číslem se považuje za novější.
Konec Děkuji Vám za pozornost