7. Bringing Up Adjacencies (Établissement des adjacences)
Ce chapitre décrit en détail comment les routeurs OSPF établissent et maintiennent les relations d'adjacence. L'adjacence est au cœur du protocole OSPF et détermine quels routeurs synchroniseront leur base de données d'état de lien.
Aperçu du chapitre (Chapter Overview)
L'établissement d'adjacence est un processus en plusieurs étapes impliquant :
- Découverte de voisins
- Confirmation de communication bidirectionnelle
- Négociation de la relation maître/esclave
- Synchronisation de base de données
- Atteinte de l'état d'adjacence complète
7.1 Relation de voisinage vs Adjacence (Neighbor vs Adjacency)
Distinction conceptuelle
| Concept | Définition | État |
|---|---|---|
| Voisin (Neighbor) | Routeur directement connecté découvert via Hello | 2-Way ou plus |
| Adjacence (Adjacency) | Voisin synchronisant LSDB | État Full |
7.2 Machine à états de voisin (Neighbor State Machine)
Diagramme de transition d'état
Down → Init → 2-Way → ExStart → Exchange → Loading → Full
↓
(pas d'adjacence)
Détails des états
1. Down (Inactif)
- État initial
- Aucun paquet Hello reçu
- Voisin inaccessible
2. Init (Initialisation)
- Paquet Hello reçu du voisin
- Hello ne liste pas ce routeur
- Communication unidirectionnelle
3. 2-Way (Communication bidirectionnelle)
- Hello reçu contient l'ID de ce routeur
- Communication bidirectionnelle établie
- Point de décision : établir ou non l'adjacence
4. ExStart (Début d'échange)
- Négociation de la relation maître/esclave
- Le plus grand Router ID devient Master
- Détermine le numéro de séquence DD initial
5. Exchange (Description de base de données)
- Échange de paquets Database Description (DD)
- Décrit le contenu de la LSDB locale
- Seulement les en-têtes LSA, pas les LSA complets
6. Loading (Chargement)
- Demande des LSA manquants ou expirés
- Envoie Link State Request (LSR)
- Reçoit Link State Update (LSU)
7. Full (Adjacence complète)
- Base de données complètement synchronisée
- État opérationnel normal
- Calcul de route possible
7.3 Décision de formation d'adjacence (Adjacency Formation Decision)
Matrice de décision
| Type de réseau | Avec qui établir adjacence | Raison |
|---|---|---|
| Point-à-point | Tous les voisins | Un seul voisin |
| Point-à-multipoint | Tous les voisins | Traité comme plusieurs point-à-point |
| Broadcast | DR et BDR | Réduire le nombre d'adjacences |
| NBMA | DR et BDR | Réduire le nombre d'adjacences |
7.4 Élection DR et BDR (DR/BDR Election)
Algorithme d'élection
Moment de l'élection
- L'état de l'interface passe de Waiting à DR ou DROther
- Le paquet Hello déclenche un recalcul
Règles d'élection
-
Comparaison de priorité
- Router Priority = 0 : ne participe pas à l'élection
- Plus la priorité est élevée, plus prioritaire
-
Comparaison de Router ID
- En cas de priorité identique, le Router ID le plus grand l'emporte
-
Élection en deux phases
- Phase 1 : Élire le BDR
- Phase 2 : Élire le DR
7.5 Paquets Database Description (Database Description Packets)
Format de paquet DD
Champs d'en-tête
| Champ | Taille | Description |
|---|---|---|
| Interface MTU | 16 bits | Taille MTU de l'interface |
| Options | 8 bits | Capacités optionnelles |
| Flags | 8 bits | Drapeaux I/M/MS |
| DD Sequence Number | 32 bits | Numéro de séquence |
Description des bits de drapeau
- I (Init) : Premier paquet DD
- M (More) : Plus de paquets DD à suivre
- MS (Master/Slave) : 1=Master, 0=Slave
7.6 Paquets Link State Request (LSR Packets)
Moment de génération LSR
Conditions de déclenchement
- État Exchange : le voisin a des LSA plus récents
- État Loading : continuer à demander les LSA manquants
- État Full : demander occasionnellement les LSA manquants
7.7 Paquets Link State Update (LSU Packets)
Objectif des LSU
Scénarios d'utilisation
- Réponse à LSR (unicast)
- Inondation de nouveaux LSA (multicast/broadcast)
- Rafraîchissement périodique de LSA
7.8 Paquets Link State Acknowledgment (LSAck Packets)
Moment de confirmation
Confirmation différée
- Confirmation en lot après réception de plusieurs LSA
- Délai généralement < 1 seconde
- Réduit le nombre de paquets
Confirmation immédiate
- Réception de LSA en double
- Réception d'une instance LSA plus ancienne
7.9 Maintenance d'adjacence (Adjacency Maintenance)
Rôle du protocole Hello
Surveillance continue
- Envoie périodiquement des paquets Hello
- Surveille les Hello des voisins
- Le voisin expire si aucun Hello dans Dead Interval
Intervalle Hello
- Point-à-point/Broadcast : 10 secondes
- NBMA : 30 secondes
Intervalle Dead
- Par défaut : Hello Interval × 4
- Point-à-point/Broadcast : 40 secondes
- NBMA : 120 secondes
7.10 Exemples de formation d'adjacence (Adjacency Formation Examples)
Exemple 1 : Lien point-à-point
Routeur A ←────────→ Routeur B
Étape 1 : Les deux envoient Hello
A → B : Hello (liste de voisins vide)
B → A : Hello (liste de voisins vide)
Étape 2 : Confirmer communication bidirectionnelle
A → B : Hello (liste de voisins contient B)
B → A : Hello (liste de voisins contient A)
État : 2-Way
Étape 3 : Négocier maître/esclave
A → B : DD (I, M, MS=1, Seq=X)
B → A : DD (I, M, MS=0, Seq=X)
A devient Master
Étape 4 : Échanger descriptions de base de données
A → B : DD (M, MS=1, Seq=X+1) [Liste d'en-têtes LSA]
B → A : DD (M, MS=0, Seq=X+1) [Liste d'en-têtes LSA]
...continuer jusqu'à ce que l'échange soit terminé
Étape 5 : Demander les LSA manquants
A → B : LSR [demande LSA 1, 2, 3]
B → A : LSU [LSA 1, 2, 3]
A → B : LSAck [confirme 1, 2, 3]
Étape 6 : Atteindre l'état Full
État : Full
Calcul de route possible
Résumé technique (Technical Summary)
Mécanismes clés
-
Piloté par machine à états
- Transitions d'état claires
- 7 états de voisin
- Comportement piloté par événements
-
Synchronisation fiable
- Mécanisme de numéro de séquence
- Confirmation et retransmission
- Coordination maître/esclave
-
Conception optimisée
- DR/BDR réduisent les adjacences
- Confirmation en lot réduit le trafic
- Synchronisation de base de données par étapes
Références (References)
- Texte complet : RFC 2328 Section 7
Note : L'établissement d'adjacence est la base du protocole OSPF. Comprendre les transitions d'état et l'ordre d'échange de paquets est crucial pour le dépannage.