Cisco OSPF
Link-state routing protokoll känner till alla länkar i topologin och deras operational states och lagrar detta i en LSDB. Routrar måste ha ett OSPF-id för att kunna skicka meddelanden. Open Shortest Path First kommunicerar med multicast som alltid har ttl satt till 1. OSPF använder IP protokoll #89. RFC 2328
- Type: Link State
- Algorithm: Dijkstra
- AD: 110
- Metric: Cost (Bandwidth)
- Protocols: IP
Contents
Router ID
På Ciscoenheter väljs ID enligt följande ordning:
- router-id kommandot
- Högsta IP-adressen på ett no-shut loopback interface (som ej är assignat någon annan OSPF-process)
- Högsta IP-adressen på ett no-shut interface (som ej är assignat någon annan OSPF-process)
Interfacen behöver inte vara nåbara eller ha något med OSPF att göra utan alla interface jämförs. ID ändras endast när processen startas om eller router-id-kommandot körs.
Paket-typer
- Hello: Upptäcka grannar. Innehåller mask, timers, flaggor, DR/BDR (om det finns) och router-ID för grannar.
- Database Description: Innehåller LSA headers under den initiala topologi-synken
- Link-State Request: Innehåller vilka LSA:er som avsändaren vill ha alla detaljer om
- Link-State Update: Innehåller alla detaljer om LSA:er och skickas på förfrågan eller vid topologiändring
- Link-State Acknowledgment: LSU confirmation
Grannskap
Neighbors måste komma överens om:
- Subnät/Mask
- Area
- Timers
- Olika router-ID
- Flaggor: Stub, NSSA
- MTU
- Authentication type
- Kompatibla nätverkstyper, DR-election eller ej
Graceful shutdown, en OSPF router skickar ett HELLO utan grannar då tas grannskapet ner.
Neighbor states
Kronologisk ordning
- Down: Initial state. Om det inte kommer in några OSPF-paket under Dead interval blir grannen down.
- Attempt: Gäller endast NBMA och point-to-multipoint nonbroadcast.
- Init: Ett hello (utan mottagarens router-ID) har tagits emot.
- 2-way: Ett hello med mottagarens router-ID har tagits emot.
- ExStart: Utbyta tomma DD för att bestämma master/slave.
- Exchange: Utbyta database description
- Loading: LSA:er tankas över
- Full: Allt klart
show ip ospf neighbor
LSA-typer
Designated Router
OSPF optimerar flooding-processen på multiaccess-länkar genom att använda designated routers och backup desinated routers. Annars hade varenda router på ett sådant segment att behövt upprätta fulla grannskap med alla andra. Med en DR räcker det med att alla utbyter LSDB endast med den, detta resulterar i mindre trafik. Varje router har fullt grannskap med DR och BDR, 2-way med övriga. DR har två syften, det är också så att det är DRs som skapar typ 2 LSAn som representerar multiaccess-segmentet.
Behöver en DR skicka ut en LSU gör den det till 224.0.0.5 som alla DROther lyssnar på. Behöver en DROther skicka en uppdatering gör den det till 224.0.0.6 som DR och BDR lyssnar på. Alla enheter som får en LSU ackar den med en unicast LSAck till avsändaren, med undantag om LSUn kom från sig själv. I topologier utan DR används 224.0.0.5 för allt.
DR election görs mellan 2-way och ExStart i och med att Hellos innehåller DR/BDR om det finns. Om det kommer in en Hello med DR satt till 0.0.0.0 betyder det att det inte finns någon DR än, t.ex. efter ett outage. Då väntar routern en liten stund för att ge andra en chans att komma upp. Detta kallas OSPF wait time och är samma som Dead time på det interfacet är ställt till. Under wait time lyssnar routern in RID och prioritet från sina grannar. Val av DR/BDR görs först efter wait time är över. Election görs lokalt på routern utifrån de värden som kommit in. Dock slutar det alltid med att alla har samma.
Finns det en DR RID i ett Hello som kommer in så har någon annat gjort valet och man kan direkt hoppa till election, dvs skippa resten av wait time. Det som görs då är att man fyller den roll som ej är fylld, t.ex. BDR genom att ta den högsta prioriteten och högsta router id som man känner till. Detta gör att det inte finns någon preemption. Däremot kan det tillfälligt existera routrar som är klara med election och som har kommit fram till olika slutsatser. Då byter man DR/BDR till de med högst prio/id när man upptäcker krocken. Alla routrar med OSPF priority 1-255 är med i election, sätter man 0 ignoreras DR/BDR election på den enheten.
interface gi0/0 ip ospf priority 50
Nätverkstyper
Det finns olika typer av nätverk och pga hur OSPF fungerar måste man konfigurera det lite olika beroende på typ. T.ex. DR/BDR election hålls endast på broadcast och NBMA.
Ändra nätverkstyp på ett interface.
interface gi0/0 ip ospf network
Specificera granne manuellt, detta måste göras på NBMA och point-to-multipoint nonbroadcast.
router ospf 1 neighbor 10.0.0.2
Rekommendationer
- Set your maximum LSA settings to keep from killing weak boxes
- Baseline your network so you know how many LSAs normally float around
- Configure LSA warnings to alert of problems
- Crash each type of box on your network in a lab environment so you know what it will do under stress.
Konfiguration
router ospf [process-id]
router-id for this OSPF process (in IPv4 address format)
router-id [OSPF router-id] log-adjacency-changes
Uppdatera reference bandwidth till 100G
router ospf 1 auto-cost reference-bandwidth 100000 exit show ip ospf interface | i Cost
Enable routing on an IP network
network [network-number] [wildcard-mask] area [area-id]
Slå på routing för alla nät och styr grannskap/uppdateringar med passive-interface
passive-interface default network 0.0.0.0 0.0.0.0 area 0 no passive-interface [interface]
Default route
default-information originate
Eller om man inte har någon gateway of last resort
default-information originate always
AD
router ospf 1 distance ospf intra-area 200 distance ospf inter-area 100 distance ospf external 120
DR/BDR election, multiaccess network
interface [interface] ip ospf priority [number] #default 1 exit
Advertise a maximum metric so that other routers do not prefer the router as an intermediate hop
max-metric router-lsa on-startup 60
Authentication
Enable MD5 authentication in Area 0
area 0 authentication message-digest
Enable OSPF authentication on an interface
interface [interface] ip ospf 1 area 0 ip ospf message-digest-key 10 md5 [password] exit
Key-chain
key chain TEST key 1 key-string SECRET cryptographic-algorithm hmac-sha-512
int gi2 ip ospf authentication key-chain TEST
OSPFv3, IPsec
int gi2 ospfv3 encryption ipsec spi 2001 esp aes-cbc 256 0 ABC123... sha1 0 CBA321... ipv6 ospf encryption ipsec spi 2001 esp aes-cbc 256 0 ABC123... sha1 0 CBA321...
Summarization
ABR
router ospf 1 area 10 range 10.10.0.0 255.255.252.0 exit
ASBR
router ospf 1 summary-address 10.10.0.0 255.255.252.0 exit
Tuning protocol parameters
ip ospf hello-interval seconds ip ospf dead-interval seconds ip ospf retransmission-interval seconds ip ospf transmit-delay seconds
Timers
router ospf 1 timers throttle spf 100 1000 10000 timers pacing flood 50 timers paciong retransmission 75 timers throttle lsa all 10 4000 6000 timers lsa arrival 2000
Area types
Stub No LSA type 5
area 1 stub
Stub bit is sent in hello packets
Totally Stubby
No LSA type 3,4,5. Default route only.
ABR
area 1 stub no-summary
Others
area 1 stub
NSSA LSA type 7
area 1 nssa
NSSA Totally Stubby LSA type 7. No LSA type 3,4.
area 1 nssa no-summary
Filtering
Inter-area
router ospf 1 area 1 filter-list prfix PFXLIST out
ip prefix-list PFXLIST seq 5 deny 10.10.0.0/24 ip prefix-list PFXLIST seq 10 permit 0.0.0.0/0 le 32
Intra-area
Går att göra med en distribute-list dock måste alla routrar vara konfade likadant annars kan det bli blackholing.
router ospf 1 distribute-list 1 access-list 1 deny 172.16.3.1 access-list 1 permit any
Alternativt
summary-address 10.0.0.0 255.255.255.0 not-advertise
Virtual Link
Virtual link är rekommenderat som backup- eller temporär anslutning.
R1
router ospf 1 network 10.0.1.0 0.0.0.255 area 1 network 1.1.1.0 0.0.0.255 area 0 area 1 virtual-link 3.3.3.3 #Router-ID
R3
router ospf 1 network 10.0.1.0 0.0.0.255 area 1 network 10.0.2.0 0.0.0.255 area 2 network 3.3.3.0 0.0.0.255 area 2 area 1 virtual-link 1.1.1.1 #Router-ID
Show
show ip ospf virtual-links
LFA
Loop-Free Alternate Fast Reroute
Diverse
Loopback
ip ospf network point-to-point exit
MTU mismatch
ip ospf mtu-ignore
Discard
no discard-route external
Redistribution
Default seed metric: 20 (except BGP)
Static
redistribute static
RIP
redistribute rip subnets
EIGRP
redistribute eigrp 1 subnets
Troubleshoot
ping 224.0.0.5 show ip ospf interface brief show ip protocols show ip ospf events show ip ospf border-routers show ip ospf topology-info show ip ospf database router show ip ospf rib
Reset database and neighbors
clear ip ospf process