Prérequis : notions de réseau vues en première (adresses IP, modèle TCP/IP), graphes pondérés
À l’issue de ce chapitre, vous saurez :
Une adresse IPv4 est un identifiant numérique attribué à chaque interface réseau d’une machine. Elle est codée sur 32 bits et notée sous la forme de quatre octets séparés par des points, par exemple 192.168.1.42.
À chaque adresse IP est associé un masque de sous-réseau qui permet de distinguer la partie réseau (commune à toutes les machines du même réseau local) de la partie hôte (propre à chaque machine). Par exemple, avec le masque 255.255.255.0, les 24 premiers bits identifient le réseau. On utilise la notation CIDR : 192.168.1.0/24.
Définition (adresse réseau) : l’adresse réseau s’obtient par un ET logique bit à bit entre l’adresse IP d’une machine et son masque de sous-réseau. Deux machines appartiennent au même réseau local si et seulement si elles partagent la même adresse réseau.
Exemple : soit la machine d’adresse 172.16.5.130/16. Le masque /16 correspond à 255.255.0.0. L’adresse réseau est donc 172.16.0.0/16. Toute machine dont l’adresse commence par 172.16.x.x (avec le même masque) appartient au même réseau local.
Le modèle TCP/IP organise les communications réseau en quatre couches :
Définition (encapsulation) : lors de l’envoi de données, chaque couche ajoute un en-tête contenant les informations nécessaires à son fonctionnement. On parle d’encapsulation. À la réception, chaque couche retire l’en-tête qui lui correspond : c’est la désencapsulation.
| Application | Transport | Internet | Accès réseau |
|---|---|---|---|
| Données | Segment (TCP) / Datagramme (UDP) | Paquet IP | Trame Ethernet |
Un switch (commutateur) relie les machines d’un même réseau local en utilisant les adresses MAC. Un routeur interconnecte plusieurs réseaux locaux en s’appuyant sur les adresses IP. Internet résulte de l’interconnexion de réseaux par des routeurs.
Un routeur possède plusieurs interfaces réseau, chacune connectée à un réseau différent. Chaque interface a sa propre adresse IP et sa propre adresse MAC.
Lorsqu’un routeur reçoit un paquet, il consulte sa table de routage pour déterminer vers quelle interface (et éventuellement quel routeur voisin) transmettre le paquet afin qu’il se rapproche de sa destination.
Définition (table de routage) : une table de routage est un tableau associant à chaque réseau de destination connu les informations suivantes : l’adresse du réseau de destination, le moyen de l’atteindre (interface de sortie ou adresse du routeur suivant, appelé passerelle ou gateway), et une métrique mesurant le coût de la route.
Une table réelle comporte aussi une route par défaut, 0.0.0.0/0 (notée default), qui capte toute destination absente de la table, et une colonne interface de sortie ; la fiche « La table de routage » (bouton ci-dessus) détaille la lecture d’une telle table et la règle du préfixe le plus long.
Considérons le réseau suivant avec deux routeurs A et G :
eth0 (172.16.255.254/16), eth1 (192.168.7.1/24) et eth2 (172.17.255.254/16) ;eth0 (10.255.255.254/8) et eth1 (192.168.7.2/24).Table de routage simplifiée du routeur A :
| Réseau | Moyen de l’atteindre | Métrique |
|---|---|---|
172.16.0.0/16 |
eth0 |
0 |
192.168.7.0/24 |
eth1 |
0 |
172.17.0.0/16 |
eth2 |
0 |
10.0.0.0/8 |
192.168.7.2 (routeur G) |
1 |
Les réseaux directement connectés ont une métrique de 0. Le réseau 10.0.0.0/8 n’est pas directement relié au routeur A, mais celui-ci sait qu’il faut transmettre les paquets au routeur G pour l’atteindre (métrique de 1).
En vous inspirant de la table de routage du routeur A ci-dessus, déterminez la table de routage du routeur G.
| Réseau | Moyen de l’atteindre | Métrique |
|---|---|---|
10.0.0.0/8 |
eth0 |
0 |
192.168.7.0/24 |
eth1 |
0 |
172.16.0.0/16 |
192.168.7.1 (routeur A) |
1 |
172.17.0.0/16 |
192.168.7.1 (routeur A) |
1 |
Il existe deux manières de remplir une table de routage :
Le protocole RIP (Routing Information Protocol) est un protocole de routage à vecteur de distances. Sa métrique est le nombre de sauts (hops), c’est-à-dire le nombre de routeurs à traverser pour atteindre le réseau de destination.
Définition (vecteur de distance) : un vecteur de distance est un couple (destination, distance). Chaque routeur maintient un tableau de ces vecteurs constituant sa table de routage.
L’algorithme sous-jacent est l’algorithme de Bellman-Ford.
Remarque (routing by rumor) : avec RIP, chaque routeur ne connaît que ses voisins directs et construit sa vision du réseau de proche en proche, par « rumeur ». Il n’a jamais de vision globale du réseau.
Considérons un réseau avec trois routeurs A, B et C reliés entre eux, avec chacun un réseau local propre. Les six réseaux en jeu sont : le réseau local de A, 172.18.0.0/16 ; celui de B, 172.16.0.0/16 ; celui de C, 172.17.0.0/16 ; la liaison A–B, 172.19.0.0/16 ; la liaison A–C, 172.20.0.0/16 ; la liaison B–C, 172.21.0.0/16.
Table de routage du routeur A avec RIP (après convergence) :
| Réseau | Passerelle | Distance (sauts) |
|---|---|---|
172.18.0.0/16 |
directe | 0 |
172.19.0.0/16 |
directe | 0 |
172.20.0.0/16 |
directe | 0 |
172.16.0.0/16 |
via B | 1 |
172.21.0.0/16 |
via B | 1 |
172.17.0.0/16 |
via C | 1 |
Soit le réseau décrit ci-dessus (trois routeurs A, B et C tous interconnectés).
172.18.1.1 vers 172.16.5.3 ?| Réseau | Passerelle | Distance |
|---|---|---|
172.16.0.0/16 |
directe | 0 |
172.19.0.0/16 |
directe | 0 |
172.21.0.0/16 |
directe | 0 |
172.18.0.0/16 |
via A | 1 |
172.20.0.0/16 |
via A | 1 |
172.17.0.0/16 |
via C | 1 |
Le paquet suit le chemin : machine source → routeur A → routeur B → machine destination. Un seul saut suffit (A et B sont directement reliés).
Si la liaison A–B est coupée, le paquet transite par C : machine source → A → C → B → machine destination (2 sauts au lieu de 1).
Le protocole OSPF (Open Shortest Path First) est un protocole de routage à état de liens. Contrairement à RIP, chaque routeur possède une vision globale du réseau et calcule les chemins optimaux en tenant compte du débit des liaisons.
Définition (coût d’une liaison OSPF) : le coût d’une liaison est défini par la formule :
\[\text{coût} = \frac{10^8}{\text{débit en bit/s}}\]
Plus le débit est élevé, plus le coût est faible. Le coût total d’une route est la somme des coûts de chaque liaison traversée.
Exemple de calcul de coûts :
| Type de liaison | Débit | Coût |
|---|---|---|
| Ethernet | 10 Mbit/s | \(\frac{10^8}{10^7} = 10\) |
| Fast Ethernet | 100 Mbit/s | \(\frac{10^8}{10^8} = 1\) |
| Gigabit Ethernet | 1 Gbit/s | \(\frac{10^8}{10^9} = 0{,}1\) |
Comparaison avec RIP : OSPF se distingue de RIP sur trois points fondamentaux : chaque routeur possède une vision globale du réseau (et non locale) ; la métrique est le coût basé sur le débit (et non le nombre de sauts) ; les mises à jour ne sont envoyées que lorsqu’un changement intervient (et non périodiquement toutes les 30 secondes).
Reprenons le réseau à trois routeurs A, B et C avec les débits suivants : A–B à 1 Mbit/s, A–C à 10 Mbit/s, B–C à 10 Mbit/s.
Calcul des coûts :
| Liaison | Débit | Coût |
|---|---|---|
| A — B | 1 Mbit/s | \(\frac{10^8}{10^6} = 100\) |
| A — C | 10 Mbit/s | \(\frac{10^8}{10^7} = 10\) |
| B — C | 10 Mbit/s | \(\frac{10^8}{10^7} = 10\) |
Pour aller de A à B :
OSPF choisit le chemin A → C → B (coût 20), bien qu’il comporte un saut supplémentaire. RIP aurait choisi le chemin direct A → B (1 seul saut) alors que son coût est cinq fois plus élevé (100 contre 20).
Soit le réseau ci-dessus avec les débits indiqués.
| Réseau | Passerelle | Distance |
|---|---|---|
| Réseaux de A | directe | 0 |
| Réseaux de B | via B | 1 |
| Réseaux de C | via C | 1 |
| Réseau | Passerelle | Coût |
|---|---|---|
| Réseaux de A | directe | 0 |
| Réseaux de C | via C | 10 |
| Réseaux de B | via C | 20 |
RIP choisit le chemin direct A → B (1 saut) car il minimise le nombre de sauts. OSPF choisit A → C → B (coût 20 < 100) car il tient compte du débit des liaisons.
Si la liaison A–B à 1 Mbit/s est peu sollicitée et la liaison A–C à 10 Mbit/s est saturée par d’autres trafics, le chemin direct pourrait en pratique offrir un meilleur débit effectif. OSPF ne tient pas compte de la charge réelle des liens.
| Critère | RIP | OSPF |
|---|---|---|
| Métrique | Nombre de sauts | Coût (basé sur le débit) |
| Vision du réseau | Locale (voisins uniquement) | Globale (tout le réseau) |
| Algorithme | Bellman-Ford | Dijkstra |
| Mises à jour | Périodiques (30 s) | Sur changement uniquement |
| Limite | 15 sauts maximum | Pas de limite de sauts |
| Trafic généré | Important | Modéré |
| Réseaux adaptés | Petits réseaux | Moyens à grands réseaux |
RIP est limité à 15 sauts : au-delà, un réseau est considéré comme inaccessible. De plus, l’envoi périodique des tables complètes toutes les 30 secondes génère un trafic prohibitif sur un grand réseau comportant des milliers de routeurs.
Oui, si toutes les liaisons ont le même débit, alors toutes ont le même coût OSPF. OSPF minimise alors la somme des coûts, ce qui revient à minimiser le nombre de liaisons traversées, c’est-à-dire le nombre de sauts. Les deux protocoles donnent les mêmes routes dans ce cas particulier.
Un réseau peut être modélisé par un graphe où les sommets sont les routeurs et les arêtes sont les liaisons. Le poids de chaque arête est le coût de la liaison (inversement proportionnel au débit). OSPF calcule les chemins de poids minimal grâce à l’algorithme de Dijkstra, ce qui correspond exactement au problème du plus court chemin dans un graphe pondéré.