M2-RADIS Rezo TP1 : Mise en place d un réseau correction Gaétan Richard gaetan.richard@info.unicaen.fr Dans le cadre des TPs de réseaux, vous allez progressivement monter et adminstrer un réseau de type moyenne entreprise et mettre en place un certain nombre de services. 1 Marionnet Pour réaliser ce travail, nous allons utiliser le simulateur Marionnet (http: //www.marionnet.org/). Cette approche vous permettra de simuler un véritable réseau virtuel à l intérieur de votre machine et de pouvoir avoir un accès complet à chacune des machines virtuelles. De plus, il est dès lors facile de sauvegarder votre travail afin de le reprendre plus tard et de travailler par vous même dessus. Présentation de Marionnet Marionnet permet de simuler différents éléments d un réseau. Ces éléments sont situés sur la partie gauche de la fenêtre. De haut en bas, nous avons : des machines des switchs et des hub (nous n utiliserons que les premiers, les seconds étant dépassés et présantant des inconvénients au niveau de la sécurité) des routeurs (pour le moment, nous utilserons plutôt des machines avec plusieurs ports à cette effet) des cables droits et croisés des sous réseaux de niveau 2 des connections vers l extérieur. 1
Le mot de passe par défaut de l administrateur sur les machines et pour les routeurs est root. Il existe deux type de machine virtuelles mais nous utiliserons toujours des images Debian par la suite. De plus, le noyau ghost permet de cacher certaines différences engendrées par la virtualisation. c est pourquoi nous préférerons celui-ci. Nous utiliserons principalement (voire exclusivement) l interface en ligne de commande pour manipuler les machines. 2 Le cœur du réseaux 2.1 Connection basique Pour commencer, positionnez 3 machines (m2, m3 et m4) en choisissant l image Debian et le noyau ghost ansi qu une machine avec 4 ports m1 à l adresse 192.168.4.1 (cette machine va nous servir de routeur). Ajoutez un switch 8 ports et connecter chaque machine à un des port de celui en utilisant des cables droit (comme dans la figure 1). Maintenant, vous pouvez mettre en route le switch et toutes les machines....eth0.192.168.4.2.m2..m3.eth0.192.168.4.3.eth0..192.168.4.1..m1 (routeur)..eth0.192.168.4.4.m4 Fig. 1 : Un embryon de réseau La configuration du réseau est accessible par l intermédiaire de la commande ifconfig. Nous allons tout d abord configurer les trois machines afin de leur donner les adresse ipv4 fixes de 192.168.4.2 à 192.168.4.4. Cette configuration est à faire au travers du fichier /etc/network/interfaces (il existe une page man sur ce fichier). Pour que les changements prennent effet, il faut relancer le service réseau par l intermédiaire du script /etc/init.d/networking [start stop restart]. Une fois les machines configurées, vous pouvez tester la connection par l intermédiaire de la commande ping. 2
Correction Il faut ajouter dans le fichier /etc/network/interfaces les lignes : # Correction : on configure une adresse IPv4 fixe auto eth0 iface eth0 inet static address 192.168.4.1 netmask 255.255.255.0 Nous allons donner un nom à chacune des machines. Le nom est situé dans le fichier /etc/hostname, il est possible de le lire avec hostname et le service pour recharger cette valeur est /etc/init.d/hostname.sh. Configurer également le fichier /etc/resolv.conf pour permettre d avoir un serveur de nom sur la machine 192.168.4.2. Correction On ajoute les lignes suivante à /etc/resolv.conf: # On ajoute un domaine pour nos machines domain login.info.unicaen.fr # Notre serveur DNS est 192.168.4.2 nameserver 192.168.4.2 2.2 Trop de nombres Nous allons maintenant configurer un serveur de nom sur la machine 192.168.4.2 à l aide de la suite d utilitaires bind. Vous allez maintenant créer un domaine de la forme login.info.unicaen.fr. Pour cela vous aurez besoin de modifier les fichiers : /etc/bind/named.conf /etc/bind/db.login /etc/bind/db.4.168.192. Faites en sorte que la machine m2 porte également le nom dnsserver et que m1 soit également appelée router. Vous pouvez alors redémarrer le service par l intermédiaire du script /etc/init.d/bind9. 3
Correction Ajout dans /etc/bind/named.conf uniquement sur m2 : // Correction : notre base pour la résolution directe zone "login.info.unicaen.fr" { type master file "/etc/bind/db.login" } et // Correction : base pour le résolution inverse zone "4.168.192.in-addr.arpa" { type master file "/etc/bind/db.4.168.192" } Correction Le fichier /etc/bind/db.login sur m2 : Correction : BIND données pour le domaine login $TTL 604800 @ IN SOA login.info.unicaen.fr. root.login.info.unicaen.fr. ( 1 Serial 604800 Refresh 86400 Retry 2419200 Expire 604800 ) Negative Cache TTL @ IN NS dnsserver. m1 IN A 192.168.4.1 m2 IN A 192.168.4.2 m3 IN A 192.168.4.3 m4 IN A 192.168.4.4 router IN CNAME m1 dnsserver IN CNAME m2 4
Correction Et finalement le fichier /etc/bind/db.4.168.192: Correction : BIND base de donnée inverse $TTL 604800 @ IN SOA login.info.unicaen.fr. root.login.info.unicaen.fr. ( 1 Serial 604800 Refresh 86400 Retry 2419200 Expire 604800 ) Negative Cache TTL @ IN NS dnsserver.login.info.unicaen.fr. 1 IN PTR m1.login.info.unicaen.fr. 2 IN PTR m2.login.info.unicaen.fr. 3 IN PTR m3.login.info.unicaen.fr. 4 IN PTR m4.login.info.unicaen.fr. Une fois ces modifications effectuées, testez le résultat à l aide des commandes dig, host et nslookup. Observez ensuite ce qui se passe lorsque la machine dnsserver est hors-service. Pour contourner le problème précédent, transformer la machine m3 en un serveur de nom secondaire. N oubliez pas de modifier les fichiers /etc/resolv.conf des autres machines pour leur ajouter ce serveur. Correction On ajoute les lignes suivantes à /etc/bind/named.conf de m3 // Correction : on a une base de donnée esclave pour le direct zone "login.info.unicaen.fr" { type slave file "/etc/bind/db.login" masters {192.168.4.2 } } et // Correction : et pour le reverse 5
zone "4.168.192.in-addr.arpa" { type slave file "/etc/bind/db.4.168.192" masters {192.168.4.2 } } On ajoute le droit d écriture pour bind dans /etc/bind: chmod g+w /etc/bind/ et on n oublie pas d ajoute le nouveau serveur de nom dans le fichier resolv.conf de toutes les machines. 2.3 Un sous réseau Ajoutons maintenant un nouveau sous-réseaux à l aide d un swiotch que nous connecterons à l interface eth1 de m1 (avec l adresse 192.168.128.1) et sur lequel nous allons ajouter une machine n1 portant l adresse 192.168.128.2 Une fois cela fait, ajoutez les entrées nécéssaires dans le DNS et configurez les routes afin de permettre les communications entre toutes les machines. Correction On configure n1 en IP fixe et on ajoute le resolv.conf comme sur les autres machines. On n oublie pas de configure eth1 sur m1. On ajoute l entrée n1 dans le dns direct puis on ajoute une base de donnée pour les adresses du type 192.168.1/24 dans le dns principal, on duplique pour le dns secondaire. n1 IN A 192.168.1.2 // Correction : base pour le résolution inverse (zone n) zone "1.168.192.in-addr.arpa" { type master file "/etc/bind/db.1.168.192" } contenu de /etc/bind/db.1.168.192 Correction : BIND base de donnée inverse $TTL 604800 @ IN SOA login.info.unicaen.fr. root.login.info.unicaen.fr. ( 1 Serial 604800 Refresh 86400 Retry 2419200 Expire 6
604800 ) Negative Cache TTL @ IN NS dnsserver.login.info.unicaen.fr. 1 IN PTR m1.login.info.unicaen.fr. 2 IN PTR n1.login.info.unicaen.fr. dans le dns secondaire zone "1.168.192.in-addr.arpa" { type slave file "/etc/bind/db.1.168.192" masters {192.168.4.2 } } Correction Il rest à ajouter à toutes les machines (sauf m1) une passerelle par défaut sur m1. on ajoute la ligne dans /etc/network/interfaces pour les machines mx <...> netmask 255.255.255.0 gateway 192.168.4.1 et pour la machine n1 # Correction : configurer en ip fixe avec m1 comme passerelle auto eth0 iface eth0 inet static address 192.168.1.2 netmask 255.255.255.0 gateway 192.168.1.1 Correction il reste alors à activer le forward IP sur m1. Les routes étant définies automatiquement à l aide des netmask. Soit de façon directe echo 1 > /proc/sys/net/ipv4/ip_forward Soit de façon permanente dans /etc/sysctl.conf 7
# Uncomment the next line to enable packet forwarding for IPv4 net.ipv4.ip_forward=1 2.4 S ouvrir vers l extérieur Maintenant que nous avons créé notre propre réseau, il est temps de l ouvrir sur le monde. Pour cela, nous allons connecter router à l internet (représenté dans Marionnet par une prise RJ45). Il reste alors à configurer l interface connecté en mode DHCP. Correction On ajoute juste les lignes à resolv.conf de la machine router. # Correction : on configure eth2 en dhcp auto eth2 iface eth2 inet dchp On notera que cette action modifie le contenu du fichier /etc/resolv.conf. Maintenant, il est possible d accéder au monde depuis la machine m1. Ce n est malheureusement pas encore le cas pour les autres machines. Nous verrons comment faire cela dans un futur TP. 8