En Une :

OSPF (1) Introduction à OSPF

Voici le premier article d'une série sur OSPF. Le protocole OSPF (Open Shortest Path First) a été développé par l'IETF pour répondre au besoin d'un protocole de routage intérieur (IGP, Internal Gateway Protocol) dans la pile des protocoles TCP/IP, non-propriétaire et hautement fonctionnel. La version actuelle d'OSPFv2 est décrite dans le RFC 2328 (1998). Une version 3 est définie dans le RFC 5340 qui permet l'utilisation de OSPF dans un réseau IPv6 (2008) et même d'embarquer des routes IPv4. OSPF est un protocole de routage à états de liens.

1.1. Protocole de routage à état de lien

Un protocole de routage à état de lien utilise un algorithme (plus) efficace (que RIP, Dijkstra ou Shortest Path First). Les routeurs collectent l'ensemble des coûts des liens et construisent de leur point de vue l'arbre de tous les chemins possibles. Les meilleures routes sont alors intégrées à la table de routage.

  • On parlera de routage hiérarchique (à deux niveaux).

  • On citera OSPF et IS-IS.

  • Ils convergent très rapidement.

  • Les routeurs entretiennent des relations de voisinage maintenues.

1.2. Distances administratives (par défaut)

La distance administrative est le poids administratif d'une route apprise par un protocole de routage. Une distance administrative faible donne la préférence pour une route apprise quelle que soit la méthode de routage. Les distances administratives ont une valeur par défaut. Une route EIGRP sera préférée à une route RIP. Par défaut, une route statique sera préférée à toute autre route dynamique.

Méthode de routage Distance administrative
Réseau connecté 0
Route statique 1
Ext-BGP 20
Int-EIGRP 90
OSPF 110
IS-IS 115
RIP 120
Int-BGP 200
Inconnu 255

1.3. Comparatif protocoles de routage

Vecteur de distance Etat de lien
Algorithme Bellman-Ford (RIP) Algorithme Dijkstra (OSPF)
Facile à configurer Compétences requises
Partage des tables de routage Partage des liaisons
Réseaux plats Réseaux conçus (design) organisés en areas
Convergence plus lente Convergence rapide, répartition de charge
Topologies limitées Topologies complexes et larges
Gourmand en bande passante Relativement discret
Peu consommateur en RAM et CPU Gourmand en RAM et CPU
Mises à jour régulière en broadcast/Multicast Mises à jour immédiate
Pas de signalisation Signalisation fiable et en mode connecté
RIPv1 - UDP520 - 255.255.255.255, RIPv2 - UDP520 - 224.0.0.9, EIGRP - Cisco Systems (DUAL) OSPFv2/v3 - IP89 - 224.0.0.5, 224.0.0.6, FF02::5, FF02::6, IS-IS

1.4. OSPF (Open Shortest Path First)

Le protocole OSPF (Open Shortest Path First) a été développé par l'IETF pour répondre au besoin d'un protocole de routage intérieur (IGP, Internal Gateway Protocol) dans la pile des protocoles TCP/IP, non-propriétaire et hautement fonctionnel.

Les discussions sur la création d'un IGP commun et interopérable pour l'Internet commencèrent en 1987.

La version actuelle d'OSPFv2 est décrite dans le RFC 2328 (1998). Une version 3 est définie dans le RFC 5340 qui permet l'utilisation de OSPF dans un réseau IPv6 (2008) et même d'embarquer des routes IPv4.

Son principal concurrent sur les infrastructures homogènes d'entreprises est EIGRP, propriétaire Cisco.

OSPF est un protocole de routage à états de liens.

1.5. Comparatif OSPF/RIP

Il n'y a pas de limite du nombre de sauts comme en RIP. OSPF étant un protocole de routage à état de lien, chaque routeur possède une connaissance complète des réseaux au sein d'une zone (area). Aussi, le danger des boucles de routage n'étant a priori plus présent, la limite du nombre de sauts n'est plus nécessaire.

L'utilisation intelligente du VLSM (masques à longueur variable) améliore les plans d'adressage (allocations d'adresses IP). OSPF supporte aussi l'agrégation et la "summarization" de routes.

Il utilise le Multicast pour envoyer ses mises à jour d'état de lien. Aussi, ces mises à jour sont envoyées uniquement lors d'un changement de topologie. On économise la bande passante. Les mises à jour sont seulement incrémentielles et opportunes.

OSPF offre une meilleure convergence que RIP parce que les changements de routage sont propagés instantanément et (non périodiquement) de manière incrémentielle grâce aux relations de voisinage entretenues.

OSPF est meilleur pour la répartition de charge (load balancing).

Le choix du meilleur chemin est basé sur le coût (la bande passante inversée). Cette métrique peut être définie manuellement sur les interfaces.

OSPF permet une définition logique des réseaux où les routeurs peuvent être répartis en zones (area). Cette fonctionnalité empêche une explosion de mises à jour d'états de lien sur l'ensemble du réseau. C'est aussi au niveau des zones que l'on peut agréger les routes et stopper la propagation inutile des informations de sous-réseaux existants.

OSPF autorise l'authentification de routage par l'utilisation de différentes méthodes d'identification avec mots de passe.

Il permet le transfert et l'étiquetage des routes extérieures injectées dans un Système Autonome (AS) pour permettre de les maintenir par des EGPs comme BGP.

1.6. Les éléments clés de OSPF

Les routeurs OSPF entretiennent une relation orientée connexion avec les routeurs d'un même segment physique. Dans la terminologie OSPF, on parlera d'adjacency, en français, d'adjacence ou de contiguïté.

Au lieu d'envoyer des mises à jour entières lors d'un changement topologique, OSPF envoie des mises à jour incrémentielles.

OSPF n'est pas limité par une segmentation dépendante de l'adressage IP ou des sous-réseaux, il utilise la notion d'area (zone) pour désigner un groupe de routeurs.

OSPF supporte entièrement les possibilités du VLSM et de la "summarization" manuelle des routes.

Grâce à la possibilité de donner des rôles particuliers aux routeurs, la communication inter-area/inter-routeurs est efficace.

Bien que OSPF permette une communication inter-area, il reste un protocole de routage intérieur (IGP).

1.7. Que signifie Link-States / Etats de liens ?

OSPF est un protocole à état de lien.

  • Nous pouvons penser qu'un lien est l'interface d'un routeur.

  • L'état d'un lien est une description de cette interface et de la relation qu'elle entretient avec ses routeurs voisins.

  • Une description de cette interface pourrait comprendre, par exemple, son adresse IP, le masque, le type de réseau connecté, les routeurs connectés, etc.

L'ensemble de ces états de liens forme la link-state database. La link-state database ou topology table, est identique sur tous les routeurs d'une area (zone).

1.8. Exemple d'état de lien OSPF

Un Link State Advertisement (LSA) est l'information de routage échangée par les routeurs dans des messages Link State Update (LSU).

LSA OSPF

1.9. Support d'IPv6 : OSPFv3

OSPFv2 et OSPFv3 ont des messages, un algorithme et un fonctionnement très proches.

Parmi d'autres, on notera au moins deux différences. En OSPFv3 :

  • Des messages renommés et nouveaux
  • Deux approches de configuration OSPFv3 sous Cisco IOS :
    • Une configuration traditionnelle (uniquement IPv6)
    • L'approche par address-family (supportant le transport en IPv6 des routes IPv4 et des routes IPv6)

2. Zone OSPF

2.1. Area ou zone

Une caractéristique principale d'OSPF est de supporter des interréseaux très larges grâce au regroupement des routeurs dans des entités logiques appelées areas ou zones.

La communication inter-areas ne laisse passer que les échanges d'information minimale de routage dans le seul objectif de connecter les zones entre elles.

Il en résulte que les efforts de calcul de routes ne s'opèrent qu'au sein d'une même zone.

Les routeurs d'une zone ne sont pas affectés (en calcul) par les changements intervenus dans une autre zone.

Dans un contexte où OSPF demande beaucoup de ressources en CPU et en mémoire, cette notion de conception est très importante.

2.2. Opérations et rôles

Un routeur OSPF peut prendre en charge trois types d'opérations :

  1. opérations dans une zone,
  2. connexions inter-zones
  3. et connexions avec d'autres systèmes autonomes (AS).

Un routeur OSPF remplit un rôle et une responsabilité particulière qui dépend de la hiérarchie OSPF établie :

  1. Internal Router (IR)
  2. Backbone Router (BR)
  3. Area Border Router (ABR)
  4. Autonomous System Boundary Router (ASBR)

IR BR ABR ASBR OSPF

Internal Router (IR)

Un IR remplit des fonctions au sein d'une zone (area) uniquement, autre que la zone Backbone.

Sa fonction primordiale est d'entretenir à jour avec tous les réseaux de sa zone (area) sa base de données d'états de lien (link-state database) qui est identique sur chaque IR.

Il renvoie toute information aux autres routeurs de sa zone (area), le routage ou L'inondation (flooding) des autres zones requiert L'intervention d'un Area Border Router (ABR).

Backbone Router (BR)

Une des règles de conception OSPF est que chaque zone (area) dans l'interréseau doit être connectée à une seule zone, la zone 0 ou la backbone area.

Les BR ont une interface connectée à la backbone area.

Area Border Router (ABR)

Un ABR connecte au moins deux zones (area) dont l'area 0.

Un ABR possède autant de bases de données d'états de lien qu'il y a d'interfaces connectées à des zones différentes.

Chacune de ces bases de données contient la topologie entière de la zone connectée et peut donc être "summarizée", c'est-à-dire agrégée en une seule route IP.

Ces informations peuvent être transmises à la zone de backbone pour la distribution.

Un élément clé est qu'un ABR est l'endroit où l'agrégation doit être configurée pour réduire la taille des mises à jour de routage qui doivent être envoyées ailleurs.

Donc quand on parle des capacités de OSPF de minimiser les mises à jour de routage, on peut directement penser au rôle rempli par les ABR.

Autonomous System Boundary Router (ASBR)

OSPF est un IGP (Interior Gateway Protocol), autrement dit il devra être connecté au reste de l'Internet par d'autres AS.

Ce type de routeur fera en quelque sorte office de passerelle vers un ou plusieurs AS. L'échange d'information entre un AS OSPF et d'autres AS est le rôle d'un ASBR.

Les informations qu'il reçoit de l'extérieur seront redistribuées au sein de l'AS OSPF.

2.3. Fonctionnement dans une zone

  1. Pour chaque zone (area) une table d'états de lien est construite et maintenue.

  2. La table de routage est construite à partir de cette base de données.

  3. Ce résultat est obtenu grâce à l'application de l'algorithme de routage SPF.

Étape 1 : Découverte des voisins

D'abord, l'interface d'un routeur doit trouver ses voisins et entretenir une relation avec chaque voisin L2.

Il utilise des paquets Hello.

Dès son initialisation ou à la suite d'un changement dans la topologie, un routeur va générer un link-state advertisement (LSA).

Cette annonce va représenter la collection de tous les états de liens de voisinage du routeur.

Étape 2 : Inondations et mises à jour

Tous les routeurs de la zone (area) vont s'échanger ces états de liens par inondation (flooding).

Chaque routeur qui reçoit des mises à jour d'état de lien (link-state update), en gardera une copie dans sa link-state database et propagera la mise à jour auprès des autres routeurs.

Étape 3 : Calcul des routes

Après que la base de données de chaque routeur a été complétée, chacun va calculer l'arbre du chemin le plus court (Shortest Path Tree) vers toutes les destinations avec l'algorithme Dijkstra.

Il construira alors la table de routage (routing table), appelée aussi forwarding database, en choisissant les meilleures routes à inscrire.

Étape 4: Maintenance des routes

S'il n'y a pas de modification topologique, OSPF sera très discret.

Par contre en cas de changement, il y aura échange d'informations (par des paquets d'état de lien) et l'algorithme Dijkstra recalculera les chemins les plus courts à inscrire dans la table de routage.

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.