TP RESEAUX SRC Semestre 1 ROUTAGE OBJECTIF : MATERIEL : Configurer une machine Debian en tant que routeur. Découpage d'un réseau IP. 1 Machine Virtuelle fonctionnant sous Debian (Serveur/Routeur) 1 Machine Virtuelle fonctionnant sous XP (Client) Le Serveur FTP de la Salle à l'adresse 172.16.0.1 INTRODUCTION : Nous allons exploiter dans ce TP une fonctionnalité de la virtualisation sous VirtualBOX : le mode Réseau Interne. Ce mode d'accès réseau permet de créer sur la machine physique un réseau "virtuel" qui n'est accessible que par les machines virtuelles exécutées sur ce poste. Dans la seconde partie du TP, vous relierez entre eux tous ces réseaux virtuels en utilisant votre machine Debian comme routeur. Nous exploiterons alors une autre fonctionnalité de VirtualBOX : mettre plusieurs interfaces réseau sur une même machine. PARTIE 1 : CREATION DU RESEAU INTERNE Création du réseau interne : 192.168.N.0 (N étant votre n de table) Machine Debian : Dans VirtualBOX (Configuration/Réseau), paramétrez le mode d'accès réseau en : Réseau interne Démarrez ensuite votre machine virtuelle et modifiez sa configuration IP : IP : 192.168.N.2 Masque : 255.255.255.0 (Classe C) Procédez de même avec votre machine XP en utilisant la configuration suivante : IP : 192.168.N.3 Masque : 255.255.255.0 (Classe C) Vérifiez la communication entre vos deux machines à l'aide de la commande ping (A chaque fois pour XP et pour Debian) Quelles commandes utilisez-vous pour vérifier votre configuration IP? Lors d'un "ping", quelle est la valeur du TTL? Quels messages d'erreur obtenez-vous lorsque vous faites un ping vers le serveur FTP de la Salle (172.16.0.1)? Quels messages d'erreur obtenez-vous lorsque vous faites un ping vers une machine d'une autre table? Quels messages d'erreur obtenez-vous lorsque vous faites un ping vers une adresse 192.168.N.100? PARTIE 2 : AJOUT D'UNE CARTE RESEAU Votre réseau fonctionne, mais comme vous avez du le constater, il n'est accessible que par les machines virtuelles démarrées (en mode d'accès réseau interne) sur votre poste et bien entendu ayant une IP dans le même réseau.
Nous allons donc exploiter une des possibilités de VirtualBOX pour faire de notre serveur Debian, un routeur capable de communiquer entre votre réseau interne (192.168.N.0) et le réseau de la salle (172.16.0.0). Commençons par rajouter une carte réseau dans notre machine virtuelle Debian : Arrêtez votre machine virtuelle Allez dans Configuration / Réseau Activer la carte réseau n 2 en mode d'accès par pont. Notez les adresses MAC de vos deux cartes (cliquez sur Avancé). Redémarrez votre machine virtuelle. (sous Debian uniquement) Quelles sont les adresses MAC utilisées par vos deux interfaces? Lorsque vous interrogez votre configuration IP, quel changement constatez-vous? Pouvez-vous communiquer avec le serveur FTP de la Salle? Comme vous avez-vous le constater en répondant aux deux dernières questions, rien n'a changé dans votre configuration et la communication avec le reste de la salle est toujours impossible. Normal, à ce stade nous n'avons fait que rajouter une interface réseau dans la machine, il faut maintenant la configurer pour qu'elle puisse fonctionner sous Debian. Vérifions d'abord que notre seconde interface a bien été vue par Debian. Pour cela nous allons visualiser le fichier : /etc/udev/rules.d/70-persistent-net.rules Ce fichier qui est mis à jour à chaque démarrage de la machine contient les règles de fonctionnement pour chacune des interfaces réseaux connues par le système. En toute logique, vous devez donc voir 2 interfaces avec pour chacune son adresse MAC (ATTR{address}) et surtout le nom que lui à attribué le système (NAME="eth0" ou NAME="eth1"). Nous voyons donc ici que notre seconde interface se nomme eth1. Pour attribuer une adresse IP à cette interface, nous procédons comme pour l'interface eth0 en modifiant le fichier : /etc/network/interfaces. Modifiez ce fichier pour qu'il prenne en compte votre interface eth1 (Dupliquez les lignes de l'interface eth0) et configurez là comme suit : IP : 172.16.N.2 Masque : 255.255.0.0 (Classe B) N'oubliez pas de redémarrez votre machine virtuelle pour prendre en compte les modifications. Vérifiez votre configuration à l'aide la commande ifconfig. Vous devez voir vos deux interfaces eth0 et eth1 avec leurs adresses IP respectives : 192.168.N.2 et 172.16.N.2. Dans le cas contraire, vérifiez votre fichier interfaces. Par défaut, comment se nomme la seconde interface réseau sous Debian? Le serveur Debian peut-il communiquer avec le serveur FTP de la Salle? Le serveur Debian peut-il communiquer avec le poste XP? Le poste XP peut-il communiquer avec le serveur FTP de la Salle? Pourquoi?
Effectivement, le poste XP ne peut toujours pas dialoguer avec le serveur FTP. Il faut lui indiquer une adresse de passerelle (routeur) pour qu'il puisse atteindre le réseau de la salle. Cette adresse est l'adresse de votre serveur Debian : 192.168.N.2 Modifiez la configuration du poste XP et réessayez de communiquer avec le serveur FTP. Le poste XP peut-il communiquer avec le serveur FTP de la Salle? Pourquoi? Ça ne fonctionne toujours pas!! Rassurez-vous, à ce stade de la configuration de notre routeur c'est normal. En effet, il ne suffit pas de mettre deux cartes réseaux dans une machine pour en faire automatiquement un routeur. Par défaut, nos deux cartes ne communiquent pas entre-elles, il faut activer la fonctionnalité de routage pour que les paquets IP puissent passer d'une interface à l'autre. PARTIE 3 : ACTIVATION DU ROUTAGE Sous Debian, le routage utilise une fonctionnalité réseau que l'on nomme l'ip_forwarding. Il faut activer cette fonctionnalité pour que les différentes cartes réseaux puissent communiquer entre-elles et transférer (forward) les différents paquets IP d'un réseau à l'autre. Pour activer cette fonctionnalité de manière permanente, modifions le fichier : /etc/sysctl.conf /etc/sysctl.conf - Configuration file for setting system variables # See /etc/sysctl.d/ for additonal system variables # See sysctl.conf (5) for information. # # Uncomment the next line to enable packet forwarding for IPv4 net.ipv4.ip_forward=1 Pour activer l'ip forwarding, il suffit de décommenter (enlevez le #) la ligne net.ipv4.ip_forward=1 Redémarrez votre machine pour prendre en compte la modification. Testez de nouveau la communication entre le poste XP et le Serveur FTP. (Sous XP uniquement) Le poste XP peut-il communiquer avec le serveur FTP de la Salle? Lors du "ping" vers le serveur FTP, quelle est la valeur du TTL? Lors du "ping" vers le serveur Debian, quelle est la valeur du TTL? Pourquoi les deux valeurs sont-elles différentes? Pouvez-vous communiquer avec les autres postes XP (192.168.X.3) de la salle? Pouvez-vous communiquer avec les autres serveurs Debian (192.168.X.2) de la salle? PARTIE 4 : CONFIGURATION DU ROUTAGE Etat des lieux : Suite à l'activation de l'ip_forwarding sur votre serveur voila ce qui doit fonctionner : A partir du Poste Debian : ping vers serveur FTP de la Salle (172.16.0.1) ping vers un autre serveur Debian (172.16.X.2) - X étant le n de l'autre table. ping vers n'importe quelle adresse du réseau 172.16.0.0 ping vers votre poste XP (192.168.N.3) A partir du Poste XP : ping vers serveur FTP de la Salle (172.16.0.1) ping vers votre poste Debian (192.168.N.2)
ping vers votre poste Debian (172.16.N.2) Pourquoi le poste XP peut-il dialoguer avec le serveur FTP (172.16.0.1), mais pas avec les autres serveurs Debian (172.16.N.2) qui pourtant se trouve sur le même réseau (172.16.0.0)? La réponse est dans les tables de routage. Ce sont ces tables (présentes sur chaque machine) qui indiquent les chemins (routes) à emprunter pour aller d'un réseau à l'autre. Affichons le contenu de ces tables : Sous XP : la commande route -n nous renvoie la table suivante : Itinéraires actifs: Destination Réseau Masque Réseau Adr.Passerelle Adr.Interfaces Métrique 0.0.0.0 0.0.0.0 192.168.N.2 192.168.N.3 20 192.168.N.0 255.255.255.0 192.168.N.3 192.168.N.3 20 127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1 Passerelle par défaut : 192.168.N.2 Ce qu'il faut comprendre ici : Pour atteindre le réseau 192.168.N.0 (le notre) on passe par l'interface qui à l'adresse 192.168.N.3 (notre IP) Pour atteindre tous les autres réseaux (sauf 127.0.0.0) on passe par la passerelle 192.168.N.2 (Debian) en utilisant l'interface 192.168.N.3 (notre IP) Sous Debian : la commande route n nous renvoie les informations suivantes : 192.168.N.0 0.0.0.0 255.255.255.0 0 eth0 172.16.0.0 0.0.0.0 255.255.0.0 0 eth1 Ce qu'il faut comprendre ici : Pour atteindre le réseau 192.168.N.0 (le notre) on utilise l'interface eth0 (192.168.N.2) Pour atteindre le réseau 172.16.0.0 (le notre aussi) on utilise l'interface eth1 (172.16.N.2) Il n'y aucune entrée dans cette table indiquant une route vers les autres réseaux 192.168.X.0!! Notre serveur ne peut donc pas "router" un paquet vers une machine ne se trouvant pas sur un de nos 2 réseaux. Mais alors comment fait le serveur FTP (172.16.0.1) pour répondre à la machine XP? Regardons sa table de routage : 172.16.0.0 0.0.0.0 255.255.0.0 0 eth0 192.168.1.0 172.16.1.2 255.255.255.0 0 eth0 192.168.2.0 172.16.2.2 255.255.255.0 0 eth0 192.168.3.0 172.16.3.2 255.255.255.0 0 eth0 192.168.4.0 172.16.4.2 255.255.255.0 0 eth0 192.168.16.0 172.16.16.2 255.255.255.0 0 eth0 Eh oui! Il connait les adresses de tous les routeurs de la salle, il est donc capable d'atteindre tous les réseaux en 192.168.X.0 en passant par le réseau 172.16.0.0. Pourquoi ne peut-on pas utiliser cette machine (172.16.0.1) comme passerelle sous XP? Que faudrait-il activer sur cette machine pour l'utiliser comme passerelle pour nos serveurs Debian?
PARTIE 4 : AJOUT D'UNE ROUTE A ce stade, j'espère que vous avez compris pourquoi on ne peut pas utiliser le serveur FTP (172.16.0.1) comme passerelle malgré le fait que sa table de routage soit complète. (Si ce n'est pas le cas, relisez le TP) Il va donc falloir indiquer à nos routeurs ou se trouve les autres réseaux 192.168.X.0 de la salle. Encore une fois, tout se passe dans le fichier /etc/network/interfaces. Avant de modifier le fichier : (Sur la machine Debian) Pour aller vers un réseau 192.168.X.0, vous allez passer par quel serveur Debian? Quelle est son IP? Quelle adresse IP possède ce serveur Debian? Adresse accessible directement sans routage? Avec quelle interface (eth0 ou eth1) puis-je atteindre cette adresse? Si vous êtes capable de répondre à ces trois questions, vous pouvez déterminez la route à entrer dans la table de routage. Éditez le contenu du fichier /etc/network/interfaces et ajoutez une ligne avec la syntaxe suivante : up route add net 192.168.X.0/24 gw 172.16.X.2 Il faut ajouter la ligne à la suite de l'interface permettant d'atteindre la passerelle L'adresse IP de la passerelle (gw) est donc une adresse IP située dans le même réseau IP que l'interface à modifier. Le réseau (-net) désigne le réseau à atteindre le /24 précise le masque (ici 255.255.255.0 soit 24 bits) Ajouter autant de lignes que de réseaux à atteindre. Redémarrez votre machine Contrôlez votre table de routage, elle doit ressembler à ceci (Exemple pour un poste Debian 20) 192.168.20.0 0.0.0.0 255.255.255.0 0 eth0 172.16.0.0 0.0.0.0 255.255.0.0 0 eth1 192.168.1.0 172.16.1.2 255.255.255.0 0 eth1 192.168.2.0 172.16.2.2 255.255.255.0 0 eth1 192.168.3.0 172.16.3.2 255.255.255.0 0 eth1 192.168.4.0 172.16.4.2 255.255.255.0 0 eth1 Si tout est correct, vous pouvez maintenant communiquer avec toutes les machines de la Salle (Debian ou XP), à condition que la machine destinataire possède une route lui permettant de vous répondre. (Sous XP uniquement) Le poste XP peut-il communiquer avec le serveur FTP de la Salle? Lors du "ping" vers le serveur FTP, quelle est la valeur du TTL? Lors du "ping" vers votre serveur Debian, quelle est la valeur du TTL? Lors du "ping" vers un autre serveur Debian, quelle est la valeur du TTL? Lors du "ping" vers un autre poste XP, quelle est la valeur du TTL? Remplacer la commande ping par la commande tracert, que constatez-vous? PARTIE 5 : TEST DE FONCTIONNEMENT Si vous ne l'avez pas fait dans le TP précédent, installez le serveur FTP sur la machine Debian. Installez aussi le serveur Web APACHE à l'aide de la commande : apt-get install apache2 Créez une page index.html dans le dossier /var/www. Si tout fonctionne, vous devriez être capable à partir du poste XP d'atteindre n'importe quel serveur FTP ou WEB de la salle en utilisant son adresse : 192.168.X.2