Institut Galilée L2 Info S1 Année 2012 2013 Administration de Parc Informatique TP03 : Utilisation du logiciel Marionnet Marionnet est un logiciel installé à la fac qui permet de simuler des réseaux simples ou complexes. On peut créer des machines virtuelles et les connecter à l aide de câbles puis configurer le réseau. Pour lancer Marionnet, on peut soit aller le chercher dans le menu Applications/Éducation/Marionnet, soit utiliser la commande marionnet dans un terminal. Un problème fréquent Lorsqu on configure les interfaces réseaux des machines virtuelles, il arrive 1 qu on obtienne le message d erreur suivant : SIOCSIFFLAGS: transport endpoint not connected auquel cas l interface n est pas configurée. Ce problème est généralement résolu en arrêtant et en redémarrant toutes les machines du projet (boutons Tout arrêter et Tout démarrer ). En règle générale, toujours arrêter et redémarrer toutes les machines virtuelles à la fois à l aide de ces boutons permet d éviter ce problème (i.e. ne pas utiliser les commandes halt ou reboot pour arrêter/redémarrer un seul ordinateur à la fois). 1 Un Réseau simple 1.1 Mise en place matérielle Ouvrir un nouveau projet. Rajouter deux ordinateurs (les réglages par défaut sont corrects) et les connecter à l aide d un câble. Attention! Il y a deux types de câbles : droit ou croisé. Sans rentrer dans les détails, la règle d or est la suivante : Deux équipements identiques se connectent avec un câble croisé. Deux équipements différents se connectent avec un câble droit. Puisqu il s agit ici de deux ordinateurs identiques, il faut les connecter avec un câble croisé. Démarrer les ordinateurs. On obtient 2 terminaux, un pour chaque ordinateur. Dans chacun, le login est root et il n y a pas de mot de passe. Se connecter sur les deux ordinateurs. 1.2 Configuration logicielle Vérifier à l aide d ifconfig que les cartes réseaux (eth0) ne sont pas configurées (elles n ont pas d adresse IP). Il faut leur en attribuer une pour que les ordinateurs puissent communiquer. On peut ignorer pour l instant l interface eth42 qui est particulière à marionnet et dont nous verrons l utilité plus tard. Comme nous ne disposons pas sur le réseau virtuel de serveur DHCP (contrairement au réseau réel qui a permis de connecter l ordinateur réel au réseau de la fac), il faut choisir une adresse IP pour chaque ordinateur. Comme indiqué la semaine dernière, une adresse IP est composée de 4 chiffres compris entre 0 et 255 (= 2 8 1). Le premier chiffre indique à quel domaine appartient l ordinateur. Il correspond, en pratique, à la dernière partie du nom en clair de l ordinateur. Par exemple, les ordinateurs dont l adresse IP commence par 194 correspondent (normalement) à des ordinateurs européens (194.254.167.19 est l adresse IP de sercalssh.ig-edu.univ-paris13.fr). On ne peut donc pas attribuer à nos machines une IP complètement au hasard, sinon on risque des gros problèmes de compatibilité... La valeur 255 dans l un des 4 champs correspond à un joker. Elle est utilisée pour envoyer un message à toutes les machines dont l adresse vérifie certains champs. Nous y reviendrons plus tard. Afin de permettre à de multiples réseaux de coexister, une plage d adresses IP a été réservée pour des adresses locales (on parle de réseaux privés). Toute adresse dans ces valeurs est toujours considérée 1. En particulier lorsqu on redémarre une seule machine virtuelle dans un projet qui en comporte plusieurs. 1
comme étant locale au réseau dans lequel on se trouve. Il s agit des adresses IP commençant par 10. C est celles-là que nous allons utiliser dans notre réseau. Remarque : le sous réseau 192.168. est aussi un réseau privé. Ces adresses sont souvent utilisées par les fournisseurs d accès ADSL : la box dispose d une adresse IP publique, avec laquelle elle peut communiquer à l extérieur, et fournit (via DHCP) des adresses privées aux ordinateurs qu on connecte. Ce soir, chercher l adresse IP de votre box ainsi que du ou des ordinateurs connectés dessus. Regarder quelle est l IP de votre machine réelle (qui a été attribuée par le serveur DHCP de la fac), sur les machines réelles, il faut lancer /sbin/ifconfig (en explicitant le chemin). Il s agit aussi d une adresse privée dans le réseau interne (elle commence normalement par 10). Ce qui signifie que les machines (réelles) de la fac ne peuvent pas se connecter directement à internet (elles ne sont pas visibles sur le réseau public). Pour accéder à internet, elles utilisent une passerelle, c est-à-dire un ordinateur qui fait le lien en retransmettant toutes les communications du réseau privé (fac) au réseau public (internet). Nous allons donc utiliser le réseau 10. Les 3 autres chiffres de l adresse IP sont libres (entre 0 et 254). Pour plus de simplicité, nous allons donner à tous les ordinateurs de ce réseau une adresse de la forme 10.0.0.? Par exemple, pour la machine m1 : 10.0.0.1 et pour la machine m2 : 10.0.0.2 (au moins, ça sera facile à retenir... ) Regarder le manuel d ifconfig. Pour attribuer une adresse à une interface, il faut passer en argument non seulement le nom de l interface, mais aussi l adresse à attribuer. Donner les bonnes adresses aux 2 machines. 1.3 Test du réseau Vérifier à l aide d ifconfig que les deux machines ont bien reçu leur adresse. À l aide de ping, tester la connexion dans un sens et dans l autre. Attention! Il n y a pas de DNS, donc impossible de traduire ici les noms lisibles en adresses, il faut faire un ping directement sur l adresse IP. Rappel : pour arrêter un ping, il suffit d appuyer sur Ctrl-C. 1.4 Ça s en va et ça revient... ou pas Arrêter les deux ordinateurs à l aide du bouton tout arrêter. Les redémarrer. Le réseau fonctionneil? Pourquoi? Arrêter les deux ordinateurs et enregistrer le projet. 2 Un réseau qui dure plus longtemps Nous allons maintenant mettre en place un réseau simple qui survit à l arrêt et au redémarrage des ordinateurs. 2.1 Mise en place matérielle Ouvrir un nouveau projet (ou renommer l ancien). Y placer deux ordinateurs et les connecter par un câble. Tout démarrer. 2.2 Mise en place logicielle. Pour ne pas avoir à reconfigurer les cartes réseau à chaque démarrage, il faut fournir les informations directement dans les fichiers de configuration. Comme vu la semaine dernière, le fichier qui contient les configurations des interfaces réseaux est /etc/network/interfaces. Ouvrir ce fichier avec un éditeur de texte (nano ou vim puisqu on n a pas de mode graphique sous marionnet... ) Les lignes commençant par # sont des commentaires. Actuellement, le fichier contient quatre blocs séparés par des lignes vides. Le premier bloc est un commentaire décrivant le contenu du fichier. Le deuxième contient la configuration de l interface lo qui désigne toujours l ordinateur courant et les troisième et quatrième blocs sont une série de commentaires pour éventuellement configurer les cartes réseaux (eth*), il peut y en avoir plusieurs sur ces machines virtuelles... 2
Nous allons insérer un bloc pour la configuration de la carte réseau. Ce bloc est à insérer juste après la configuration de l interface lo. Penser à sauter des lignes pour avoir un fichier de configuration lisible... La première ligne à écrire dans le bloc est un commentaire décrivant le contenu du bloc. Pour les lignes suivantes, plusieurs choix sont possible. Dans un terminal sur la machine réelle, ouvrir le manuel de interfaces pour voir les descriptions de ces choix. Le manuel parle de stanzas ( stances/strophe 2 ). Ainsi que décrit par le manuel, juste avant une poignée d exemples, chaque stance est iface, auto, allow- ou mapping. Seuls les deux premiers types nous intéressent pour le moment. Lire le paragraphe qui suit immédiatement les exemples dans le manuel et qui décrit les stances auto. Rajouter dans le fichier une ligne pour que la carte réseau soit automatiquement activée au démarrage. Chercher dans la suite du manuel le passage qui décrit les strophes commençant par iface (utiliser / et n pour chercher un texte dans une page de manuel). Commencer une ligne pour la configuration de la carte réseau. Il faut maintenant choisir une famille d adresses et une méthode par laquelle la carte obtiendra une adresse. Pour la famille d adresses, choisir inet. Descendre dans le manuel jusqu à trouver la liste de méthodes disponibles pour la famille inet (partie intitulée INET ADDRESS FAMILY). Regarder rapidement la description des méthodes (sans lire la liste des options de chaque méthode). Laquelle faut-il utiliser selon vous pour configurer la carte réseau dans notre cas? Terminer la première ligne de la strophe dans le fichier /etc/network/interfaces avec le nom de la méthode à utiliser pour recevoir une adresse IP fixe. Cette première ligne de la strophe iface devrait maintenant contenir 4 mots : La déclaration iface, le nom de l interface à configurer, la famille d adresses et la méthode par laquelle la carte obtiendra une adresse. Regarder un peu en détail la liste d options de la méthode choisie. Deux d entre elles sont obligatoires (marquée required ) les autres sont optionnelles et nous nous en passerons... Tout d abord, il faut fournir une adresse IP pour la carte. Rajouter la ligne correspondante à la strophe iface. Ensuite, il faut fournir un netmask. Choisir 255.255.255.0 et rajouter la ligne en question à la strophe. Il y a donc en tout 5 lignes non vides à rajouter au fichier : Un commentaire pour dire ce qu on va faire. Une stance auto pour activer la carte au démarrage. Une stance iface composée de 3 lignes : Une ligne décrivant l interface à configurer, la famille d adresses et la méthode par laquelle une adresse sera choisie. Une ligne affectant une adresse à la carte. Une ligne affectant le netmask 255.255.255.0 à la carte. Sauver le fichier. Quitter l éditeur. Activer la carte à l aide de ifup Vérifier à l aide de ifconfig que la carte a été configurée correctement. 2.3 One more time Sur la deuxième machine virtuelle, éditer le fichier /etc/network/interfaces. Rajouter les lignes correspondant à la configuration de la carte réseau. Activer la carte à l aide de ifup. Vérifier à l aide de ping que le réseau fonctionne! Arrêter les machines virtuelles. Les rallumer. Le réseau fonctionne-t-il? 3 3 machines Comme chaque ordinateur n a qu une seule carte réseau (en général), si on veut connecter plus de 2 machines sur le même réseau, on a besoin d un matériel spécial, appelé hub (répéteur) qui comporte plusieurs prises réseaux et répartit le trafic entre les différents ordinateurs. 2. Au sens poétique de déclaration. 3
3.1 Mise en place matérielle Ouvrir un nouveau projet. Ajouter trois ordinateurs. Ajouter un hub (deuxième icône en partant du haut), 4 ports (choix par défaut) est un bon choix. Connecter chaque ordinateur au hub à l aide d un câble. Attention! Puisqu il s agit ici de matériels différent (hub/ordinateur), il faut mettre des câbles droits. Démarrer tout ça. Au lieu du terminal, le hub est représenté par une fenêtre avec 4 lampes qui représentent l activité du réseau. Au démarrage, les 3 qui sont connectées aux 3 ordinateurs sont allumées en jaunes pour indiquer qu il y a une connexion mais pas de trafic dessus. Cocher la case Always on top pour ne pas perdre de vue cette fenêtre. À l aide d ifconfig, donner une adresse IP à chaque machine (par exemple 10.0.0.1, 10.0.0.2 et 10.0.0.3). Pas besoin pour l instant de modifier /etc/network/interfaces. Utiliser ping pour vérifier que le réseau fonctionne. Regarder le hub pendant le ping. Les lampes clignotent pour indiquer qu il y a du trafic dans le réseau. On remarque que lorsqu on fait un ping entre 2 ordinateurs, les 3 lampes clignotent. En effet un hub ne sait pas où il doit envoyer les données du réseau et les renvoie à tous les ordinateurs qui sont connectés dessus. Charge à chaque ordinateur ensuite de ne conserver que ce qui lui est destiné. 3.2 Routage Afin de ne pas surcharger inutilement les machines et le réseau, il est intéressant de pouvoir diriger le trafic uniquement vers l ordinateur qui doit le recevoir (en plus, cela évite d envoyer des informations confidentielles à tout le monde et renforce donc la sécurité). Pour cela, on utilise un Commutateur ou switch à la place d un hub. Un switch est capable de diriger les données, c està-dire leur indiquer le bon câble à suivre pour arriver à destination. Arrêter toutes les machines. Enregistrer le projet. Supprimer le hub (cliquer sur l icône du hub dans la barre de gauche, puis supprimer). Ajouter à la place un switch (icône sous le hub) et le connecter aux ordinateurs (utiliser le bon type de câble). Enregistrer sous le nouveau projet pour en faire une copie. Démarrer toutes les machines. Cocher la case Always on top de la fenêtre du switch (pour différencier les hub des switch, les lampes des switch sont vertes). Configurer les adresses IP des 3 machines. Ne pas faire de ping pour le moment! Attention! Le phénomène à observer par la suite est assez bref. Bien lire le paragraphe suivant en entier avant de commencer! Depuis m1, faire un ping sur m2. Avant de confirmer la commande (d appuyer sur [Entrée]), garder les yeux fixés sur la fenêtre du switch et ses 3 lampes vertes. Regarder ce qui se passe au niveau des lampes lors du lancement du ping et des premiers clignotements (et par la suite aussi). Si vous ne constatez rien, vous pouvez recommencer jusqu à 6 fois (depuis chacune des 3 machines vers chacune des 2 autres). Ou tout arrêter et redémarrer pour essayer de voir ce qui se passe. Arrêter le ping et recommencer le même ping (depuis m1 vers m2). Que remarque-t-on sur les lampes qui clignotent? À votre avis, que c est-il passé au niveau du switch? c http://www.nojhan.net/ geekscottes/ 4
4 Broadcast et sous-réseau 4.1 Broadcast Reprendre le réseau à 3 machines et 1 hub construit précédemment. Enregistrer sous pour en faire une copie à part. Éditer les fichiers /etc/network/interfaces pour configurer correctement les 3 cartes réseaux (prendre les adresses 10.0.0.1, 10.0.0.2 et 10.0.0.3). Tout arrêter et tout (re)démarrer. Attention! Avec un switch, ça ne marchera pas. Les switch bloquent les informations de broadcast. Dans m1, regarder avec ifconfig la configuration de l interface eth0. Sur la ligne qui indique l adresse, on trouve en fait 3 adresses IP. Tout d abord, une inet addr qui est l adresse IP qu on a utilisé jusqu à présent, ensuite une Bcast qui correspond à l adresse de broadcast et finalement un Mask qui correspond au netmask qui a été configuré dans /etc/network/interfaces Regarder dans le manuel de ping, l option -b. Envoyer un ping en broadcast vers l adresse de broadcast trouvée précédemment. Que remarque-t-on sur les réponses? À quoi sert cette adresse? 4.2 Sous-réseaux Rajouter un deuxième hub, H2, et 3 nouvelles machines, n1, n2 et n3. Connecter les 2 hubs entre eux et les 3 nouvelles machines à H2. Attention! Penser à prendre le bon type de câble. Astuce 3 : pour un bon rendu visuel du réseau obtenu, placer les câbles de m* vers H1, de H1 vers H2 et de H2 vers n*. les câbles allant du haut vers le bas de l image, on obtient ainsi une image symétrique plus lisible. Tout démarrer. Éditer /etc/network/interfaces pour configurer les 3 nouvelles machines avec les adresses IP 10.0.1.1, 10.0.1.2 et 10.0.1.3. Tout arrêter. Tout redémarrer. Faire un ping en broadcast depuis m1. Depuis n1. Que remarque-t-on? Que peut-on en déduire sur les broadcast? Essayer depuis m1 de faire un broadcast sur l adresse (de broadcast) de n1. Que remarque-t-on? À quoi sert le netmask (masque de sous-réseau)? (comparer en particulier le netmask avec l adresse de broadcast) Changer les adresses de netmask des 6 machines pour 255.255.0.0 Tout arrêter et redémarrer. Que se passe-t-il au niveau des adresses de broadcast? Et des broadcasts eux-mêmes? 5 Ce qu il faut retenir Vous devez connaître le fichier /etc/network/interfaces ; la manière de donner une adresse IP à une interface dans ce fichier. Vous devez connaître l existence : de la notion de sous-réseau. 3. Bientôt, les TPs avec le trombone qui donne des astuces au démarrage. 5