Le protocole OSPF

Article de blog | Finger In The Net

Le protocole OSPF

Le protocole OSPF

Le protocole OSPF (Open Shortest Path First) est un protocole de routage à état de lien normalisé par l’IETF, destiné aux réseaux IP. C’est un protocole de routage intérieur (IGP) particulièrement adapté aux grandes entreprises et infrastructures complexes. Il se distingue par sa rapidité de convergence et sa capacité à donner une vue globale de la topologie réseau à chaque routeur.

Informations techniques fondamentales

  • Norme et RFC:
    – OSPFv2 (pour IPv4) : RFC 2328
    – OSPFv3 (pour IPv6 et multi-protocoles) : RFC 5340
  • Adresses multicast:
    – Multicast IP 224.0.0.5 (AllSPFRouters) pour tous les routeurs OSPF
    – Multicast IP 224.0.0.6 (AllDRouters) pour les routeurs désignés (DR/BDR)
    – Protocole de niveau 3 (numéro de protocole IP 89)
  • Versions:
    – OSPFv2 : pour IPv4
    – OSPFv3 : pour IPv6 (supporte également IPv4 depuis RFC 5838)
  • Distance administrative : 110 (par défaut sur Cisco)
  • Métrique : Coût basé sur la bande passante (100 Mbps / bande passante de l’interface)
  • Algorithme : SPF (Shortest Path First) ou algorithme de Dijkstra

Concepts spécifiques au protocole OSPF

  • LSA (Link State Advertisement) : Messages contenant les informations d’état des liens, échangés entre routeurs pour construire la topologie réseau.
  • LSDB (Link State Database) : Base de données d’état des liens, identique pour tous les routeurs d’une même zone OSPF.
  • DR/BDR (Designated Router / Backup Designated Router) : Routeurs élus sur les réseaux multi-accès pour optimiser les échanges LSA et réduire le trafic de mise à jour.
  • Zones OSPF (Areas) : Segmentation hiérarchique du domaine OSPF pour améliorer la scalabilité et réduire la taille de la LSDB.
  • Router ID (RID) : Identifiant unique de 32 bits attribué à chaque routeur OSPF, déterminé automatiquement ou configuré manuellement.
  • ABR (Area Border Router) : Routeur connecté à plusieurs zones OSPF, responsable de la communication inter-zones.
  • ASBR (Autonomous System Boundary Router) : Routeur qui redistribue des routes externes dans le domaine OSPF.

États des voisins OSPF

Le protocole OSPF utilise plusieurs états pour gérer les relations de voisinage :

  • Down : État initial, aucun paquet Hello reçu
  • Init : Paquet Hello reçu du voisin
  • 2-Way : Communication bidirectionnelle établie
  • ExStart : Négociation du numéro de séquence pour l’échange de base de données
  • Exchange : Échange des LSA headers (Database Description packets)
  • Loading : Demande et réception des LSA complets
  • Full : Synchronisation complète des LSDB

Types de LSA dans le protocole OSPF

  • Type 1 (Router LSA) : Décrit les liens directement connectés au routeur
  • Type 2 (Network LSA) : Généré par le DR pour décrire le réseau multi-accès
  • Type 3 (Summary LSA) : Généré par l’ABR pour annoncer les réseaux d’autres zones
  • Type 4 (ASBR Summary LSA) : Généré par l’ABR pour localiser l’ASBR
  • Type 5 (AS External LSA) : Routes externes redistribuées par l’ASBR
  • Type 7 (NSSA External LSA) : Routes externes dans les zones NSSA

Configuration de base du protocole OSPF sur routeurs Cisco

Configuration OSPFv2 (IPv4)

R1# configure terminal
R1(config)# router ospf 1
R1(config-router)# router-id 1.1.1.1
R1(config-router)# network 192.168.1.0 0.0.0.255 area 0
R1(config-router)# network 10.0.0.0 0.255.255.255 area 1
R1(config-router)# exit

La commande router ospf [process-id] démarre le processus OSPF avec un numéro d’identification local au routeur. Ce numéro n’a de signification que sur le routeur local et peut être différent entre voisins.

La commande router-id définit manuellement l’identifiant du routeur. Sans cette commande, le router ID est automatiquement choisi selon cet ordre de priorité : plus haute adresse IP d’une interface loopback active, puis plus haute adresse IP d’une interface physique active.

La commande network spécifie quelles interfaces participent au processus OSPF en utilisant un masque générique (wildcard mask) qui est l’inverse du masque de sous-réseau.

Configuration alternative par interface

R1# configure terminal
R1(config)# router ospf 1
R1(config-router)# router-id 1.1.1.1
R1(config-router)# exit
R1(config)# interface gigabitethernet 0/0
R1(config-if)# ip ospf 1 area 0
R1(config-if)# exit

Cette méthode moderne permet d’activer le protocole OSPF directement sur l’interface sans utiliser la commande network globale.

Configuration OSPFv3 (IPv6)

R1# configure terminal
R1(config)# ipv6 unicast-routing
R1(config)# ipv6 router ospf 1
R1(config-rtr)# router-id 1.1.1.1
R1(config-rtr)# exit
R1(config)# interface gigabitethernet 0/0
R1(config-if)# ipv6 ospf 1 area 0
R1(config-if)# exit

Pour OSPFv3, la commande ipv6 unicast-routing doit d’abord être activée. Le protocole OSPFv3 ne s’active que par interface, il n’y a pas de commande network globale.

Commandes de configuration avancées

Interfaces passives

R1# configure terminal
R1(config)# router ospf 1
R1(config-router)# passive-interface gigabitethernet 0/1
R1(config-router)# passive-interface default
R1(config-router)# no passive-interface gigabitethernet 0/0

La commande passive-interface empêche l’envoi de paquets Hello OSPF sur l’interface spécifiée tout en continuant d’annoncer le réseau dans les LSA. Cette configuration est essentielle pour les interfaces connectées aux utilisateurs finaux.

Redistribution de la route par défaut

R1# configure terminal
R1(config)# router ospf 1
R1(config-router)# default-information originate
R1(config-router)# default-information originate always
R1(config-router)# default-information originate metric 10

La commande default-information originate injecte une route par défaut (0.0.0.0/0) dans le domaine OSPF. L’option always force la génération même si aucune route par défaut n’existe dans la table de routage.

Ajustement du coût des liens

R1# configure terminal
R1(config)# router ospf 1
R1(config-router)# auto-cost reference-bandwidth 10000
R1(config-router)# exit
R1(config)# interface gigabitethernet 0/0
R1(config-if)# ip ospf cost 50
R1(config-if)# bandwidth 100000

La commande auto-cost reference-bandwidth modifie la bande passante de référence (en Mbps) pour le calcul automatique du coût. La commande ip ospf cost définit manuellement le coût sur une interface.

Authentification du protocole OSPF

R1# configure terminal
R1(config)# interface gigabitethernet 0/0
R1(config-if)# ip ospf message-digest-key 1 md5 monmotdepasse
R1(config-if)# ip ospf authentication message-digest
R1(config-if)# exit
R1(config)# router ospf 1
R1(config-router)# area 0 authentication message-digest

L’authentification MD5 sécurise les échanges OSPF. La clé doit être identique sur tous les routeurs d’un même segment réseau.

Configuration des zones spéciales

R1# configure terminal
R1(config)# router ospf 1
R1(config-router)# area 1 stub
R1(config-router)# area 2 stub no-summary
R1(config-router)# area 3 nssa
R1(config-router)# area 4 nssa no-summary

Les zones stub ne reçoivent pas de LSA de type 5 (routes externes). Les zones totally stub (no-summary) ne reçoivent ni LSA type 3, ni type 5. Les zones NSSA permettent l’injection de routes externes via des LSA type 7.

Commandes de vérification et dépannage

Vérification de la configuration

R1# show running-config | section ospf
R1# show ip protocols
R1# show ipv6 protocols

Ces commandes affichent la configuration active du protocole OSPF et donnent un résumé des paramètres configurés.

État du processus OSPF

R1# show ip ospf
R1# show ip ospf 1
R1# show ipv6 ospf

La commande show ip ospf fournit des informations détaillées sur le processus OSPF : Router ID, zones configurées, nombre de LSA, timers, etc.

État des interfaces OSPF

R1# show ip ospf interface
R1# show ip ospf interface brief
R1# show ip ospf interface gigabitethernet 0/0

Ces commandes montrent quelles interfaces participent au protocole OSPF, leur type de réseau, les timers Hello et Dead, l’état DR/BDR, et le coût des liens.

Voisinage OSPF

R1# show ip ospf neighbor
R1# show ip ospf neighbor detail
R1# show ipv6 ospf neighbor

La commande show ip ospf neighbor liste tous les voisins OSPF, leur état (2-Way, Full), leur rôle (DR, BDR, DROTHER), et l’interface de connexion.

Base de données OSPF

R1# show ip ospf database
R1# show ip ospf database router
R1# show ip ospf database network
R1# show ip ospf database summary
R1# show ip ospf database external

Ces commandes affichent le contenu de la LSDB avec les différents types de LSA présents dans chaque zone.

Table de routage

R1# show ip route ospf
R1# show ip route 192.168.1.0
R1# show ipv6 route ospf

La commande show ip route ospf filtre uniquement les routes apprises via le protocole OSPF dans la table de routage.

Diagnostics avancés

R1# debug ip ospf hello
R1# debug ip ospf adj
R1# debug ip ospf lsa-generation
R1# debug ip ospf spf
R1# undebug all

Les commandes debug permettent de diagnostiquer les problèmes de formation d’adjacence, d’échange de LSA, ou de calcul SPF. Attention : les debugs consomment des ressources CPU et doivent être utilisés avec précaution en production.

Commandes de maintenance

R1# clear ip ospf process
R1# clear ip ospf redistribution
R1# clear ip route *

La commande clear ip ospf process force le redémarrage du processus OSPF sans redémarrer le routeur, utile après des changements de configuration majeurs.

Configuration du protocole OSPF sur switchs Cisco multicouches

SW1# configure terminal
SW1(config)# ip routing
SW1(config)# router ospf 1
SW1(config-router)# router-id 10.1.1.1
SW1(config-router)# network 192.168.10.0 0.0.0.255 area 0
SW1(config-router)# exit
SW1(config)# interface vlan 10
SW1(config-if)# ip ospf 1 area 0

Sur les switchs multicouches, la commande ip routing doit être activée pour permettre le routage inter-VLAN avec le protocole OSPF.

Optimisations pour la certification Cisco

Priorité pour l’élection DR/BDR

R1# configure terminal
R1(config)# interface gigabitethernet 0/0
R1(config-if)# ip ospf priority 255
R1(config-if)# ip ospf priority 0

La commande ip ospf priority détermine la priorité pour l’élection DR/BDR. Une priorité de 0 exclut le routeur de l’élection.

Timers OSPF

R1# configure terminal
R1(config)# interface gigabitethernet 0/0
R1(config-if)# ip ospf hello-interval 5
R1(config-if)# ip ospf dead-interval 20

Les timers Hello et Dead doivent être identiques entre voisins. Le timer Dead est généralement 4 fois le timer Hello.

Résumé de routes

R1# configure terminal
R1(config)# router ospf 1
R1(config-router)# area 1 range 192.168.0.0 255.255.252.0
R1(config-router)# summary-address 10.0.0.0 255.0.0.0

La commande area range résume les routes internes au niveau de l’ABR. La commande summary-address résume les routes externes au niveau de l’ASBR.

Points essentiels pour la certification Cisco

  • Architecture et zones : Maîtriser la hiérarchie OSPF avec la zone backbone (Area 0) obligatoire et les zones régulières. Comprendre les rôles ABR et ASBR.
  • États des voisins : Connaître la séquence d’établissement d’adjacence depuis l’état Down jusqu’à Full, particulièrement important pour le dépannage.
  • Types de LSA : Identifier les LSA types 1-5 et leur rôle dans la construction de la topologie OSPF et la table de routage.
  • Élection DR/BDR : Comprendre les critères d’élection (priorité puis Router ID) et l’impact sur les réseaux broadcast et non-broadcast.
  • Calcul de métrique : Maîtriser le calcul du coût OSPF basé sur la bande passante et savoir l’ajuster selon les besoins.
  • Zones spéciales : Différencier les zones stub, totally stub, et NSSA avec leurs restrictions de LSA respectives.
  • Dépannage : Utiliser efficacement les commandes show et debug pour diagnostiquer les problèmes courants (adjacence, authentification, MTU).

Pour une préparation complète à la certification CCNA 200-301, consultez notre formation vidéo spécialisée qui couvre tous les aspects du protocole OSPF avec des laboratoires pratiques sur équipements Cisco.

Le protocole OSPF constitue un pilier fondamental des réseaux d’entreprise modernes. Sa maîtrise approfondie, tant théorique que pratique sur les équipements Cisco, est indispensable pour réussir les certifications CCNA et CCNP. L’accent doit être mis sur la compréhension des mécanismes internes, la configuration méthodique, et le développement de compétences solides en dépannage.

Noël NICOLAS

Auteur de l'article

Expert Réseau
15 ans d’expérience
CCNP Routing and Switching
Fondateur du site FingerInTheNet

Eric JOUFFRILLON

Co-auteur de l'article

Expert SATCOM
Technicien Réseau
17 ans d’éxpérience déploiement réseau SATCOM
Spécialisé LFN (Long Fat Network).Diffusion vidéo et QOS.

CURSUS DE FORMATION

Administrateur Réseau