OSPF – Fondamentaux

 

Pré-requis


– Routage Dynamique

Sujets traités :

– IGP / EGP
– Classless / Classful
– Link State / Distance Vector

 

Présentation


 

OSPF = Open Shortest Path First

Shortest Path First = Algorithme qui permet de calculer le chemin le plus cours vers toutes les destinations via le nombre de saut et le coût des liaisons.

 

OSPF :

– Protocole de routage dynamique
– Défini dans la RFC 2328 (Protocole non propriétaire).
– Protocole IGP.
– Protocole Classless.
– IP protocol type 89
– Envoi instantanément les mises à jours de routage.
– Choisi l’itinéraire à prendre en fonction de la bande passante. (metric)
– Présence d’Authentification.

 

Neighbor Table


Neighbor ID


Le Neighbor ID est le Router-ID de notre voisin.

Router-ID = Adresse IP de notre Routeur OSPF.

Le Router-ID est défini comme suit :

Priorité 1 : le Router ID renseigné dans le processus OSPF.
Priorité 2 : L’adresse IP la plus élevé configuré sur une interface loopback.
Priorité 3 : L’adresse IP la plus élevé configuré sur une interface physique.

Cette adresse IP permet de pouvoir être identifié par les routeurs OSPF voisins.

 

Neighbor


Un Neighbor (Voisin) est une relation entre deux routeurs OSPF.

Ils vont tout les deux s’envoyer des paquets « Hello » (Bonjour) afin de se présenter.

Conditions pour devenir Neighbor (Voisin) :

OSPF – Authentification Identique
OSPF – MTU identique
OSPF – Aire OSPF identique
OSPF – Appartenir à un même type d’aire OSPF ( Regular / Stub / NSSA )
OSPF – Hello interval + Dead Timer identique
OSPF – Appartenir à un même réseau
OSPF – Router-ID unique

 

Hello Packet


Un Paquet Hello :

– Permet de s’annoncer à ses voisins
– Permet de vérifier la disponibilité de ses voisins
– Adresse multicast 224.0.0.5 (224.0.0.6 pour les DR)

Broadcast ou point a point

– Hello interval = 10s
– Dead-interval = 40s (4×10)

NonBroadcast ou point multipoint

– Hello interval = 30s
– Dead-interval = 120s (4×30)

 

 

State


Il existe 7 états:

Down : Le Dead-interval est venue à son terme
Attempt : Le neighbor a été rentré manuellement dans la configuration de notre routeur, il envoie donc ses paquets Hello en Unicast, mais ne reçoit pas de réponse.
Init : Notre routeur a reçu un paquet Hello d’un autre routeur, mais il n’est pas encore sûr que ce dernier le voit
2-ways : notre routeur a reçu un paquet Hello d’un autre routeur. Dans ce paquet, il y a notre Router-ID. Nos deux routeurs se voient donc l’un l’autre
Ex-start : Élection du Slave et Master (Router-ID le plus haut)
Echange : Nos deux routeurs s’échangent le sommaire de leurs Link State Database (LSDB)
Loading : Nos deux routeurs s’échangent les LSA manquantes.
Full : Les LSDB de nos deux routeurs sont identiques et à jour

Afin de migrer d’un état à l’autre, le protocole OSPF utilise ce type de message :

Hello: Découvrir le réseau, se construire des nouvelles relations de voisins et de s’assurer de leurs disponibilités.
DataBase Description (DBD ou DD): Sommaire de la LSDB (Link State DataBase)
Link State Request (LSR): Demande à son voisin des LSA spécifique.
Link State Update (LSU): Envoi des LSA demandée
Link State Acknowledge (LSAck): Accusé de récéption

Link State Database


 

LSDB


LSDB = Link State DataBase

LSA = Link State Advertisement

Une LSDB est une base de données qui contient toutes les LSA apprissent et générer par notre routeur.
Pour imager tout ça :
– Une LSDB est une bibliothèque
– Une LSA est un livre
Notre bibliothèque (LSDB) est composé de plein de livres (LSA)
Pour que deux routeurs soient dans l’état FULL, il faut que la Bibliothèque (LSDB) de ces deux derniers soit identique.

 

LSA


LSA = Link State Advertisement

Nous venons de voir que notre LSDB est composé de plusieurs LSA.

Il existe plusieurs type de LSA :

– LSA de type 1 (Router)
– LSA de type 2 (Network)
– LSA de type 3 (Net Summary)
– LSA de type 4 (ASBR Summary)
– LSA de type 5 (AS External)
– LSA de type 6 (Group Membership)
– LSA de type 7 (NSSA External) – NSSA
– LSA de type 8 (Link LSAs) – IPv6
– LSA de type 9 (Intra-Area Prefix LSAs) – IPv6
– LSA de type 10,11 (Opaque)

Les LSA sont organisé par « type » dans notre LSDB.

 

Calcul du Metric 


 

 Maintenant que notre routeur est rentré dans la bulle OSPF. Il va utiliser les informations présente dans sa LSDB afin d’en conclure sa table de routage. Afin de trouver le meilleur chemin vers ses destinataires, il va exécuter l’Algorithme de Dijkstra.

     Afin d’exécuter son algorithme, il va définir un metric  pour chacune de ses liaisons avec la formule suivante :

 

100 / Débit

 

Un chemin avec un faible metric sera privilégié

Exemple :


Dans cet exemple, Le meilleur Metric a partir de R1 pour joindre le reseau 20.0.0.0/24 est de passer par R2 et R3.

R1 aura un metric de 3 pour joindre le reseau 20.0.0.0/24 via R2


R1 aura un metric de 4 pour joindre le reseau 20.0.0.0/24 via R11



R1 aura un metric de 4 pour joindre le reseau 20.0.0.0/24 via R11

R1 aura un metric de 4 pour joindre le reseau 20.0.0.0/24 via R12


 

Le metric défini ci-dessus est celui par défaut, nous pouvons le changer avec la commande:

router(config)#interface fastethernet X/X

router(config-if)#ip ospf cost XX

Cette commande peut nous servir à forcer OSPF à choisir le chemin que l’on veut ou à faire de l’équilibrage de charge. (si deux chemins ont un metric égal).

Aires OSPF


 

OSPF utilise l’appellation AREA afin de découper un groupe de routeur en plusieurs petits groupe de travail. Si nous mettons tout nos routeurs OSPF dans la même aire , cela va fonctionner.

Imaginons que nous avons une entreprise avec 500 routeurs et 1000 sous-réseaux et que tout le monde est dans la même aire OSPF. Chaque routeurs de cette aire vas exectuer l’algorithme de Dijkstra pour chaque sous-réseau. Quand une interface d’un de ses 500 routeurs va tomber, TOUT les routeurs de l’aire OSPF va recalculer l’ensemble des chemins pour tout nos réseaux. Tous nos routeurs vont mettre un temps énorme pour converger et leurs charge CPU va être tout le temps à fond…

Avantage des aires OSPF :

– Les LSDB de nos routeurs sont plus petites, nos routeurs ont donc besoin de moins de mémoire pour les acceuillir
– Diminution de la charge CPU de nos routeurs , l’algorithme SPF s’éxecute uniquement pour les réseaux présent dans son aire OSPF. Ce qui augmente la vitesse de convergence en cas de panne réseau
– Le dysfonctionnement d’une interface réseau oblige uniquement les routeurs présent dans son aire à ré-executer l’algorythme SPF.
– Le nombre de message LSA est grandement réduit, ce qui affecte moins la bande passante.

Convaincu ? Bien 🙂 Mais avant de mettre en place des aires OSPF , il est important de connaitre les règles à respecter :

– Mettre toutes les interfaces qui appartiennent à un même réseau dans la même aire OSPF
– Toute aire OSPF ne doivent pas être couper en deux par une autre aire OSPF
– Il existe deux type de routeur OSPF :

– Routeurs interne à une aire : toutes ses interfaces physique appartiennent à la même aire OSPF
– Routeur de bordure d’aire (ABR = Aera Border Routers) : Une partie de ses interface font partie d’une aire non-backbone et d’autre font partie de l’aire backbone
– Toute aire non-Backbone doivent avoir un routeur ABR racordé à une aire Bakcbone

Configuration OSPF pour IPv4


 

 

Dans cette exemple nous avons 3 aires OSPF.

Je vous ai détaillé ci dessous les commandes utilisés :

router ospf 10

Nous rentrons dans le mode de configuration d’OSPF via cette commande. le numéro 10 correspond à notre « Process ID » . Ce process ID n’à aucune importante pour le protocole OSPF

 router-id 10.10.10.1

Notre routeur OSPF va être identifié par ses voisins via cette adresse. Le routeur Id sera soit le router-id spécifié , soit l’adresse IP la plus haute de nos interface loopback ou l’adresse IP la plus haute présente sur nos interface physique.

network 192.168.1.0 0.0.0.255 area 10

Cette commande va nous permettre de déclarer ce réseau à nos voisins. elle va aussi permettre de rechercher des voisins potentiel sur ce réseau via des paquets Hello.

Ceci est l’ancienne méthode pour déclarer ce réseau dans une aire.

passive-interface FastEthernet 0/0

Cette commande permet de dire à notre routeur d’arrêter de chercher de nouveau voisins sur cette interface.

ip ospf 10 area 20

Cette commande est identique à la commande « network ». Elle se rentre au niveau de l’interface.

Ceci est la nouvelle méthode pour déclarer ce réseau dans une aire. Elle sera pris en compte avant notre network !

Dans notre exemple :

– La commande network affecte le réseau 192.168.1.0 à l’aire 10

– La commande ip ospf affecte le réseau 192.168.1.0 à l’aire 20

Le réseau 192.168.1.0 sera dans l’aire 20.

default-information originate

Cette commande permet à un routeur de se signaler comme passerelle par défaut de sa backbone ospf.

ip ospf cost 100

Coût d’une liaison = Bandwidth Référence / Bandwidth de l’interface.

La Bandwidth de référence est égale à 100 par défaut

Donc les interfaces FastEthernet et GigabitEthernet ou un coût égale à 1.

La commande ip ospf cost 100 indique que notre interface FastEthernet 0/0 aura dorénavant un coût à 100.

auto-cost reference bandwidth 1000

Coût d’une liaison = Bandwidth Référence / Bandwidth de l’interface.

La Bandwidth de référence est égale à 100 par défaut.

La commande auto-cost reference bandwidth fixe à 1000 la nouvelle référence.

Dépannage OSPF IPv4.


 

 

show ip ospf

Affiche des informations concernant notre processus OSPF.

 show ip ospf interface

Affiche des informations concernant nos interfaces représenté par nos commandes « network ». Rajouter le nom d’une de vos interface physique derrière cette commande pour avoir plus de détail la concernant.

show ip ospf neighbor

Affiche une liste successive de nos voisins. Rajouter le router-id d’un de vos voisins derrière cette commande pour avoir plus de détail le concernant

show ip ospf database

Affiche la Database OSPF

show ip route

Affiche la table de routage

clear ip ospf process

Cette commande remet à zéro notre processus OSPF. C’est comme si nous avons redémarrer notre routeur. Il va oublier ses voisins , effacer sa database et supprimer les routes OSPF qu’il avait précédemment calculé.

Rentrer plus en détail dans les commandes « Show » n’a pas grand intérêt , il faut juste savoir ou chercher l’information voulu.

Noël NICOLAS

Administrateur Réseau
10 ans d’expérience
CCNA Routing and Switching
Fondateur du site FingerInTheNet

2 thoughts on “OSPF – Fondamentaux”

  1. Bonjour ,

    Je suis occupé a étudier pour passer la certification CCNA .
    Je trouve votre site particulièrement bien fait , il m’as permis de mieux comprendre certain fonctionnement et principe .
    Domage que beaucoup de liens image ne sont plus accessible .

    Bien à vous

    1. Bonjour Francois.

      Je suis ravi que mon site vous plaise.
      Quels sont les articles possédant des liens images mort ??

      J’ai migrer d’hébergeur il n’y as pas longtemps et il y a eu pas mal de problèmes …

      Je suis vraiment désolé pour la gêne occasionné

Laisser un commentaire