Skip to main content

OSPFv3

Open Shortest Path First version 3 (OSPFv3) är en efterträdare till OSPFv3. Det stora med v3 är att utbyten av LSAer innehållande IPv6-prefix är möjligt. Cisco tillåter även att man byter ut LSAer innehållande IPv4-prefix, men det gör inte alla andra leverantörer. RFC 5340 definierar OSPFv3. IPv6 måste vara aktiverat på routern för att OSPFv3 ska fungera med kommandot ipv6 unicast-routing.

Det finns en äldre syntax och en nyare syntax för OSPFv3. Ex. vid aktivering av OSPFv3 på interface med den gamla syntaxen är ipv6 ospf 1 area 0. Nya syntaxen är ospfv3 1 ipv6 area 0. Jag kommer att använda nya syntaxen här.

Många koncept är samma i OSPFv3 som i OSPFv2. Den här artikeln antar att man känner till OSPFv2.

Skillnader mot OSPFv2

  • Inget network-kommando finns. Aktivering av interface sker på interface-nivå.
  • Då det går att ha flera IPv6-adresser på ett interface så annonseras samtliga adresser vid aktivering
  • Om inga IPv4-adresser finns på en router måste router ID (RID) sättas manuellt
  • Nya LSAer, link-local, area och AS
  • Det går att använda instanser på en länk. På ett multiaccessnät kan man då dela upp router 1 och 2 i instans 1 och router 3 och 4 i instans 2. Används instanser måste de matcha mellan routrar som ska vara grannar. Instansnummer är mellan 0 och 255.
  • OSPFv3 använder begreppet länk istället för nätverk
  • Grannskap bildas över IPv6 link-local adresser. Detta gäller även om det är LSAer med IPv4 som ska bytas ut. Undantaget är virtual links då en global IPv6 adress används, stöd för virtual-links finns alltså enbart över routad IPv6
  • Autentisering sker ej via OSPFv3 utan via inbyggda autentiseringsmöjligheter i IPv6

LSAer

Många LSAer är samma som i OSPFv2. En del har bytt namn och LSA typ 8 samt typ 9 har lagts till.

LSA
Namn
Beskrivning
Floodas var?
1
Router LSA
Beskriver en router och dess länkar till grannar inom ett area
Inom ett area
2
Network LSA
Skapas av DR och representerar multiaccess transit-nätverket samt koppling till grannar
Inom ett area
3
Inter-Area Prefix LSA
Skapas av Area Border Router (ABR) för att beskriva nätverk som finns i ett annat area
Inom ett area
4
Inter-Area Router LSA Skapas av ABR så att anslutna areas kan hitta till en ASBR
Inom ett area
5
Autonomous System External LSA
Skapas av ASBR för att beskriva injicerade rötter
Autonomous System
6
x
x
x
7
NSSA LSA
Skapas av en ASBR inom ett Not-So-Stubby-Area (NSSA) för att beskriva injicerade rötter
Inom ett area 
8
Link LSA
Beskriver link-local adresser. Skickas om det finns mer än 1 router på en länk.
Lokalt på ett Ethernet-segment
9
Intra-Area-Prefix LSA
Associerar IPv6 prefix med ett transit nätverk genom att peka på en Network LSA och associerar IPv6 prefix med en router genom att peka på en router LSA.
Inom ett area

Funktionalitet har flyttats från Typ 1 och 2 LSAer till Typ 8 och 9. Typ 1 och typ 2 innehåller inte längre information om adresser. Prefix-information återfinner istället i LSA typ 9. Själva topologin finns kvar i Typ 1 och 2 men ej anslutna nätverk.

Då topologi-information och adress-information är separerad i OSPFv3 är protokollet mer effektivt. Om en interface-adress ändras skickas enbart en uppdaterad Link LSA (enbart lokalt) och en nya Intra-Area-Prefix LSA. Då topologin är oförändrad behöver inte SPF köras, enbart prefixen uppdateras i LSDB.

Autentisering

OSPFv3 använder sig av IPv6 inbyggda stöd för autentisering. Autentisering konfigureras på interface-nivå. Det finns två typer man kan använda sig av. Den ena är via IPv6 Authetication Header (AH), vilket enbart innebär autentisering, och den andra är Encapsulating Security Payload (ESP, vilket innebär autentisering men även kryptering av trafik.

Exempel med AH:

interface GigabitEthernet0/1
 ospfv3 authentication ipsec spi 256 sha1 40-TECKEN-HEX

Exempel med ESP:

interface GigabitEthernet0/1
 ospfv3 encryption ipsec spi 1337 esp aes-cbc 256 64-TECKEN-HEX sha1 40-TECKEN-HEX

Kommandot innehåller:

  • Security Paramter Index (SPI) som ska vara unik för routern och ska matcha på båda sidor
  • Kryptering för esp, i det här fallet aes-cbc 256, samt ett lösenord. Lösenordslängden varierar beroende på kryptering och innehållet ska vara hexadecimalt (får alltså innehålla: ABCDEF123456789)
  • Autentiseringsmetod, i det här fallet ovan sha1, följt av hexadecimalt lösenord med varierande längd beroende på vald algoritm

Det går även att implementera autentisering med Authentication Trailer enligt RFC 7166. IPv6 inbyggda IPSec stöd används då ej. Det konfigureras på interfacenivå med kommandot ospfv3 authentication key-chain KEY-CHAIN-NAME. Den metoden innebär ingen möjlighet till kryptering av trafik. Nyckel IDn och strängar måste matcha.

I nya releaser av IOS-XE (verifierat i 17.12.3) så kan man inte använda sig av service password-encryption med OSPFv3 encryption. Se mer information här.

Adressfamiljer

OSPFv3 har stöd för att transportera LSAer för flera flera adressfamiljer. Det är det som gör att OSPFv3 kan vara bärare för både IPv4 och IPv6.

Olika instans IDn har mappats till adressfamiljer:

Instans ID
Adressfamilj
0
Base IPv6 Unicast
1-31
IPv6 unicast beroende på lokal policy
32
Base IPv6 multicast
33-63
IPv6 multicast beroende på lokal policy
64
Base IPv4 unicast
65-95
IPv4 unicast beroende på lokal policy
96
Base IPv4 multicast
97-127
IPv4 multicast beroende på lokal policy
128-191
Otilldelat
192-255
Reserverade för framtiden

Om inget instans ID tilldelas manuellt kommer routern att automatiskt välja 0 för IPv6-prefix och 64 för IPv4-prefix. Även om man bara använder ett process-ID så delas ingen information mellan instanserna.

I OSPFv3 Hello paket, DBD paket och LSAer finns en AF-bit definierad som sätts enligt instans ID-mappningen ovanför.

Konfiguration av adressfamiljer sker enligt exempel:

router ospfv3 1
 router-id 1.3.3.7
 auto-cost reference-bandwidth 1048576
 !
 address-family ipv6 unicast
  area 0 range 2001:DB8:0:1337::/63
  passive-interface default
  no passive-interface Vlan1337
  prefix-suppression
 exit-address-family
 !
 address-family ipv4 unicast
  passive-interface default
  no passive-interface Vlan1337
 exit-address-family

interface Vlan1337
 ospfv3 network broadcast
 ospfv3 hello-interval 1
 ospfv3 dead-interval 3
 ospfv3 priority 5
 ospfv3 bfd
 ospfv3 1 ipv6 area 0
 ospfv3 1 ipv4 area 0

! Notera instans ID:t nedanför. Den första delen är för IPv4 och andra för IPv6

catalyst#show ospfv3 interface vlan 1337 
Vlan1337 is down, line protocol is down 
  Link Local Address FE80::BEE7:12FF:FE91:164D, Interface ID 157 (snmp-if-index)
  Internet Address 10.248.254.2/24
  Area 0, Process ID 1, Instance ID 64, Router ID 1.3.3.7
  Network Type BROADCAST, Cost: 1
  Transmit Delay is 1 sec, State DOWN, Priority 1, BFD enabled
  No designated router on this network
  No backup designated router on this network
  Timer intervals configured, Hello 1, Dead 4, Wait 4, Retransmit 5
Vlan1337 is down, line protocol is down 
  Link Local Address FE80::BEE7:12FF:FE91:164D, Interface ID 157 (snmp-if-index)
  Area 0, Process ID 1, Instance ID 0, Router ID 1.3.3.7
  Network Type BROADCAST, Cost: 1
  Transmit Delay is 1 sec, State DOWN, Priority 1, BFD enabled
  No designated router on this network
  No backup designated router on this network
  Timer intervals configured, Hello 1, Dead 4, Wait 4, Retransmit 5

Värt att notera om övriga inställningar ovan, ex. hello-intervall, network type och timers, är att de gäller samtliga adressfamiljer.

Prefix Suppression

OSPFv3 har stöd för prefix suppression, det vill säga möjligheten att inte skicka med informaton om transit link prefix. I OSPFv3 så döljs dessa från typ 8 och typ 9 LSAer. Aktiveras per process med kommandot prefix suppression eller per interface med ospfv3 prefix-suppression. Om man använder sig av adressfamiljer går det att konfigurera ovanför adressfamiljerna, vilket aktiverar det per adressfamilj, eller inuti adressfamiljerna.

Graceful Shutdown

Fungerar som i OSPFv2 men med en lite annorlunda process. Följande sker när man slår in shutdown i processen:

  • Hello-paket skickas med router prioritet 0. DR/BDR ansvaret försvinner, om ett sådant finns
  • Slutar acceptera mottagna Hellos
  • Flushar alla skapade LSAer förutom en typ 1 LSA
  • Floodar sin typ 1 LSA med cost satt till 65,535
  • Efter Dead-interval tar slut och alla grannar anses nere flushas ens egna typ 1 LSA
  • Slutar skicka och processa OSPFv3 paket

Den största skillnaden är alltså att OSPFv3 väntar på att Dead interval är slut innan alla grannar är nere. Det tar lite längre tid jämfört med OSPFv2. 

Graceful Restart (NSF)

OSPFv3 använder termen Graceful Restart för Non Stop Forwarding (NSF). Aktiveras genom graceful-restart i OSPFv3 processen alternativt i adressfamiljskonfläge. Timers går att sätta med graceful-restart restart-interval 300. Helper-funktion går att avaktivera med graceful-restart helper disable.

NSR går att aktivera med kommandot nsr i OSPFv3 processen.