Académique Documents
Professionnel Documents
Culture Documents
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.
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
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.
- 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)
- 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.
LSA Headers#1
...
LSA Headers#N
- LSA Headers (variable) contient les LSAs Headers pour identifier les LSAs
acknowledgment
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 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 -
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.
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.
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.
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.
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