Routage IP

Préambule

Avant de parler du routage, il faut se remémorer quelques informations :

Un réseau tcp/ip est caractérisé par une adresse et un masque de sous-réseau.
Une adresse et son masque nous indique l’usage qui est fait de cette adresse : quelle partie de l’adresse est l’adresse de réseau et quelle autre est l’adresse de la machine sur ce réseau.

Prenons un cas simple d’un réseau privé de classe C.

Il est caractérisé comme ceci :
adresse 192.168.0.0, masque de sous réseau 255.255.255.0 ( aussi noté /24 ).

La portion du masque comportant des 255 indique l’emplacement de l’adresse du réseau. Ici, il y a 3 octets à 255, ce qui nous indique que l’adresse du réseau est 192.168.0
La dernière portion du masque à 0 nous indique que seul le dernier octet va permettre de différencier les machines.

Sachant qu’une adresse est unique sur un réseau et que chaque octet peut varier entre 0 et 255 ( en fait 1 et 254 car 0 et 255 sont des cas particuliers ) nous pouvons avoir 254 machines sur le réseau.

Chaque machine d’un même réseau peuvent communiquer entre elles sans problèmes.

Prenons le cas de deux machines identifiées comme ceci :

machine1 : 192.168.0.1/24
machine2 : 192.168.1.1/24

Le /24 nous place dans le même cas que précédemment, le masque de sous-réseau est 255.255.255.0. Ce qui nous indique que les 3 premiers octets sont les adresses des réseaux utilisés par ces machines.

On obtient 192.168.0 pour la machine1 et 192.168.1 pour la machine2.
On comprends bien que ce sont deux réseaux différents, car le 3ème octet est différent.
Ces machines ne peuvent donc pas se voir, ni communiquer.

Cela revient par exemple pour une personne à être à un étage d’un immeuble, son collègue est à un autre étage, mais il n’y a aucun ascenseur ou escalier pour communiquer.

A quoi sert le routage ?

Dans notre exemple ci-dessus, les machines ne communiquent pas entre elles, car elles sont sur deux réseaux distincts.
Pour leur permettre de communiquer, il faut un appareil connecté sur chacun des réseaux et qui passe les requêtes d’une machine à l’autre, c’est l’ascenseur de l’immeuble.

Cet ascenseur s’appelle un routeur, qui va implémenter une fonction de « routage » pour permettre le dialogue entre ces deux machines.

Un routeur a donc au minimum deux interfaces réseaux, et peut être matériel ( CISCO par exemple ) ou logiciel ( routage du kernel LINUX par exemple ).

Dénomination : Un routeur est souvent appelé passerelle ou gateway.

Fonctionnement

Un routeur a plusieurs interfaces chacune faisant partie d’un réseau différent.
Le routeur peut communiquer directement avec nos deux machines de l’exemple ci-dessus, car il a une interface en 192.168.0.254/24 et l’autre en 192.168.1.254/24.
Si une machine doit émettre une requête d’un réseau à l’autre, le routeur va envoyer les paquets d’une interface sur l’autre. Il suffit que la passerelle par défaut soit renseigné sur les machines devant communiquer.

Cas particulier de la route par défaut

Un routeur ou une station de travail connaît le chemin pour accéder aux réseaux directement connectés à ses interfaces réseau.

Dans le cas où on demande à joindre une machine sur un réseau non connecté directement, ce qui est le cas d’Internet par exemple, on doit déléguer le travail.

On envoie les paquets à sa passerelle par défaut, qui est un routeur lui aussi, mais qui a plus d’informations sur l’architecture du réseau. Si ce dernier n’a pas l’information, il l’envoie à sa passerelle par défaut, etc, etc…

Pour visualiser ceci, voici le chemin que fait ma machine pour joindre www.free.fr :


[laurent@localhost ~]$ traceroute www.free.fr
traceroute to www.free.fr (213.228.0.42), 30 hops max, 38 byte packets
1 192.168.10.1 (192.168.10.1) 1.121 ms 0.793 ms 0.840 ms
2 82.245.220.254 (82.245.220.254) 40.187 ms 39.342 ms 39.639 ms
3 213.228.36.126 (213.228.36.126) 40.458 ms 40.094 ms 50.979 ms
4 toulouse-6k-1-v800.intf.routers.proxad.net (212.27.56.117) 41.224 ms 41.05 9 ms 125.377 ms
5 bordeaux-6k-1-v804.intf.routers.proxad.net (212.27.50.85) 44.665 ms 45.018 ms 44.343 ms
6 * * *
7 th2-6k-2-po8.intf.routers.proxad.net (212.27.50.25) 53.458 ms * *
8 p19-6k-2-po4.intf.routers.proxad.net (212.27.50.14) 54.250 ms * 53.733 ms
9 vlq-6k-2-v800.intf.routers.proxad.net (212.27.50.5) 54.027 ms 53.668 ms 54.425 ms
10 vlq-6k-1-po1.intf.routers.proxad.net (212.27.50.2) 53.788 ms 53.894 ms 53.944 ms
11 www.free.fr (213.228.0.42) 54.017 ms 53.905 ms 53.937 ms

On voit que le premier routeur est 192.168.10.1, c’est mon routeur local.
Il communique ensuite avec 82.245.220.254 qui est le premier routeur de FREE lié a dslam ADSL.
Ce routeur de free établit sa route avec d’autres routeurs sur Toulouse, Bordeaux, pour arriver sur le backbone FREE, puis joindre enfin le serveur web.

Chaque étape, représente la passerelle par défaut de chaque routeur.

Paramétrage sur la station de travail

Lors du paramétrage de tcp/ip, il vous est demandé une adresse ip, un masque de sous-réseau, et une passerelle par défaut. Vous savez maintenant que cela doit être une des adresses ip de votre routeur, et de préférence l’adresse sur votre réseau, sinon, cela va compliquer les choses 😉
Certains OS comme LINUX n’ajoutent pas la route par défaut si l’adresse ip du routeur n’est pas valide, mais XP s’en moque, et ajoute la route, même si elle ne servira jamais à rien, car inaccessible.

Exemple de mise en oeuvre du routage

Prenons le cas suivant :

Un PC servant de routeur possède deux cartes réseaux.

eth0 avec l’ip 10.1.1.1 et le masque 255.255.0.0 ( /16 )

eth1 avec l’ip 10.3.1.1 et le masque 255.255.0.0 ( /16 )

Schéma du réseau

Pour accéder à partir de la machine PC à tous les réseaux locaux et à Internet, on est obligé de modifier sa table de routage. Celle-ci ne comporte par défaut que les deux réseaux directement connectés, mais dans ce cas, la définition de la passerelle par défaut ne suffit pas.

La passerelle par défaut est utilisée quand aucune route n’est explicitement connue du routeur.

Tout paquet à destination d’un réseau inconnu est envoyé à la passerelle par défaut, ce qui est parfait pour l’accès à Internet, mais ne fonctionnera pas pour joindre le réseau 10.2.0/16 par exemple.

Définition d’une route ( sur LINUX ) :

route add , ajoute la route

destination , donne l’adresse du réseau (-net) ou default pour la route par défaut

gw adresse , donne l’adresse ip de la passerelle

ethx , donne le nom de l’interface réseau utilisée pour accéder à cette passerelle.

Soit ici :

1- Accès à internet.
Définir la route par défaut vers la passerelle Internet :

route add default gw 10.1.1.254 eth0

2- Accès au réseau 2.

route add -net 10.2.1.0/16 gw 10.1.1.253 eth0

3- Accès au réseau 4.

route add -net 10.4.1.0/16 gw 10.3.1.254 eth1

Le routeur est maintenant correctement renseigné pour joindre tous les réseaux en utilisant d’autres routeurs en cas de besoin.

Toute station de travail utilisant ce routeur PC, pourra communiquer avec les machines de n’importe quel réseau du schéma.

Pour supprimer une route :

Supprimer la route par défaut :

route del default

Supprimer une route spécifique :

route del -net 10.4.1.0/8

Afficher les routes :

route -n / l’option -n évite la résolution de noms qui sinon bloque l’affichage, le temps d’avoir une réponse DNS.

Remarque importante

Sur un système LINUX, le routage est désactivé par défaut même si la machine comporte plusieurs cartes réseaux.
Il faut activer ce routage pour utiliser un passerelle en LINUX.
Pour cela, il suffit de modifier le fichier /etc/sysctl.conf.
Modifier la ligne net.ipv4.ip_forward comme ceci :

net.ipv4.ip_forward = 1

Une fois le fichier corrigé, activer le changement avec la commande :

sysctl -p

Vérifiez que le routage est actif en consultant la valeur donnée à la fonction routage.

[root@localhost ~]# cat /proc/sys/net/ipv4/ip_forward
1

Ici, on obtient la valeur 1, donc le routage est actif. Si vous obtenez 0, vous n’avez pas encore activé le routage.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.