NUMERIQUE ET SCIENCES INFORMATIQUES

Niveau : Terminale générale, enseignement de spécialité NSI

D
É
C
O
N
N
E
C
T
É

Les protocoles de routage

Auteur : David Roche CC BY-NC

Introduction

Nous avons vu l'année dernière comment créer des réseaux d'ordinateurs entre plusieurs machines.

reseau1

Ce type de réseau local ne permettait pas de communiquer entres les machines du réseau A avec les machines du réseau B à cause de l'adresse de réseau.

Rappel :

Adresse du réseau A :

Adresse du réseau B :

Routage

Principe :

En rajoutant un routeur, il est possible de faire communiquer ces 2 réseaux. C'est le cas du réseau Internet, par exemple, où une "box" peut fait office de routeur.

Un ordinateur possédant 2 cartes réseau pourrait aussi être un routeur, mais il existe des matériels dédiés comme l'illustre la photo ci-dessous.

Cisco
Routeur Cisco 

Le réseau ci-dessous permet de faire communiquer deux réseaux n'ayant pas les mêmes adresses réseaux.

Réseau Routeur

Ce routeur possède 2 interfaces réseau, chaque interface réseau doit avoir une adresse compatible avec le réseau sur lequel il est relié. On peut lui donner une table de routage qui permettra d'établir la liaison entre les 2 réseaux. Cette table de routage peut aussi se construire automatiquement.

En plus du routeur, il faut aussi renseigner l'adresse du routeur dans chaque ordinateur : la passerelle (ou Gateway en anglais). Dans notre réseau, il suffit de le renseigner dans chaque serveur DHCP, puisque les ordinateurs sont configurés pour recevoir leur configuration par le serveur DHCP.

Simulation

  • Chargez le fichier suivant : reseau1.fls
  • Ouvrez-le avec le logiciel Filius,
  • Ajoutez un routeur avec 2 interfaces réseaux,
  • Configurez les adresses ip représentées sur le schéma ci-dessus, et cochez la case "routage automatique"
  • Ajoutez l'adresse du routeur dans la case "passerelle" de chaque serveur DHCP ainsi que dans la configuration du service DHCP.
  • Lancez la simulation et tapez la ligne de commande traceroute sur la machine M1 vers la machine M3 en indiquant son adresse IP.
    • Relevez :

      l'adresse IP de la machine source :       ,

      l'adresse IP de la machine destination : ,

      le nombre de sauts effectués pour atteindre la machine M3 depuis M1 .

Pour communiquer de M1 vers M3, M1 va envoyer son paquet sur le réseau contenant l'adresse du destinataire, comme il a la même adresse de réseau, le paquet se dirige directement vers la machine M3 via le switch.

On peut résumer le trajet par : M1→R1→M3

    • Lancez la simulation et tapez la ligne de commande traceroute sur la machine M2 vers la machine M5 en indiquant son adresse IP.
      • Relevez :
      l'adresse IP de la machine source :         ,

      l'adresse IP de la machine destination :   ,

      le nombre de sauts effectués pour atteindre la machine M2 depuis M5 .

      l'adresse IP du routeur qui a permis d'établir le chemin vers le réseau B :

Pour communiquer de M2 vers M5, M2 va envoyer son paquet sur le réseau contenant l'adresse du destinataire, mais comme il n'a pas la même adresse de réseau, il contacte le routeur qui a été renseigné dans l'adresse de la passerelle. Le routeur va permettre d'acheminer le paquet vers le destinataire si l'adresse se trouve dans sa table de routage.

On peut résumer le trajet par : M2→R1→A→R2→M5

Résumer les trajets suivants :

  • M4 vers M3 :                  
  • Serveur1 vers serveur 2 :

Exercice

Soit le schéma suivant :

archi1

Résumer les trajets suivants :

    • M7 vers M6 :
    • M5 vers M2 :

Table de routage

Vous avez sans doute remarqué que nous avons 2 routeurs :

  • le routeur A qui possède 3 interfaces réseau que l'on nomme eth0, eth1 et eth2. Les adresses IP liées à ces interfaces réseau sont : 172.168.255.254/16 (eth0), 172.169.255.254/16 (eth2) et 192.168.7.1/24 (eth1)
  • le routeur G qui possède 2 interfaces réseau que l'on nomme eth0 et eth1. Les adresses IP liées à ces interfaces réseau sont : 10.255.255.254/8 (eth0) et 192.168.7.2/24 (eth1)

Voici les informations présentes dans la table de routage de A :

  • le routeur A est directement relié au réseau 172.168.0.0/16 par l'intermédiaire de son interface eth0
  • le routeur A est directement relié au réseau 172.169.0.0/16 par l'intermédiaire de son interface eth2
  • le routeur A est directement relié au réseau 192.168.7.0/24 par l'intermédiaire de son interface eth1 (le réseau 192.168.7.0/24 est un peu particulier car il est uniquement composé des routeurs A et G)
  • le routeur A n'est pas directement relié au réseau 10.0.0.0/8 mais par contre il "sait" que les paquets à destination de ce réseau doivent être envoyé à la machine d'adresse IP 192.168.7.2/24 (c'est à dire le routeur G qui lui est directement relié au réseau 10.0.0.0/8)

On peut résumer tout cela avec le tableau suivant (table de routage simplifiée de A) :

Réseau Moyen de l'atteindre Métrique
172.168.0.0/16 eth0 0
192.168.7.0/24 eth1 0
172.169.0.0/16 eth2 0
10.0.0.0/8 192.168.7.2/24 1

Même si dans les véritables tables de routage ont utilise exclusivement les adresses IP, on pourra, dans le cadre de ce cours, utiliser les noms à la place des adresses IP (On dira pour le schéma ci-dessus que M1, M2 et M3 appartiennent au réseau R1, M4, M5 et M6 appartiennent au réseau R2 et que M7 et M8 appartiennent au réseau R3).

On aura alors la table de routage écrit de cette façon :

Réseau Moyen de l'atteindre Métrique
Réseau R1 eth0 0
Routeur G eth1 0
Réseau R3 eth2 0
Réseau R2 Routeur G 1

On peut traduire ce tableau par :

  • pour atteindre le réseau R1, on doit "sortir" du routeur par eth0 (le réseau R1 est directement relié au routeur A)
  • pour atteindre le réseau R3, on doit "sortir" du routeur par eth2 (le réseau R3 est directement relié au routeur A)
  • pour atteindre le routeur G, on doit "sortir" du routeur par eth1 (le routeur G est directement relié au routeur A)
  • pour atteindre le réseau R2, on doit "envoyer" le paquet de données vers le routeur G qui "saura quoi faire avec" (le réseau R2 n'est pas directement relié au routeur A)

Exercice

Déterminez la table de routage du routeur G sans tenir compte de la colonne métrique pour le moment.

Réseau Moyen de l'atteindre
Réseau R1
Routeur A
Réseau R3
Réseau R2

Dans des réseaux très complexes, chaque routeur aura une table de routage qui comportera de très nombreuses lignes (des dizaines voir des centaines...). En effet chaque routeur devra savoir vers quelle interface réseau il faudra envoyer un paquet afin qu'il puisse atteindre sa destination. On peut trouver dans une table de routage plusieurs lignes pour une même destination, il peut en effet, à partir d'un routeur donné, exister plusieurs chemins possibles pour atteindre la destination. Dans le cas où il existe plusieurs chemins possibles pour atteindre la même destination, le routeur va choisir le "chemin le plus court". Pour choisir ce chemin le plus court, le routeur va utiliser la métrique : plus la valeur de la métrique est petite, plus le chemin pour atteindre le réseau est "court". Un réseau directement lié à un routeur aura une métrique de 0.

Comment un routeur arrive à remplir sa table de routage ?

La réponse est simple pour les réseaux qui sont directement reliés au routeur (métrique = 0), mais comment cela se passe-t-il pour les autres réseaux (métrique supérieure à zéro) ?

Il existe 2 méthodes :

  • le routage statique : chaque ligne doit être renseignée "à la main". Cette solution est seulement envisageable pour des très petits réseaux de réseaux
  • le routage dynamique : tout se fait "automatiquement", on utilise des protocoles qui vont permettre de "découvrir" les différentes routes automatiquement afin de pouvoir remplir la table de routage tout aussi automatiquement.

Protocoles de routage

Un réseau de réseaux comportant des routeurs peut être modélisé par un graphe : chaque routeur est un sommet et chaque liaison entre les routeurs ou entre un routeur et un switch est une arête. Les algorithmes utilisés par les protocoles de routages sont donc des algorithmes issus de la théorie de graphes.

On trouve plusieurs protocoles de routage, nous allons en étudier deux : RIP (Routing Information Protocol) et OSPF (Open Shortest Path First).

Le protocole RIP

Au départ, les tables de routage contiennent uniquement les réseaux qui sont directement reliés au routeur (dans notre exemple ci-dessus, à l'origine, la table de routage de A contient uniquement les réseaux 172.168.0.0/16, 192.168.7.0/24 et 172.169.0.0/16).

Chaque routeur envoie périodiquement (toutes les 30 secondes) à tous ses voisins (routeurs adjacents) un message. Ce message contient la liste de tous les réseaux qu'il connaît (dans l'exemple ci-dessus, le routeur A envoie un message au routeur G avec les informations suivantes : "je connais les réseaux 172.168.0.0/16, 192.168.7.0/24 et 172.169.0.0/16". De la même manière G envoie un message à A avec les informations suivantes : "je connais les réseaux 192.168.7.0/24 et 10.0.0.0/8"). À la fin de cet échange, les routeurs mettent à jour leur table de routage avec les informations reçues (dans l'exemple ci-dessus, le routeur A va pouvoir ajouter le réseau 10.0.0.0/8 à sa table de routage. Le routeur A "sait" maintenant qu'un paquet à destination du réseau 10.0.0.0/8 devra transiter par le routeur G). Pour renseigner la colonne "métrique", le protocole utilise le nombre de sauts, autrement dit, le nombre de routeurs qui doivent être traversés pour atteindre le réseau cible (dans la table de routage de A, on aura donc une métrique de 1 pour le réseau 10.0.0.0/8 car depuis A il est nécessaire de traverser le routeur G pour atteindre le réseau 10.0.0.0/8)

Le protocole RIP s'appuie sur l'algorithme de Bellman-Ford (algorithme qui permet de calculer les plus courts chemins dans un graphe).

Le protocole RIP est aujourd'hui très rarement utilisé dans les grandes infrastructures. En effet, il génère, du fait de l'envoi périodique de message, un trafic réseau important (surtout si les tables de routages contiennent beaucoup d'entrées). De plus, le protocole RIP est limité à 15 sauts (on traverse au maximum 15 routeurs pour atteindre sa destination). On lui préfère donc souvent le protocole OSPF.

Exercice 3 :

archi2

En vous basant sur le protocole RIP (métrique = nombre de sauts), déterminez la table de routage du routeur A

Réseau Moyen de l'atteindre Métrique
172.18.0.0/16
172.16.0.0/16
172.17.0.0/16
192.168.2.0/24
192.168.3.0/24

Quel est, d'après la table de routage construite ci-dessus, le chemin qui sera emprunté par un paquet pour aller d'une machine ayant pour adresse IP 172.18.1.1/16 à une machine ayant pour adresse IP 172.16.5.3/16 ?

Le protocole OSPF

Comme dans le cas du protocole RIP, nous allons retrouver des échanges d'informations entre les routeurs (ces échanges sont plus "intelligents" dans le cas d'OSPF, ils permettent donc de réduire l'occupation du réseau). Nous n'allons pas rentrer dans les détails de ces échanges et nous allons principalement insister sur la métrique produite par OSPF. Le protocole OSPF, au contraire de RIP, n'utilise pas le "nombre de sauts nécessaire" pour établir la métrique, mais la notion de "coût des routes". Dans les messages échangés par les routeurs on trouve le coût de chaque liaison (plus le coût est grand et moins la liaison est intéressante). Quand on parle de "liaison" on parle simplement du câble qui relie un routeur à un autre routeur. Le protocole OSPF permet de connaître le coût de chaque liaison entre routeurs, et donc, de connaître le coût d'une route (en ajoutant le coût de chaque liaison traversée). On notera que pour effectuer ces calculs, le protocole OSPF s'appuie sur l'algorithme de Dijkstra.

Mais sur quoi repose cette notion de coût ?

La notion de coût est directement liée au débit des liaisons entre les routeurs. Le débit correspond au nombre de bits de données qu'il est possible de faire passer dans un réseau par seconde. Le débit est donc donné en bits par seconde (bits/s), mais on trouve souvent des méga bits par seconde (Mb/s) ou encore des giga bits par seconde (Gb/s) => 1 Mb/s = 106 bits/s et 1 Gb/s = 109 bits/s. Connaissant le débit d'une liaison, il est possible de calculer le coût d'une liaison à l'aide de la formule suivante :

Dans la formule ci-dessus le débit est en bits par seconde

Pour obtenir la métrique d'une route, il suffit d'additionner les coûts de chaque liaison (par exemple si pour aller d'un réseau 1 à un réseau 2 on doit traverser une liaison de coût 1, puis une liaison de coût 10 et enfin une liaison de coût 1, la métrique de cette route sera de 1 + 10 + 1 = 12)

Évidemment, comme dans le cas de RIP, les routes ayant les métriques les plus faibles sont privilégiées.

Exercice :

Soit le réseau suivant :

reseau

En vous basant sur le protocole OSPF (métrique = somme des coûts), déterminez la table de routage du routeur A

On donne les débits suivants :

    liaison routeur A - routeur B : 100 Mb/s
    liaison routeur A - routeur C : 1 Gb/s
    liaison routeur C - routeur B : 1 Gb/s

Réseau Moyen de l'atteindre Métrique
172.18.0.0/16
172.16.0.0/16
172.17.0.0/16
192.168.2.0/24
192.168.3.0

Quel est, d'après la table de routage construite ci-dessus, le chemin qui sera emprunté par un paquet pour aller d'une machine ayant pour adresse IP 172.18.1.1/16 à une machine ayant pour adresse IP 172.16.5.3/16 ?

Table de routage IP

Extrait de la table de routage de chaque routeurs

RouteurRéseau destinataireMasque de sous-réseauPasserelleInterfaceMétrique
Routeur A 172.16.0.0255.255.0.0192.168.2.1192.168.2.20.2
172.17.0.0255.255.0.0192.168.2.1192.168.2.20.1
172.18.0.0255.255.0.0172.18.255.254172.18.255.2540
Routeur B 172.16.0.0255.255.0.0172.16.255.254172.16.255.2540
172.17.0.0255.255.0.0192.168.3.2192.168.3.10.1
172.18.0.0255.255.0.0192.168.3.2192.168.3.10.2
Routeur C 172.16.0.0255.255.0.0192.168.3.1192.168.3.20.1
172.17.0.0255.255.0.0172.17.255.254172.17.255.2540
172.18.0.0255.255.0.0192.168.2.2192.168.2.10.1

Pour chaque routeur, déterminer l'adresse IP de chaque interface:

  • Routeur A : eth0 : eth1 : 192.168.1.1          eth2 :
  • Routeur B : eth0 : eth1 : eth2 : 192.168.1.2
  • Routeur C : eth0 : eth1 : eth2 :

Si la connexion entre le routeur A et le routeur C tombe en panne, compléter la nouvelle table de routage :

RouteurRéseau destinataireMasque de sous-réseauPasserelleInterfaceMétrique
Routeur A 172.16.0.0255.255.0.0192.168.1.2192.168.1.1
172.17.0.0255.255.0.0
172.18.0.0255.255.0.0172.18.255.254172.18.255.2540
Routeur B 172.16.0.0255.255.0.0172.16.255.254 172.16.255.2540
172.17.0.0255.255.0.0192.168.3.2192.168.3.10.1
172.18.0.0255.255.0.0
Routeur C 172.16.0.0255.255.0.0192.168.3.1192.168.3.20.1
172.17.0.0255.255.0.0172.17.255.254172.17.255.2540
172.18.0.0255.255.0.0

Exercice de synthèse

Soit le réseau suivant :

  • L1, L2 et L3 sont des réseau locaux.
  • R1, R2, R3, R4 et R5 sont des routeurs

Q1. Quel est le nombre minimal de sauts que fait un paquet de données pour aller du réseau L1 vers L2 ?

Q2. Quel est le nombre minimal de sauts que fait un paquet de données pour aller du réseau L3 vers L2 ?

Q3. Quel est le nombre maximal de sauts que fait un paquet de données pour aller du réseau L3 vers L2 ?

Extrait des tables de routage avec le protocole OSPF :

RouteurRéseau destinatairePasserelleInterfaceMétrique
R1192.150.0.0/24192.168.1.2192.168.1.11.2
10.129.0.0/1610.129.254.25410.129.254.2540
78.12.3.0/16193.25.20.251193.25.20.1121
R2192.150.0.0/24198.10.3.42198.10.3.110.2
R3192.150.0.0/24210.30.10.21210.30.10.20.3
78.12.3.0/1678.12.250.22478.12.250.2240
R4192.150.0.0/24214.3.2.91214.3.2.250.1
R5192.150.0.0/24192.150.0.254192.150.0.2540

Q4. Un paquet arrive au routeur R2, vers quel routeur sera-t-il dirigé ?

Q5. D'après la table de routage, quel trajet empruntera un paquet pour aller du réseau L1 vers le réseau L2 ?

Q6. Quel trajet empruntera un paquet pour aller du réseau L1 vers le réseau L3 ?

Q7. D'après les lignes de la colonne métrique, quel est le débit de la liaison entre le routeur R1 et R2 ? (précisez l'unité)

Q8. D'après la colonne métrique, quel est le débit de la liaison entre le routeur R1 et R3 ?

Q9. D'après la colonne métrique, quel est le débit de la liaison entre le routeur R2 et R4 ?

Q10. D'après la colonne métrique, quel est le débit de la liaison entre le routeur R4 et R5 ?

Q11. La liaison entre R1 et R2 est interrompue. Quel nouveau chemin devra parcourrir le paquet d'après le protocole OSPF ?

Q12. Modifier la table de routage de R1

RouteurRéseau destinatairePasserelleInterfaceMétrique
R1192.150.0.0/24
10.129.0.0/1610.129.254.25410.129.254.2540
78.12.3.0/16193.25.20.251193.25.20.1121

exercice type bac

Cet exercice est tiré du sujet 0 du bac NSI.

On considère un réseau composé de plusieurs routeurs reliés de la façon suivante :

Le protocole RIP

Le protocole RIP permet de construire les tables de routage des différents routeurs, en indiquant pour chaque routeur la distance, en nombre de sauts, qui le sépare d’un autre routeur. Pour le réseau ci-dessus, on dispose des tables de routage suivantes :

Table de routage
du routeur A
DestinationRouteur suivantDistance
BB1
CC1
DD1
EC2
FC2
GC3
Table de routage
du routeur B
DestinationRouteur suivantDistance
AA1
CA2
DD1
ED2
FA3
GD3
Table de routage
du routeur C
DestinationRouteur suivantDistance
AA1
BA2
DE2
EE1
FF1
GF2
Table de routage
du routeur D
DestinationRouteur suivantDistance
AA1
BB1
CE2
EE1
FA3
GE2
Table de routage
du routeur E
DestinationRouteur suivantDistance
AC2
BD2
CC1
DD1
FG2
GG1
Table de routage
du routeur F
DestinationRouteur suivantDistance
AC2
BC3
CC1
DC3
EG2
GG1

Question 1

1) Le routeur A doit transmettre un message au routeur G, en effectuant un nombre minimal de sauts. Déterminer le trajet parcouru.

2) Déterminer une table de routage possible pour le routeur G obtenu à l’aide du protocole RIP.

Table de routage
du routeur G
DestinationRouteur suivantDistance
A
B
C
D
E
F

Question 2

Le routeur C tombe en panne. Reconstruire la table de routage du routeur A en suivant le protocole RIP.

Table de routage
du routeur A
DestinationRouteur suivantDistance
B
D
E
F
G

Le protocole OSPF

Contrairement au protocole RIP, l’objectif n’est plus de minimiser le nombre de routeurs traversés par un paquet. La notion de distance utilisée dans le protocole OSPF est uniquement liée aux coûts des liaisons.

L’objectif est alors de minimiser la somme des coûts des liaisons traversées.

Le coût d’une liaison est donné par la formule suivante :

où d est la bande passante en bits/s entre les deux routeurs.

On a rajouté sur le graphe représentant le réseau précédent les différents débits des liaisons.

On rappelle que 1 Gb/s = 1 000 Mb/s = 10 9 bits/s.

Question 3

1) Vérifier que le coût de la liaison entre les routeurs A et B est 0,01.

2) La liaison entre le routeur B et D a un coût de 5. Quel est le débit de cette liaison ?

Question 4

Indiquez ci-dessous le coût de chaque liaison. Le routeur A doit transmettre un message au routeur G, en empruntant le chemin dont la somme des coûts sera la plus petite possible. Déterminer le chemin parcouru. On indiquera le raisonnement utilisé.














Pour trouver le chemin le plus court on applique l'algorithme de Dijkstra expliqué dans la vidéo suivante :