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.