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.
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 | |
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.
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.
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.
router-id A.B.C.D en environnement IPv6-only. C'est un piège classique d'exam.
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 :
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...
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.
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.
ipv6 router ospf 1ipv6 ospf 1 area 0router ospfv3 1address-family ipv6 unicastaddress-family ipv4 unicastospfv3 1 ipv6 area 0| Fonction | Protocole 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 |
! 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
O 192.168.1.0/24 [110/10] via 10.1.1.1, GigabitEthernet0/0FE80::1 — mais le next-hop IPv4 installé dans la RIB est 10.1.1.1. Les deux coexistent sans confusion.
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)
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 |
Deux areas : backbone Area 0 et Area 1. R2 est ABR. R4 est ASBR (redistribue une route statique IPv6).
| Interface | Adresse globale | Next-hop OSPFv3 (link-local) | Area |
|---|---|---|---|
| R1 Gi0/0 | 2001:db8:1::1/64 | FE80::1 (loopback) | 0 |
| R1↔R2 Gi0/1 | 2001:db8:12::1/64 | FE80::12:1 | 0 |
| R1↔R3 Gi0/2 | 2001:db8:13::1/64 | FE80::13:1 | 0 |
| R2 Gi0/1 (Area 1) | 2001:db8:24::2/64 | FE80::24:2 | 1 |
| R4 (ASBR) | 2001:db8:24::4/64 | FE80::24:4 | 1 |
Syntaxe ipv6 router ospf. Simple, supportée sur tous les IOS. Uniquement IPv6.
! 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
ipv6 ospf <pid> area <x>. Il n'y a pas de commande network dans le processus comme OSPFv2.
Syntaxe router ospfv3 avec address-families. Permet de router IPv4 et IPv6 dans un seul processus OSPFv3.
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
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
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 — 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
! 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
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
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
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)
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
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
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
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-routingLes 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
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
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.
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
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
Cliquez pour révéler la réponse.
router-id A.B.C.D obligatoire sinon OSPFv3 ne démarre pas.ospfv3 <pid> ipv4 area <x>. Mode classique (legacy) : ipv6 ospf <pid> area <x>.show ip ospf neighbor en v2.show ospfv3 database link.