🔷 OSPFv3

OSPFv3

OSPF pour IPv6 — et bien plus. OSPFv3 supporte nativement IPv4 et IPv6 via les address-families, introduit les LSA 8 et 9, abandonne l'authentification intégrée au profit d'IPsec, et utilise les adresses link-local comme next-hop.

📊 v2 vs v3
📖 Concepts
📄 LSA Types
🖧 Topologie
⚙️ Config
🔍 Vérification
⚠️ Pièges CCIE
🃏 Flash Cards

Tableau de correspondance OSPFv2 ↔ OSPFv3

OSPFv3 (RFC 5340) est une réécriture d'OSPFv2 pour IPv6. Les mécanismes de base (SPF, areas, DR/BDR, hello/dead timers) restent identiques. Ce qui change : transport, adressage, authentification, LSA types.

Critère OSPFv2 OSPFv3
RFC RFC 2328 RFC 5340
Protocol IP IP protocol 89 IPv6 Next Header 89
Adresses multicast 224.0.0.5 (AllSPF)
224.0.0.6 (AllDR)
FF02::5 (AllSPF)
FF02::6 (AllDR)
Source des paquets Adresse IPv4 de l'interface Adresse link-local (FE80::)
Identification interface Adresse IP du réseau Interface ID (numéro interne)
Router-ID 32-bit (IPv4 ou manuel) 32-bit — obligatoirement manuel si pas d'IPv4 configurée
Authentification Intégrée (MD5, clear-text) IPsec AH/ESP (area ou interface)
LSA Hello/DBD/LSR/LSU/ACK Types 1-7 Types 1-7 + 8 (Link-LSA) + 9 (Intra-area-prefix LSA)
Préfixes dans LSA Dans Router-LSA (type 1) et Network-LSA (type 2) Séparés dans LSA type 9 (Intra-area-prefix)
Address families IPv4 uniquement IPv4 ET IPv6 (AF mode IOS)
Instance ID Non Oui — multiple instances sur même lien
Options field 8 bits dans hello 24 bits — champ étendu
Commande IOS router ospf <pid> router ospfv3 <pid> ou ipv6 router ospf <pid>
Activation interface ip ospf <pid> area <x> ospfv3 <pid> ipv6 area <x>
Next-hop dans routes Adresse IPv4 Adresse link-local (FE80::)
Ce qui NE change PAS Algorithme SPF, areas (backbone/standard/stub/NSSA), DR/BDR élection, hello/dead timers, Router-ID 32-bit, métriques cost, flood mechanism, virtual links
Résumé en une phrase : OSPFv3 = OSPFv2 avec transport IPv6, link-local comme source/NH, IPsec pour l'auth, LSA 8/9 pour séparer topologie et préfixes, et address-families pour supporter IPv4 en parallèle.

Changements fondamentaux OSPFv3

1. Transport sur IPv6 avec adresses link-local

Les paquets OSPFv3 sont envoyés depuis et vers les adresses link-local (FE80::). Cela signifie que OSPFv3 fonctionne même si aucune adresse globale IPv6 n'est configurée sur l'interface. Les routes installées dans la table ont comme next-hop une adresse link-local — pas une adresse globale.

Conséquence pratique : show ipv6 route montre les routes OSPF avec un next-hop FE80::x%Gi0/0. L'interface de sortie est obligatoire pour résoudre un next-hop link-local.

2. Router-ID obligatoirement 32-bit

Comme OSPFv2, OSPFv3 utilise un Router-ID 32-bit en notation IPv4. Si le routeur n'a aucune interface IPv4 active, IOS ne peut pas dériver le Router-ID automatiquement → OSPFv3 refuse de démarrer.

Toujours configurer : router-id A.B.C.D en environnement IPv6-only. C'est un piège classique d'exam.

3. Séparation topologie / préfixes

Dans OSPFv2, les Router-LSA (type 1) et Network-LSA (type 2) portent à la fois la topologie et les préfixes. Dans OSPFv3, ces LSA ne portent que la topologie. Les préfixes sont dans des LSA dédiés :

Avantage : la topologie peut changer sans re-flooder les préfixes, et vice-versa. SPF recalcul uniquement si la topologie change.

4. Authentification via IPsec

OSPFv2 avait une authentification intégrée (MD5, clear-text). OSPFv3 délègue entièrement à IPsec AH ou ESP. Configuration par area ou par interface.

! Auth par interface
interface GigabitEthernet0/0
 ospfv3 authentication ipsec spi 256 sha1 0 AABBCCDD...

! Auth par area (tous les routeurs de l'area)
router ospfv3 1
 area 0 authentication ipsec spi 256 sha1 0 AABBCCDD...

5. Instance ID

Un champ Instance ID (8 bits) dans les paquets hello permet de faire tourner plusieurs instances OSPFv3 indépendantes sur le même lien. Deux routeurs forment une adjacence uniquement si leur Instance ID correspond.

6. Address-Family mode (IOS)

Cisco IOS permet de configurer OSPFv3 avec des address-families pour router simultanément IPv4 et IPv6 dans un seul processus OSPFv3. C'est le mode recommandé sur IOS moderne.

Mode classique (legacy)

  • ipv6 router ospf 1
  • Commandes sur interface : ipv6 ospf 1 area 0
  • IPv6 uniquement
  • Pas d'AF — syntaxe simplifiée

Mode Address-Family (IOS moderne)

  • router ospfv3 1
  • AF : address-family ipv6 unicast
  • AF : address-family ipv4 unicast
  • Commandes sur interface : ospfv3 1 ipv6 area 0

7. ☠️ Le point que tout le monde oublie — Next-hop en OSPFv3 pour IPv4

OSPFv3 utilise IPv6 comme transport (paquets Hello, LSA, DBD, LSU envoyés via link-local FE80::) — mais les next-hops des routes IPv4 restent en IPv4. Ce sont deux couches distinctes.
FonctionProtocole utiliséExemple
Communication OSPFv3 (Hello, LSA) IPv6 link-local FE80::1 → FE80::2
Préfixes transportés (address-family IPv4) IPv4 10.0.0.0/8, 192.168.1.0/24
Next-hop dans la RIB (routes IPv4) IPv4 ! via 10.1.1.2 — pas FE80::
Next-hop dans la RIB (routes IPv6) IPv6 link-local via FE80::2%Gi0/0

Config complète — OSPFv3 transportant IPv4

! R1 — interface doit avoir IPv4 ET IPv6 activé
interface GigabitEthernet0/0
 ip address 10.1.1.1 255.255.255.0   ! IPv4 pour le routage
 ipv6 enable                         ! génère FE80::1 auto — OBLIGATOIRE
 ospfv3 1 ipv4 area 0               ! active l'AF IPv4
 ospfv3 1 ipv6 area 0               ! optionnel si dual-stack

router ospfv3 1
 router-id 1.1.1.1
 address-family ipv4 unicast
  no shutdown
 address-family ipv6 unicast
  no shutdown
Résultat dans show ip route sur R2 :
O    192.168.1.0/24 [110/10] via 10.1.1.1, GigabitEthernet0/0

➡️ Le neighbor OSPFv3 est connu via FE80::1 — mais le next-hop IPv4 installé dans la RIB est 10.1.1.1. Les deux coexistent sans confusion.
Piège : si tu oublies ipv6 enable sur l'interface → OSPFv3 ne démarre pas, même pour le routage IPv4. Message : Neighbor down: Interface not ready (No link-local)

LSA Types OSPFv3

OSPFv3 réutilise les LSA 1-7 d'OSPFv2 (avec modifications) et ajoute les types 8 et 9. Les LSA 1 et 2 ne portent plus les préfixes — ils décrivent uniquement la topologie.

Type Nom Scope Rôle dans OSPFv3 Différence vs v2
1 Router-LSA Area Décrit les liens du routeur (topologie uniquement). Plus de préfixes IPv4 dedans. Ne porte plus les préfixes — topologie seule
2 Network-LSA Area Généré par le DR sur les segments broadcast. Topologie du segment multi-accès. Ne porte plus les préfixes du réseau
3 Inter-Area-Prefix-LSA Area Préfixes d'autres areas (anciennement Summary-LSA). Généré par ABR. Renommé — même rôle
4 Inter-Area-Router-LSA Area Chemin vers un ASBR dans une autre area. Généré par ABR. Renommé — même rôle
5 AS-External-LSA AS Routes externes (E1/E2) redistribuées par un ASBR. Scope AS-wide. Identique — porte les préfixes externes IPv6
7 NSSA-External-LSA Area NSSA Routes externes dans une NSSA. Converti en type 5 par l'ABR. Identique — même rôle
8 Link-LSA Link Nouveau dans OSPFv3. Généré par chaque routeur pour chaque interface. Contient : adresse link-local de l'interface, options de l'interface, préfixes IPv6 link-local. Nouveau — n'existe pas dans v2
9 Intra-Area-Prefix-LSA Area Nouveau dans OSPFv3. Porte tous les préfixes IPv6 de l'area qui étaient dans les types 1 et 2 dans OSPFv2. Référence un LSA type 1 ou 2 parent. Nouveau — remplace les préfixes extraits de type 1/2

Visualisation de la séparation topologie/préfixes

OSPFv2 — LSA type 1
Router-LSA type 1
├── Topologie (liens)
├── Préfixe 10.0.0.0/24 ←
└── Préfixe 10.0.1.0/24 ←
Topologie ET préfixes dans le même LSA → SPF recalculé si un préfixe change
OSPFv3 — LSA séparés
Router-LSA type 1
└── Topologie seule ✅

Intra-Area-Prefix type 9
├── 2001:db8:1::/64 ←
└── 2001:db8:2::/64 ←
Topologie et préfixes séparés → SPF uniquement si topologie change

Link-LSA (type 8) — détail

Scope : link-local — le Link-LSA n'est jamais floodé au-delà du lien. Il permet au DR de construire le Network-LSA (type 2) avec les options des routeurs connectés, et de collecter les préfixes link-local pour le LSA type 9.

Contenu : adresse link-local FE80:: de l'interface, Router Priority, Options, liste de préfixes IPv6 du lien.

Topologie de référence

Deux areas : backbone Area 0 et Area 1. R2 est ABR. R4 est ASBR (redistribue une route statique IPv6).

Area 0 — Backbone Area 1 R1 2001:db8:1::1/64 R2 — ABR Area 0 + Area 1 R3 2001:db8:3::1/64 R4 — ASBR Area 1 + externe 2001:db8:12::/64 2001:db8:13::/64 2001:db8:24::/64 2001:db8:23::/64 2001:db8:ext::/48 redistribute static Internal router ABR ASBR Route externe (LSA type 5)

Adressage

InterfaceAdresse globaleNext-hop OSPFv3 (link-local)Area
R1 Gi0/02001:db8:1::1/64FE80::1 (loopback)0
R1↔R2 Gi0/12001:db8:12::1/64FE80::12:10
R1↔R3 Gi0/22001:db8:13::1/64FE80::13:10
R2 Gi0/1 (Area 1)2001:db8:24::2/64FE80::24:21
R4 (ASBR)2001:db8:24::4/64FE80::24:41

Mode classique (legacy) — IPv6 uniquement

Syntaxe ipv6 router ospf. Simple, supportée sur tous les IOS. Uniquement IPv6.

Configuration R1 (Area 0)

! Activer IPv6 globalement
ipv6 unicast-routing

! Processus OSPFv3 — router-id obligatoire si pas d'IPv4
ipv6 router ospf 1
 router-id 1.1.1.1

! Activation sur les interfaces (pas de network statement !)
interface GigabitEthernet0/0
 ipv6 address 2001:db8:1::1/64
 ipv6 ospf 1 area 0

interface GigabitEthernet0/1
 ipv6 address 2001:db8:12::1/64
 ipv6 ospf 1 area 0
Pas de network statement ! OSPFv3 s'active directement sur l'interface avec ipv6 ospf <pid> area <x>. Il n'y a pas de commande network dans le processus comme OSPFv2.

Mode Address-Family (recommandé IOS moderne)

Syntaxe router ospfv3 avec address-families. Permet de router IPv4 et IPv6 dans un seul processus OSPFv3.

Configuration R1 — AF mode

ipv6 unicast-routing

router ospfv3 1
 router-id 1.1.1.1
 ! Address-family IPv6
 address-family ipv6 unicast
  passive-interface Loopback0
 exit-address-family
 ! Address-family IPv4 (optionnel)
 address-family ipv4 unicast
 exit-address-family

interface GigabitEthernet0/0
 ipv6 address 2001:db8:1::1/64
 ospfv3 1 ipv6 area 0    ← activer AF IPv6 sur l'interface
 ospfv3 1 ipv4 area 0    ← activer AF IPv4 si nécessaire

Configuration R2 — ABR

router ospfv3 1
 router-id 2.2.2.2
 address-family ipv6 unicast
 exit-address-family

! Interface Area 0
interface GigabitEthernet0/0
 ipv6 address 2001:db8:12::2/64
 ospfv3 1 ipv6 area 0

! Interface Area 1
interface GigabitEthernet0/1
 ipv6 address 2001:db8:24::2/64
 ospfv3 1 ipv6 area 1

Configuration R4 — ASBR (redistribution)

router ospfv3 1
 router-id 4.4.4.4
 address-family ipv6 unicast
  ! Redistribuer les routes statiques IPv6
  redistribute static metric 20 metric-type 2
 exit-address-family

interface GigabitEthernet0/0
 ipv6 address 2001:db8:24::4/64
 ospfv3 1 ipv6 area 1

! Route statique redistributée
ipv6 route 2001:db8:ext::/48 Null0

Stub Area et NSSA en OSPFv3

! Stub area — bloque les LSA type 5 (routes externes)
router ospfv3 1
 address-family ipv6 unicast
  area 1 stub

! NSSA — permet redistribution locale + bloque type 5 externes
router ospfv3 1
 address-family ipv6 unicast
  area 1 nssa

Summarization ABR

! Sur R2 (ABR) — résumer les préfixes Area 1 vers Area 0
router ospfv3 1
 address-family ipv6 unicast
  area 1 range 2001:db8::/32

Commandes de vérification OSPFv3

Voisinage et adjacences
R1# show ospfv3 neighbor

          OSPFv3 1 address-family ipv6 (router-id 1.1.1.1)

Neighbor ID   Pri   State       Dead Time   Interface ID   Interface
2.2.2.2         1   FULL/DR      00:00:33        4            Gi0/1
3.3.3.3         1   FULL/BDR     00:00:37        4            Gi0/2

! Equivalent OSPFv2 : show ip ospf neighbor
Table de routage IPv6
R1# show ipv6 route ospf

OI  2001:db8:24::/64 [110/2]
     via FE80::24:2, GigabitEthernet0/1     ← next-hop link-local !
O   2001:db8:3::/64 [110/2]
     via FE80::13:3, GigabitEthernet0/2
OE2 2001:db8:ext::/48 [110/20]
     via FE80::24:2, GigabitEthernet0/1     ← route externe type 2
Base de données LSDB
R1# show ospfv3 database

          OSPFv3 1 address-family ipv6 (router-id 1.1.1.1)

                Router Link States (Area 0)
ADV Router       Age  Seq#       Fragment-ID  Link count  Bits
1.1.1.1           42  0x80000005      0            2       None
2.2.2.2           38  0x80000006      0            3       B       ← B = ABR

                Inter Area Prefix Link States (Area 0)
ADV Router       Age  Seq#       Prefix
2.2.2.2           35  0x80000003  2001:DB8:24::/64

                Type-5 AS External Link States
ADV Router       Age  Seq#       Prefix
4.4.4.4           28  0x80000001  2001:DB8:EXT::/48 E2

! Types spécifiques
R1# show ospfv3 database link       ← LSA type 8 (Link-LSA)
R1# show ospfv3 database prefix     ← LSA type 9 (Intra-area-prefix)
Détail interface
R1# show ospfv3 interface gi0/1

GigabitEthernet0/1 is up, line protocol is up
  Link Local Address FE80::1, Interface ID 4    ← link-local source
  Area 0, Process ID 1, Instance ID 0, Router ID 1.1.1.1
  Network Type BROADCAST, Cost: 1
  Transmit Delay is 1 sec, State DR, Priority 1
  Designated Router (ID) 1.1.1.1, local address FE80::1
  Hello due in 00:00:04
  Neighbor Count is 1, Adjacent neighbor count is 1
Informations du processus
R1# show ospfv3

Routing Process "ospfv3 1" with ID 1.1.1.1
 Start time: 00:05:22
 Supports address family IPv6 (Distance 110)
 Event-log enabled, Maximum number of events: 1000
 Router is not originating router-LSAs with maximum metric
 Initial SPF schedule delay 5000 msecs
 Number of external LSA 1
 Number of areas in this router is 1. 1 normal 0 stub 0 nssa

Pièges CCIE OSPFv3

1

Router-ID absent en environnement IPv6-only

OSPFv3 requiert un Router-ID 32-bit. Si le routeur n'a aucune interface IPv4 active, IOS ne peut pas en dériver un automatiquement → le processus OSPFv3 ne démarre pas, aucune adjacence.

! ❌ Manque du router-id en IPv6-only → processus bloqué
router ospfv3 1
 address-family ipv6 unicast

! ✅ Toujours configurer explicitement
router ospfv3 1
 router-id 1.1.1.1
 address-family ipv6 unicast
2

ipv6 unicast-routing oublié

ipv6 unicast-routing doit être activé globalement. Sans cette commande, le routeur ne route pas l'IPv6 même si OSPFv3 est configuré. Commande silencieuse — pas d'erreur visible.

! En global config — obligatoire
ipv6 unicast-routing
3

Next-hop link-local non résolvable

Les routes OSPFv3 ont un next-hop link-local (FE80::). Un next-hop link-local nécessite une interface de sortie pour être résolu. Si l'interface est down ou manquante dans la table, la route est invalide même si le next-hop est connu.

! Route valide : next-hop FE80:: avec interface de sortie
OI 2001:db8:1::/64 [110/2]
   via FE80::2, GigabitEthernet0/1   ← interface obligatoire

! Vérifier que l'interface est bien dans la route
R1# show ipv6 route 2001:db8:1::/64
4

Mode classique vs AF mode — syntaxes incompatibles

Les commandes ipv6 ospf (mode classique) et ospfv3 (AF mode) ne sont pas interchangeables. Mélanger les deux sur le même routeur peut créer des configurations partielles sans erreur évidente.

! ❌ Mélange — ne pas faire
router ospfv3 1           ← AF mode
 address-family ipv6 unicast

interface Gi0/0
 ipv6 ospf 1 area 0       ← mode classique → incompatible avec ospfv3

! ✅ AF mode cohérent
interface Gi0/0
 ospfv3 1 ipv6 area 0     ← commande AF mode
5

Summarization uniquement sur ABR et ASBR

Comme OSPFv2, la summarization area X range ne fonctionne que sur un ABR. Un routeur interne qui applique area range sans être ABR l'ignore silencieusement.

6

Instance ID — adjacence impossible si différent

Deux routeurs OSPFv3 sur le même lien avec des Instance ID différents ne forment pas d'adjacence. L'Instance ID par défaut est 0 (IPv6). Si un routeur a été configuré avec un Instance ID non standard, les hellos ne sont pas acceptés.

! Vérifier l'instance ID sur l'interface
R1# show ospfv3 interface gi0/0
  ...Instance ID 0    ← doit correspondre sur les deux côtés
7

Authentication IPsec — SPI et clé identiques des deux côtés

L'authentification OSPFv3 via IPsec nécessite un SPI (Security Parameter Index) et une clé identiques sur les deux routeurs. Un SPI différent → adjacence impossible, et le log affiche des erreurs IPsec, pas OSPFv3.

! Les deux routeurs doivent avoir exactement le même SPI et la même clé
interface Gi0/0
 ospfv3 authentication ipsec spi 256 sha1 0 AABBCCDD11223344AABBCCDD11223344AABBCCDD
! SPI 256 + même hash des deux côtés — sinon pas d'adjacence

Flash Cards — OSPFv3

Cliquez pour révéler la réponse.

Différence clé
Source des paquets OSPFv3 ?
Adresse link-local FE80::
Tous les paquets OSPFv3 sont envoyés depuis la link-local de l'interface, pas l'adresse globale. Le NH dans la table de routage est aussi FE80::.
LSA
LSA type 8 — nom et rôle ?
Link-LSA
Scope link-local. Contient l'adresse link-local de l'interface, les options et les préfixes du lien. Jamais floodé au-delà du segment.
LSA
LSA type 9 — nom et rôle ?
Intra-Area-Prefix-LSA
Porte les préfixes IPv6 de l'area. Remplace les préfixes qui étaient dans les type 1/2 en OSPFv2. Scope area.
Auth
Comment authentifier OSPFv3 ?
IPsec AH ou ESP
Pas d'auth intégrée comme v2 (MD5/clear). OSPFv3 délègue à IPsec. Config par interface ou par area avec SPI + algorithme + clé.
Router-ID
Router-ID obligatoire quand ?
Toujours en IPv6-only
Si aucune interface IPv4 n'est active, IOS ne peut pas dériver le Router-ID. router-id A.B.C.D obligatoire sinon OSPFv3 ne démarre pas.
Commande
Activer OSPFv3 sur interface (AF mode)
ospfv3 <pid> ipv6 area <x>
En mode interface. Pour IPv4 : ospfv3 <pid> ipv4 area <x>. Mode classique (legacy) : ipv6 ospf <pid> area <x>.
Multicast
Adresses multicast OSPFv3 ?
FF02::5 — AllSPF
FF02::6 — AllDR
Équivalents IPv6 de 224.0.0.5 et 224.0.0.6. Même usage : FF02::5 pour tous les routeurs OSPF, FF02::6 pour les DR/BDR uniquement.
Vérification
Voir les voisins OSPFv3
show ospfv3 neighbor
Affiche l'état des adjacences, le DR/BDR élu, et le Dead Time restant. Équivalent de show ip ospf neighbor en v2.
Instance ID
Instance ID par défaut OSPFv3 IPv6 ?
0
Instance ID 0 = OSPFv3 pour IPv6 (défaut). Instance ID 64 = OSPFv3 AF IPv4. Deux routeurs avec Instance ID différents ne s'adjecent pas.
Unchanged
Ce qui NE change PAS entre v2 et v3 ?
SPF, Areas, DR/BDR, Hello/Dead, Cost, Virtual links
L'algorithme SPF, les types d'areas (stub/NSSA), l'élection DR/BDR, les timers hello/dead, le calcul du coût et les virtual links sont identiques.
LSDB
Voir les LSA type 9 (préfixes) ?
show ospfv3 database prefix
Affiche les Intra-Area-Prefix-LSA (type 9). Pour les Link-LSA (type 8) : show ospfv3 database link.
global
Commande globale obligatoire pour IPv6 routing ?
ipv6 unicast-routing
Sans cette commande, le routeur ne route pas IPv6 même si OSPFv3 est configuré. Erreur silencieuse — aucun message d'avertissement.