Les protocoles de routage ========================= <br><br> *Ce document a été créé en collaboration avec l'IA Copilot intégrée au moteur de recherche Bing (elle-même reliée à ChatGPT), qui a été utilisée pour transposer le cours correspondant (accessible [ici](protocoles-routage)) en un diaporama.* --- # Introduction - Un réseau informatique relie des machines pour la communication. - Messages échangés : découpés en paquets qui transitent indépendamment des autres - Un réseau = un ensemble de sous-réseaux interconnectés par des **routeurs** - Les interconnexions peuvent être de différents types : Ethernet, Wi-Fi, Fibre optique, liaison satellite, etc. ---- <img class="r-stretch image-responsive centre" src="data/Cisco7600seriesrouter.jpg"> <div style="font-size: 0.5em"> **Un routeur Cisco** (crédits : Cisco Systems, <a href="http://creativecommons.org/licenses/by-sa/3.0/" target="_blank">CC BY-SA 3.0</a>, via <a href="https://commons.wikimedia.org/wiki/File:Cisco7600seriesrouter.jpg" target="_blank">Wikimedia Commons</a>) </div> - Les routeurs déterminent la meilleure route pour les paquets. - Ils disposent d'une **table de routage** définie manuellement ou dynamiquement par des **algorithmes** - Deux protocoles de routage dynamique principaux : RIP et OSPF. --- # Topologie d'un réseau - L'interconnexion des routeurs forme ce que l'on appelle la **topologie d'un réseau** - Un routeur interconnecte au moins deux sous-réseaux, il possède donc au moins deux cartes réseaux - Un routeur appartient à chacun des sous-réseaux qu'il relie : une adresse IP par sous-réseau ---- <img class="r-stretch" src="data/reseau_cours.svg" alt="topologie d'un réseau" width="800"> - Notre réseau : 4 routeurs (R1, R2, R3, R4) et 6 sous-réseaux (A, B, C, D, E et F) ---- <img class="r-stretch" src="data/reseau_cours.svg" alt="topologie d'un réseau" width="800"> - Routeur R1 : * interconnecte trois réseaux : F, A et E * possède trois adresses : `192.168.0.1` (@ dans F), `10.0.5.1` (@ dans A) et `172.17.1.1` (@ dans E). --- # Tables de routage --- ## Mise en situation <img class="r-stretch" src="data/reseau_cours.svg" alt="topologie d'un réseau" width="800"> L'ordinateur (client) d'adresse `192.168.0.5` veut interroger le serveur `10.4.8.5` ---- <img class="r-stretch" src="data/reseau_cours.svg" alt="topologie d'un réseau" width="800"> - l'@ IP du serveur n'est pas dans le réseau F, donc l'ordinateur transmet à R1 ---- <img class="r-stretch" src="data/reseau_cours.svg" alt="topologie d'un réseau" width="800"> - R1 regarde dans sa table de routage pour déterminer à quel routeur voisin il doit transmettre le message - Chaque routeur procède de la même manière jusqu'à destination --- ## Composants d'une Table de Routage - La table de routage contient 4 colonnes : - **Destination** : sous la forme d'une adresse sous-réseaux/masque. - **Passerelle** : l'adresse IP du prochain routeur pour atteindre la destination - **Interface** : la carte réseau pour atteindre la passerelle - **Métrique** : le coût pour atteindre la destination ---- <img class="r-stretch" src="data/reseau_cours.svg" alt="topologie d'un réseau" width="800"> <div style="font-size: 0.5em"> Table de routage de R1 pourrait être : | Destination (@IP ss-rés) | Passerelle (@IP routeur) | Interface | Métrique | | --- | --- | --- | --- | | 192.168.0.0 /24 (F) | | wlan0 | | | 172.17.1.0 /24 (E) | | fasteth0 | | | 10.0.5.0 /24 (A) | | eth0 | | | 10.5.2.0 /24 (B) | 172.17.1.2 (R2) | fasteth0 | | | 10.7.3.0 /24 (C) | 10.0.5.2 (R3) | eth0 | | | 10.4.8.0 /24 (D) | 10.0.5.2 (R3) | eth0 | | </div> ---- - Les interfaces : - wlan0 : interface sans fil (*Wireless Local Area Network*) de numéro 0 - fasteth0 : interface FastEthernet de numéro 0 - eth0 : interface Ethernet de numéro 0 - Métrique : vide pour le moment car dépend du protocole utilisé --- ## Routage Statique vs Dynamique - Routage statique : configuration manuelle des routes. - mise à jour (manuelle) nécessaire à chaque nouvel équipement, panne, etc. - Routage dynamique : ajustement automatique des routes : - les routeurs **diffusent et partagent des informations** - mettent à jour leur table de routage grâce à des **algorithmes de routage** - **RIP** et **OSPF** sont des protocoles de routage dynamique. --- # Le protocole RIP ---- ✍️ Exercice 1 à faire sur le protocole RIP ([Exercices](protocoles-routage-exercices)) ---- # Le protocole RIP - RIP = Routing Information Protocol ("protocole d'information de routage") - Conçu pour fonctionner sur des réseaux de taille modérée - Utilise l'algorithme de Bellman-Ford - Chaque routeur diffuse régulièrement les routes qu'il connaît (toutes les 30 sec.) - **Métrique = Distance en nombre de sauts** ---- ## Fonctionnement du protocole RIP - Chaque routeur met à jour sa propre table de routage (toutes les 30 sec. à partir des informations de ses voisins) - Si une route reçue comprend un chemin plus court : modification de la table - Si une route n'est pas connue : ajout à la table - Sinon, pas de changement - Émission de sa table à ses voisins ---- ## Gestion des pannes avec le protocole RIP - Si pas de nouvelles d'un voisin pendant 3 minutes (= premier *timeout*) : considéré en panne - Toutes les routes passant par lui sont affectées dans la distance infinie (16) - L'information est diffusée à tous les voisins - Si pas de nouvelles d'un voisin à distance 16 après un certain temps : route supprimée de la table ---- ## Évolutions du réseau avec le protocole RIP - L'émission périodique des tables permet de prendre en compte : - Les évolutions du réseau (apparition/disparition d'un routeur) - La coupure des liaisons - La panne d'un ou plusieurs routeurs - Si tout se passe bien : **convergence** rapide des tables ---- ## Exemple <img class="r-stretch" src="data/reseau_cours.svg" alt="topologie d'un réseau" width="800"> <div style="font-size: 0.5em"> | Destination (@IP ss-rés) | Passerelle (@IP routeur) | Interface | Nombre de sauts (métrique) | | --- | --- | --- | --- | | 192.168.0.0 /24 (F) | | wlan0 | 0 <span class="fragment" data-fragment-index="1" style="color:red"> ou 1</span> | | 172.17.1.0 /24 (E) | | fasteth0 | 0 <span class="fragment" data-fragment-index="1" style="color:red"> ou 1</span> | | 10.0.5.0 /24 (A) | | eth0 | 0 <span class="fragment" data-fragment-index="1" style="color:red"> ou 1</span> | | 10.5.2.0 /24 (B) | 172.17.1.2 (R2) | fasteth0 | 1 <span class="fragment" data-fragment-index="1" style="color:red"> ou 2</span> | | 10.7.3.0 /24 (C) | 10.0.5.2 (R3) | eth0 | 1 <span class="fragment" data-fragment-index="1" style="color:red"> ou 2</span>| | 10.4.8.0 /24 (D) | 10.0.5.2 (R3) | eth0 | 1 <span class="fragment" data-fragment-index="1" style="color:red"> ou 2</span>| **Table de routage du routeur R1 après convergence** </div> ---- ## Remarques et inconvénients du protocole RIP - Métrique (distance en nombre de sauts) ne tient pas compte de la qualité des liaisons (= bande passante) 👉 la route choisie n'est pas toujours la plus rapide - Distance maximale autorisée : 15 (16 correspond à la distance infinie) 👉 convient seulement pour des petits réseaux - Les informations ne sont échangées qu'entre voisins directs 👉 pas de vision au-delà de ses propres voisins (pas de connaissance de la topologie du réseau) - D'autres protocoles ont vu le jour pour pallier ces inconvénients : notamment OSPF ---- ✍️ Exercices 2 et 3 à faire sur le protocole RIP ([Exercices](protocoles-routage-exercices)) --- # Le protocole OSPF ---- # Le protocole OSPF - **OSPF** = Open Shortest Path First - Développé à partir de 1997 pour remplacer RIP - Chaque routeur a une vision globale de la topologie du réseau - Table de routage **tient compte de la vitesse de communication** entre les routeurs ---- ## Fonctionnement du protocole OSPF - 1ère phase : échange de messages pour connaître la topologie complète du réseau - 2ème phase : calcul des chemins les plus rapides vers les différents réseaux - Chaque routeur maintient une carte complète du réseau - Teste périodiquement l'état des liaisons et diffuse cet état à tous les routeurs du domaine ---- ## Les coûts des liaisons selon leur type - Coût est inversement proportionnel au débit de transfert - Formule (**peut varier !**) : $\text{coût} = \dfrac{10^8}{\text{débit}}$ - Plus le débit est important, plus le coût est faible <div style="font-size: 0.5em"> | Technologie | BP descendante | BP montante | |-|-|-| | Modem | 56 kbit/s | 48 kbit/s | | Bluetooth | 3 Mbit/s | 3 Mbit/s | | Ethernet | 10 Mbit/s | 10 Mbit/s | | Wi-Fi | 10 Mbit/s ~ 10 Gbits/s | 10 Mbit/s ~ 10 Gbits/s | | ADSL | 13 Mbit/s | 1 Mbit/s | | 4G | 100 Mbit/s | 50 Mbit/s | | Satellite | 50 Mbit/s | 1 Mbit/s | | Fast Ethernet | 100 Mbit/s | 100 Mbit/s | | FFTH (fibre) | 10 Gbit/s | 10 Gbit/s | | 5G | 20 Gbit/s | 10 Gbit/s | </div> ---- ## Exemple - Réseau initial (version simplifiée) avec débits entre les différents routeurs <img class="r-stretch centre image-responsive" src="data/ospf1_v3.png" alt="schéma du réseau" width="800"> ---- ## Exemple (suite) - Calcul du coût de chaque liaison pour obtenir le graphe pondéré <img class="r-stretch centre image-responsive" src="data/ospf2_v3.png" alt="schéma du réseau" width="800"> ---- ## Étape 1 : Construction de la topologie du réseau avec OSPF - Au démarrage, un routeur envoie des messages HELLO à tous les routeurs connectés - Les routeurs répondent, permettant au routeur de départ de connaître ses voisins - Après l'initialisation, les routeurs échangent des paquets LSA (*Link State Advertisement*, soit "annonce de l'état des liens") contenant leurs connaissances du réseau - Après les échanges, tous les routeurs ont la même vision du réseau ---- ### Topologie du réseau <div style="font-size: 0.7em"> **Exemple de topologie du réseau vue par R1** | Lien | Sous-réseau | Coût | | --- | --- | --- | | R1-R2 | 172.17.1.0 /24 | 1 | | R1-R3 | 10.0.5.0 /24 | 10 | | R2-R4 | 10.5.2.0 /24 | 1 | | R3-R4 | 10.7.3.0 /24 | 2 | </div> <img class="r-stretch centre image-responsive" src="data/ospf2_v3.png" alt="schéma du réseau" width="800"> ---- ## Étape 2 : Calculs des plus courts chemins avec OSPF - Chaque routeur détermine les plus courts chemins vers chaque sous-réseau (grâce à des algorithmes très efficaces) - Construit sa table de routage avec les meilleures routes ---- ### Table de routage <div style="font-size: 0.5em"> **Exemple : table de routage de R1** | Destination (@IP ss-rés) | Passerelle (@IP routeur) | Interface | Coût (métrique) | | --- | --- | --- | --- | | 192.168.0.0 /24 (F) | | wlan0 | 0 | | 172.17.1.0 /24 (E) | | fasteth0 | 0 | | 10.0.5.0 /24 (A) | | eth0 | 0 | | 10.5.2.0 /24 (B) | 172.17.1.2 (R2) | fasteth0 | 1 | | 10.7.3.0 /24 (C) | 172.17.1.2 (R2) | fasteth0 | 2 | | 10.4.8.0 /24 (D) | 172.17.1.2 (R2) | fasteth0 | 4 | </div> <div style="font-size: 0.6em"> **Bilan** : Pour aller de l'ordinateur au serveur, le chemin le plus rapide est R1-R2-R4-R3 avec un coût de 4 </div> <img class="r-stretch centre image-responsive" src="data/ospf2_v3.png" alt="schéma du réseau" width="800"> ---- ✍️ Exercice 4 à faire sur le protocole OSPF ([Exercices](protocoles-routage-exercices)) ---- # Algorithmes du plus court chemin - "Plus court chemin" = chemin dont la somme des coûts des liaisons est la plus petite - Donc dans notre cas : le plus court = le plus rapide - Le réseau en exemple est très petit : un humain peut trouver rapidement le chemin le plus court (le plus rapide) - En réalité, les réseaux sont immenses et il faut des algorithmes pour calculer le chemin le plus court (le plus rapide) ---- ## Algorihtme de Dijkstra - OSPF : basé sur l'algorithme de Dijkstra pour trouver le chemin le plus court. - A priori pas au programme de NSI mais principe simple à comprendre et appliquer - Vidéo : https://youtu.be/rHylCtXtdNs ---- ✍️ Exercice 5 à faire sur l'algorithme de Djikstra + les derniers exercices bilan ([Exercices](protocoles-routage-exercices)) --- # Routage mondial --- ## Internet et Systèmes Autonomes - Internet divisé en *domaines administratifs* (ou *Administrative System*) - = zone dans laquelle n'exerce qu'une seule autorité (ex : FAI) - qui gère : administration des adresses, facturation, sécurisation, etc. - Chaque domaine administratif est divisé en **Systèmes Autonomes** (abrégé **AS**, pour *Autonomous System*). - Un AS est : - un ensemble de réseaux partageant une même stratégie de routage (ex : entreprise, campus ...) - identifié par un numéro unique - dans lequel tous les routeurs utilisent le même protocole de routage (ex : RIP, OSPF mais il en existe d'autres) ---- <img class="r-stretch image-responsive centre" src="data/routage_mondial.jpg"> <div style="font-size: 0.5em"> **Le routage mondial** (source : <a href="https://www.ciscopress.com/articles/article.asp?p=2832406&seqNum=8" target="_blank">ciscopress.com</a>) </div> - AS reliés par des routeurs externes (qui utilisent des protocoles comme BGP = *Border Gateway Protocol*) - Ce qui a été expliqué dans ce cours s'applique à des AS - Plus de 91 000 AS en 2019. --- # Bilan - Les machines communiquent grâce à des **routeurs** - Les routeurs utilisent **table de routage** pour déterminer la meilleure route - Ces tables peuvent être définies manuellement ou évoluer dynamiquement ---- # Bilan (suite) - RIP et OSPF : **protocoles de routage dynamique** - **Routeurs échangent périodiquement des messages** pour mise à jour dynamique des tables de routage - Algorithmes de routage utilisent une **métrique** pour mesurer distance entre routeur et réseau de destination ---- # Bilan (suite) - **Protocole RIP** : routeurs connaissent seulement leurs voisins - Algorithme RIP (Bellman-Ford) : **métrique = nombre de sauts** - Meilleure route = celle avec minimum de sauts - Avantages : simple - Inconvénients : - ne tient pas compte de la qualité des liens entre routeurs - n'est pas très adapté pour des réseaux de grande taille ---- # Bilan (suite) - **Protocole OSPF** : créé pour remplacer RIP, tient compte de la qualité des liens - Routeurs OSPF ont une vision complète de la topologie du réseau - Algorithme OSPF (Dijkstra) : **métrique = coût minimal** - Meilleure route = celle avec coût minimal - Avantages : règle les problèmes de RIP - Inconvénients : - plus complexe - consomme plus de ressources --- **Références :** - Equipe éducative DIU EIL, cours d'Introduction aux réseaux de P. PASSARD et S. HAMMA, Université de Nantes. - Cours de Gilles Lassus sur les [protocoles de routage](https://github.com/glassus/terminale_nsi/blob/main/docs/T5_Architecture_materielle/5.3_Protocoles_de_routage/cours.md) notamment pour les schémas - Livre *Numérique et Sciences Informatiques, 24 leçons, Terminale*, T. BALABONSKI, S. CONCHON, J.-C. FILLIATRE, K. NGUYEN, éditions ELLIPSES. - Cours d'Olivier Lecluse sur les [protocoles de routage](https://www.lecluse.fr/nsi/NSI_T/archi/routage/) - Cours de Denis Quenton sur les protocoles [RIP](https://angellier.gitlab.io/nsi/terminale/ArchitectureReseaux/ProtocoleRoutage/RIP/) et [OSPF](https://angellier.gitlab.io/nsi/terminale/ArchitectureReseaux/ProtocoleRoutage/OSPF/) --- Germain BECKER, Lycée Mounier, ANGERS Ressource éducative libre distribuée sous [Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International](http://creativecommons.org/licenses/by-nc-sa/4.0/) ![Licence Creative Commons](https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png)