Celý tento seriál o routingu vznikl, když jsem se připravoval na Cisco test 642-901 BSCI, jako moje poznámky. Následně jsem provedl pouze jednoduchou úpravu a text publikoval. Pokud myslíte, že něco podstatného chybí, něco není správně popsáno nebo není úplně jasné, tak uvítám vaše informace v komentářích.
Vlastnosti OSPF
- otevřený standard, asi nejrozšířenější IGP protokol ve větších firmách
- jedná se o classless protokol / podporuje VLSM
- používá Dijkstrův algoritmus nejkratší cesty - SPF
- spolupracuje s MPLS (Multi Protocol Label Switching) - udržuje routovací tabulky
- velké OSPF sítě je vhodné rozdělovat do oblastí (areas) - sníží se výpočet SPF, menší routovací tabulky, snížení LSU (link-state update)
- díky oblastem podporuje hierarchický síťový design
- používá link-state databázi, která předchází smyčkám
- pro snižování routovacích tabulek se může použít manuální sumarizace, ale automatická není podporována
- routovací updaty se posílají, pouze pokud jsou potřeba
- využívá multicast (takže neovlivňuje stanice a ostatní zařízení bez OSPF), 224.0.0.6 - všechny DR a BDR, 224.0.0.5 - všechny routery, 224.0.0.2 - všechny routery na stejném subnetu
- nepoužívá TCP, ale IP protokol 89, sám si řeší detekci a opravu chyb
- podporuje autentizaci, plain text nebo MD5, pro akceptování LSA
- používá hello protokol - lepší než výměna tabulek v RIP, pomocí něj navazuje sousedství, posílá každých 10s
- aby se routery staly sousedy, hello paket musí mít shodné hodnoty - číslo oblasti, typ oblasti (stub nebo NSSA flag), subnet a subnet mask, hello a dead timer, autentizační údaje
- LSA se odesílá každých 30min nebo při změně, šíří se pomocí flooding (zaplavování)
- cena linky pro OSPF
cost = 100Mb / bandwidth
- OSPF router ID (nastavuje se při restartu) je nejvyšší IP adresa (aktivní) na routeru nebo adresa loopback interfacu (to je doporučeno, protože je stále up)
- DR/BDR volba je podle nastavené priority nebo podle Router ID, probíhá pouze v multi-access sítích, ne v point-to-point, když DR selže, tak BDR se stane DR a zvolí se nový BDR, pokud původní DR naběhne, tak se nestane automaticky DR (pouze až selže DR i BDR)
- pokud nějaká oblast nemůže být přímo připojena do backbone, může být připojena do jiné oblasti, která je přímo do oblasti 0, a musí se vytvořit virtuální link (logická cesta do backbone skrze tranzitní oblast) - je identifikována pomocí router id sousedního routeru (pokud se zadá špatně, tak se nevytvoří)
- hranice oblastí jsou definovány uvnitř routeru
- na routeru může běžet až 30 OSPF routing proces
Tabulky pro OSPF
- routovací (routing) - nejlepší routy do destinací
- topologie (topology) - routovací záznamy do všech destinací
- sousedů (adjacency) - informace o sousedních routerech
- link-state database - stejná pro všechny routery, synchronizace pomocí zaplavení LSA, pomocí ní se vytvoří routovací tabulky, obraz síťové topologie ve stromové struktuře
OSPF routes (typy záznamů)
- O - OSPF síť ve stejné oblasti (intra-area)
- O IA - OSPF inter-area, z ABR (LSA 3 a 4)
- O* IA - default OSPF inter-area
- O N1 - OSPF NSSA external type 1
- O* N2 - default OSPF NSSA external type 2
- O E1 - OSPF external type 1, z ASBR,
- O* E2 - default OSPF external type 2
Typy OSPF oblastí (area)
- standard area - přijímá link updaty a sumární routy i externí
- backbone area - propojení všech ostatních oblastí, vždy Area 0, stejné vlastnosti jako standard
- stub area - nepřijímá routy z ostatních AS (autonomus system), pro směrování mimo AS se použije defaultní routa, O, O IA, O* IA
- totally stubby area - Cisco proprietální, nepřijímá sumární routy mimo jeho oblast, O, O* IA
- not-so-stubby area (NSSA) - obdoba stuby, ale importuje některé externí routy typu 7 LSA a převádí je na typ 5 LSA, O, O IA, O N2, O* N2
Typy routerů v OSPF
- Area Border Router - ABR - má interfacy ve více oblastech, pro každou oblast má separátní tabulku link-state, připojuje oblasti do backbone
- Autonomous System Border Router - ASBR - má interfacy ve více AS, slouží k distribuci route z jiné AS, většinou zde běží i BGP
- Internal Router - běžný, pouze v jedné oblasti
- Backbone Router - alespoň jeden interface v Area 0
DR/BDR routery
- Designated Router - DR - posílá LSA 2 všem sousedům v multi-access, je to router (přesněji interface routeru), který se volí v rámci segmentu u multiaccess (speciálními technikami i u NBMA), slouží k redukci síťového provozu, DR je zdrojem routovacích updatu, udržuje si kompletní tabulku topologie, všechny ostatní routery s ním navazují spojení
- Backup Designated Router - BDR - stává se DR, pokud selže původní DR, má druhou nejvyšší prioritu v době volby
Link State Advertisements - LSA v OSPF
- typ 1 - router, informace o routeru a jeho přímo připojených interfacech, pouze v rámci oblasti, generuje každý router
- typ 2 - network, informace o LAN a routerech v ní, v multi-access network pochází z DR, pouze v oblasti
- typ 3 - summary, pochází z ABR (Area Border Router), sítě dostupné mimo oblast, pro ABR
- typ 4 - ASBR summary, pochází z ABR, pro ASBR
- typ 5 - external AS, oznamuje externí routy (default route), pochází z ASBR, v rámci AS
- typ 6 - multicast info
- typ 7 - ostatní rozšíření - NSSA
Typy sítí - network types
- broadcast multi-access (BMA) - sdílené médium, ethernet, volí se DR a BDR automaticky
- nonbroadcast multi-access (NBMA) - bez subinterfaců, klasicky serial Frame Relay, DR a BDR vyžaduje ručně definované sousedy
- point-to-point (PtoP)- spojení dvou routerů, nepotřebuje DR a BDR
- point-to-multipoint (PtoM) - jeden interface, který se připojuje k více cílům (pomocí subinterfaců), série point-to-point okruhů, nedochází k volbě DB/BDR, často serial Frame Relay, automaticky formuje sousedství (nemusí se ručně definovat)
Příkazy Cisco IOSu pro konfiguraci OSPF
ROUTER(config)#router ospf 1 // 1 je process-id, můžeme provozovat více procesů na routeru ROUTER(config-router)#network 192.168.5.4 0.0.0.3 area 1 // používá wildcard masku, 1 je číslo oblasti ROUTER(config-router)#neighbor 192.168.5.4 // určení souseda, může obsahovat prioritu/cenu ROUTER(config-router)#summary-address 10.1.0.0 255.255.0.0 // sumarizace sítí na ASBR ROUTER(config-router)#redistribute connected [subnets] // posílá všechny lokální interfacy, subnets - pošle i subneted routes ROUTER(config-router)#passive-interface Serial0/0 // daný interface neposílá a nepřijímá updaty ROUTER(config-router)#area 1 stub // určí oblast 1 jako stub ROUTER(config-router)#area 1 stub no-summary // neposílá LSA 3 a 4 = totally stuby ROUTER(config-router)#area 1 nssa no-summary // neposílá LSA 3 a 4 = NSSA totally stuby ROUTER(config-router)#area 1 range 10.1.0.0 255.255.0.0 // sumarizace sítí na ABR, můžeme určit, zda se má zveřejňovat - klíčové slovo advertise ROUTER(config-router)#area 16 virtual-link 8.187.175.82 // virtuální link na IP (třeba loopback) do backbone ROUTER(config-if)#ip ospf network point-to-multipoint // nastaví mod na interface, další možnosti broadcast, non-broadcast, point-to-point ROUTER(config-if)#encapsulation frame-relay // nastaví encapsulaci interfacu ROUTER(config-if)#ip ospf priority 10 // nastaví prioritu pro volbu DR ROUTER(config-if)#ip ospf cost 10 // nastavení cenu odchozím paketům na interfacu ROUTER(config-if)#frame-relay map ip 10.1.1.1 200 broadcast // 200 = DLCI (Data-link connection identifier), broadcast potřeba pro Frame Relay ROUTER#show ip ospf // hlavní informace o OSPF procesu, oblasti, apod. ROUTER#show ip ospf border-routers // interní routovací záznamy do ABR a ASBR ROUTER#show ip ospf neighbor // informace o sousedech per interface včetně link state, bez ABR, ASBR, SPF ROUTER#show ip ospf interface // informace z daného interfacu související s OSPF (link state .) - router ID, vztah se sousedy ROUTER#show ip ospf virtual-link // info o virtul link do backbone ROUTER#show ip ospf database // info o topologii, link state, LSA
OSPF a IPv6
- IPv6 je podporováno v OSPF verze 3 (a to pouze IPv6 ne IPv4), základ je podobný jako předchozí verze OSPF, ale je nový konfigurační mód
- můžeme provozovat více instancí OSPF IPv6
- pro zařazení do routovacího procesu se nepoužije příkaz
network
, ale přímo se konfiguruje interface
ROUTER#show ipv6 ospf // hlavní informace o OSPF procesu, oblasti, apod. ROUTER#clear ipv6 ospf process // OSPF DB se obnoví a znovu se spustí SPF ROUTER(config)#ipv6 unicast-routing // zapne podporu IPv6 ROUTER(config)#ipv6 router ospf 1 // zapne OSPF IPv6, 1 - process-id interní identifikace 1 až 65535 ROUTER(config-if)#ipv6 ospf 1 area 5 // zapne OSPF IPv6 pro interface, 1 - process-id, 5 - area-id ROUTER(config-if)#ipv6 ospf authentication ipsec spi 500 md5 // IPsec autentizace
OSPF nepodporuje MPLS. Je pouze jedním z protokolů, které jsou použitelné ke spolupráci s LDP. (pod pojmem "podporuje" bych chápal to, že by byl schopen distribuovat labely, což nedělá)
odpověď na [1]davro: Děkuji za info. S MPLS nemám žádné zkušenosti. Absolvoval jsem pouze krátký seminář a z něj jsem si odnesl následující informaci (doufám, že správnou).
Pro výpočet/údržbu routovacích tabulek v MPLS se používá link-state IGP (jako OSPF nebo IS-IS). Protokol LDP (Label Distribution Protocol) spravuje značky (label) a vazby mezi routami a značkami. Na Control Plane pak běží dohromady LDP (nebo alternativní protokol) a IGB (třeba OSPF).
odpověď na [2]Samuraj: To je správně. Nicméně to neznamená podporu MPLS, protože toho se dá dosáhnout s libovolným protokolem.
Podporou MPLS bych rozumněl takovou situaci, kdy bude OSPF distribuovat i značky, čehož by asi modifikací protokolu šlo dosáhnout.
Nicméně přístup s odděleným protokolem pro distribuci značek je hezčí, protože není nutné modifikovat směrovací protokol a funguje v podstatě s každým protokolem.
odpověď na [3]davro:
myslím, že by nebyl dobrý nápad nechat ospf distribuovat labely.
1. jedná se o LS, tedy informace o labelech, které se "per-hop" mění by byly zbytečně a nefektivně ve všech databázích (ls protokoly distribuují všechny informace do celé sítě (chápej area))
2. labely nemají nic společného s výměnou směrovacích informací směrovacími protokoly, ale spíše s používanou směrovací tabulkou. Ta jak víme přímo s tím co máme za informace v ospf nesouvisí :)
odpověď na [3]davro:
myslím, že by nebyl dobrý nápad nechat ospf distribuovat labely.
1. jedná se o LS, tedy informace o labelech, které se "per-hop" mění by byly zbytečně a nefektivně ve všech databázích (ls protokoly distribuují všechny informace do celé sítě (chápej area))
2. labely nemají nic společného s výměnou směrovacích informací směrovacími protokoly, ale spíše s používanou směrovací tabulkou. Ta jak víme přímo s tím co máme za informace v ospf nesouvisí :)
odpověď na [5]tomfi:
2. to není tak úplně pravda, labely se mohou přidělovat podle různých kritérií, třeba i podle mac adres nebo staticky (a vytvářet tak EoMPLS). Nicméně ve speciálních případech by se modifikované OSPF pro distribuci labelů dalo použít (např. v síti běží jako směrovací protokol pouze OSPF a všechny další routy jsou redistribuovány do OSPF). Ale asi je zřejmé, že samostatný protokol je nezávislejší a tudíž lepší.
Este by som pridal ze existuje aj NSSA totally stubby area, je to Cisco extension, ktora automaticky generuje defaultnu routu O*N2 , nieje nutne davat area x nssa default-information originate na ABR,potom do NSSA je advertisovana iba ta routa, O IA su supresnute na ABR.
K network types, existuje este point-to-multipoint nonbroadcast, opat cisco proprietarny,rozdely oproti standardu su tie ze funguje na WAN sietach kde nieje povoleny broadcast/multicast, pri tomto mode sa musia konfigurovat susedia rucne (na hube),a elekcia DR/BDR nieje vyzadovana
Ahoj,
posilam drobne doplneni clanku o par poznatku:
aby se routery staly sousedy, hello paket musí mít shodné hodnoty - dalsi nutna podminka je shodne MTU, ale to plati pro vetsinu routovacich protokolu.
Typ site Point-to-multipoint (PtoM) - jeden interface, který se připojuje k více cílům - je potreba manualne zvolit DR, ten ktery je hubem
to co dal pises je obejiti pomoci subinterfacu
jinak diky za prehledne shrnuti
Ahoj, chtěl bych se zeptat kdo je autorem algoritmu OSPF
Díky za odpověď