Open shortest path first

Un article de Wikipédia, l'encyclopédie libre.

Pile de protocoles
Application
Présentation
Session
Transport
Réseau
Liaison de données
Physique
Modèle OSI

OSPF (Open Shortest Path First) est un protocole de routage IP interne de type protocole à état de liens (link-state protocol)

Sommaire

[modifier] Fonctionnement général

Dans OSPF, chaque routeur établit des relations d'adjacence avec ses voisins immédiats en envoyant des messages hello à intervalle régulier. Chaque routeur communique ensuite la liste des réseaux auxquels il est directement connecté par des messages LSA (Link-State Advertisements) propagés de proche en proche à tous les routeurs du réseau. L'ensemble des LSA forme la base de données des liens Link-State Database (LSDB), qui est identique pour tous les routeurs participants. Chaque routeur utilise ensuite l'algorithme de Dijkstra, Shortest Path First pour déterminer la route la plus courte vers chacun des réseaux connus dans la LSDB.

Le bon fonctionnement d'OSPF requiert donc une complète cohérence dans le calcul SPF, il n'est donc par exemple pas possible de filtrer des routes ou de les résumer à l'intérieur d'une aire (voir plus loin).

En cas de changement de topologie, de nouveaux LSA sont propagés de proche en proche, et l'algorithme SPF est exécuté à nouveau sur chaque routeur.

[modifier] Métrique

OSPF utilise une métrique numérique simple, basée sur un coût additif. La valeur par défaut du coût d'un lien est de 108/bande passante du lien en bit/s. Un lien de 10 Mbit/s aura par exemple un coût de 10. Pour tenir compte des connexions à très haute vitesse (1 Gbit/s et plus), on peut fixer manuellement le coût de chaque lien, ou bien fixer une bande passante de référence supérieure à celle par défaut.

[modifier] Répartition de la charge

OSPF est capable de répartir la charge sur plusieurs liens, pour autant que la métrique soit exactement identique pour chaque destination.

[modifier] Notion d'aire

Afin d'éviter de propager la totalité de la base de données des liens et de limiter l'impact négatif du flapping (alternance rapide dans la disponibilité d'un lien physique), on segmente l'ensemble des routeurs en groupes connexes appelés aires, à la frontière desquels on peut procéder à des résumés. Les routeurs à la frontière des aires sont appelés Area Border Router (ABR)

Il existe toujours une aire dorsale (backbone area ou area 0) à laquelle toutes les aires doivent être directement connectées.

Un routeur qui injecte dans OSPF des routes depuis un autre protocole de routage ou des routes statiques est appelé Autonomous System Border Router (ASBR), ces routes seront marquées comme externes dans OSPF.

[modifier] Adjacence sur un réseau à diffusion

Une relation d'adjacence est nécessaire pour que les routeurs OSPF se partagent des informations de routage. Dans un réseau Ethernet si chaque routeur devait établir une contiguïté avec chaque autre routeur et échanger des informations d’état de liens la charge serait excessive, le nombre d'adjacences étant de n*(n-1)/2, soit en O(n2). Pour pallier ce problème, on choisit un DR (routeur désigné) qui va recevoir toutes les informations sur l'état des liens et les retransmettre aux autres routeurs. Celui-ci devenant un point critique du réseau, on désigne aussi un BDR (routeur désigné de secours). Le nombre d'adjacence est donc en O(n).

OSPF utilise uniquement du multicast pour discuter avec les deux adresses suivantes :

  • 224.0.0.5 utilisé par le routeur désigné (DR) pour envoyer les informations d’état de liens à tous les autres routeurs sur le segment.
  • 224.0.0.6 utilisé par tous les routeurs pour envoyer les informations d'état de liens vers les routeurs désignés (DR et BDR).

[modifier] L’algorithme de Dijkstra

OSPF utilise cet algorithme pour déterminer le meilleur chemin à prendre. On le nomme aussi algorithme SPF (Shortest Path First) ou algorithme du plus court chemin d’abord. Il a été formulé par Edsger Dijkstra.

Basé sur l'algorithme de Dijkstra, OSPF déclenche ses mises à jour à chaque changement dans la topologie du réseau, ce qui permet de réduire le temps de convergence. À partir d'une mise à jour, un routeur met en place une base de données topologique permettant le calcul de l'accessibilité aux réseaux grâce au calcul d'un arbre de la topologie à l'aide de l'algorithme.

[modifier] Avantages et inconvénients

[modifier] Avantages d'OSPF

  • C'est un standard IETF qui fait l'objet du RFC2328[1], il fait donc l'objet d'implémentations par de nombreux vendeurs et ne pose pas de problème d'interopérabilité, il est de ce fait particulièrement populaire,
  • son temps de convergence est particulièrement rapide, de l'ordre de quelques secondes,
  • il intègre la notion de taille de masque variable (VLSM), indispensable à la gestion des réseaux sans classe actuels,
  • il est économe en bande passante: en régime, seuls de courts messages hello sont envoyés, et en cas de changement de topologie, seuls les LSA modifiés sont envoyés aux voisins. Chaque routeur retransmet l'ensemble de ses LSA à ses voisins toutes les trente minutes.

[modifier] Inconvénients d'OSPF

  • comme chaque routeur dispose de la totalité de la base de données de liens, tous doivent disposer de la capacité mémoire suffisante pour la stocker,
  • la capacité CPU joue un rôle dans le calcul SPF et donc la vitesse de convergence, en particulier pour les topologies complexes et instables,
  • OSPF est sensible au phénomène de flapping,
  • la configuration d'OSPF est plus complexe, principalement si le réseau est segmenté en aires,
  • le concept de backbone area peut limiter les topologies possibles,
  • il ne permet pas la répartition de la charge sur plusieurs liens de métrique différente, comme EIGRP peut le faire,
  • OSPFv2 est spécifique à IP. Pour d'autres protocoles, comme par exemple IPv6, une nouvelle version du protocole est nécessaire: OSPFv3[2]

[modifier] Voir aussi

Les autres protocoles de routages internes utilisés actuellement sont EIGRP (propriétaire Cisco) RIP Routing Information Protocol et IS-IS.

[modifier] Références

  1. RFC2328: OSPF Version 2
  2. RFC2740: OSPF for IPv6

[modifier] Liens externes et bibliographie