===== Le routage IP ===== ==== Objectifs ==== Mettre en oeuvre **le routage IP** sur 3 réseaux reliés par deux routeurs sous Linux. On utilisera d'abord le routage **statique**, puis le routage **dynamique** au moyen du protocole **RIP** et le l'interface **FRR** sous Linux. On utilisera deux postes de travail : ---- ==== Configuration ==== *On utilisera 3 réseaux * réseau **gauche** : 192.168.1.0/24 * **interréseau** : 172.16.0.0/16 * réseau **droite** : 192.168.2.0/24 *poste de travail Windows 2000 (**p2000**) (192.168.1.100) *serveur Linux (**srvlinux**) (192.168.1.1 et 172.16.0.1) *serveur Windows (**srvwin**) (172.16.0.2 et 192.168.2.1) *poste de travail Linux SysResCD (**plinux**) (192.168.2.100) *au début, le routage n'est activé sur aucune des machines passerelles (**srvlinux** et **srvwin**) *les passerelles par défaut ne sont pas configurées. === Schéma === {{:routage.png|}} ----- ==== Matériel nécessaire (anc. méthode) ==== * 2 cartes réseau sur chacune des machines faisant office de routeur * on peut relier les machines selon la manière classique avec un hub et deux câbles droits ou plus directement avec des câbles croisés (3 en tout) ==== Autre solution : la virtualisation ==== * on peut utiliser 4 machines virtuelles (3 Linux et une Windows pour le serveur) * les deux machines faisant office de routeur devront avoir deux cartes (!) * pour l'installation, on utilisera des cartes configurées en mode NAT de manière à installer tous les paquetages (**tcpdump**, **quagga**, **telnet**, **mc**, ...) * pour la mise en oeuvre du TP, une fois les paquet installés on utilisera des **réseaux locaux VirtualBox** . ----- ==== Outils ==== *''ifconfig'' (Linux), ''netcardconfig'' (Knoppix) et ''ipconfig'' (Windows) : pour configurer/vérifier la configuration IP des machines *''route'' : pour afficher/modifier le contenu des tables de routage *''traceroute'' ou ''tracert'' sous Windows : pour vérifier le chemin emprunté par les paquets *''tcpdump'', ''ethereal'', ou ''wireshark'' : pour observer les paquets transitant par une interface * les paquet ''quagga'' (pour le protocole RIP sous Linux) et le serveur RIP (Windows), * ''telnet'' (pour se connecter aux serveurs zebra/quagga) * et bien sur la commande ping .... ----- ==== Mode opératoire ==== - configuration des interfaces - vérification de la connectivité - paramétrage des passerelles par défaut sur les postes de travail - activation du routage sur les passerelles - création des routes statiques sur les passerelles - tests avec ping et traceroute -------------------------------------------------------------------------------- ==== Plan de test ==== === Test de la configuration IP de chacune des machines === * taper ''ifconfig'' sur la machine **plinux** * On obtient eth0 Lien encap:Ethernet HWaddr 00:05:5D:64:51:B0 inet adr:192.168.2.100 Bcast:192.168.1.255 Masque:255.255.255.0 UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:169 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 RX bytes:0 (0.0 b) TX bytes:26036 (25.4 Kb) *Vérifier la table de routage sur la machine **plinux** avec la commande ''route'' **Table de routage IP du noyau** ^ Destination ^ Passerelle ^ Genmask ^ Indic ^ Metric ^ Ref ^ Use ^ Iface| | 192.168.2.0 | + | 255.255.255.0 | U | 0 | 0 | 0 | eth0| | 127.0.0.0 | + | 255.0.0.0 | U | 0 | 0 | 0 | lo | ==== Test de connectivité des machines entre elles avec ping ==== **Connectivité p2000-srvlinux** *ping **p2000** => **srvlinux** sur l'interface réseau gauche (192.168.1.1) *ping **p2000** => **srvlinux** sur l'interface réseau interréseau (172.16.0.1) **Connectivité srvlinux-srvwin** *ping **srvlinux** => **srvwin** sur l'interface réseau interréseau (172.16.0.2) *ping **srvlinux** => **srvwin** sur l'interface réseau droite (172.16.0.2) **Connectivité srvnt-plinux** *ping **srvwin** => **plinux** sur l'interface réseau interréseau (172.16.0.2) *ping **srvlinux** => **srvwin** sur l'interface réseau droite (172.16.0.2) ==== Parametrage des passerelles par défaut sur les clients==== **Sur la machine p2000** *indiquer la passerelle par défaut puis relancer l'interface *vérifier les routes avec la commande ''route print'' **Sur la machine plinux** *taper route add default gw 192.168.2.1 *vérifier les routes avec la commande ''route'' ==== Activation du routage sur les passerelles ==== **Sur la machine srvwin** *cliquer sur la case ''Activer le routage'' *redémarrer au besoin **Sur la machine srvlinux** *taper la commande suivante : echo "1" > /proc/sys/net/ipv4/ip_forward ==== Création des routes statiques sur les passerelles ==== **Sur la machine srvwin** *cliquer sur la case ''Activer le routage'' *redémarrer au besoin *taper la commande suivante : route add 192.168.1.0 mask 255.255.255.0 172.16.0.1 *vérifier la table de routage avec la commande route print **Sur la machine srvlinux** *taper la commande suivante : route add -net 192.168.2.0/24 gw 172.16.0.2 *ou bien, si l'on souhaite utiliser la notation classique plutôt que la notation CIDR, taper : route add -net 192.168.2.0 netmask 255.255.255.0 gw 172.16.0.2 *vérifier la table de routage avec la commande route ==== Tests avec ping et traceroute ==== **Depuis la machine p2000** *taper ''ping 192.168.2.100'' et vérifier le fonctionnement effectif du routage *taper ''tracert 192.168.2.100'' et vérifier que les paquets passent effectivment par les deux passerelles **Depuis la machine plinux** *taper ''ping 192.168.1.100'' et vérifier le fonctionnement effectif du routage *taper ''traceroute 192.168.1.100'' et vérifier que les paquets passent effectivement par les deux passerelles ==== Routage dynamique avec RIP ==== Dans ce cas de figure, les routes vers les réseaux distants ne seront plus créées par nous-même mais automatiquement par les deux passerelles qui s'enverront des informations de routage grâce au protocole RIP. Il faudra auparavant supprimer les deux routes distantes sur chacune des deux passerelles **Sur la machine svrwin** *installer le service **RIP** et redémarrer *la route statique ne doit plus être présente car elle n'a pas du être créée avec l'option permanente. **Sur la machine svrlinux** *installer le paquetage **quagga** *voir le howto plus bas et http://openmaniak.com/fr/quagga_tutorial.php *on peut, si l'on souhaite visualiser les paquet RIP, faire une capture de paquets avec tcdump. Taper : tcpdump -i ethx -p 520 où ethx est l'interface qui se trouve sur l'inter-réseau et 520 le port utilisé par le protocole RIP. *au bout de quelques temps, après l'échange des paquets RIP, on remarque que la nouvelle route apparaît dans la table de routage. On peut alors tester le routage depuis les postes **p2000** et **plinux** ; on procédera comme auparavant avec les commandes ''ping'' et ''traceroute''. ==== Mise en évidence du fonctionnement du routage dynamique ==== *sur **srvlinux**, désactiver l'interface coté réseau gauche *sur **srvwin**, constater la disparition de la route menant au réseau gauche après quelque temps -------------------------------------------------------------------------------- ==== Remarques ==== *on peut faire un essai avec un poste sur l'interréseau (adr par exemple 172.16.0.100). Le paramétrage IP de ce poste aura comme adresse de passerelle soit 172.16.0.1 soit 172.16.0.2 *on pourrait également ajouter deux routes statiques commes celles que l'on a ajouté sur chacunes des passerelles **srvlinux** et **srvwin** même si cette solution est moins cohérente et moins facile à mettre en oeuvre que la précédente. ==== Liens et références ==== * un tutoriel Quagga : http://openmaniak.com/fr/quagga.php * les documents de Philippe Latu et P. Massol sur le site **inetdoc** : http://www.inetdoc.net/guides/