Blog de Johan Denoyer

Aller au contenu | Aller au menu | Aller Ă  la recherche

OSPF : Open Shortest Path First

Après la publication de l'article parlant de RIP rédigé par Johan Denoyer.

Après pas mal de lecture, beaucoup d’échanges avec lui (un grand merci pour la patience), je me suis proposé de continuer dans son sillage et bosser sur une présentation du protocole de routage souvent utilisé aujourd’hui, OSPF.

Je pensais faire une brève présentation d’OSPF, mais finalement, il se peut que je sois allé plus loin qu’une simple présentation.

Je ne sais pas si j’ai été assez clair dans mes explications, mais dans le doute, je reste disponible via les commentaires ou par mail : jimmy[No-Spam]marchetto.at

Bon, attaquons par le commencement…

RĂ´le du routage

Le terme routage désigne le mécanisme par lequel les paquets IP d’un équipement expéditeur sont acheminées jusqu’à leur destinataire, même si aucun des deux ne connaît le chemin complet que les données devront suivre. Tous les appareils connectés à Internet possèdent une table de routage. Du point de vue du routage on distingue deux types logiques d’appareils : les terminaux, ou hôtes, qui sont généralement reliés à un seul réseau et qui ont par conséquent une table de routage simple et les routeurs qui relient au minimum deux réseaux et possèdent une table de routage plus complexe.

Pour ce qui est du routage,  nous intervenons Ă  la troisième couche du modèle OSI (RĂ©seau). L’itinĂ©raire est alors enregistrĂ© dans une table appelĂ©e “table de routage”.

Mécanisme de routage

Les tables de routages peuvent être configurées en dur sur le routeur, on parle alors de “routage statique”.

La maintenance des tables de routages des routeurs importants ne pouvant être raisonnablement effectuée manuellement (même si cette manipulation peut être plus sécurisée), on a défini des protocoles de routage permettant d’échanger les informations de routage entre les routeurs. C’est que nous appelleront le “routage dynamique”.

Ces protocoles fonctionnent de différentes façons : ils peuvent échanger à intervalles réguliers uniquement les changements dans les tables de routage comme le protocole OSPF. Ils peuvent aussi échanger toute la table de routage comme le protocole RIP ou IGRP ou encore un hybride des deux comme EIGRP qui échangent la totalité des tables de routage dès qu’il y a modification de l’une d’elles.

Les IGP sont des protocoles fonctionnant à l’intérieur d’un système autonome. Et là vous allez me dire, « Système quoi ? ».

Système autonome

Un système autonome est un ensemble de rĂ©seaux interconnectĂ©s par des routeurs. Les systèmes autonomes sont reliĂ©s entre eux par des routeurs externes. Un système autonome correspond Ă  un groupe de routeurs dĂ©pendant d’une mĂŞme responsabilitĂ© administrative du point de vue du routage et appliquant une politique de routage unique. On distingue donc les protocoles de routage interne au sein d’un système autonome des protocoles externes qui concernent le trafic entre systèmes autonomes. Les protocoles de routage externe privilĂ©gient les informations d’accessibilitĂ© par rapport aux informations de topologie de rĂ©seau. Un rĂ©seau IP appartient Ă  un seul système autonome. Le principal protocole de routage externe est BGP. L’internet est composĂ© d’un ensemble de systèmes autonomes reliĂ©s entre eux par des routeurs externes. Un système autonome utilise un protocole de routage interne tel que RIP, OSPF, ISIS, BGP ou IGRP. Chaque AS est identifiĂ© par un entier de 16 bits (passĂ© rĂ©cemment Ă  32 bits, avec la RFC 4893 que je ne dĂ©crirais pas ici mais qui est consultable ici) qui est utilisĂ© par le protocole de routage BGP. Sur Internet, cet identifiant est assignĂ© par les organisations qui allouent les adresses IP, les RIR (Registre Internet RĂ©gional). Les nombres de 1 Ă  64511 sont rĂ©servĂ©s pour une utilisation publique (Internet) tandis que ceux de 64512 Ă  65535 sont rĂ©servĂ©s pour un usage privĂ© au sein d’une organisation. Ça c’est pour les systèmes autonomes avant la RFC 4893. Depuis cette RFC, le nombre d’AS pouvant ĂŞtre attribuĂ©s est de 4 294 967 296 numĂ©ros… La norme de nommage est dĂ©sormais x.y oĂą « x Â» et « y Â» reprĂ©sentent deux nombres codĂ©s en 16 bits. La première sĂ©rie de 65535 AS auront des numĂ©ros allant de 1.0 Ă  1.65535. Les 65535 suivants allant de 2.0 Ă  2.65535… et ainsi de suite. Vous voulez plus d’infos ? C’est par ici.

Le protocole OSPF

Description

OSPF (Open Shortest Path First) utilise l’algorithme Shortest Path First créé par Dijkstra (algorithme publié en 1959).

OSPF est un protocole à état de liens alors que les protocoles RIP V1 et RIP V2 sont des protocoles à vecteurs distance. Pour les novices, ces derniers mots barbares doivent faire mal à la tête… Je vous explique. On distingue généralement deux types de routage :

Les routeurs de type vecteur de distance (distance vector) établissent une table de routage recensant en calculant le « coût » (en termes de nombre de sauts) de chacune des routes puis transmettent cette table aux routeurs voisins. A chaque demande de connexion le routeur choisit la route la moins coûteuse.

Les routeurs de type link state (link state routing) écoutent le réseau en continu afin de recenser les différents éléments qui l’entourent. A partir de ces informations chaque routeur calcule le plus court chemin (en temps) vers les routeurs voisins et diffusent cette information sous forme de paquets de mise à jour. Chaque routeur construit enfin sa table de routage en calculant les plus courts chemins vers tous les autres routeurs (à l’aide de l’algorithme de Dijkstra).

Ces deux protocoles diffèrent considérablement dans leur manière de procéder. La plus grande différence porte sur la quantité d’informations échangée par les routeurs. Les protocoles à vecteurs de distance annoncent peu d’informations; un routeur ne prend connaissance d’autres routeurs que s’il reçoit des mises à jour broadcast de leur part. En outre, une mise à jour ne comprend aucune indication concernant les routeurs situés au delà du routeur voisin qui l’a émise. A l’inverse, les protocoles à états de liens, transmettent de nombreuses informations sur la topologie du réseau, et les routeurs effectuent des calculs couteux en ressources processeur à partir de ces données. Ces derniers découvrent même leurs voisins avant d’avoir échangés avec eux des informations de routage.

Fonctionnement

Une relation de voisinage est nĂ©cessaire pour que les routeurs OSPF se partagent des informations de routage, ainsi, si chaque routeur doit Ă©tablir une adjacence avec chaque routeur prĂ©sent dans la mĂŞme aire (area)  et Ă©changer leurs informations, cela va devenir très vite lourd.

Par exemple, 5 routeurs nécessitent 10 relations, 10 routeurs nécessitent 45 relations (Formule : (n*n-1)/2 ). Pour éviter ceci, une élection va s’effectuer dans le réseau pour élire un routeur désigné (DR - Designated Routeur). Ce routeur devient adjacent pour tous les routeurs, et tous les routeurs envoient leurs informations au DR. Du coup, pour un réseau de 5 routeurs, il ne faudra plus que 5 relations, et 10 relations pour 10 routeurs. Le DR envois 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’efficacité d’élection du DR, il reste une grosse faiblesse : le DR devient un point central de défaillance. Il y a donc élection d’un second routeur, le BDR (Backup Designated Router) qui pourra remplacer la fonction du DR en cas de problème. Tous les routeurs envoient leurs informations au DR et au BDR en utilisant l’adresse multicast 224.0.0.6.

Authentification

Pour communiquer entre eux, les routeurs doivent s’authentifier. Il existe deux types d’authentification entre les routeurs au sein d’une zone.
Le premier via un mot de passe et le second via un processus de hachage (Message Digest authentication : MD5).

L’authentification par mot de passe est la moins sure des deux. En effet, les routeurs se transmettent ce mot de passe en clair (12345). L’authentification MD5 consiste en une clé (Key) et un key-id qui sont configurés sur chaque routeur. Chaque routeur générera une emprunte de 64 bits du paquet OSPF à envoyer en fonction de sa clé et de sa key-id grâce à l’algorithme de hachage MD5. Les destinataires n’auront qu’à effectuer la même opération pour vérifier que le message digest correspond et ainsi valider l’identité de l’expéditeur.

Conclusion

Bien que la version 2 d’OSPF soit la plus utilisée actuellement, OSPF en est à sa version 3 (Adaptation du protocole en prévision de l’IPv6). Cette nouvelle version pourrait intégrer un nouvel algorithme (TDSP) basé sur le même algorithme mais en cherchant un second chemin disjoint du premier pour éviter de refaire le calcul en cas de panne.
OSPF reste un protocole de routage compliqué à mettre en place. S’il n’est pas configuré correctement, il se peut qu’un routeur puisse gérer un réseau auquel il ne devrait pas avoir accès.

Je me répète, mais je suis preneur pour toutes critiques ou encouragements.

Jimmy.

Lectures 2457 lectures     Delicious

Commentaires

1. Le vendredi 16 janvier 2009, 12:59 par clucas

Merci ! super ton post Jimmy !

A+

Christophe

2. Le vendredi 16 janvier 2009, 14:06 par Jimmy Marchetto

Il n'y a pas de quoi.
J'espere en faire beaucoup d'autre comme ça (le prochain sur IS-IS...).

N'hesite pas Ă  passer sur mon blog aussi :-)

3. Le vendredi 16 janvier 2009, 15:35 par Fred

Aaaah !! L'algo de Dijkstra, c'est rien que du bon et en plus, pour un algo associé à la théorie des graphes, il est compréhensible...
En tout cas, excellent post Jimmy.

4. Le mercredi 21 janvier 2009, 10:00 par mat

Je voudrais faire une précision sur le dernier paragraphe, OSPFv2 est la version d'OSPF qui fonctionne avec IPv4 et uniquement IPv4, et OSPFv3 est la version d'OSPF qui fonctionne avec IPv6, et uniquement avec IPv6. Sur un réseau ou sont présents IPv4 et IPv6, et si IS-IS (qui lui, intètre les IPv4 et IPv6) n'est pas utilisé, OSPFv2 *et* OSPFv3 tournent en même temps.

5. Le mercredi 21 janvier 2009, 10:17 par clucas

Deux arbres ? Deux fois l'algorithme d'exécuter ? LSA en double ? Rien de mutualisé ?

Désolé si mes questions sont connes...

Amicalement,
Christophe

6. Le mercredi 21 janvier 2009, 10:32 par mat

Oui, tout en double, mais cela dit, toute l'infrastructure ne supporte pas forcément IPv4, alors, c'est pas plus mal, ça évite d'avoir à préciser dans les LSA que ce lien là, il fait que du v4, celui là, aussi du v6, celui là que du v6...
Cela dit, l'algorithme de djikstra tourne assez vite pour que ça ne soit pas un problème en général. Si ça devient un problème (et ça devient rarement un problème), c'est qu'il faut arrêter de mettre la zone 0 sur *tout* le réseau et la mettre uniquement sur le backbone, et si ce n'est pas possible, IS-IS est là, et à l'avantage d'être encore plus réactif aux changements de topologie.

7. Le mercredi 21 janvier 2009, 10:36 par clucas

Ok ! Merci Ă” grand maitre OSPF :-)

Amicalement,
Christophe

8. Le vendredi 20 mars 2009, 22:01 par Cedric

Question encore plus conne (mais vraiment...)...

Le protocole OSPF (ou RIP, ou ...) sont implémentés sur les routeur ; un "bête" client (un simple ordinateur) avec sa "bête" table de routage ne voit n'y ne comprend rien de tout ça, non ? En gros, un paquet part de mon PC, c'est seulement une fois arrivé au premier routeur que ces protocoles avancés de routage vont s'appliquer et faire que mon paquet va trouver le meilleur chemin...

Ce que j'essaie d'expliquer à mon boss, c'est que de toute façon le paquet est bien obligé de passer par un premier routeur et que ce n'est qu'à partir de celui-ci que ces protocoles vont s'exprimer ;) Mon PC n'a pas de table de routage dynamique que je sache... Et n'en a pas besoin en toute logique ! Au pire on lui indique nous-mêmes des routes pour qu'il envoie les paquets directement au 1er bon routeur...

Ou alors je suis carrément dans le faux...

9. Le vendredi 20 mars 2009, 22:38 par Johan Denoyer

@Cedric : c'est tout a fait cela. Certains personnes peuvent installer le protocole RIP sous Windows qui apparemment fait ou faisait partir des protocoles optionnels que l'on pouvais installer, mais je n'ai jamais testé, et ne sait pas si ca marche.

10. Le vendredi 20 mars 2009, 22:40 par mat

Alors, plusieurs choses Ă  dire :

Ton PC à *une* seule route dans sa table de routage, la route par défaut, suivant le système, tu aura d'autres routes qui apparaîtront mais elles concernent en général, le subnet sur lequel est branché le PC.

Les protocoles de routages dynamique ne s'appliquent pas quand un paquet arrive, mais avant, quand le réseau se met en place, quand un routeur est ajouté, qu'une liaison tombe, c'est à ce moment là que les protocoles de routages dynamiques font leur affaire et remplisse la base des routes (FIB) du routeur, le routeur utilise alors cette base des routes pour créer la table de routage (RIB) du routeur en utilisant les meilleures routes possibles à chaque fois.

11. Le dimanche 9 août 2009, 20:42 par raybones

Article très intéressant, mais je regrette que l'on ait pas un aperçu des différents types d'area... Un "part 2" peut-être??? :-)

12. Le mardi 6 avril 2010, 12:16 par NE40-E

est ce qu'un lient OSPF peut continuer par marcher si son ID qui est un adress lp ne marche plus?

Ajouter un commentaire

Le code HTML est affiché comme du texte et les adresses web sont automatiquement transformées.

La discussion continue ailleurs

URL de rĂ©trolien : http://www.digital-connexion.info/index.php/trackback/346

Fil des commentaires de ce billet