ROUTAGE STATIQUE : FONCTIONNEMENT DU PILOTE IP

EXEMPLE DE TABLE DE ROUTAGE

hannibal@hannibal-desktop:~$ route
Table de routage IP du noyau
Destination Passerelle Genmask Indic Metric Ref Use Iface
172.16.39.0 * 255.255.255.0 U 0 0 0 vmnet8
172.16.87.0 * 255.255.255.0 U 0 0 0 vmnet1
192.168.0.0 * 255.255.255.0 U 1 0 0 eth0
link-local * 255.255.0.0 U 1000 0 0 eth0
default 192.168.0.1 0.0.0.0 UG 0 0 0 eth0
hannibal@hannibal-desktop:~$

STRUCTURE SIMPLIFIEE D'UNE TABLE DE ROUTAGE

DESTINATION	MASQUE	PASSERELLE	INTERFACE

LES 2 TYPES DE ROUTAGE

Le routage direct

Il s'agit de délivrer un datagramme à une machine raccordée au même LAN. L'émetteur trouve l'adresse physique du correspondant (ARP), encapsule le datagramme dans une trame et l'envoie.

root@hannibal-desktop:~# route
Table de routage IP du noyau
Destination Passerelle Genmask Indic Metric	Ref	Use	Iface
192.168.0.0 * 255.255.255.0	U	0	0	0	eth1
root@hannibal-desktop:~#

Le routage indirect

Le destinataire n'est pas sur le même LAN comme précédemment. Il est absolument nécessaire de franchir une passerelle connue d'avance ou d'employer un chemin par défaut.

En effet, toutes les machines à atteindre ne sont pas forcément sur le même réseau physique. C'est le cas le plus courant, par exemple sur l'Internet qui regroupe des centaines de milliers de réseaux différents. Exemple de la table de routage de ma station de travail :

root@hannibal-desktop:~# route
Table de routage IP du noyau
Destination Passerelle Genmask Indic Metric Ref Use Iface
192.168.0.0 * 255.255.255.0 U 0 0 0	eth1

Configuration de la passerelle (ici, il s'agit d'une passerelle par défaut).

root@hannibal-desktop:~# route add default gw 192.168.0.1
root@hannibal-desktop:~# route
Table de routage IP du noyau
Destination Passerelle Genmask Indic Metric Ref Use Iface
192.168.0.0 * 255.255.255.0 U 0 0 0	eth1
default 192.168.0.1 0.0.0.0 UG 0 0 0	eth1
root@hannibal-desktop:~#

ALGORITHME DE ROUTAGE

Cet algorithme simplifié résume les opérations de la couche IP pour choisir une destination, en fonction de sa table de routage.

Cette opération est essentiellement basée sur le numéro de réseau, IN, extrait de l'adresse IP de destination , Id. M désigne la machine sur laquelle s'effectue le routage.

Si IN est un numéro de réseau auquel M est directement reliée :
* Obtenir l'adresse physique de la machine destinatrice
* Encapsuler le datagramme dans une trame physique et l'envoyer directement.
Sinon Si Id apparait comme une machine à laquelle une route spéciale est attribuée :
* router le datagramme en fonction.
Sinon Si IN apparait dans la table de routage :
* router le datagramme en fonction.
Sinon S'il existe une route par défaut :
* router le datagramme vers la passerelle ainsi désignée.
Sinon :
* Déclarer une erreur de routage (ICMP).

EXEMPLE DE ROUTAGE

Le pilote IP d'un hôte est relié à 2 réseaux physiques :

le réseau 172.16.0.0/16 via la carte eth0 associée à l'adresse IP 172.16.0.1

le réseau 192.168.1.0/24 via la carte réseau eth1 associée à l'adresse IP 192.168.1.1

Le pilote ip reçoit d'une couche réseau supérieure (TCP, UDP…) un message à transmettre à la station 192.168.1.2.

Il teste si cette adresse appartient à un des réseaux dont il est membre. Pour ce faire, pour chaque réseau, il effectue le « ET logique » entre l'adresse de destination et le masque du réseau et compare le résultat avec l'adresse IP du réseau. S'il y a correspondance exacte, le pilote IP en conclut que le paquet est destiné à ce réseau.

Ainsi, 192.168.1.2 & 255.255.255.0 donne 192.168.0.0. Cette valeur est différente de 172.16.0.0. Le paquet n'est pas pour ce réseau. Inversement, 192.168.1.2 & 255.255.255.0 donne 192.168.1.0 qui correspond bien au réseau 192.168.1.0. Le paquet doit donc être transmis sur la carte eth1.

PETIT EXERCICE POUR FAIRE COMPRENDRE CE QU'EST UNE TABLE DE ROUTAGE A MADAME MICHU !

Une table de routage est une liste contenant essentiellement trois types d'informations : des adresses réseau avec le masque réseau associé et le moyen de les atteindre. Soit le réseau est directement connecté à l'appareil, dans ce cas le moyen de l'atteindre est le nom de l'interface, soit, il s'agit de l'adresse du prochain routeur situé sur la route vers ce réseau.

Par exemple, considérons sur un appareil quelconque, sa table de routage :

Tableau 1. Table de routage

Réseau	Masque	Moyen de l'atteindre
192.168.2.0	255.255.255.0	eth0
100.0.0.0	255.0.0.0	eth1
101.0.0.0	255.0.0.0	eth2
192.168.1.0	255.255.255.0	100.0.0.1
192.168.3.0	255.255.255.0	101.0.0.2

Cette table est riche d'enseignements. On apprend très précisément que l'appareil possède trois interfaces réseau (eth0, eth1, eth2) ainsi que les adresses IP des réseaux qui sont directement reliés à ces interfaces. On connaît les adresses IP de deux routeurs. On sait qu'il existe deux réseaux 192.168.1.0 et 192.168.3.0 et qu'ils sont respectivement derrière les routeurs 100.0.0.1 et 101.0.0.2. Par contre, il est impossible d'affirmer que ces deux réseaux sont directement reliés à ces routeurs. Pour résumer, on peut dresser le schéma suivant :

Quelques observations complémentaires :

Étant donné que l'appareil observé possède trois interfaces, c'est très probablement un routeur. Cependant, notez que tout appareil fonctionnant sous TCP/IP possède une table de routage (qu'il soit routeur ou non). Pour que le routage fonctionne, il est impératif que toutes les interfaces réseau possédant le même préfixe réseau soient reliées au même réseau physique.

PETIT EXERCICE POUR FAIRE COMPRENDRE CE QU'EST LE ROUTAGE STATIQUE A MADAME MICHU !

A partir des réseaux représentés ci-dessous,

1 ) fixez des adresses IP cohérentes pour chaque interface de chacun des 3 routeurs. Vous donnerez un nom à chaque interface physique (ethx… ethy… ).

2 ) Combien de réseaux dénombrez-vous sur ce schéma ?

3 ) Sur chacun des réseaux, rajoutez un PC correctement configuré (adresse IP + masque + passerelle)

4 ) Que contiennent les tables de routage de chacun des 3 routeurs ?

5 ) Modifiez les tables pour que chaque PC créé en 3) communiquent avec les autres.