OSPF : principes, voisinage et configuration de base
OSPF est le protocole de routage interne le plus répandu en entreprise. État des liens, voisinage, routeur désigné, zones, coût : principes et configuration Cisco pas à pas, avec dépannage des adjacences.
OSPF (Open Shortest Path First) est un protocole de routage dynamique à état de liens, normalisé par l'IETF (OSPFv2 pour IPv4, RFC 2328 ; OSPFv3 pour IPv6, RFC 5340). Il est disponible chez tous les constructeurs, converge rapidement et s'adapte à des réseaux de grande taille grâce à son découpage en zones.
Objectif : comprendre le fonctionnement d'OSPF, établir des adjacences, configurer une zone unique puis plusieurs zones sur Cisco, et diagnostiquer les problèmes de voisinage.
Plateforme : routeurs Cisco sous IOS XE 17.x / IOS 15.x, OSPFv2. Topologie de laboratoire.
Le principe de l'état de liens
Chaque routeur OSPF :
- découvre ses voisins grâce aux paquets Hello ;
- décrit ses liens (interfaces, réseaux, coûts) dans des annonces appelées LSA (Link State Advertisements) ;
- diffuse ces LSA à tous les routeurs de la zone ;
- construit une base de données d'état des liens (LSDB) identique sur tous les routeurs de la zone ;
- exécute l'algorithme SPF (Dijkstra) pour calculer l'arbre des plus courts chemins dont il est la racine ;
- installe les meilleures routes dans sa table de routage.
Chaque routeur dispose donc d'une carte complète de la zone, ce qui permet une convergence rapide et l'absence de boucles en régime établi.
Le coût
La métrique OSPF est le coût, cumulé le long du chemin. Sur Cisco, il est calculé par défaut ainsi :
coût = bande passante de référence / bande passante de l'interface
bande passante de référence par défaut = 100 Mbit/s
Problème : toute interface de 100 Mbit/s ou plus a un coût de 1. Un lien Gigabit et un lien 10 Gigabit sont alors considérés comme équivalents. Ajustez la bande passante de référence de manière identique sur tous les routeurs :
router ospf 1
auto-cost reference-bandwidth 100000 ! en Mbit/s : 100 Gbit/s
On peut aussi fixer le coût d'une interface (ip ospf cost 50) pour influencer le choix des chemins.
Le voisinage et les adjacences
Deux routeurs deviennent voisins s'ils échangent des Hello et si plusieurs paramètres concordent :
- même sous-réseau et même masque sur le lien ;
- même numéro de zone ;
- mêmes temporisateurs Hello et Dead (10 s et 40 s par défaut sur Ethernet) ;
- même authentification (type et clé) ;
- même type de zone (stub ou non) ;
- MTU identique (sinon l'échange de base de données reste bloqué) ;
- identifiants de routeur (router-id) différents.
Les états du voisinage
| État | Signification |
|---|---|
| Down | Aucun Hello reçu |
| Init | Hello reçu, mais notre router-id n'y figure pas encore |
| 2-Way | Communication bidirectionnelle établie ; élection DR/BDR sur les réseaux multi-accès |
| ExStart | Négociation maître/esclave pour l'échange de la base |
| Exchange | Échange des descriptions de la base (DBD) |
| Loading | Demande et réception des LSA manquantes |
| Full | Bases synchronisées : adjacence complète |
Sur un réseau Ethernet comportant plusieurs routeurs, les routeurs qui ne sont ni DR ni BDR restent normalement en 2-Way entre eux : ce n'est pas une panne.
DR et BDR
Sur un segment multi-accès (Ethernet), chaque routeur établirait sinon une adjacence avec tous les autres. OSPF élit un routeur désigné (DR) et un routeur désigné de secours (BDR) : les autres routeurs ne forment d'adjacence complète qu'avec eux. L'élection se fait sur la priorité d'interface (1 par défaut, 0 = jamais DR), puis sur le router-id le plus élevé. Elle n'est pas préemptive : un routeur de priorité supérieure qui arrive après l'élection ne prend pas la place.
Sur un lien entre deux routeurs seulement, déclarez le type de réseau point à point : pas d'élection, convergence plus rapide.
interface GigabitEthernet0/0
ip ospf network point-to-point
Configuration en zone unique
Topologie : R1 et R2 reliés par 10.0.12.0/30 ; R1 sert LAN-A (10.1.0.0/24), R2 sert LAN-B (10.2.0.0/24).
R1(config)# router ospf 1
R1(config-router)# router-id 1.1.1.1
R1(config-router)# auto-cost reference-bandwidth 100000
R1(config-router)# passive-interface default
R1(config-router)# no passive-interface GigabitEthernet0/0
R1(config-router)# exit
R1(config)# interface GigabitEthernet0/0
R1(config-if)# ip ospf 1 area 0
R1(config-if)# ip ospf network point-to-point
R1(config-if)# exit
R1(config)# interface GigabitEthernet0/1
R1(config-if)# ip ospf 1 area 0
R2(config)# router ospf 1
R2(config-router)# router-id 2.2.2.2
R2(config-router)# auto-cost reference-bandwidth 100000
R2(config-router)# passive-interface default
R2(config-router)# no passive-interface GigabitEthernet0/0
R2(config-router)# exit
R2(config)# interface GigabitEthernet0/0
R2(config-if)# ip ospf 1 area 0
R2(config-if)# ip ospf network point-to-point
R2(config-if)# exit
R2(config)# interface GigabitEthernet0/1
R2(config-if)# ip ospf 1 area 0
Explications :
- le numéro de processus (
1) est local au routeur et n'a pas besoin de correspondre entre voisins ; - le router-id fixé manuellement évite qu'il change selon les adresses des interfaces ;
passive-interface defaultempêche l'envoi de Hello sur toutes les interfaces, puis on active uniquement celles qui doivent avoir des voisins. Les réseaux des interfaces passives (les LAN) sont annoncés mais aucune adjacence ne s'y forme : c'est une bonne pratique de sécurité ;- la commande
ip ospf 1 area 0sur l'interface est une alternative moderne à la commandenetworken mode routeur, plus lisible.
La forme classique avec network reste très répandue :
router ospf 1
network 10.0.12.0 0.0.0.3 area 0
network 10.1.0.0 0.0.0.255 area 0
Elle utilise un masque générique (wildcard) et active OSPF sur toute interface dont l'adresse correspond.
Annoncer une route par défaut
R2(config)# router ospf 1
R2(config-router)# default-information originate
R2 annonce sa route par défaut (s'il en possède une) à tout le domaine OSPF. Le mot-clé always l'annonce même sans route par défaut locale : à utiliser avec prudence.
Plusieurs zones
Dans un grand réseau, une zone unique devient lourde : chaque changement provoque un recalcul SPF sur tous les routeurs. OSPF permet de découper le domaine en zones :
- la zone 0 (backbone) est obligatoire ; toutes les autres zones s'y raccordent ;
- les ABR (Area Border Routers) relient une zone à la zone 0 et y résument les routes ;
- les ASBR injectent des routes externes (statiques, autre protocole).
! R2 en ABR entre la zone 0 et la zone 10
R2(config)# interface GigabitEthernet0/0
R2(config-if)# ip ospf 1 area 0
R2(config-if)# interface GigabitEthernet0/2
R2(config-if)# ip ospf 1 area 10
R2(config-if)# exit
R2(config)# router ospf 1
R2(config-router)# area 10 range 10.10.0.0 255.255.0.0 ! résumé de la zone 10 vers la zone 0
Le résumé à l'ABR réduit la taille des tables et isole les autres zones des changements internes à la zone 10. Des types de zones particuliers (stub, totally stubby, NSSA) limitent encore les LSA reçues.
Sécuriser OSPF
- Interfaces passives sur tous les segments sans routeur voisin.
- Authentification des voisins. Les versions récentes d'IOS prennent en charge l'authentification HMAC-SHA via des trousseaux de clés (RFC 5709), préférable au MD5 :
key chain OSPF-KEYS
key 1
key-string <cle-secrete>
cryptographic-algorithm hmac-sha-256
interface GigabitEthernet0/0
ip ospf authentication key-chain OSPF-KEYS
La disponibilité de cette syntaxe dépend de la version : vérifiez la documentation de votre plateforme.
Vérifier et dépanner
show ip ospf neighbor
show ip ospf interface brief
show ip ospf interface GigabitEthernet0/0
show ip route ospf
show ip ospf database
show ip protocols
debug ip ospf adj ! en laboratoire, avec prudence
| Symptôme | Cause probable |
|---|---|
| Aucun voisin | Interface passive, ACL bloquant OSPF (protocole IP 89), sous-réseaux différents, zone différente |
| Voisin bloqué en Init | Communication unidirectionnelle (filtrage, problème de niveau 2) |
| Voisin bloqué en ExStart/Exchange | MTU différente aux deux extrémités |
| Voisin qui apparaît et disparaît | Temporisateurs différents, lien instable, authentification incohérente |
| Routes absentes malgré l'état Full | Réseau non annoncé, filtre, problème de zone ou de résumé |
| Chemin inattendu | Coûts non ajustés (bande passante de référence) |
Erreurs courantes
- Bande passante de référence non ajustée, ou ajustée sur une partie des routeurs seulement.
- Router-id dupliqué.
- Oublier les interfaces passives, exposant OSPF sur les réseaux utilisateurs.
- Zones non raccordées à la zone 0.
- Confondre l'état 2-Way normal entre DROther et une panne.
Conclusion
OSPF construit une carte complète de la zone, calcule les plus courts chemins et reconverge automatiquement. Fixez le router-id, ajustez la bande passante de référence, utilisez les interfaces passives et le type point à point, authentifiez les voisins : vous obtiendrez un routage interne robuste. Pour le routage entre organisations, voir BGP : principes fondamentaux et cas d'utilisation.


