Le routage
Transcription
Le routage
Le routage Stéphane Gill [email protected] Table des matières Introduction 2 Aspect d’un routeur 2 Concept de routage 2 Table de routage 4 Mise en place d’un routeur Linux 5 Activer le routage 6 Route, définir un routage 6 Exemple de réseau local utilisant un routeur 8 Références Document écrit par Stéphane Gill © Copyright 2004 Stéphane Gill Ce document est soumis à la licence GNU FDL. Permission vous est donnée de distribuer et/ou modifier des copies de ce document tant que cette note apparaît clairement. 9 Le routage Introduction Les routeurs sont des machines clés d'Internet car ce sont ces dispositifs qui permettent de choisir le chemin qu'un message va emprunter. Lorsque vous demandez un url, le routeur choisit le prochain routeur auquel il va envoyer la demande de façon telle que le chemin choisi soit le plus court. De plus, les routeurs permettent de manipuler les données afin de pouvoir assurer le passage d'un type de réseau à un autre. Aspect d’un routeur Les premier routeurs étaient de simples ordinateurs ayant plusieurs cartes réseau (passerelle, gateway), dont chacune étaient reliée à un réseau différent. Les routeurs sont désormais des dispositifs (Figure 1) possédant des cartes réseaux reliées sur plusieurs réseaux dédiés à la tâche de routage. Figure 1: Routeur Cisco 2600 Concept de routage L’une des principales tâches de la couche réseau du modèle OSI consiste à transmettre les paquets de données à travers les nœuds du réseau. Ce processus qui se déroule dans la couche 3 du modèle OSI est appelé le routage. Le routeur extrait chaque paquet de données de la couche 3, analyse l’adresse de l’expéditeur et celle du destinataire, et transmet le paquet en fonction de ces informations. Ce processus est décrit dans l’exemple qui suit : © Copyright 2004 Stéphane Gill Page 2 Le routage Ordinateur 1 IP:200.3.1.5 Ordinateur 2 IP:200.3.1.18 Réseau : 200.3.1.0 200.4.1.20 200.3.1.50 Routeur Réseau : 200.4.1.0 Ordinateur 3 IP:200.4.1.5 Figure 2 : Réseau Soit la situation suivante : L’ordinateur 1 doit transmettre un paquet de données à l’ordinateur 2. L’ordinateur 1 et l’ordinateur 2 appartiennent au même réseau, le paquet de données sera transmis directement à l’ordinateur 2. Soit maintenant la situation suivante : L’ordinateur 1 doit transmettre un paquet de données à l’ordinateur 3. L’ordinateur 1 et l’ordinateur 3 ne se trouvent pas sur le même réseau. Chaque ordinateur du réseau 200.3.1.0, dont l’ordinateur 1 fait partie, doit savoir à quel ordinateur intermédiaire (pont, routeur ou passerelle) il doit transmettre son paquet de données, pour que celui-ci soit transmis au réseau cible. L’ordinateur 1 va extraire l’adresse Internet du routeur adéquat de sa table de routage. Cette table contient, à coté de l’adresse du réseau cible, celle du routeur qui permet de l’atteindre. Le tableau suivant présente la table de routage des ordinateurs du réseau 200.3.1.0. Réseau cible Routeur 200.4.1.0 200.3.1.50 En d’autre terme, l’entrée de cette table signifie : « Tous les paquets de données destinés au réseau 200.4.1.0 doivent être transmis à l’ordinateur 200.3.1.50 ». Dans l’exemple précédent, la table aurait pu être simplifiée. Il suffit d’indiquer une route par défaut (Default Route) pour que les ordinateurs transmettent tous les paquets de données qui ne © Copyright 2004 Stéphane Gill Page 3 Le routage sont pas destinés au réseau local à un ordinateur intermédiaire. La table de routage serait alors la suivante : Réseau cible Routeur 0.0.0.0 200.3.1.50 L’entrée « 0.0.0.0 » désigne la route par défaut dans la table de routage. Maintenant, avec cette table de routage, si l’ordinateur 1 doit transmettre un paquet à l’ordinateur 3, l’ordinateur 1 doit déterminer si l’ordinateur 3 appartient au même réseau que lui. L’ordinateur 3 appartient à un autre réseau, l’ordinateur vérifie sa table de routage et ne trouve pas le réseau cible. L’ordinateur 1 utilise donc la route par défaut pour envoyer le paquet à l’ordinateur intermédiaire 200.3.1.50. Table de routage La table de routage est une table de correspondance entre l’adresse du réseau visé et l’adresse du routeur auquel il doit délivrer le message pour que celui-ci puisse se rendre à destination. La table de routage est donc un tableau contenant l’information suivante : • L’adresse de destination • L’adresse du prochain routeur directement accessible • L’interface. Ainsi grâce à cette table, le routeur, connaissant l’adresse du destinataire, va être capable de savoir sur quel interface (carte réseau) et à quel routeur (directement accessible) envoyer le message. Ce mécanisme consistant à ne connaître que l’adresse du prochain maillon menant à la destination est appelé routage par sauts successifs. Examinons maintenant, l’exemple de la Figure 3. Le réseau 200.3.1.0 fait partie d’une structure de communication, part l’intermédiaire de 3 routeurs. © Copyright 2004 Stéphane Gill Page 4 Le routage PC 1 IP:200.3.1.5 PC 2 IP:200.3.1.18 Réseau: 200.3.1.0 Masque: 255.255.255.0 200.3.1.50 200.3.1.45 200.3.1.77 Router Router Router Reste du réseau Réseau: 202.12.23.0 Réseau: 141.90.0.0 Figure 3 : réseau à 3 routeurs Par défaut, tous les paquets de données vers le réseau de l’entreprise sont transmis au routeur 200.3.1.50. Le réseau de classe B 141.90.0.0 et le réseau de classe C 202.12.23.0 forment des exceptions, car ils ne sont accessibles que par le routeurs 200.3.1.77 ou 200.3.1.45. La structure de la table de routage de ce réseau est intéressante. Réseau cible Routeur 141.90.0.0 200.3.1.77 2002.12.23.0 200.3.1.45 0.0.0.0 200.3.1.50 Mise en place d’un routeur Linux Dans cette section les principales étapes nécessaires à la mise en place d’un routeur sous Linux sont présentées. Les différentes étapes de la mise en place d’un routeur sont : • Recompiler le noyau avec les options adéquates; • Activer le routage; • Installer les modules des cartes réseaux; © Copyright 2004 Stéphane Gill Page 5 Le routage • Définir les interfaces; • Définir les routes Recompiler le noyau Dans de nombreuse distribution, comme RedHat, il n’est pas nécessaire de recompiler le noyau puisque les options adéquates ont déjà été activées. Activer le routage L’activation du routage dans le noyau ce fait grâce à la commande suivante : echo 1 > /proc/sys/net/ipv4/ip_forward Il est aussi possible d’activer le routage en éditant le fichier /etc/sysctl.conf et en attribuant 1 à la variable net.ipv4.ip_forward comme dans l’exemple ci-dessous. # Activate packet forwarding net.ipv4.ip_forward = 1 # Enables source route verification net.ipv4.conf.default.rp_filter = 1 # Disables the magic-sysrq key kernel.sysrq = 0 Route, définir un routage La commande route permet de manipuler les tables de routage IP du noyau. Il s’agit principalement de définir des routes statiques vers certains ordinateurs ou vers certains réseaux, à partir d’une interface réseau. La commande route est toujours mise en œuvre sous l’une des trois formes suivantes : • Création d’une route; • Suppression d’une route; • Affichage d’une route. © Copyright 2004 Stéphane Gill Page 6 Le routage Création d’une route route add [-net|-host] cible [netmask NM] [gw GW] [[dev] interface] Suppression d’une route route del [-net|-host] cible [netmask NM] [gw GW] [[dev] interface] Affichage d’une route route Note: La commande netstat –rn permet aussi d’afficher la table de routage. Exemple 1 : Définir une route pour le réseau 205.1.2.0 par l’interface eth0. route add –net 205.1.2.0 netmask 255.255.255.0 dev eth0 Le paramétrage netmask n’est pas nécessaire ici, car la cible de la route est un réseau de classe C, et que le masque par défaut est suffisant. C’est typiquement ce genre de règle qu’il faut utiliser pour faire fonctionner le réseau local. Exemple 2 : Définir une règle de routage signifiant que tous les paquets dont l’adresse de destination apparaît au sous-réseau de classe A 127.0.0.0 doivent être transférer à l’interface loopback (lo). route add –net 127.0.0.0 netmask 255.0.0.0 lo Exemple 3 : Définir la règle de routage qui permet d’accéder le réseau 192.168.1.0 via la passerelle 192.168.0.1 route add –net 192.1.0 netmask 255.255.255.0 gw 192.168.0.1 dev eth0 Exemple 4 : Définir une règle de routage qui fait en sorte que tous les paquets qui ne vérifient aucune autre règle de routage soit envoyés à la passerelle 192.168.0.47 © Copyright 2004 Stéphane Gill Page 7 Le routage route add default gw 192.168.0.47 dev eth0 Exemple de réseau local utilisant un routeur Soit le réseau composé de 3 ordinateurs. L’accès à Internet se fait via un routeur Linux. PC 1 IP:192.168.100.4 PC 2 IP:192.168.100.3 PC3 IP:192.168.100.2 Réseau: 192.168.100.0 Masque: 255.255.255.0 192.168.100.1 Router 24.200.204.177 Figure 4 : réseau local Le paramétrage de l’ordinateur 1 se fera de la façon suivante : ifconfig lo 127.0.0.1 ifconfig eth0 192.168.100.4 netmask 255.255.255.0 route add –net 127.0.0.0 dev lo route add –net 192.168.100.0 netmask 255.255.255.0 dev eth0 route add default gw 192.168.100.1 dev eth0 Le paramétrage des interfaces réseau et la création de la table de routage pour le routeur se font de la façon suivante : ifconfig lo 127.0.0.1 ifconfig eth0 192.168.100.1 netmask 255.255.255.0 ifconfig eth1 24.200.204.177 netmask 255.255.255.0 route add –net 127.0.0.0 dev lo route add –net 192.168.100.1 netmask 255.255.255.0 dev eth0 © Copyright 2004 Stéphane Gill Page 8 Le routage route add –net 24.200.204.177 netmask 255.255.255.0 dev eth1 route add default gw x.y.z.1 dev eth1 Références « Red Hat Linux 9 : Guide de référence Red Hat ». Red Hat Inc., 2003. Jeffrey Dean « LPI Linux Certification in a Nutshell, A Desktop Quick Reference », O’Reilly, 2001. © Copyright 2004 Stéphane Gill Page 9