Protocole RIP
I. Protocole RIP à vecteur de distance⚓︎
RIP
RIP : Routing Information Protocol
Auteur
Le document qui suit sur le protocole RIP a été réalisé d'après le site réalisé par Olivier LECLUSE
Vecteur de distance
Le protocole RIP rentre dans la catégorie des protocoles à vecteur de distance. Un vecteur de distance est un couple (adresse, distance).
Le principe simplifié de ce protocole est de chercher à minimiser le nombre de routeurs à traverser pour atteindre la destination (on minimise le nombre de sauts)
Principe général de l'algorithme
🏃♀️ Chaque routeur reçoit en permanence (toutes les 30 secondes environ) de ses voisins les informations de routage qu'ils possèdent. Il va alors exploiter ces informations pour se construire lui-mĂŞme sa table de routage en ne retenant que les informations les plus pertinentes : une simple comparaison permet de ne garder que le chemin le plus avantageux. Il transmettra a son tour ces informations Ă ses voisins et ainsi de suite.
C'est l'algorithme de Belman-Ford : un des algorithmes de recherche de plus court chemin dans un graphe.
🏃♀️ A l'issue de quelques Ă©tapes, les tables se stabilisent et le routage est pleinement opĂ©rationnel. Le temps nĂ©cessaire Ă la stabilisation des tables est proportionnel au diamètre du graphe modĂ©lisant le rĂ©seau (c'est Ă dire au nombre maximal d'Ă©tapes nĂ©cessaires pour relier deux points quelconques du rĂ©seau).
👓 Regardez cette vidĂ©o de Claude Chaudet (Institut Mines-TĂ©lĂ©com) qui expose le principe du routage Ă vecteur de distance.
Quand un routeur ne répond plus
Quand un routeur ne répond plus, il n’est pas supprimé de la table, quelle qu’en soit la raison (routeur défectueux, câble coupé, carte ethernet HS, etc.).
Avec le protocole RIP, le nombre de saut dans la table passe juste Ă 16.
II. Exemple:⚓︎
Considérons le réseau suivant qui relie deux réseaux d'une entreprise :
- le réseau 1 contient des postes de travail dans un bureau.
- le réseau 2 contient un serveur dans un centre de données.
Les routeurs R1 et R6 permettent d'accéder au réseau de l'entreprise, R2, R3, R4 et R5, des routeurs internes au réseau.
Nous allons nous intéresser à l'évolution des tables de routage des routeurs R1 et R3 sur lesquels on a activé le protocole RIP
Vous pouvez télécharger l'image de ce réseau ici : "Clic droit", puis "Enregistrer la cible du lien sous"
Étape 0⚓︎
Au démarrage, les routeurs R1 et R3 ne connaissent que leurs voisins proches. Leurs tables peuvent donc ressembler à ceci :
Routeur R1
destination | passerelle | interface | Nb sauts | remarques |
---|---|---|---|---|
192.168.1.0 | wifi0 | 1 | ==> vers les postes de travail | |
172.16.0.0 | eth0 | 1 | ==> vers R3 |
Au départ, R1 ne peut atteindre que ses voisins immédiats (nb Sauts vaut 1). Aucune passerelle n'est nécessaire puisque la communication est directe. Chaque sous réseau utilise une interface spécifique. Le réseau local 1 contenant les postes de travail est accessible en wifi.
Routeur R3
En ce qui concerne le routeur 3, celui-ci possède 4 interfaces réseau filaires, que nous nommerons eth0-3 qui permettent d'atteindre les routeurs immédiats (R1, R2, R4 et R5). Voici à quoi peut ressembler sa table de routage au démarrage :
destination | passerelle | interface | Nb sauts | remarques |
---|---|---|---|---|
172.16.0.0 | eth0 | 1 | ==> vers R1 | |
172.16.1.0 | eth1 | 1 | ==> vers R2 | |
172.16.6.0 | eth2 | 1 | ==> vers R5 | |
172.16.3.0 | eth3 | 1 | ==> vers R4 |
Étape 1⚓︎
Au bout de 30 secondes, un premier échange intervient avec les voisins immédiats de chacun des routeurs.
Le principe de l'algorithme
Lorsqu'un routeur reçoit une nouvelle route de la part d'un voisin, 4 cas sont envisageables :
- Il découvre une route vers un nouveau réseau inconnu
👉 Il l'ajoute à sa table. - Il découvre une route vers un réseau connu, plus courte que celle qu'il
possède dans sa table
👉 Il actualise sa table. - Il découvre une route vers un réseau connu plus longue que celle qu'il
possède dans sa table
👉 Il ignore cette route. - Il reçoit une route vers un réseau connu en provenance d'un routeur
déjà existant dans sa table
👉 Il met à jour sa table car la topologie du réseau a été modifiée.
En appliquant ces règles, voici la table de routage de R1 après une étape :
Routeur R1
destination | passerelle | interface | Nb sauts | remarques |
---|---|---|---|---|
192.168.1.0 | wifi0 | 1 | ==> vers les postes de travail | |
172.16.0.0 | eth0 | 1 | ==> vers R3 | |
172.16.1.0 | 172.16.0.3 | eth0 | 2 | Ces 3 routes |
172.16.6.0 | 172.16.0.3 | eth0 | 2 | proviennent |
172.16.3.0 | 172.16.0.3 | eth0 | 2 | de R3 |
172.16.0.3 est l'adresse IP du routeur R3.
On ajoute à la table précédente les réseaux atteignables par R3. On pense cependant à ajouter 1 au nombre de sauts !
Si R1 veut atteindre le réseau 172.16.3.0, il s'adressera à R3 et atteindra le réseau cible en 2 sauts.
Voici la table de R3 qui s'enrichit des informations envoyées par R1 afin d'atteindre le réseau local, mais aussi des informations en provenance de R2, R4 et R5. Il découvre ainsi 4 nouveaux réseaux.
Routeur R3
destination | passerelle | interface | Nb sauts | remarques |
---|---|---|---|---|
172.16.0.0 | eth0 | 1 | ||
172.16.1.0 | eth1 | 1 | ||
172.16.6.0 | eth2 | 1 | ||
172.16.3.0 | eth3 | 1 | ||
192.168.1.0 | 172.16.0.1 | eth0 | 2 | reçu de R1 |
172.16.2.0 | 172.16.1.2 | eth1 | 2 | reçu de R2 |
172.16.5.0 | 172.16.6.5 | eth2 | 2 | reçu de R5 |
172.16.4.0 | 172.16.3.4 | eth3 | 2 | reçu de R4 |
Dernière étape⚓︎
Comme vous le voyez, les tables deviennent vite longues et énumérer dans le détail chacune d'elle est trop long.
💨 On va donc passer directement Ă l'Ă©tape finale . Voici ce que contient la table de routage de R1 :
Routeur R1
destination | passerelle | interface | Nb sauts | remarques |
---|---|---|---|---|
192.168.1.0 | wifi0 | 1 | ==> vers les postes de travail | |
172.16.0.0 | eth0 | 1 | ==> vers R3 | |
172.16.1.0 | 172.16.0.3 | eth0 | 2 | |
172.16.6.0 | 172.16.0.3 | eth0 | 2 | |
172.16.3.0 | 172.16.0.3 | eth0 | 2 | |
172.16.2.0 | 172.16.0.3 | eth0 | 3 | |
172.16.4.0 | 172.16.0.3 | eth0 | 3 | |
172.16.5.0 | 172.16.0.3 | eth0 | 3 | obtenu Ă l'Ă©tape 2 |
192.168.2.0 | 172.16.0.3 | eth0 | 4 | obtenu Ă l'Ă©tape 3 |
Comme vous le voyez, le routeur R1 est à présent en capacité d'acheminer un paquet du poste de travail du réseau 1 vers le serveur se trouvant dans le réseau 2.
III. Fonctionnement⚓︎
Détection des pannes⚓︎
DĂ©tection des pannes
Le protocole RIP est en mesure de détecter des pannes : Si un routeur ne reçoit pas d'information de la part d'un de ses voisins au bout d'un temps de l'ordre de 3 minutes (configurable) il va considérer que ce lien est mort et en informer ses voisins en indiquant un nombre de sauts égal à 16. Puisque RIP ne gère que 15 sauts au maximum, 16 peut être considéré comme une distance infinie.
De cette manière, les voisins vont pouvoir recalculer leurs routes en conséquence en évitant le lien qui est tombé.
Détection des boucles⚓︎
DĂ©tection des boucles
RIP implémente d'autres mécanismes pour empêcher que se forment des boucles de routage
**.
Une boucle est par exemple une route du type : R2 -> R3 -> R5 -> R2. Des exemples de tels mécanismes sont :
- une durée de vie limitée sur les paquets (TTL) afin qu'un paquet qui tourne en rond soit détruit
- ne pas renvoyer une information vers un routeur si celle-ci est déjà passée par ce routeur
- Olivier Lecluse
Distance maximale⚓︎
Distance maximale
Il serait très couteux de propager les tables de routages à tous les voisins d'un très grand réseau. Dans le protocole RIP, chaque routeur ne tient compte que des routes dont la distance est inférieure à 16.
Délai de convergence⚓︎
DĂ©lai de convergence
On appelle temps de convergence, le temps au bout duquel tous les routeurs disposent des informations de routage vers toutes les destinations.
Il est difficile d'estimer le temps de convergence, qui dépend de la taille du réseau. La limitation à 15 sauts permet de maintenir ce temps raisonnable. Cette limitation rend le protocole RIP peu efficace pour les grands réseaux.
Les champs TTL
Les champs TTL : malgré les précautions énoncées ci-dessus, il peut arriver que des boucles de routage se forment.
L'une des raisons est que tous les réseaux n'utilisent pas des protocoles comme RIP ou OSPF qui empêchent la formation de telles boucles.
C'est notamment le cas dans les réseaux où les tables sont tenues à jour manuellement (on parle de routage statique). Les
paquets qui tournent en rond risquent alors de saturer le réseau.
Pour détecter cela, les protocoles de communication, comme IP ont prévu un champ nommé TTL : Time to Live qui indique combien de routeurs un paquet peut encore traverser. Chaque routeur qui reçoit un paquet décrémente la valeur de TTL, et si cette valeur tombe à 0, le paquet est tout simplement détruit.
IV. Exercice⚓︎
✏️ Protocole RIP : Ă vous de jouer
On donne le schéma suivant :
Source : J.L. Thirot
Vous pouvez télécharger l'image de ce réseau ici : "Clic droit", puis "Enregistrer la cible du lien sous"
- 😢Le routeur R4 est tombĂ© en panne .
Le réseau 172.16.3.0/24 reste quand même connecté à R3, et le réseau 172.16.4.0/24 reste aussi connecté à R5.
Grâce au protocole RIP, les tables de routages se mettent à jour.
Donner la table de routage du routeur R3, une fois que tout le processus est stabilisé.
Solution : à ne regarder qu'après avoir réellement écrit votre table de routage ...
Routeur R3 :
destination | passerelle | interface | Nb sauts |
---|---|---|---|
192.168.1.0/24 | 172.16.0.1 | eth0 | 2 |
172.16.0.0/24 | eth0 | 1 | |
172.16.1.0/24 | eth1 | 1 | |
172.16.6.0/24 | eth2 | 1 | |
172.16.3.0/24 | eth3 | 1 | |
172.16.2.0/24 | 172.16.1.2 | eth1 | 2 |
172.16.4.0/24 | 172.16.6.5 | eth2 | 2 |
172.16.5.0/24 | 172.16.6.5 | eth2 | 2 |
192.168.2.0/24 | 172.16.6.5 | eth2 | 3 |
172.16.7.0/24 | 172.16.6.5 | eth3 | 16 |
Il y a une autre possibilité de réponse pour la destination 172.16.2.0/24 :
destination | passerelle | interface | Nb sauts |
---|---|---|---|
172.16.2.0/24 | 172.16.6.5 | eth2 | 2 |
- 😀😢 Le routeur R4 est rĂ©parĂ©, mais maintenant c'est la liaison reliant R3 Ă R4 qui a Ă©tĂ© rompue : le câble eth3 sortant de R3 a Ă©tĂ© coupĂ© pour une raison inconnue.
Que faut-il changer, une fois tout le processus du protocole RIP stabilisé, à la table de routage de R3 ?
Solution
Il faut modifier les deux lignes pour les destinations 172.16.3.0/24 et 172.16.7.0/24
destination | passerelle | interface | Nb sauts |
---|---|---|---|
172.16.3.0/24 | 172.16.6.5 | eth2 | 3 |
172.16.7.0/24 | 172.16.6.5 | eth2 | 3 |
V. Autre représentation des réseaux⚓︎
🌵🌵Dans la pratique, les rĂ©seaux entre les routeurs ne sont pas reprĂ©sentĂ©s.
On aurait pu tout simplement vous donner la représentation ci-dessous, cela revenait au même.