Nous avons vu dans les activités précédentes la structure globale d'Internet.
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 :
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.
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.
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 :
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
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.
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 ?
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.
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
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.
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.
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.
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...
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 ?
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.
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 :
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 ?
Conclusion :
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
Métrique : La métrique utilisée pour définir les distances est simplement le nombre de sauts
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.
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.
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 !)
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 !
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