Présentation

Le protocole de routage OSPF (Open Shortest Path First) est un protocole de type Link-State comme on l’a vu dans cet article. C’est un protocole standard et ouvert utilisé par plusieurs constructeurs. OSPF utilise l’algorithme de Dijkstra pour déterminer le meilleur chemin vers le réseau de destination.

OSPF est utilisé par les routeurs pour établir une session de voisinage entre eux. Lorsqu’un routeur avec OSPF activé est allumé sur le réseau, il va vouloir se présenter aux autres routeurs voisins et essayer de monter une session avec eux.

La distance administrative de OSPF est 110. OSPF est utilisé avec des adresses IPv4. Pour IPv6, le protocole de routage est OSPFv3.

 

 

Architecture

OSPF utilise 3 tables pour stocker les différentes informations concernant les routeurs voisins et le réseau :

  • Neighbor Table : Cette table contient la liste des voisins du routeur ainsi que leurs informations.
  • Topology Table : Cette table contient tous les différents chemins possibles vers les différents sous-réseau, qu’ils soient bons ou mauvais.
  • Routing Table : Cette table contient la liste des chemins réellement utilisés pour atteindre le sous-réseau de destination.

 

 

Router ID :

Chaque routeur possède un router ID unique dans le réseau OSPF. Ce router ID est configuré manuellement ou sinon l’adresse IP de l’adresse loopback active la plus haute est configurée comme router ID. Si il n’y a pas de loopback, l’adresse de l’interface physique active la plus haute est configurée comme router ID. Ce router ID est utilisé ensuite pour identifier les routeurs dans le réseau OSPF.

 

 

Coût :

Pour choisir le chemin approprié lorsque plusieurs routes sont disponibles par différentes interfaces, OSPF utilise la notion de coût. En fonction de la bande passante (BP) des différentes interfaces du routeur, un chemin en particulier sera retenu. La formule pour le calcul du coût est :

Coût = BP de référence / BP interface

 

Comme on le voit OSPF utilise une bande passante de référence pour calculer le coût du lien. Cette valeur de référence est par défaut 100 Mbps. Cela signifie que tous les liens supérieurs à 100 Mbps compris, auront le même coût. Cette valeur avait son sens lorsque les débits n’étaient pas élevés mais aujourd’hui avec l’augmentation des débits sur les interfaces, cette valeur n’a plus de sens et doit être modifiée si l’on veut prendre en compte les vitesses d’interface supérieurs.

On peut comparer avec les deux tableaux suivants la différence en modifiant la valeur de la bande passante de référence :

On constate bien qu’en modifiant la valeur de la bande passante de référence, les différentes interfaces seront bien pris en compte pour le choix du chemin optimale.

 

 

 

Etats

Pour établir une session avec un voisin, le routeur procède à plusieurs échanges de messages avec plusieurs états :

 

 

  • Down : Etat de base, aucun message OSPF n’a été échangé.
  • Init : Le routeur envoie des paquets « Hellos » pour indiquer sa présence. Lorsqu’un routeur reçoit un message Hello, il entre également dans l’état Init.
  • 2-way : Les routeurs entrent dans l’état 2-way lorsque dans le paquet hello qui contient la liste des voisins OSPF, ils détectent leur propre RID.
  • Exstart : Les routeurs s’échangent des paquets DBD (Database Description) pour négocier qui sera le maître et qui sera esclave dans la relation. Le routeur avec le RID le plus haut sera élu maître.
  • Exchange : Dans cet état les routeurs s’échangent des message DBD pour comparer les informations contenus dans leur base de données pour pouvoir par la suite demander des informations de routage complète sur une route qu’il ne connaissent pas.
  • Loading : Dans cette phase, après que les routeurs aient comparés leurs bases de données ils vont pouvoir demander des informations complètes concernant une route en utilisant des paquets de type 3 LSR (Link-State Request). Lorsque un routeur reçoit un paquet LSR, il va répondre en envoyant une mise à jour avec un paquet LSU (Link-State Update). Ces paquets contiennent les LSA (Link-Stat Advertisement) qui sont les informations concernant la route. Les paquets LSU sont ensuite validés par un accusé de réception LSAck (link-state acknowledgment)
  • Full : Lorsque toutes les informations ont étés échangées entre les routeurs, ils entrent dans l’état Full. La session est complètement établie entre les routeurs.

 

 

DR/BDR

Dans le diagramme, on peut voir qu’il y’a une étape qui n’a pas été décrite qui est l’élection du DR (Designated Router) et du BDR (Backup Designated Router).

Cette élection n’intervient pas dans le cas où l’on est dans une topologie point-à-point étant donné qu’il n’y a dans ce cas que deux routeurs et donc cette fonctionnalité n’est pas utile.

Les DR et BDR servent de point central pour diminuer la quantité de paquets LSA qui sont diffusés sur le réseau pour envoyer les mise à jour.

Sans DR tous les routeurs enverraient les mises à jour à tous le monde et donc cela générerais un très grand nombre de messages inutiles. Avec l’utilisation de DR, tous les routeurs envoient les mises à jour uniquement aux DR/BDR et ce n’est que ceux-ci qui répercutent ces mises à jours aux autres routeurs.

Le routeur qui à la priorité configurée la plus haute est élu DR et le second BDR. Si la priorité est la même pour tous les routeurs, celui qui a le RID le plus élevé est élu DR. Si la priorité est configurée à 0, alors le routeur ne peut pas être élu DR.

Les autres routeurs qui ne sont ni DR, ni BDR sont considérés comme DROTHER.

Lorsque les routeurs envoient une mise à jour au DR, ils envoient les paquets à l’adresse multicast 224.0.0.6. Les routeurs DR envoient ensuite ces mises à jour aux autres routeurs sur l’adresse multicast 224.0.0.5.

 

 

Areas

Dans OSPF, il existe plusieurs types d’area (ou zone en français). La segmentation du réseau en différentes area permet de réduire la quantité d’informations transmises par les routeurs et donc de diminuer l’utilisation CPU des routeurs. Comme on va le voir en fonction des area utilisées il n’y aura qu’une certaine quantité d’informations, c’est-à-dire qu’il n’y aura que certains types de paquets LSA qui vont pouvoir être transmis d’une area à une autre.

 

Types de paquets LSA

Les différents types de paquets LSA sont :

  • Type 1 – Le LSA type 1 est généré par le routeur pour informer des liens qui sont directement connecté à lui
  • Type 2 – Le LSA type 2 est généré par le DR et décrit tous les routeurs de l’area
  • Type 3 – Le LSA type 3 est généré par un ABR pour transmettre un résumé des routes d’une area à une autre
  • Type 4 – Le LSA type 4 est généré par un ASBR et permet de faire connaître aux autres area le routeur ASBR
  • Type 5 – Le LSA type 5 est généré par un ABR pour redistribuer dans une area une route apprise par un autre protocole de routage
  • Type 7 – Le LSA type 7 est généré par un ASBR pour redistribuer une route externe dans une NSSA

 

 

Types de routeurs

Dans les areas on trouve plusieurs types de routeurs en fonction de leur positionnement dans l’area.

Les différents type de routeurs sont :

  • Internal Router : Représente un routeur interne à une area
  • Backbone Router : Représente un routeur à l’intérieur de la Backbone area
  • Area Border Router (ABR) : Représente un routeur qui a une interface dans minimum 2 areas différentes.
  • Autonomus System Boundary Router (ASBR) : Représente un routeur qui a une interface dans une area OSPF et une autre interface dans un autre protocole de routage.

 

 

Types d’areas

Les différents types d’areas sont donc :

  • Backbone Area (Area 0) : La Backbone area est une area standard mais elle est le point central d’un réseau OSPF. Il n’y en a qu’une seule par architecture et toutes les autres areas doivent être connectées à la backbone area
  • Standard Area : L’area standard est une area normale. Elle doit être connectée à l’area 0. Elle peut faire transiter les paquets LSA de type 1,2,3,4,5

  • Stub Area : L’area Stub est utilisé pour réduire le nombre de LSA. L’area Stub accepte les LSA de type 1,2 et 3 mais ne propage pas les routes externes LSA type 5 mais une route par défaut à la place. Pour qu’une area puisse être configurée en stub, il faut que tous les routeurs de l’area soient configurés en mode « stub ».
  • Totally Stub Area : L’area Totally Stub, tout comme la stub area ne propage pas les routes externes LSA type 5 mais elle ne propage pas non plus les routes inter-area LSA type 3, tout cela est remplacé simplement pour une route par défaut.
  • Not So Stubby Area (NSSA) : L’area NSSA a les mêmes caractéristiques que l’area stub mais pas totalement. Contrairement à l’area stub elle accepte les routes externes générées par un ASBR. Ces routes externes sont de type LSA type 7. Ces routes sont converties en LSA type 5 avant d’être redistribuées dans les autres areas.
  • Totally NSSA : L’area Totally NSSA ressemble à l’area NSSA à la différence qu’elle ne propage pas cette fois-ci les paquets LSA type 3 mais les remplace par une route par défaut.

 

 

Network Type

OSPF peut fonctionner avec différentes topologies différentes :

  • Broadcast : Broadcast est la topologie par défaut. Les paquets sont envoyés en broadcast et en multicast pour communiquer avec ses voisins. Dans cette topologie, il y’a une élection du DR et du BDR.

 

 

  • Nonbroadcast Multi Access(NBMA) : NBMA est utilisé pour simuler un mode broadcast là ou il n’y a pas de Broadcast ou de Multicast (par exemple : frame-relay). Toutes les communications avec les voisins sont faites en Unicast. Il y’a également une élection DR/BDR.

 

 

  • Point-to-Point : Comme son nom l’indique le mode Point-to-Point est utilisé pour faire dialoguer deux routeurs directement. Les paquets sont envoyées en Multicast. L’élection d’un DR/BDR n’est pas nécessaire dans ce cas-la.

 

 

  • Point-to-Multipoint : Point-to-Multipoint est un mode spécial du NBMA. Cette topologie consiste en de multiples connections Point-to-Point. L’élection d’un DR/BDR n’est donc pas nécessaire. Les paquets sont envoyé en Multicast.

 

 

  • Point-to-Multipoint Non Broadcast : Dans cette topologie un circuit individuel est crée pour chaque connexion avec un voisin. Les paquets sont envoyé en Unicast. Il n’y a pas d’élection de DR/BDR

 

Virtual Link

Comme on l’a vu, toutes les areas standards doivent être connectées à la backbone area. Il peut arriver dans certains cas que l’on ne puisse pas connecter une area directement à la backbone area. Dans ce cas-là il existe un mécanisme dans OSPF, les virtual links ou lien virtuels qui permettent à une area d’utiliser une area de transit pour se connecter à la backbone area.

Comme on le voit sur l’image, l’area 3 utilise l’area 1 comme area de transit pour venir se connecter à l’area 0.

Ceci doit rester temporaire car il n’est pas recommandé d’utiliser cette solution comme solution permanente.

 

 

Authentification

Il est possible dans OSPF d’utiliser un mécanisme d’authentification pour sécuriser les connections entre le routeurs. Dans OSPF il existe donc 3 types d’authentification :

  • Null : Appelé aussi Type 0, dans ce cas-la il n’y a pas authentification.
  • Plain Text : Authentification de Type 1, cette méthode utilise des mots de passe en clair.
  • MD5: Authentification de Type 2, cette dernière méthode utilise la méthode de hachage MD5.

 

 

Configuration

 

Exemple de configuration pour activer OSPF entre deux routeurs Cisco :

R1(config)#router ospf 1
R1(config-router)#network 192.168.1.0 0.0.0.255 area 0

R2(config)#router ospf 1 
R2(config-router)#network 192.168.1.0 0.0.0.255 area 0


R1#sh ip ospf neighbor

Neighbor ID Pri State Dead Time Address Interface
192.168.1.2 1 FULL/DR 00:00:34 192.168.1.2 FastEthernet0/0

R2#sh ip ospf neighbor

Neighbor ID Pri State Dead Time Address Interface
192.168.1.1 1 FULL/BDR 00:00:32 192.168.1.1 FastEthernet1/0