En Une :

OSPF (4) Etats de voisinage OSPF

Cet article fait suite à Messages OSPF. Les interfaces OSPF voisines peuvent rencontrer sept états et correspondent à deux moments : d'une part, la découverte des voisins (DOWN, INIT, TWO-WAY) et, d'autre part, la découverte des routes (EXSTART, EXCHANGE, LOADING, FULL).

6. Etats de voisinage OSPF

6.1. Sept états OSPF

Ces cinq types de messages font en sorte que OSPF soit capable de communications complexes et sophistiquées.

Les interfaces OSPF peuvent rencontrer 7 états et correspondent à deux moments :

  • d'une part, la découverte des voisins
  • et, d'autre part, la découverte des routes

6.2. Découverte des voisins

Les trois premières étapes visent à découvrir le voisin :

  • Down State
  • Init State
  • Two-Way State

1. Down State

Dans cet état, il n'y a pas d'échange d'informations entre les voisins.

OSPF attend le prochain état qui est l'Init State.

2. Init State

Les routeurs OSPF envoient des paquets Type 1 (Hello) à des intervalles réguliers pour établir une relation avec les routeurs voisins.

Quand une interface reçoit le premier paquet Hello, le routeur entre en Init State, ce qui signifie que le routeur sait qu'il y a un voisin en face et il attend d'entrer en relation avec lui dans la prochaine étape.

Il y a deux catégories de relations abouties en OSPF :

  • Two-Way (3)
  • Full Adjacency (7)

Un routeur doit de toute façon recevoir un Hello d'un voisin avant de tenter d'établir une relation OSPF.

3. Two-Way State

Utilisant des paquets Hello, chaque routeur OSPF tente d'établir un Two-Way State ou une communication bidirectionnelle avec chaque voisin qui est dans le même réseau IP.

En d'autres termes, les paquets Hello embarquent la liste des voisins OSPF connus de l'envoyeur.

Un routeur entre en Two-Way State quand il se voit dans le Hello d'un voisin.

OSPF Two-Way State

6.3. Échange des routes

Le Two-Way State est la relation la plus basique qu'un voisin OSPF puisse établir, mais dans cette relation aucune information de routage n'est partagée.

Pour apprendre l'état des liens des autres routeurs et construire une table de routage, chaque routeur doit former une contiguïté entière (full adjacency).

Les 4 étapes suivantes sont :

  • Exstart State
  • Exchange State
  • Loading State
  • Full State

Adjacences

Une adjacency est une relation avancée entre des routeurs OSPF qui implique une série d'états progressifs qui ne comptent pas seulement des paquets Hello mais aussi les quatre autres types de paquets.

Les routeurs qui tentent de devenir contigus ou adjacents avec un autre échangent des informations de routage (LSA) avant que toute adjacency soit entièrement établie.

La première étape est le ExStart State.

Démarrage de l'interface

Négociation Exstart quand l'interface G0/1 de R2 redémarre :

*Oct 24 18:41:01.483: %LINK-3-UPDOWN: Interface GigabitEthernet0/1, changed state to up
*Oct 24 18:41:02.483: %LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet0/1, changed state to up
*Oct 24 18:41:02.486: OSPF-1 ADJ   Gi0/1: Route adjust notification: UP/UP
*Oct 24 18:41:02.486: OSPF-1 ADJ   Gi0/1: Interface going Up
*Oct 24 18:41:02.489: OSPF-1 ADJ   Gi0/1: Interface state change to UP, new ospf state WAIT
*Oct 24 18:41:02.505: OSPF-1 ADJ   Gi0/1: 2 Way Communication to 1.1.1.1, state 2WAY
*Oct 24 18:41:02.505: OSPF-1 ADJ   Gi0/1: Backup seen event before WAIT timer
*Oct 24 18:41:02.505: OSPF-1 ADJ   Gi0/1: DR/BDR election
*Oct 24 18:41:02.506: OSPF-1 ADJ   Gi0/1: Elect BDR 2.2.2.2
*Oct 24 18:41:02.506: OSPF-1 ADJ   Gi0/1: Elect DR 1.1.1.1
*Oct 24 18:41:02.506: OSPF-1 ADJ   Gi0/1: Elect BDR 2.2.2.2
*Oct 24 18:41:02.507: OSPF-1 ADJ   Gi0/1: Elect DR 1.1.1.1
*Oct 24 18:41:02.507: OSPF-1 ADJ   Gi0/1: DR: 1.1.1.1 (Id)
*Oct 24 18:41:02.507: OSPF-1 ADJ   Gi0/1:    BDR: 2.2.2.2 (Id)

4. Exstart State

Techniquement, quand un routeur entre en Exstart State, la conversation est caractérisée par une contiguïté (adjacency) mais les routeurs ne sont pas encore entièrement adjacents (Full Adjacency).

L'ExStart est établi en utilisant des paquets de Type 2 database description (DBD).

Les deux routeurs voisins utilisent ces paquets pour négocier qui sera le "maître" et qui sera l'"esclave" dans la relation.

Le routeur avec la plus haute OSPF ID "gagnera" et deviendra "maître".

Quand ces rôles sont définis, l'état Exchange intervient et l'échange d'informations de routage peut commencer.

Négociation Exstart

Négociation Exstart quand l'interface G0/1 de R2 redémarre :

*Oct 24 18:41:02.508: OSPF-1 ADJ   Gi0/1: Nbr 1.1.1.1: Prepare dbase exchange
*Oct 24 18:41:02.508: OSPF-1 ADJ   Gi0/1: Send DBD to 1.1.1.1 seq 0x1443 opt 0x52 flag 0x7 len 32
*Oct 24 18:41:07.278: OSPF-1 ADJ   Gi0/1: Send DBD to 1.1.1.1 seq 0x1443 opt 0x52 flag 0x7 len 32
*Oct 24 18:41:07.279: OSPF-1 ADJ   Gi0/1: Retransmitting DBD to 1.1.1.1 [1]
*Oct 24 18:41:07.294: OSPF-1 ADJ   Gi0/1: Rcv DBD from 1.1.1.1 seq 0x1AA1 opt 0x52 flag 0x7 len 32  mtu 1500 state EXSTART
*Oct 24 18:41:07.295: OSPF-1 ADJ   Gi0/1: First DBD and we are not SLAVE
*Oct 24 18:41:07.295: OSPF-1 ADJ   Gi0/1: Rcv DBD from 1.1.1.1 seq 0x1443 opt 0x52 flag 0x2 len 152  mtu 1500 state EXSTART
*Oct 24 18:41:07.296: OSPF-1 ADJ   Gi0/1: NBR Negotiation Done. We are the MASTER

5. Exchange State

Dans cet état Exchange, les routeurs voisins vont utiliser des messages Type 2 DBD pour s'envoyer l'un à l'autre des informations de routage.

En d'autres mots, Les routeurs décrivent leur link-state database aux autres.

Les routeurs comparent ce qu'ils apprennent avec ce qu'ils connaissent déjà de leur link-state database.

S'ils apprennent des informations sur des liens qu'ils ne possèdent pas, ils demandent une mise à jour complète à leur voisin.

Les informations de routage complètes sont échangées dans le Loading State.

6. Loading State

Après que la base de données a été décrite à chaque routeur, dans la phase Loading State, ils peuvent demander des informations plus complètes en utilisant des Type 3 packets, appelés link-state requests (LSRs).

Quand un routeur reçoit un LSR, il répond avec une mise à jour en utilisant un Type 4 link-state update (LSU) packet.

Ces paquets Type 4 LSU contiennent les link-sate advertisements (LSAs) qui sont le cœoeur du protocole de routage à état de lien.

Les LSU sont accusés de réception par des LSAcks, link-state acknowledgments.

7. Full Adjacency

Lorsque le Loading State est complet, les routeurs sont entièrement adjacents.

Chaque routeur garde une liste de ses routeurs voisins appelée adjacency database.

Elle ne doit pas être confondue avec la link-state database ou la forwarding database.

Communication Exchange à Full

*Oct 24 18:41:07.299: OSPF-1 ADJ   Gi0/1: Nbr 1.1.1.1: Summary list built, size 7
*Oct 24 18:41:07.300: OSPF-1 ADJ   Gi0/1: Send DBD to 1.1.1.1 seq 0x1444 opt 0x52 flag 0x1 len 92
*Oct 24 18:41:07.311: OSPF-1 ADJ   Gi0/1: Rcv LS REQ from 1.1.1.1 length 36 LSA count 1
*Oct 24 18:41:07.311: OSPF-1 ADJ   Gi0/1: Send LS UPD to 192.168.95.1 length 76 LSA count 1
*Oct 24 18:41:07.313: OSPF-1 ADJ   Gi0/1: Rcv DBD from 1.1.1.1 seq 0x1444 opt 0x52 flag 0x0 len 32  mtu 1500 state EXCHANGE
*Oct 24 18:41:07.313: OSPF-1 ADJ   Gi0/1: Exchange Done with 1.1.1.1
*Oct 24 18:41:07.314: OSPF-1 ADJ   Gi0/1: Send LS REQ to 1.1.1.1 length 36
*Oct 24 18:41:07.324: OSPF-1 ADJ   Gi0/1: Rcv LS UPD from Nbr ID 1.1.1.1 length 76 LSA count 1
*Oct 24 18:41:07.325: OSPF-1 ADJ   Gi0/1: Synchronized with 1.1.1.1, state FULL
*Oct 24 18:41:07.325: %OSPF-5-ADJCHG: Process 1, Nbr 1.1.1.1 on GigabitEthernet0/1 from LOADING to FULL, Loading Done
15

6.4. Journaux OSPF

On peut activer la journalisation OSPF :

R5#debug ip ospf ?
  <1-65535>       Process ID number
  adj             OSPF adjacency
  database-timer  OSPF database timer
  events          OSPF miscellaneous events
  flood           OSPF flooding
  hello           OSPF hello
  lsa-generation  OSPF LSA generation
  monitor         OSPF SPF monitoring
  packet          OSPF received packets
  retransmission  OSPF retransmission
  rib             OSPF RIB
  scheduler       OSPF process scheduling
  spf             OSPF SPF
  tree            OSPF database tree
Author image
Francois Goffinet est formateur Cisco Systems depuis 2002. Passionné des technologies des réseaux, de virtualisation et en nuage, Web et de cybersécurité souvent en Open Source ou Unix-Like, devops.