Le protocole RIP met en œuvre un routage à vecteur de distance. Dans ce type de routage, le critère qui permet de choisir le chemin "le plus court" pour le paquet de données est le nombre de "sauts".
Ainsi, dans le réseau ci-dessous, le chemin
M1 -> SR1 -> RA -> RH -> RF -> RE -> SR4 -> M10 (7 sauts)
sera choisi face au chemin
M1 -> SR1 -> RA -> RH -> RC -> RD -> RE -> SR4 -> M10 (8 sauts).
Ce critère a l'avantage d'être simple mais ne prend pas en compte la qualité des liaisons entre les routeurs. Par exemple si la liaison RA -> RH est de très mauvaise qualité ou souvent encombrée par d'autres données, il peut être judicieux de choisir le chemin à 8 sauts.
Le protocole RIP choisit toujours le nombre de sauts le plus petit
Le protocole RIP est un protocole à vecteur de distance
Dans un protocole à vecteur de distance, le critère qui permet de choisir le plus court chemin est le nombre de liaisons traversées (le nombre de sauts), on minimise donc le nombre routeurs traversés.
Ce type de protocole ne tiens pas compte de l'état des liaisons entre les actifs réseau.
Principe général
Dans ce protocole, chaque routeur va construire progressivement une table de routage qui contiendra :
l'adresse de destination d'un réseau ou d'un sous réseau
le routeur que l'on doit emprunter pour attendre ce réseau ou ce sous réseau (si ce champ est vide, c'est que la destination est directement accessible, c'est un voisin direct)
éventuellement le nom de l'interface réseau concernée (wifi, eth01, eth02....)
le nombre de sauts nécessaires pour atteindre le réseau ou le sous-réseau visé
éventuellement des commentaires utiles au technicien réseau qui vérifie la table en cas de panne réseau.
Voici ci-dessous un exemple de table de routage d'un routeur R d'adresse 172.16.18.0:
destination
routeur
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.1.0
eth0
2
reçu de R1
172.16.2.0
172.16.6.0
eth1
2
reçu de R6
172.16.5.0
172.16.3.0
eth2
2
reçu de R3
172.16.4.0
172.16.0.0
eth3
2
reçu de R0
Si l'on analyse cette table on voit que :
les 4 premières adresses désignent des routeurs accessibles en 1 saut, ce sont des voisins directs.
les lignes suivantes correspondent à des routeurs ou des machines à deux saut du routeur R
Dans la table précédente, si le routeur R doit envoyer un paquet de données à la machine d'adresse 192.168.1.0, on voit que :
La machine concernée est à deux sauts de R
Pour envoyer ce paquet, le routeur R va le transmettre au routeur d'adresse 172.16.1.0, qui lui même transmettra ce paquet en fonction de sa table de routage.
La construction de telles tables pour chaque routeur nécessite des échanges entre routeurs. En effet chaque routeur ne "voit" que ses voisins directs.
Toutes les 30 secondes (par exemple), chaque routeur va envoyer sa table de routage à ses voisins, il va également recevoir de la part de ses voisins des nouvelles tables de routage.
Ces tables vont présenter des nouveaux (ou pas...) chemin vers des nouveaux (ou pas...) réseaux.
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 cas d'égalité de longueur de chemin pour une même destination, le routeur choisit "au hasard" ou "la plus petite adresse ip"...
Ces echanges étant constant, au bout d'un temps "relativement court" la table de routage de chaque routeur va se stabiliser si la structure du réseau n'évolue pas.
Les différents routeurs auront alors dans leur table toutes les informations pour transférer de façon optimale chaque paquet de données vers le destinataire.
D'un point de vue algorithmique, ce porotocle de routage est basé sur un l'algorithme deBellman-Ford de recherche de plus court chemin dans un graphe.
En résumé, dans le protocole RIP :
chaque routeur envoie régulièrement à l'ensemble de ses voisins directs sa table de routage
chaque routeur analyse les tables reçues et met à jour sa propre table
chaque routeur ne "connaît" que ses voisins directs, sa table de routage lui permet de déterminer à quel voisin il doit transmettre chaque paquet de données.
cet algorithme a un temps de convergence (obtention des tables de routages stables) proportionnel au diamètre du réseau (distance maximale entre deux points du réseau, en excluant les cycles bien sur)
L'algorithme à la base du protocole RIP est l'algorithme de Bellman-Ford.
Modification et analyse du réseau
Détection de boucles
Afin d'éviter les boucles du type
R1 -> R2 -> R3 -> R1 -> R2 -> R3 -> R1 -> ....
les paquets de données ont une durée de vie limitée est sont détruits si cette durée est dépassée.
De plus le protocole RIP étant limité à des petits réseaux, le nombre de sauts maximum autorisé pour un paquet de données est de 15.
Pannes
En cas de panne d'un routeur ou d'une liaison, certaines informations ne parviendront pas aux routeurs du réseau.
Si un routeur ne reçoit pas d'informations d'un de ses voisins pendant un temps long (3 minutes par défaut, mais ce temps peut être réglable), il affectera le nombre de sauts liés à ce routeur à 16. Comme le protocole est limité à 15 sauts, les tables de routage seront mise à jour de proche en proche et cette liaison ne sera plus considérée comme valide.
Le protocole RIP est réservé aux "petits" réseaux (moins de 15 sauts pour transférer un paquet)
le protocole RIP inclut la gestion des pannes et sait détecter les boucles dans le routage
Nous allons maintenant continuer à mettre en œuvre le protocole RIP "à la main" dans le réseau ci-contre.
Pour cela répondez aux questions ci-dessous :
En utilisant le modèle précédent de table de routage, construire la table de routage initiale du routeur R3.
Quel est le point commun à toutes les lignes de la table de routage initiale d'un routeur ?
A un certain moment de la propagation des tables de routage, la table du routeur R5 est la suivante :
destination
passerelle
interface
Nb sauts
remarques
172.16.0.6
1
192.168.2.0
172.16.0.6
2
172.16.0.4
1
172.16.0.2
1
172.16.0.3
1
Écrire la nouvelle table de routage du routeur R3 en partant de la table de la question 1.
Écrire la table de routage finale du routeur R5 en supposant quelle a été construite en suivant le protocole RIP (vous n’êtes bien sur pas obligés de passer par toutes les étapes de construction pour un si petit réseau...une indication : elle comporte 7 lignes)