NSI Terminale

Routage dynamique RIP


Prérequis : l'activité sur les tables de routage

1 - Les Systèmes Autonomes

Nous avons vu dans les activités précédentes la structure globale d'Internet.

Visualisation du transit
Internet simplifié (image réalisée avec Filius)

Les machines des clients individuels générent des paquets IP qui sont envoyés vers l'exterieur.Les clients individuels sont reliés par la boucle locale jusqu'à leur répartiteur (un local qui reçoit leurs communications des clients aux alentours).

A partir de là, leurs communications sont envoyées jusqu'à leur FAI : on atteint le premier vrai réseau.

La couche Réseau du premier routeur va alors être chargé de trouver vers où envoyer ce paquet IP. Comment ? En utilisant le protocole IP pour comparer son adresse réseau et l'adresse de destination du paquet. Ensuite, il part voir sa table de routage.

Vous avez vu qu'il existe différents opérateurs qui se partagent le trafic : les Fournisseurs d'Accès Internet (FAI) et d'autres opérateurs privés de réseaux traitant directement avec les FAI en leur permettant de faire passer les paquets IP par leurs réseaux.

Ces opérateurs possèdent leurs routeurs configurés et programmés par leurs personnels. Aucun n'a envie de voir des personnes extérieures interagir directement sur leurs machines ou connaître les détails de leurs infrastructures.

En réalité, le "nuage" Internet est composé d'un ensemble de réseaux contrôlés par des sociétés autonomes acceptant d'être reliés aux autres. Un Système Autonome est le nom donné à un ensemble de routeurs gérés par le même opérateur et sur lequel on fait tourner un algorithme de routage. Chaque SA peut utiliser et configurer son routage comme il veut.

Il y a donc deux types de protocole de routage :

  1. Les protocoles internes à l'intérieur d'un système autonome : les routeurs appartiennent à la même entité, on peut considérer qu'elles sont sures et on peut garantir qu'un unique protocole tourne sur toutes les machines.
  2. Les protocoles externes qui permettent de relier les systèmes autonomes entre eux. Cette fois, il peut y avoir des contraintes commerciales ou de sécurité visant à faire passer certains paquets par une route particulière.
Connexion entre Systèmes autonomes
Des protocoles pour le routage à l'intérieur des systèmes autonomes et d'autres protocoles pour le routage entre les systèmes autonomes

Nous allons voir cette année deux protocoles de routages internes : le protocole RIP et le protocole OSPF. Ces protocoles s'appliquent donc à l'intérieur d'un système autonome : tous les routeurs appartiennent bien à la même entité et peuvent donc facilement être configurés.

Les systèmes autonomes ont besoin d'un routage dynamique : ils sont composés de trop de routeurs pour qu'on puisse les configurer à la main :

  1. Les risques de mauvaises configurations avec des paquets faisant des aller-retours entre deux routeurs est trop grand si les règlages sont fait à la route avec un routage statique
  2. Une panne sur le réseau voudrait dire que les routes ne changent pas : les routeurs continueraient d'envoyer les paquets sur des routes défectueuses, le temps que quelqu'un écrive de nouvelles routes valides.

Bref, ce ne serait pas sérieux.

2 - Principe du routage RIP

Nous allons commencer aujourd'hui par le protocole RIP : Routing Information Protocol.

Du point de vue de ce protocole, la meilleure route à prendre est la route qui va demander le moins de sauts entre le routeur de départ et le routeur d'arrivée.

On dira que la métrique utilisée est le nombre de sauts jusqu'au réseau voulu.

Le principe général de RIP ?

  1. Toutes les 30 secondes, les routeurs transmettent leurs routes qu'il connait à leurs voisins directs (on parle de routeurs adjacents dans un graphe) : il envoie l'adrese du réseau IP et la métrique pour le joindre.
  2. Chaque routeur va alors augmenter la métrique de 1 sur ces informations pour prendre en compte le saut vers le routeur qui vient d'envoyer l'information
  3. Chaque routeur va alors choisir la route à garder dans sa propre table de routage en faisant la synthèse des tables reçues et en sélectionnant celles qui présentent le plus faible nombre de sauts.
  4. Si un routeur voisin n'a pas renvoyé de table de routage depuis trois minutes, on considère qu'il n'est plus joignable pour le moment : on lui attribue une métrique de 16. Nous verrons que cela correspond à une liaison non utilisable avec RIP.

3 - Initialisation

Lors de cette phase, le routeur va envoyer un message sur toutes ses cartes réseaux en précisant son adresse IP : les correspondants vont répondre s'ils appartiennent bien au même système RIP. Ils vont donner leurs propres noms et les routes (et les métriques associées) qu'ils connaissent.

Nous allons travailler en nous plaçant à la place d'un des routeurs, qu'on nommera le routeur A-100-1. On considère donc qu'il s'agit d'une machine appartenant au réseau A et au sous-réseau 100. Sur le sous-réseau, son identifiant machine est le 1.

On considère que son identifiant sur le réseau est juste 101 pour simplifier : pas de sous-réseau et autres subtilités. Le principe est de comprendre le principe du protocole permettant aux machines de coopérer.

On sait que cette machine possède 4 sorties extérieures, notée E/S1, E/S2, E/S3 et E/S4 : la dernière mène vers son réseau interne : le sous-réseau des machines A-100-X.

Le routeur A-100-1 initialement

Voici sa table de routage actuelle :

Le message est pour
IP Destinataire
Transmettre à la passerelle
(intermédiaire de communication)
Interface à utiliser
(carte réseau)
Métrique (nbr de sauts)
A100-1 Localhost Localhost 0
A100-X A100-1 E/S 4 0

01° Ce routeur reçoit les messages suivants sur ces interfaces :

Recu via l'interface E/S1 Message en provenance du routeur A-300-1 qui peut joindre :

  • A-300-X en 0 saut
  • A-100-X en 1 saut

Recu via l'interface E/S3 Message en provenance du routeur A-400-1 qui peut joindre :

  • A-400-X en 0 saut
  • A-500-X en 1 saut
  • A-100-X en 1 saut

Recu via l'interface E/S2 Message en provenance du routeur A-200-1 qui peut joindre :

  • A-200-X en 0 saut
  • A-700-X en 1 saut
  • A-100-X en 1 saut

Question : remplir la nouvelle table de routage du routeur A100-1 après réception et traitement de ces données.

Le message est pour
IP Destinataire
Transmettre à la passerelle
(intermédiaire de communication)
Interface à utiliser
(carte réseau)
Métrique (nbr de sauts)
A-100-1 Localhost Localhost 0
A-100 A-100-1 E/S 4 0
A-200 ... ... ...
... ... ... ...

...CORRECTION...

Il s'agit de prendre en compte les routes proposées en rajoutant 1 au nombre de sauts.

Le message est pour
IP Destinataire
Transmettre à la passerelle
(intermédiaire de communication)
Interface à utiliser
(carte réseau)
Métrique (nbr de sauts)
A-100-1 Localhost Localhost 0
A-100-X A-100-1 E/S 4 0
A-200 A-200-1 E/S2 1
A-300 A-300-1 E/S1 1
A400 A-400-1 E/S3 1
A500 A-400-1 E/S3 2
A700 A-200-1 E/S2 2

02° Quel message pourra envoyer le routeur aux routeurs adjacents dont il connait maintenant les adresses lorsqu'il devra leur envoyer les éléments de sa propre table ?

...CORRECTION...

Message en provenance du routeur A-100-1 qui peut joindre :

  • A-100-X en 0 saut
  • A-200-X en 1 saut
  • A-300-X en 1 saut
  • A-400-X en 1 saut
  • A-500-X en 2 sauts
  • A-700-X en 2 sauts

03° Nouveaux messages des routeurs adjacents :

Recu via l'interface E/S1 Message en provenance du routeur A-300-1 qui peut joindre :

  • A-300-X en 0 saut
  • A-500-X en 1 saut
  • A-600-X en 1 saut
  • A-100-X en 1 saut

Recu via l'interface E/S3 Message en provenance du routeur A-400-1 qui peut joindre :

  • A-400-X en 0 saut
  • A-500-X en 1 saut
  • A-100-X en 1 saut
  • A-300-X en 2 sauts

Recu via l'interface E/S2 Message en provenance du routeur A-200-1 qui peut joindre :

  • A-200-X en 0 saut
  • A-700-X en 1 saut
  • A-600-X en 2 sauts

Question : remplir la nouvelle table de routage du routeur A100-1 après réception et traitement de ces données.

Le message est pour
IP Destinataire
Transmettre à la passerelle
(intermédiaire de communication)
Interface à utiliser
(carte réseau)
Métrique (nbr de sauts)
A-100-1 Localhost Localhost 0
A-100 A-100-1 E/S 4 0
A-200 ... ... ...
... ... ... ...

...CORRECTION...

Le message est pour
IP Destinataire
Transmettre à la passerelle
(intermédiaire de communication)
Interface à utiliser
(carte réseau)
Métrique (nbr de sauts)
A-100-1 Localhost Localhost 0
A-100-X A-100-1 E/S 4 0
A-200 A-200-1 E/S2 1
A-300 A-300-1 E/S1 1
A400 A-400-1 E/S3 1
A500 A-400-1 E/S3 2
A600 A-300-1 E/S1 2
A700 A-200-1 E/S2 2

04° Combien de routes vont indiquer les 7 routeurs où bout d'un certain temps ?

...CORRECTION...

Chaque routeur va envoyer 7 routes au moins. Sans compter les routes statiques ou les routes vers les réseaux externes qu'on peut joindre depuis l'un des routeurs du système autonome.

05° Dans le pire des cas, combien faut-il d'échange pour que chaque routeur connaisse une route vers tous les autres ? Quel est ce pire des cas ?

...CORRECTION...

Visualisation du pire des cas : 7 routeurs en lignes
6 Sauts pour que les deux routes extrêmes connaissent une route vers l'autre

06° Combien de routes au bout d'un certain temps dans un système autonome de 200 routeurs si on applique juste ce principe basique de RIP ?

...CORRECTION...

Chacun des 200 routeurs va envoyer toutes les 30 secondes un message contenant sa métrique pour joindre les 200 routeurs. Et ils vont les envoyer à tous leurs routeurs adjacents.

4 - Métrique maximale

Métrique maximale

Pour limiter le nombre de routes inutiles et limiter la taille des messages RIP sur le réseau, on considère qu'une métrique de 16 correspond à une route impossible à atteindre.

Cette taille est un compromis entre le nombre de routes à envoyer aux autres routeurs toutes les 30s et la possibilité de joindre la destination.

Si un routeur apprend qu'un de ses voisins peut joindre un autre réseau en 15 sauts, il ne tiendra donc pas compte lui-même de cette route : en rajoutant 1, il faudra 16 sauts depuis ce routeur.

De la même façon, si un routeur normalement adjacent n'envoie plus de routes RIP depuis 30 minutes, le routeur le placera sur un nombre de sauts de 16, rendant le lien inexistant. De proche en proche, les autres routeurs apprendront donc également que cette route n'est plus disponible.

5 - Vision du réseau

RIP est donc un exemple d'algorithme répartie ou algorithme distribué : l'algorithme tourne sur plusieurs machines et on obtient au total un résultat exploitable.

Chaque routeur ne peut par contre que fournir la route la moins "longue" et à qui il doit fournir le paquet. Il ne sait absolument pas par où passera le paquet IP ensuite.

A l'aide de la table de routage, on ne peut imaginer que cela :

Visualisation du réseau avec les infos de la table
Le réseau connu par le routeur A-100-1

Conséquence ?

Avec cette version du routage dynamique, on ne contrôle pas le trajet : le routeur sait quelle est la passerelle suivante mais ne sait absolument pas quelle route prend REELLEMENT le paquet IP.

Pour des problèmes de sécurité, cela peut être génant.

07° Puisqu'on n'a pas de connaissance globale du système, quel problème va apparaitre si un paquet IP issu du routeur A-100 veut atteindre le réseau indiqué en haut à droite ?

Visualisation du réseau avec les infos de la table

Conclusion :

  1. Rôle : aucun routeur n'a de rôle prépondérant dans le système autonome (à part le fait que certains soient en liaison avec l'extérieur par exemple) : RIP utilise un algorithme totalement réparti
  2. Métrique : La métrique utilisée pour définir les distances est simplement le nombre de sauts
  3. Informations transmises : c'est un protocole à vecteur de distance : chaque routeur transmet toutes les 30s à ses voisins directs l'ensemble des couples (destination;distance) qu'il connait. Chaque routeur reçoit les informations de ses voisins, rajoute simplement 1 à leurs métriques (pour prendre en compte le saut supplémentaire vers eux) et garde les meilleurs choix de passerelles pour les différentes destinations : celles dont la métrique est la plus basse.
  4. Connaissance du réseau : RIP ne permet pas aux routeurs d'avoir une vision globale du réseau et de choisir certains chemins : on décide juste de la passerelle suivante à qui on transmet le paquet. Chaque routeur ne connait donc que ses voisins directs et sait auquel transmettre un paquet IP pour une destination donnée. Ici, le routeur A ne connait rien du réseau entre lui et D : il sait juste qu'il doit transmettre à B.
  5. Taille : RIP ne permet pas de gérer des systèmes autonomes comportant des routeurs situés à plus de 15 sauts l'un de l'autre (sinon, le réseau serait encombré par les messages RIP et n'aurait plus le temps de gérer les vrais messages !)
  6. Mise en place : RIP met du temps à se mettre en place car la connaissance des nouvelles routes se fait de proche en proche, un nouveau saut uniquement toutes les 30s. Ici le routeur central va mettre 90s à apprendre l'existence des routeurs Gauche et Droite. Et le routeur Droite va donc devoir attendre encore 90s pour apprendre l'existence du routeur Gauche !

6 - FAQ et Exemple

Et pourquoi on dit Hop limit ?

Hop, c'est pour saut. Le Hop Limit correspond donc au nombre de sauts restants avant destruction. C'est pareil qu'un TTL.

Un exemple

Prenons un exemple avec le réseau suivant :

Établissons la table de routage du routeur A en nous basant sur le protocole RIP :

  • le routeur A est directement relié au réseau R1 (adresse réseau 172.18.0.0/16) par eth0.
  • le routeur A est directement relié au routeur B (réseau 192.168.1.0/24) par eth1
  • le routeur A est directement relié au routeur C (réseau 192.168.2.0/24) par eth2
  • le routeur A n'est pas directement relié au réseau R2 (adresse réseau 172.17.0.0/16) mais par contre il "sait" qu'il peut l'atteindre soit en passant par le routeur C (adresse 192.168.2.2/24) en une étape ou soit en passant par le routeur B (adresse 192.168.1.2/24) en deux étapes (B et C)
  • le routeur A n'est pas directement relié au réseau R3 (adresse réseau 172.16.0.0/16) mais il "sait" qu'il peut l'atteindre soit en passant par le routeur B (192.168.1.2/24) en une étape ou soit en passant par le routeur C (192.168.2.2/24) en deux étapes (C et B)

Ce qui nous donne donc la table de routage suivante :

réseau Passerelle (moyen de l'atteindre) Interface à utiliser (Carte réseau) métrique (nombre de sauts)
172.18.0.0/16 Routeur A eth0 0
192.168.1.0/24 Routeur A eth1 0
192.168.2.0/24 Routeur A eth2 0
172.17.0.0/16 192.168.2.2/24 192.168.2.0/24 1
172.17.0.0/16 192.168.1.2/24 192.168.1.0/24 2
172.16.0.0/16 192.168.1.2/24 192.168.1.0/24 1
172.16.0.0/16 192.168.2.2/24 192.168.2.0/24 2

On peut aussi donner la table de routage de manière simplifiée, en utilisant les noms des éléments à la place des adresses IP (mais c'est aussi moins "réaliste") :

réseau moyen de l'atteindre métrique
R1 eth0 0
Réseau Routeur B eth1 0
Réseau Routeur C eth2 0
R2 Routeur C 1
R2 Routeur B 2
R3 Routeur B 1
R3 Routeur C 2

Pour un paquet de données allant de R1 à R2, la route privilégiée sera donc : R1 -> Routeur A -> Routeur C -> R2.
Mais en cas de problème (panne notamment) la route R1 -> Routeur A -> Routeur B -> Routeur C -> R2 sera possible.

Pour un paquet de données allant de R1 à R3, la route privilégiée sera donc : R1 -> Routeur A -> Routeur B -> R3.
Mais en cas de problème la route R1 -> Routeur A -> Routeur C -> Routeur B -> R3 sera possible.

Dans certains exercices, pour le calcul de la métrique, on compte le nombre total de routeurs traversés (y compris, dans notre exemple le routeur A), cela nous donne donc un décalage de un, et on obtient alors :

réseau moyen de l'atteindre métrique
R1 eth0 0
Réseau Routeur B eth1 0
Réseau Routeur C eth2 0
R2 Routeur C 2
R2 Routeur B 3
R3 Routeur B 2
R3 Routeur C 3

Activité publiée le 25 11 2020
Dernière modification : 04 03 2021
Auteur : ows. h.
Modification : Andjekel