Objectif : Décrire le rôle d’un routeur et d’une table de routage, distinguer routage statique et routage dynamique, et comprendre les principes des protocoles RIP (vecteur de distance) et OSPF (état de liens).

1. Généralités

Lorsqu’un paquet doit traverser un réseau, il n’a aucune idée du chemin qu’il va suivre.
La fonction principale de la couche réseau est d’acheminer les paquets d’une source vers une destination. Le routeur est le matériel qui réalise ce travail.

Réseau de départ et réseau d’arrivée reliés par plusieurs routeurs
Un paquet doit traverser plusieurs routeurs pour aller d’un réseau de départ à un réseau d’arrivée.

À chaque étape, un routeur relaye (oriente) le paquet en se basant uniquement sur l’adresse de destination de ce paquet.

Au sein d’un réseau, le relayage consiste à :

Plusieurs chemins possibles entre deux routeurs
Il existe souvent plusieurs chemins possibles : quel chemin choisir ?

2. Table de routage

Pour choisir les bons chemins, les routeurs s’appuient sur une table de routage. C’est une grande liste qui contient :

Exemple de table de routage avec destinations, masques, passerelles et coûts
Exemple de table de routage : pour chaque destination, on indique le masque, la passerelle, l’interface et le coût.

Une entrée typique de table de routage contient par exemple :

Destination Netmask Gateway Interface Coût
137.194.2.0 255.255.254.0 137.194.4.254 v10 2

Ici, pour atteindre le réseau 137.194.2.0, le routeur envoie les paquets sur son interface v10, vers la passerelle 137.194.4.254.

Cette table doit évoluer en fonction des pannes, des nouveaux liens, des changements importants du réseau… C’est précisément le rôle des protocoles de routage de maintenir cette table à jour.

3. Rôle d’un protocole de routage

Un protocole de routage définit la manière dont les routeurs échangent des informations pour mettre à jour leurs tables de routage. On distingue notamment :

3.1. Routage centralisé ou statique

Dans un routage centralisé, un centre de contrôle possède une vision globale du réseau, calcule les meilleurs chemins, puis renvoie les tables à tous les routeurs.

Dans un routage statique, les routes sont configurées à la main dans chaque routeur (sans protocole de routage). Cela peut convenir pour des réseaux simples, mais devient vite ingérable pour de grandes topologies et ne tient pas compte de la charge du réseau.

Schéma d’un centre de contrôle qui distribue les tables de routage
Routage centralisé : un point de contrôle calcule et distribue les tables de routage.

3.2. Routage dynamique

Avec un routage dynamique, chaque routeur exécute un algorithme distribué qui lui permet de mettre à jour automatiquement sa table.

Propriétés attendues d’un bon algorithme de routage :

Il existe principalement deux grandes familles d’algorithmes de routage dynamique :

4. Routage par vecteur de distance : RIP

Les algorithmes à vecteur de distance sont basés sur l’algorithme de Bellman–Ford, utilisé dès les débuts d’ARPANET. Le protocole de routage RIP (Routing Information Protocol) en est une mise en œuvre classique.

4.1. Principe

Chaque routeur cherche à remplir sa table de routage en évaluant, pour chaque destination, le coût pour l’atteindre.

Le critère de coût est appelé la métrique. Suivant les protocoles, la métrique peut être :

Dans RIP, la métrique classique est simplement le nombre de sauts. Deux routeurs sont dits voisins s’ils possèdent une interface dans le même sous-réseau.

4.2. Fonctionnement de l’algorithme

Réseau utilisant RIP avant l’ajout du routeur R8
Avant Réseau RIP (sans R8).
Réseau utilisant RIP après l’ajout du routeur R8
Après Ajout de R8 : mise à jour automatique des tables de routage.

Après convergence (c’est-à-dire après que tous les routeurs ont échangé leurs informations et mis à jour leurs tables de routage), chaque routeur connaît le nombre de sauts pour rejoindre le nouveau réseau.
Par exemple :

Routeur Distance (sauts) Passerelle (gateway)
R11R8
R22R1
R32R1
R43R2
R53R3
R63R3
R74R4

Chaque routeur annonce périodiquement ses distances aux autres.

Le protocole RIP, bien que simple, présente plusieurs limites :

4.3. Gestion des pannes

Examinons maintenant le comportement du protocole RIP lorsqu’une panne survient dans le réseau.
Supposons par exemple que le routeur R4 tombe en panne. Dans ce cas, le routeur R7 ne dispose plus, à cet instant, d’une route valide vers le réseau 3.2.1.0.

Le routeur R7 détecte relativement rapidement la disparition de R4. En pratique, cette détection repose principalement sur l’absence de réception des messages RIP périodiques envoyés par R4. Après un certain délai sans nouvelles informations, R7 considère que la route via R4 n’est plus valide.

R7 associe alors un coût infini (16 sauts dans RIP) à la route vers le réseau 3.2.1.0, ce qui revient à indiquer que ce réseau est injoignable. Il attend ensuite de recevoir une meilleure proposition de route de la part d’autres routeurs voisins.

Cette nouvelle route peut, par exemple, être annoncée par les routeurs R5 ou R6. R7 compare alors les différentes annonces reçues, choisit la route présentant le plus petit nombre de sauts et met à jour sa table de routage en conséquence.

Cette phase d’échange d’informations se poursuit jusqu’à ce que tous les routeurs du réseau possèdent à nouveau des tables de routage cohérentes : on dit alors que le réseau a convergé.

Ce mécanisme de gestion des pannes fonctionne, mais il peut être lent et provoquer des incohérences temporaires. Ces limites expliquent le recours à des protocoles plus performants, comme OSPF.

5. Routage par état de liens : OSPF

Le protocole OSPF (Open Shortest Path First) a été standardisé en 1990 afin de corriger les principales limites de RIP, notamment la taille des réseaux supportés et le temps de convergence. Il est aujourd’hui largement utilisé comme protocole de routage interne dans les réseaux de taille moyenne ou grande.

Un réseau utilisant OSPF est organisé en systèmes autonomes (AS), c’est-à-dire des ensembles de routeurs gérés par une même organisation et partageant un même protocole de routage interne.
Afin d’améliorer les performances et la scalabilité, un AS peut être découpé en plusieurs zones OSPF, structurées autour d’une zone centrale appelée zone 0 (ou backbone).

Plusieurs systèmes autonomes OSPF interconnectés avec une zone backbone
Exemple de systèmes autonomes (AS) et de zones OSPF autour d’une épine dorsale (zone 0).

5.1. Principe général

Avec les protocoles à état de liens, chaque routeur cherche à obtenir une carte complète du réseau et calcule lui-même les plus courts chemins vers toutes les destinations, à l’aide de l’algorithme de Dijkstra.

Les grandes étapes sont :

  1. Découverte des voisins et de leurs adresses réseau (paquets HELLO).
  2. Mesure du coût de chaque lien vers ses voisins (paquets ECHO ou équivalents).
  3. Construction de paquets contenant l’état de ses liens (LSA : Link State Advertisement).
  4. Diffusion de ces paquets à tous les routeurs de la zone (inondation).
  5. Calcul local des plus courts chemins sur le graphe obtenu (algorithme de Dijkstra).
Routeurs voisins partageant un même sous-réseau
Deux routeurs sont voisins lorsqu’ils partagent un même sous-réseau sur au moins une interface.

5.2. Coût d’un lien

L’état d’un lien décrit les caractéristiques d’une interface (capacité, voisin, etc.). Dans OSPF, le coût d’un lien est souvent calculé à partir de son débit, par exemple :

coût = 10⁸ / débit (en bit/s)

Plus le débit est élevé, plus le coût est faible, donc plus le lien est « attractif ». La distance administrative sert ensuite à départager différentes sources de routes (statique, OSPF, RIP…) lorsqu’un routeur apprend la même destination par plusieurs moyens.

Exemples de coûts OSPF en fonction du débit des liens
Plus le débit du lien est élevé (10 Gb/s, 1 Gb/s…), plus son coût OSPF est faible.

5.3. Exemple d’utilisation de l’algorithme de Dijkstra

Considérons un routeur A qui souhaite trouver les meilleurs chemins vers tous les autres. Il découpe l’ensemble des routeurs en deux groupes :

Premier pas de l’algorithme de Dijkstra depuis le routeur A
Au départ, A ne connaît que le chemin vers lui-même. Il ajoute ensuite le voisin accessible par le lien de meilleur coût. :contentReference[oaicite:6]{index=6}

À chaque étape, A examine tous les liens reliant un routeur du groupe connu à un routeur du groupe inconnu, choisit le lien de meilleur coût, et bascule le routeur correspondant dans le groupe connu.

Étapes successives de l’algorithme de Dijkstra jusqu’à couvrir tout le réseau
Étapes successives : on ajoute un routeur au groupe « chemin connu » à chaque itération, jusqu’à avoir calculé le meilleur chemin vers tous les routeurs du réseau.

Idée clé : dans Dijkstra, le groupe des routeurs « connus » contient toujours ceux pour lesquels il n’existe pas de meilleur chemin possible (au pire un chemin équivalent).