User Tools

Site Tools


wiki:site:cisco:ospf:start

OSPF - Open Shortest Path First

(RFC 2328)

Úvod do OSPF

  • Link state routovací protokol
  • hiearchický design - možnost segmentace sítě (Areas)

Link state:

  1. neighbor discovery
  2. topology database exchange - naplnění LSDB
  3. route computation - SPF Algorithm

LSDB obsahuje:

  • info o existenci a indentifikátoru všech routerů (router ID)
  • interface, IP adress, mask, subnet
  • list dostupných routerů přes každý router na každém interfejsu

Hiearchický model OSPF:

  • rozdělení na různé area
  • 1 area (0) je backbone a jsou do ní připojeny všechny ostatní
  • paket, který má má projít z jedné non-backbone area do jiné, musí vždy projít Area0
  • ABR - Area Border Router
  • ABR tvoří hranici mezi areami
  • ABR udržuje LSDB všech area do kterých je připojen
  • ABR mezi areami nepřenáší podrobné informace o tolpologii
  • ABR přenáší jen info o subnetech a délce prefixu, subnety se tak z perspektivy vnitřních routerů tváří jako přímo připojené k ABR
  • díky rozdělení sítě lze snížit nároky na výpočet topologie (CPU,Mem,přenos topolog. informací)

Přehled Pojmů:

  • LSDB Link State Database - informace o topologii udržované routerem
  • SPF Shortest Path First - algoritmus analyzující data v LSDB
  • LSU Link State Update - název OSPF paketu obsahujícího detailní topolog.informace, konkrétně LSA
  • LSA Link State Advertisement - OSPF struktura dat obsahující topolog.informace, je v paměti LSDB a vyměňují si ji routery v síti pomocí LSU zpráv
  • Area - skupina routerů a interfaců, která si vyměňuje podrobné topologické informace. Neučí se nic o topologii z jiných Areas .
  • ABR Area Border Router - router, který má interfacy v různých areách.
  • Backbone router - router, který má alespoň jeden interface v Area 0
  • Internal routers - router, který má všechny interfacy jen v jedné area
  • DR Designated Router - Zvolený router v multiaccess síti, který má zvláštní funkci při zpracování LSA
  • BDR Backup Designated Router - monitoruje DR a je připraven převzít jeho úlohu v případě poruchy

Konfigurace:

  1. router ospf process-id - číslo procesu nemá vliv na sestavení sousedství
  2. network net-id wildcard-mask area area-id - subnet se zařadí do connected sítí a router rozešle OSPF Hello zprávy z interfaců v daném subnetu
  3. volba aktivních interfaců probíhá porovnáváním IP a wildcard masky s IP adresou interfacu
  4. nezávisle na pořadí při konfiguraci, router ukládá network záznamy dle nejspecifičtější (nejvíce nul) wildcard masky - ta je první.
  5. pořadí network příkazů v show running-config se porovnávají IP interfejsů a první souhlas určuje Area id interfacu

Příklad - Network matching:

  • na R2 je vidět že most-specific network příkaz má vždy přednost
  • S0/0/1 je tedy v Area 1

RID Router ID:

  1. Použije se RID definované příkazem router-id x.x.x.x
  2. Nejvyšší IP adresa up/up Loopbacku
  3. Nejvyšší IP adresa up/up non-Loopback interfejsu

Verifikace OSPF

  1. Zjistit na kterých int. je zapnuto OSPF
  2. Ověřit zda o sobě vědí sousední routery (neighborship)
  3. Ověřit obsah topology table non-ABR routerů, zda obsahují data jen ze své Area
  4. Ověřit zda jsou dostupné všechny routy
Router# show ip ospf interface brief
Router# show ip protocols
Router# show ip ospf neighbors
Router# show ip ospf database
Router# show ip route

OSPF Shrnutí:

  • Transport - IP, protocol type 89 (nepoužívá UDP ani TCP)
  • Metric - kumulovaná cena(odv.od šířky pásma) všech výstupních interfaců v cestě (routě), lze explicitně stanovit
  • Hello interval - interval vysílání Hello zpráv na interfacu
  • Dead interfval - slouží k odhalení závady souseda když od něj určitou dobu nepříjmáme žádné zprávy
  • Update destination address - 224.0.0.5 (všechny SPF routery), 224.0.0.6 (všechny Designated routery)
  • Full or partial updates - full updaty jen při zjištění nového souseda, jinak partial updaty
  • Authentication - MD5 nebo clear-text
  • VLSM/classless - každá routa obshuje masku, podpora nespojitých sítí a VLSM
  • Route tags - umožňují OSPF označkovat routy dle způsobu jakým byly redistribuovány do OSPF
  • Next-hop field - podpora distribuce rout s rozdílnou next-hop adresou
  • Manual route sumarization - podpora sumarizace pouze na ABR routerech

OSPF Neighbors on LAN

Hello zprávy:

  • na interfacu musí být zapnuté OSPF (globálním příkazem network nebo na interfejsu ip ospf area)
  • interface nesmí být nastaven jako pasivní (příkazem passive-interface)
  • multicast 224.0.0.5

Obsah Hello zpráv:

  • OSPF RID
  • Stub area flag
  • Interface specific settings:
    • Hello interval
    • Dead interval
    • Subnet mask
    • list of neighbors reachable on interface
    • Area ID
    • Router priority
    • DR IP address
    • BDR IP address
    • Authentication digest

Podmínky navázání sousedství:

  • primární IP interfaců musí být ve stejném subnetu
  • connected interface nesmí být pasivní
  • musí být ve stejné Area
  • Hello a Dead timer musí být stejný
  • unikátní RID
  • IP MTU musí souhlasit
  • musí projít authentikace (je-li nastaveno)
  • (OSPF process-ID nemá vliv)

show ip ospf neighbor States:

  • FULL/.. - znamená plnohodnotný sousedský ztah, kompletní výměna topo informací napřímo
  • 2WAY/.. - funkční sousedský vztah, topo se vyměnuje prostřednictvím DR
  • FULL/DR
  • FULL/BDR
  • 2WAY/DROTHER

Hello and Dead Timers

  • Hello interval - (def. 10 s) definuje jak často jsou vysílány Hello zprávy
  • Dead timer - (def. 40 s) definuje jak dlouho router čeká než vyřadí souseda, pokud od něj nechodí hello zprávy
  • Selhání interfacu - všechny OSPF sousedy dostupné přes int. router považuje za failed bez čekání na vypršení Dead timeru
  • nastvím-li jen hello interval, změní se automaticky i dead interval na 4x hello
Router(config-if)# ip ospf hello-interval sekundy
Router(config-if)# ip ospf dead-interval sekundy
show ip ospf interface fa0/0
show ip ospf neighbors
Nastavi dead-interval na 1s, hello na 1/4s
Router(config-if)# ip ospf dead-interval minimal hello-multiplier 4

Router-ID

Určuje se v tomto pořadí:

  1. hodnota nastavená příkazem router-id
  2. nejvyšší IP up/up Loopbacku
  3. nejvyšší IP up/up non-Loopback interface
  • musí být unikátní
  • dle RID se identifikují routery v topo databázi
  • OSPF proces nemůže nastartovat bez RID
  • mají-li dva routery stejné RID, nenavážou spolu sousedství
  • ostatní routery s oběma routery se shodným RID naváží sousedství, avšak routy si natáhnou od toho se kterým sousedili jako s prvním

Shodné IP MTU

  • shodné MTU je podmínkou pro funkční sousedství !
  • defaultně 1500 byte, z důvodu limitu ethernetu na 1526 byte
  • je-li potřeba přenést větší paket, router jej buď zahodí nebo fragmentuje
  • je-li v IP hlavičce nastaven bit DF (don't fragment), router paket zahodí
  • není-li DF nastaven, router paket fragmentuje na dva či více menších

Mají-li routery rozdílné MTU:

  • ve výpisu sousedů sh ip ospf neighbors je vidět soused s měnícím se statusem (EXSTART,INIT,DOWN)
  • soused tedy je vidět v tabulce sousedů
  • k výměně topo informací však nedochází !!!

OSPF Authentikace

  • authentikují se všechny OSPF zprávy
  • routery používají pre-shared-key
  • MD5 otisk klíče+zprávy je v každé zprávě
  • nesouhlasí-li otisk přijaté zprávy s otiskem vytvořeným z lokálního klíče příjemce, je zpráva zahozena
  • selže-li autentikace, nelze ani navázat sousedství, protože neautentifikované Hello zrávy jsou zahazovány
  • neumožňuje jako EIGRP time-based klíče
  • pro změnu klíče je dobré na všech routerech přidat nový klíč s jiným id než měl starý a poté starý klíč smazat
  • pokud je na interfejsu nastaveno více klíčů jsou OSPF zprávy vysílány pro každý klíč zvlášť
  • např. jsou-li na int. dva klíče, odesílají se všechny OSPF zprávy dvakrát

Tři typy auth.:

  • type 0 - no authentication (default)
  • type 1 - clear text
  • type 2 - MD5, jediná rozumná metoda pro skutečné nasazení

Konfigurace:

Type 0 - none
Router(config-if)# ip ospf authentication null
Type 1 - per-interface
Router(config-if)# ip ospf authentication
Router(config-if)# ip ospf authentication-key key-value
Type 1 - Globálně
Router(config-router)# area area-id authentication
Type 2 - per-interface
Router(config-if)# ip ospf authentication message-gigest
Router(config-if)# ip ospf message-digest-key key-number md5 key-value
Type 2 - Globálně
Router(config-router)# area area-id authentication message-digest
key-value - maximálně 16 znaků
show ip ospf interface
show ip ospf neighbor
debug ip ospf adjacency

OSPF Neighbors on WAN

FIXME str.162

Command reference

router(config)#router ospf <process-id>
router(config-router)#network <ip-address> <wildcard> area <id>
show ip protocols
show ip route
show ip ospf
show ip ospf neighbor
show ip ospf interface
debug ip ospf packet
debug ip ospf hello
debug ip ospf adj

Plain text authentikace per Area:

Router(config)# router ospf 1
Router(config-router)# area 0 authentication
Router(config)# interface fa 0/0
Router(config-if)# ip ospf authentication-key password

Plain text authentikace per Interface:

Router(config)# interface fa 0/0
Router(config-if)# ip ospf authentication
Router(config-if)# ip ospf authentication-key password

MD5 authentikace per Area:

Router(config)# router ospf 1
Router(config-router)# area 0 authentication message-digest
Router(config)# interface fa 0/0
Router(config-if)# ip ospf message-digest-key 10 md5 password

MD5 authentikace per Interface:

Router(config)# interface fa 0/0
Router(config-if)# ip ospf authentication message-digest
Router(config-if)# ip ospf message-digest-key 10 md5 password

Tuninng - priority:

Router(config)# interface fa 0/0
Router(config-if)# ip ospf priority <0-255>
Router# clear ip ospf process

Tuninng - Router ID:

Router(config)# router ospf 1
Router(config-router)# router id <ip-address>
Router# clear ip ospf process

Tunning - Loopback:

Router(config)# interface Loopback 1
Router(config-if)# ip address 10.10.10.10 255.255.255.255

Tunning - Bandwidth/Cost:

Router(config)# interface ser 0/0/0
Router(config-if)# bandwidth 64

nebo:

Router(config-if)# ip ospf cost 1562

Tunning - Refernece BW pro linky > 100Mbps:

Router(config)# router ospf 1
Router(config-router)# auto-cost reference-bandwidth 10000 (max.rychlost v Mbps)

Propagace default-route (ta je pak v RT ostatnich routeru oznacena E2*O):

Router(config)# router ospf 1
Router(config-router)# default-information originate

Inter Area sumarizace na ABR:

Router(config)# router ospf 1
Router(config-router)# network 192.168.10.64 0.0.0.3 area 1
Router(config-router)# network 192.168.10.68 0.0.0.3 area 1
Router(config-router)# network 10.10.10.10 0.0.0.255 area 0
Router(config-router)# area 1 range 192.168.10.64 255.255.255.248

Load Balancing (jen equal-cost, 1-16 smeru, def.4):

Router(config)# router ospf 1
Router(config-router)# maximum-paths <1-16>
wiki/site/cisco/ospf/start.txt · Last modified: 2018/01/24 20:51 by root