Vous êtes sur la page 1sur 10

WWW.RESEAUMAROC.

COM
Cours/formation /Video en informatique:Réseaux,Linux,Cisco,2003 Server,securité,
Contact : tssri-reseaux@hotmail.fr TEL : 00212669324964

I. Introduction

OSPF est un protocole de routage à état de lien (Link-state) ce qui diffère donc des protocoles
à vecteur de distance (Distance Vector) comme RIP.
Le Link-state va permettre au routeur d'avoir une vision globale du réseau et de sa topologie,
et le Shortest Path First Algorithm (conçu par le scientifique Dijkstra) va déterminer le
meilleur chemin (le moins couteux).
Plusieurs standard de la IETF décrivent OSPF, mais le plus récent est la RFC 2328 (OSPF
Version 2).
OSPF est non propriétaire et est en train de devenir l'Interior Gateway Protocol (IGP) préféré,
à la place de RIP qui souffre de quelques lacunes.
RIP ne peut pas aller plus loin que 15 routeurs (hops), il converge lentement, il peut choisir
des routes lentes parce qu'il ne se base que sur un seul métric (le hop).
OSPF gère les limitations de RIP et il peut s'appliquer sur de très larges réseaux, en utilisant
un design hiérarchique.

Un réseau OSPF est divisé en plusieurs zones (Aera) qui se connectent à une Aera centrale de
distribution, Aera 0, appelé aussi le backbone.
Chaque routeur s'informe sur l'état de ses propres interfaces, ces informations sont ensuite
floodées à tous les routeurs voisins (çàd sur toutes les interfaces, sauf celles d'où elles
arrivent. Attention ce n'est pas un broadcast!), ils annoncent donc leur état et reçoivent les
infos des autres.
De ce fait, tous les routeurs auront la même base de données sur l'état des connections de tous
les autrtes routeurs appartenant à la même Aera.
Ensuite ils lancent tous le shortest path first (SPF) algorithme, ce qui determinera les
meilleures routes, qui seront alors ajoutées à la table de routage.

Pour réduire le nombre d'informations de routage échangées parmis tous les routeurs du
même réseau, les routeurs vont élir un DR (designated router) et un BDR (backup designated
router) qui serviront de point central d'échange. Non verront cette notion plus tard.
Les routeurs OSPF établissent donc des liaisons avec leurs voisins pour partager efficacement
les informations d'état de lien, contrairement à RIP, où les routeurs broadcast (RIPv1) ou
multicast (RIPv2) l'entierté de leur table de routage toutes les 30 secondes.
Par défaut, RIP n'envoit qu'une sorte de message (leur table). OSPF lui peut envoyer 5 sortes
de paquets! Ce qui permet une communication plus complexe et plus sophistiquée.

OSPF Packet Type Description


Etablit et maintient les informations d'adjacence avec les
Type 1 - HELLO
voisins
Type 2 - Database description Décrit le contenu de la base de donnée d'état de lien d'un
packet (DBD) routeur OSPF
Type 3 - Link State Request Fais (demande) des requetes sur les base de données
Type 4 - Link State Update (LSU) Transportes les annonces de link-state (LSA - Link State
WWW.RESEAUMAROC.COM
Cours/formation /Video en informatique:Réseaux,Linux,Cisco,2003 Server,securité,
Contact : tssri-reseaux@hotmail.fr TEL : 00212669324964

Advertissement) pour les routeur voisins.


Type 5 - Link Sate
Accusé de reception pour les LSA
Acknowledgement (LSACK)

II. Les 7 états OSPF

Les interfaces (ports) OSPF peuvent être classées et nommées selon 7 états :

- Down
- Init
- Two-way
- ExStart
- Exchange
- Loading
- Full adjency

- Down State : Le processus OSPF n'échange aucune information. Il attend d'entrer dans l'état
suivant.
- Init State : Le routeur envoit des paquets de type 1 (HELLO) pour établir une relation avec
les routeurs voisins. Quand une interface reçoit son premier HELLO paquet, le routeur entre
dans la phase Init.
- Two-way State : En utilisant le message HELLO, un routeur essaye en fait d'établir une
communication bidirectionnelle, ou un état two-way, avec tous les voisins du même réseau.
Les HELLO paquets comprennent, entre autre, une liste des voisins connus. En fait le routeur
rentre dans la phase Two-way lorsqu'il se voit lui-même dans la liste qu'il a reçu de son
voisin.

RouterA ---> [HELLO Paquet] ---> RouterB (Je suis dans sa liste Donc un Two-way state
exite entre nous)

Pour le moment aucune information de routage est échangée, c'est la plus basique relation que
OSPF puisse fournir. Il faut maintenant passer aux autres étapes.
- ExStart State : utilise les paquets de type 2 (DBD). Mais avant l'échange, les 2 routeurs
réutilisent des HELLO paquets pour négocier qui est le master et qui est le slave dans leur
liaison, ensuite ils enverront les DBD.
- Exchange State : Utilise les paquets de type 2 DBD pour envoyer les informations qui
décrivent leur bas de donnée d'état de lien. Si l'une ou l'autre route reçu ne se trouve pas dans
la base de données du routeur recepteur du paquet DBD, il demande un Update complet à son
voisin en utilisant le Loading State.
- Loading State : Une fois que chaque routeur a décrit sa base de donnée aux autres, ils
peuvent demander une requête d'informations plus complètes en utilisant les paquets de type
3, les LSRs (Link State Requests). quand un routeur reçoit un LSR, il répond en envoyant un
autre paquet de type 4, le LSU (Link State Update). Ce type 4 de paquet LSU contient l'actuel
annonce d'état de lien (LSA - Link State Advertissments) qui est le coeur du protocole OSPF.
WWW.RESEAUMAROC.COM
Cours/formation /Video en informatique:Réseaux,Linux,Cisco,2003 Server,securité,
Contact : tssri-reseaux@hotmail.fr TEL : 00212669324964

Enfin, le type 5 de paquet, appelé LSAcks (Link State Acknowledgment) est utilisé comme
accusé de reception des LSU.
- Full Adjency : Quand le loading state est complet, les routeurs sont dit en complete
adjacence (full adjency). Chaque routeur tient donc une liste des routeurs en adjacence avec
eux, appelé la base de donnée adjacente (adjacensy database).
Pour ne pas confondre toutes les bases de données, voici un tableau récapitulatif :

Database Description
Liste de tous les routeurs voisins avec lesquels est établi une
Adjacencies database (bas de
communication bidirectionnelle. elle est unique pour chaque
données d'adjacence)
routeur.
Link-state database (base de Liste des informations sur tous les routeurs du réseau. Elle
données d'etat de lien - base de montre la topologie du réseau. tous les routeurs dans la même
donnees topologique) Area possède la même link-state database
Liste des routes généré quand un algorithm est lacé sur la
Forwarding database (table de link-state database. Chaque table de routage est unique et
routage) contient l'information pour envoyer les paquets dans les
bonnes directions.

III. DR et BDR

Si chaque routeur doit établir une adjacence avec chaque routeur présent dans la même Aera
et échanger leurs informations, cela va devenir très vite lourd. Par exemple, 5 routeurs
nécessitent 10 relations et 10 routeurs nécessitent 45 relations (la formule est (n.n-1)/2).

Pour éviter ceci, une élection va s'effectuer dans le réseau pour élir un routeur désigné (DR -
Designated Router). Ce routeur devient adjacent pour tous les routeurs, et tous les routeurs
envoyent leurs informations au DR. Du coup, pour un réseau de 5 routeurs, il ne faudra que 5
relations, et 10 relations pour 10 routeurs. Le DR envoit l'information d'état de lien à tous les
routeurs en utilisant l'adresse multicast 224.0.0.5 (Pour tous les routeurs OSPF du même
segment)

En dépit de ce gain d'éfficacité d'élection du DR, il reste une grosse faiblesse : le DR devient
un point central de défaillance. Il y a donc une élection d'un second routeur, le BDR (backup
designated router) qui pourra remplacer la fonction du DR en cas de problème. Tous les
routeur envoyent leurs informations au DR et au BDR en utilisant l'adresse multicast
224.0.0.6

Type de réseau Caractéristiques Election d'un DR?


Broadcast multiaccess Ethernet, Token Ring, ou FDDI Oui
Nonbroadcast multiaccess Frame Relay, X.25, SMDS Oui
Point-to-point PPP, HDLC Non
WWW.RESEAUMAROC.COM
Cours/formation /Video en informatique:Réseaux,Linux,Cisco,2003 Server,securité,
Contact : tssri-reseaux@hotmail.fr TEL : 00212669324964

Point-to-multipoint Configuré par l'administrateur Non

IV. Les messages OSPF

Quand un routeur demarre un processus de routage OSPF sur une interface, il envoit un Hello
paquet, et continue a envoyer des Hellos à intervalles réguliers. Les Hello paquets sont
envoyés toutes les 10 secondes, par défaut (je me base sur les routeurs CISCO, mais c'est la
tendance générale), sur les réseaux broadcast multiaccess et point-to-point.
Sur les interfaces qui se connectent à un NBMA (Nonbroadcast multiaccess), comme Frame
Relay par exemple, les HELLO paquets sont envoyés toutes les 30 secondes.

Tous les paquets OSPF auront la même en-tête commune :

- OSPF Header Format

Version (1) Type (1) Packet Length (2)


Router ID (4)
Area ID(4)
Checksum(2) Authentication Type(2)
Authentication Data(8)
--- Message ---

- version (1 byte) spécifie la version du protocole utilisé.


- Type (1 byte) identifie le type du message comme étant un de :
Type 1 : Message HELLO (utilisé pour vérifier que les liaisons sont opérationelles).
Type 2 : description de la base de donnée .
Type 3 : demande de l'état d'un lien .
Type 4 : mise à jour de l'état d'un lien .
Type 5 : reconnaissance d'un état d'un lien (acknowledgement)
- Packet Length (2 bytes) La taille du message, en bytes, incluant les 24 bytes de ce header.
- Router ID (4 bytes) donne l'adresse de l'émetteur.
- Area ID (4 bytes) donne le numéro d'identification de la zone.
- Checksum (2 bytes) est similaire au standard IP checksum. L'entierté du message est inclut
dans le calcul, à l'exception du champ Authentication.
- Puisque chaque message peut inclure une authentification, le champ Authentication Type
spécifie quel schéma d'authentification est utilisé (souvent 0 signifie qu'il n'y a pas
d'authentification et 1 signifie qu'un simple mot de passe est utilisé).
- Authentication (8 bytes) utilisé pour authentifié le message.

Il y a 5 types de messages (champs Type), donc 5 types de paquets :

- OSPF Hello Packet (Type 1 dans le header)


WWW.RESEAUMAROC.COM
Cours/formation /Video en informatique:Réseaux,Linux,Cisco,2003 Server,securité,
Contact : tssri-reseaux@hotmail.fr TEL : 00212669324964

Network Mask (4)


Hello Interval (2) Options (1) Router Priority (1)
Dead Interval (4)
Designated Router (4)
Backup Designated Router (4)
Neighbor Router ID#1
...
Neighbor Router ID#N

- Network Mask est le masque de sous-réseaux.


- Hello Interval est le nombre de secondes entre lesquels ce routeur envoit ses HELLO
messages.
- Options Indique quelles possibilités facultatives le routeur OSPF supporte.
- Router Priority indique la priorité du routeur. (Pour l'election)
- Router Dead Interval est le nombre de secondes avant qu'un routeur silencieux soit
considéré comme Down.
- Designated Router l'adresse du DR (0 si il n'y en a pas)
- Backup Designated Router l'adresse du BDR (0 si il n'y en a pas)
- Neighbors Router(s) ID Les addresses de chaque router dont il a reçu récemment les
HELLO messages.

- OSPF Database Description Packet (Type 2 dans le header)

Interface MTU (2) Options (1) Flags (1)


DD Sequence Number (4)
LSA Headers#1
...
LSA Headers#N

- Interface MTU la taille maximum des paquets IP que l'interface du routeur peut envoyer
sans fragmentation.
- Options Indique quelles possibilités facultatives le routeur OSPF supporte.
- Flags Information sur l'echange de Database Description Packet :
Les 5 premiers bits sont mit à zero.
Le bit suivant est le I-bit (Init bit) Quand il est mis à 1 cela signifie que c'est le premier
packet de la sequence.
Le bit suivant est le M-bit (More bit) Mis à 1 signifie que d'autre packets suivent.
Le bit suivant est le MS-bit (Master/Slave bit) Mis à 1 signifie que le routeur est le master
durant ce processus d'Exchange de Database. Autrement c'est le slave.
- DD Sequence Number Utilisé pour numéroter les paquets, pour pouvoir les reconstituer dans
WWW.RESEAUMAROC.COM
Cours/formation /Video en informatique:Réseaux,Linux,Cisco,2003 Server,securité,
Contact : tssri-reseaux@hotmail.fr TEL : 00212669324964

l'ordre. (Incrementation)
- LSA Headers Contient les LSA que nous verrons juste en dessous. (OSPF Link State
Advertisements (LSAs) et le LSA Header Packet)

- OSPF Link State Request Packet (Type 3 dans le header)

Link State Type (4)


Link State ID (4)
Advertising Router (4)
...
LS Type/LS ID/Advertising#N

- LS Type Le type de LSA recherché - Link State ID L'identifiant du LSA (generalement l'IP) -
Advertising Router l'ID du routeur qui a crée les LSA et dont l'update est recherchée.

- OSPF Link State Update Packet (Type 4 dans le header)

Nombre de LSA (4)


LSA#1
...
LSA#N

- OSPF Link State Acknowledgment Packet (Type 5 dans le header)

LSA Headers#1
...
LSA Headers#N

- LSA Headers (variable) contient les LSAs Headers pour identifier les LSAs
acknowledgment

- OSPF Link State Advertisements (LSAs) et le LSA Header Packet

Comme vu plus haut, plusieurs types de message OSPF utilisent les LSAs, qui est en fait le
champs qui transporte les information sur la topologie du réseau.
Les LSAs commencent tous par le même format de header qui fait 20 bytes, suivit de champs
de description.

- LSA Header -
WWW.RESEAUMAROC.COM
Cours/formation /Video en informatique:Réseaux,Linux,Cisco,2003 Server,securité,
Contact : tssri-reseaux@hotmail.fr TEL : 00212669324964

LS Age (2) Options (1) LS Type (1)


Link State ID (4)
Advertising Router (4)
LS Sequence Number (4)
LS Checksum (2) Lenght (2)

- LS Age Nombre de secondes écoulée depuis que le LSA a été crée.


- Options Indique quelles possibilités facultatives le routeur OSPF supporte.
- LS Type Indique le type de lien que le LSA décrit.

LS Type Description
___________________________________
1 Router-LSAs
2 Network-LSAs
3 Summary-LSAs (IP network)
4 Summary-LSAs (ASBR)
5 AS-external-LSAs
- Link State ID identifie le lien (généralement une IP, dépendra du Type)
- Advertising Router L'ip du routeur qui envoit (généralement le DR)
- LS Sequence Number Detecte les doublons ou les trop vieux LSAs
- LS Checksum Checksum du LSA, pour detecter des eventuelles données corrompus.
- Lenght La taille en byte du LSA (incluant les 20 bytes de l'header)

- LSA Body -

Après le Header, suit le corps du LSA qui dépendra du champ LS Type.


Je vais esquiver cette partie, sinon l'article va devenir trop long ^^'. Mode anti-scroll [ON]
Pour plus de détails je vous conseille de vous referer à l'annexe A de la RFC 2328.

V. Les étapes des opérations OSPF

Va nous permettre de revoir ce qu'on a déjà vu au travers d'un exemple, et voir comment se
fait l'election du DR et BDR.

1 - Etablir l'adjacence des routeurs.


2 - Election du DR et du BDR (si nécessaire).
3 - Découvrir les routes.
4 - Selectionner les bonnes routes.
5 - Maintenir les informations de routage.

1 - Etablir l'adjacence des routeurs.

La première étape d'un routeur dans une opération OSPf est d'établir l'adjacence.
WWW.RESEAUMAROC.COM
Cours/formation /Video en informatique:Réseaux,Linux,Cisco,2003 Server,securité,
Contact : tssri-reseaux@hotmail.fr TEL : 00212669324964

- Pour atteindre l'adjacence, Rb envoit des HELLO paquets qui annonce son ID, sur S0 et E0.
Ra et Rc reçoivent donc les paquets, inclut l'ID de Rb dans leurs HELLO paquets et entre en
Init State avec Rb.
- Rb reçoit ensuite ces paquets HELLO de ses 2 voisins, et y voit sa propre ID (10.6.0.1). Rb
déclare donc l'etat Two-Way entre lui et Ra, et lui et Rc.
- A ce moment, Rb va determiner quel est le mode d'etablissement d'adjacence basé sur le
type de réseau. Si le réseau est de type point-to-point, le routeur devient adjacent avec son
seul voisin. Si le réseau est de type multi-access, Rb lance le processus d'election pour devenir
DR ou BDR, sauf si déjà etablit. Si il n'y a pas besoin d'election on passe directement à l'etape
3.

2 - Election du DR et BDR

- L'élection se fait grâce aux HELLO paquets qui contiennent l'ID du routeur et un champ de
priorité. Le routeur qui a la plus grande valeur de priorité remporte les élections et devient le
DR, le second le BDR. Une fois élu le DR et le BDR, ils tiendront leur rôle juqu'à une
défaillance, même si un routeur d'une plus grande priorité se rajoute au réseau. Tous les
nouveaux routeurs seront informé de l'identité du DR et du BDR.
- Par défaut, tous les routeurs ont une priorité de 1. On peut assigné une priorité de 0 à 255.
Une priorité de 0 empechera le routeur de devenir le DR, tandis que le 255 assurera au
minimum une égalité. Le champs ID du routeur sera là pour départager les égalités, la plus
grande ID selectionnera le DR.

- On voit que Rb et Rc sont connecté par Point-to-point Protocol (PPP). Un DR n'est donc pas
nécessaire pour le réseau 10.6.0.0/16.
- Les réseaux 10.4.0.0/16 et 10.5.0.0/16 en revenche sont des réseaux ethernet multi-acces
donc même si il n'y a qu'un seul routeur, un DR sera élu, parce qu'il y a le potentiel pour
WWW.RESEAUMAROC.COM
Cours/formation /Video en informatique:Réseaux,Linux,Cisco,2003 Server,securité,
Contact : tssri-reseaux@hotmail.fr TEL : 00212669324964

d'autre routeurs. Comme Ra est le seul routeur du réseau 10.4.0.0/16 il s'est élu lui-même DR.
Dans le réseaux 10.5.0.0/16, Ra et Rb ont la même priorité, donc en vertu du tie-breaker c'est
Rb qui sera élu DR : un plus grand ID (10.5.0.2 contre 10.5.0.1).
Maintenant ils sont prêt à échanger leurs info et construire leurs bases de données.

3 - Découvrir les routes

Lors d'une liaison Point-to-point, il y a l'étape ExStart comme vu précedemment grâce aux
HELLO (ID). Et le master va orchestrer les échanges.
Ensuite on entre dans la phase Exchange où il y aura échange de DBD pour visonner les
descriptions des bases de données (en details limités). Cette description inclut le Type d'état
de lien, les annonces d'adresses, le coût du lien, un nombre de séquence. Les routeurs
envoyent des accusés de reception pour les DBD reçus en envoyant des LSAck contenant le
nombre de séquence du DBD.
Chaque routeurs compare les infos des DBD avec leurs propres infos, si il voit une nouvelle
route, il entre dans la phase Loading State en envoyant un LSR. En réponse il recevra un LSA
contenu dans un LSU.
Une fois le Loading State effectué (si besoin), les routeurs sont en complète adjacences et
rentre dans la phase full adjacency. Après ils peuvent enfin créer leur table de routage.
A ce moment, tous les routeurs ont une base de données d'état de liens identique.

4 - Selectionner les bonnes routes.

La valeur par défaut du coût est basé sur la bande passante du média. Plus la vitesse de la
ligne est grande plus le coût est petit. Pour calculer le plus petit coût pour une destination, le
Routeur va utiliser le SPF algorithm.
Si il existe plusieurs routes vers une destination, la route dont le coût sera le moins élevé sera
préféré. Il bouge ensuite dans la phase finale des opérations OSPF.

5 - Maintenir les informations de routage.

Il faut maintenant maintenir les tables de routage. Quand un changement survient, les routeurs
utilisent le processus de flooding pour avertir leurs voisins sur le réseau. Un mécanisme
simple pour savoir si une ligne est down, c'est le silence de la ligne. Par défaut nous avons vu
que les routeur CISCO envoyent des paquets HELLO toutes les 10 sec. Au bout de 40 sec de
silence, la ligne sera considérée comme down. Le routeur envoit alors un paquet LSU
contenant l'info du nouvel etat de lien au DR et BDR (224.0.0.6) qui feront passer le message
(224.0.0.5) aux autres routeurs. (+ LSAck pour tout le monde). Si un routeur se trouve
connecté aussi à un autre réseau, il floode de LSU l'autre réseau en l'envoyant au DR de cet
autre réseau, et ce dernier fera suivre. Une fois reçu le LSU, les routeurs update leur base de
données d'etat de lien, et relance le SPF Algo en utilisant les nouvelles données pour
recalculer leur table de routage. A noter, que si aucun changement d'etat n'intervient dans le
réseau, les infos seront quand même mises à jour périodiquement. Chaque LSA reçu à une
periode d'existence (30 min par defaut chez Cisco)
WWW.RESEAUMAROC.COM
Cours/formation /Video en informatique:Réseaux,Linux,Cisco,2003 Server,securité,
Contact : tssri-reseaux@hotmail.fr TEL : 00212669324964

Vous aimerez peut-être aussi