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/)
