UE21 - M2102 (Architecture des réseaux)
Transcription
UE21 - M2102 (Architecture des réseaux)
UE21 - M2102 : Architecture des réseaux Enoncé du TP 4 Commandes réseau de configuration et tests IP IUT Aix-Marseille - INFO Aix C. Pain-Barre Table des matières 1 2 Configuration d’un hôte sous Unix 1.1 Les interfaces réseau . . . . . . . . . . . . . . . . . . . . 1.2 ifconfig : configuration d’une interface sous Unix . . . . . Exercice 1 (Consultation et configuration des interfaces) . 1.3 Test de connectivité avec ping . . . . . . . . . . . . . . . Exercice 2 (tests de connectivité depuis m2) . . . . . . . . Exercice 3 (tests de connectivité depuis m1) . . . . . . . . 1.4 Configuration d’une table de routage . . . . . . . . . . . . Exercice 4 (Consultation de la table de routage de m2) . . Exercice 5 (Modification de la table de routage de m1) . . Exercice 6 (routes du PC) . . . . . . . . . . . . . . . . . . 1.5 Consultation et modification du cache ARP . . . . . . . . Exercice 7 (manipulation du cache ARP) . . . . . . . . . . Exercice 8 (petites questions sur arp) . . . . . . . . . . . . 1.6 traceroute : connaître le chemin suivi par les datagrammes Exercice 9 (traceroute sur le PC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Commandes réseau dans l’environnement Windows 2.1 ipconfig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 netsh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3 ping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4 arp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5 route . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.6 tracert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Exercice 10 (Configuration de la machine virtuelle Windows XP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 3 4 6 8 8 8 9 11 11 11 12 12 13 13 14 . . . . . . . 14 15 17 19 20 21 24 25 3 Synthèse de l’utilisation des commandes réseau 25 Exercice 11 (Déduction de la topologie) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 4 Noms de stations et de domaine 4.1 Noms officieux . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1.1 Sous Unix . . . . . . . . . . . . . . . . . . . . . . . . . Exercice 12 (noms officieux sur allegro) . . . . . . . . . Exercice 13 (noms officieux sur m1) . . . . . . . . . . . 4.1.2 Sous Windows . . . . . . . . . . . . . . . . . . . . . . 4.2 Noms officiels : utilisation et configuration du client DNS . . . . 4.2.1 Commande hostname . . . . . . . . . . . . . . . . . . . Exercice 14 (hostname sur allegro) . . . . . . . . . . . . 4.2.2 Résolution de nom sous Unix et le fichier nsswitch.conf IUT Aix-Marseille - INFO Aix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19/3/2015 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 28 28 29 29 30 31 31 32 32 - C. Pain-Barre UE21 - M2102 : Architecture des r´eseaux 4.2.3 4.2.4 4.2.5 5 6 7 8 Enonc´e du TP 4 2/48 Exercice 15 (consultation de /etc/nsswitch.conf sur allegro) . Configuration du client (solveur) DNS . . . . . . . . . . . . Exercice 16 (consultation de /etc/resolv.conf du PC) . . . . Exercice 17 (configuration du client DNS de m1) . . . . . . Interrogation du DNS avec host, dig et nslookup . . . . . . La commande host . . . . . . . . . . . . . . . . . . . . . . Exercice 18 (interrogations DNS avec host) . . . . . . . . . La commande dig . . . . . . . . . . . . . . . . . . . . . . . Exercice 19 (interrogations DNS avec dig) . . . . . . . . . La commande nslookup . . . . . . . . . . . . . . . . . . . Exercice 20 (interrogations DNS avec nslookup) . . . . . . Exercice 21 (interrogations DNS itératives avec nslookup) . WHOIS : informations sur les gestionnaires d’un domaine . Exercice 22 (interrogation whois sur Linux) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 34 34 34 35 35 37 37 38 38 38 39 39 39 TELNET 5.1 Client telnet pour le terminal virtuel . . . . . . . . . . . . . . Exercice 23 (Utilisation de telnet depuis Linux) . . . . . . . . Exercice 24 (Facultatif : utilisation de telnet depuis Windows) 5.2 Telnet comme simple client TCP . . . . . . . . . . . . . . . . Exercice 25 (Utilisation de telnet en client TCP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 40 41 41 42 43 Activités réseaux d’un hôte 6.1 Les services réseau et la sécurité . . . . . . . 6.2 Lister l’activité réseau avec netstat . . . . . . Exercice 26 (netstat sur linux) . . . . . . . . Exercice 27 (Facultatif : netstat sur windows) Exercice 28 (identification des services actifs) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 44 44 45 46 46 Autres outils du bricoleur réseau 7.1 nmap : scanner un réseau . . . . . . . . . . Exercice 29 (Utilisation de nmap sur Linux) 7.2 netcat : un client/serveur à tester . . . . . . Exercice 30 (Utilisation de netcat sur Linux) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 47 47 47 48 . . . . Le courrier électronique et les clients de messagerie 48 Exercice 31 (Utilisation de Thunderbird) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 C. Pain-Barre - 19/3/2015 IUT Aix-Marseille - INFO Aix 3/48 1 Enonc´e du TP 4 UE21 - M2102 : Architecture des r´eseaux Configuration d’un hôte sous Unix 1.1 Les interfaces réseau Une interface réseau identifie un périphérique permettant de se connecter à un réseau ainsi que les méthodes d’accès à ce réseau. Ce peut être un modem, une carte réseau, un port série, un port USB, ou autre. Une station ne possède et n’utilise généralement qu’une seule carte réseau. Les routeurs possèdent en revanche une interface par réseau auquel ils sont connectés. Sur Unix (et Linux), une interface correspond à un point d’entrée dans le noyau (cœur du système). Envoyer des messages via les interfaces réseaux revient à passer des données à des procédures spéciales du noyau chargées d’effectuer les opérations d’entrées-sorties physiques. Une interface est généralement identifiée par un nom logique indiquant le type d’interface et le numéro d’ordre de la carte. Par exemple, sous Linux, une carte Ethernet classique sera identifiée par : • eth0 pour la première carte ; • eth1 pour la seconde ; • etc. et les cartes Wifi, plutôt par wlan0, wlan1, . . . Sur SunOS 7.0 (Unix de Sun MicroSystems), une carte Ethernet sera identifiée par : • le0 pour la première ; • le1 pour la seconde ; • etc. - Une exception concerne l’interface loopback (boucle locale) identifiée par lo suivi éventuellement d’un numéro. C’est une interface virtuelle associée à l’adresse IP 127.0.0.1 (en fait à toutes les adresses IP commençant par 127, qui sont inutilisables pour adresser un hôte sur Internet). Virtuelle veut dire que loopback n’est rattachée à aucune une carte réseau réelle. Elle permet, avec son adresse IP, de tester uniquement en local des programmes utilisant TCP/IP, sans même disposer d’une liaison réseau. Elle permet donc de réaliser des tests sans pour autant provoquer de transmission sur le réseau, et d’utiliser localement des services réseaux. Généralement, les stations sont configurées pour que cette interface puisse être désignée par le nom localhost (cas des stations Unix et Windows). Une interface possède (généralement) une adresse physique, communément appelée adresse MAC. C’est l’adresse qui l’identifie dans les communications au niveau trame (couche liaison OSI), au sein du réseau physique auquel elle est connectée. Pour que cette interface puisse être une destination dans l’Internet, il faut lui associer une adresse IP (une seule suffit). Ainsi, une station va posséder une seule adresse IP alors qu’un routeur va posséder une adresse IP par réseau auquel il est connecté, via une interface. Pour réaliser cette association, il faut configurer l’interface. La configuration d’une interface comprend : • son adresse IP ; • son masque de sous-réseau ; - le système déduit l’adresse de son réseau en appliquant le masque à l’adresse IP, et ajoute automatiquement la route directe correspondante dans la table de routage. IUT Aix-Marseille - INFO Aix 19/3/2015 - C. Pain-Barre UE21 - M2102 : Architecture des r´eseaux Enonc´e du TP 4 4/48 • selon le système et le contexte, l’adresse d’un routeur (Gateway) pour créer la route par défaut ; • l’adresse IP de diffusion dirigée (si la diffusion est possible) dans le réseau de l’hôte. Un datagramme envoyé vers cette adresse est aussi destiné à cette interface ainsi qu’à toutes celles raccordées à ce réseau ; - l’adresse de diffusion dirigée est aussi déduite de l’adresse IP et du masque, en mettant à 1 dans l’adresse IP, les bits qui sont à zéro dans le masque. • un état actif (UP) ou inactif (DOWN) ; • un certain nombre d’options : le MTU (Maximum Transmission Unit) : charge utile maximale d’une trame émise via cette interface, dépendant du réseau. Vaut 1500 pour Ethernet ; l’activation ou non du protocole ARP sur cette interface ; la possibilité de diffuser ou non via l’interface (BROADCAST) ; la possibilité de recevoir des messages émis en multi-diffusion (MULTICAST) ; l’activation du mode promiscuous, donnant la possibilité de garder toutes les trames reçues sur cette interface, même celles n’étant pas destinées à l’adresse physique de cette interface. Ce mode est utilisé pour réaliser des captures de trafic réseau. 1.2 ifconfig : configuration d’une interface sous Unix La commande permettant de configurer une interface sous Unix est ifconfig (interface configuration), qui se trouve dans le répertoire /sbin. Elle admet d’assez nombreuses options car elle permet de configurer tout type de carte, pour différents besoins et protocoles réseau (pas seulement IPv4). Elle sert aussi à la consultation de la configuration courante des interfaces. - Le répertoire /sbin tout comme /usr/sbin contiennent des commandes destinées normalement aux administrateurs. Ces répertoires ne sont donc pas contenus par défaut dans le PATH des utilisateurs. Un utilisateur normal voulant les utiliser doit soit saisir leur référence absolue soit modifier son PATH en tapant : $ PATH="$PATH:/sbin:/usr/sbin" Synopsis ifconfig [-a | interface] ifconfig interface [adresse-ip] [netmask masque] [mtu mtu] [hw ether adresse-mac] La première forme sert à la consultation de la configuration courante. Si interface n’est pas indiquée, seule la configuration des interfaces actives (UP) est affichée. Les interfaces inactives (DOWN) sont aussi affichées si on utilise -a. Sinon, seule la configuration de interface est affichée. La deuxième forme permet une configuration élémentaire de l’interface indiquée, où : • adresse-ip est l’adresse IPv4 à lui attribuer ; • netmask masque • mtu mtu C. Pain-Barre - précise le masque de sous-réseau à utiliser ; précise le MTU (en octets). Il n’est généralement pas utile de le modifier ; 19/3/2015 IUT Aix-Marseille - INFO Aix 5/48 Enonc´e du TP 4 UE21 - M2102 : Architecture des r´eseaux • hw ether adresse-mac permet d’utiliser une autre adresse MAC (Ethernet) que celle de la carte réseau. Sauf cas particuliers, il n’est pas nécessaire de préciser ce paramètre. i En ligne de commandes sous Windows, la configuration d’une interface passe par la commande netsh interface ip (voir section 2.2 page 17), bien qu’ipconfig (voir section 2.1 p. 15) puisse servir, notamment pour afficher la configuration. Exemple 1 Affichage de la configuration courante des interfaces actives : # ifconfig eth0 Link encap:Ethernet HWaddr 00:21:9b:dd:db:f9 inet adr:139.124.187.55 Bcast:139.124.187.255 Masque:255.255.255.0 adr inet6: fe80::221:9bff:fedf:dbf9/64 Scope:Lien UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:116984 errors:0 dropped:0 overruns:0 frame:0 TX packets:48298 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 lg file transmission:1000 RX bytes:148500091 (141.6 MiB) TX bytes:3921033 (3.7 MiB) Interruption:17 lo Link encap:Boucle locale inet adr:127.0.0.1 Masque:255.0.0.0 adr inet6: ::1/128 Scope:Hôte UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:10964 errors:0 dropped:0 overruns:0 frame:0 TX packets:10964 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 lg file transmission:0 RX bytes:654158 (638.8 KiB) TX bytes:654158 (638.8 KiB) ê les interfaces eth0 et lo (loopback) sont actives. Pour eth0, on peut noter la configuration mise en gras sur l’exemple : • adresse MAC (HWaddr) : 00:21:9b:dd:db:f9 • adresse IPv4 (inet adr) : 139.124.187.55 • adresse de diffusion dirigée dans le réseau (Bcast) : 139.124.187.255 • masque de sous-réseau : 255.255.255.0 • MTU : 1500 Affichage de la configuration courante de toutes les interfaces : # ifconfig -a eth0 Link encap:Ethernet HWaddr 00:21:9b:dd:db:f9 inet adr:139.124.187.55 Bcast:139.124.187.255 ... lo Masque:255.255.255.0 Link encap:Boucle locale inet adr:127.0.0.1 Masque:255.0.0.0 ... IUT Aix-Marseille - INFO Aix 19/3/2015 - C. Pain-Barre UE21 - M2102 : Architecture des r´eseaux Enonc´e du TP 4 6/48 tap426275 Link encap:Ethernet HWaddr 46:86:d4:80:98:8b inet adr:172.23.0.254 Bcast:172.23.255.255 Masque:255.255.255.255 BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:1212 errors:0 dropped:0 overruns:0 frame:0 TX packets:59 errors:0 dropped:34 overruns:0 carrier:0 collisions:0 lg file transmission:500 RX bytes:39060 (38.1 KiB) TX bytes:8629 (8.4 KiB) wlan0 ê Link encap:Ethernet HWaddr 00:1f:3c:c1:05:e6 BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:33446 errors:0 dropped:0 overruns:0 frame:0 TX packets:10817 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 lg file transmission:1000 RX bytes:14998208 (14.3 MiB) TX bytes:4210593 (4.0 MiB) l’interface wlan0 correspond à la première carte Wifi ; l’interface tap426275 est une interface virtuelle créée par le simulateur Marionnet pour avoir un accès réseau à une machine virtuelle. Configuration de l’interface eth0 avec l’adresse 150.151.152.1/16 : # ifconfig eth0 150.151.152.1 netmask 255.255.0.0 Vérification : # ifconfig eth0 eth0 Link encap:Ethernet HWaddr 00:21:9b:dd:db:f9 inet adr:150.151.152.1 Bcast:150.151.255.255 ... Masque:255.255.0.0 Exercice 1 (Consultation et configuration des interfaces) Nous allons travailler sur des machines virtuelles mises en réseau grâce au simulateur Marionnet : 1. Télécharger le fichier tp4_mkxp4mario.bash (depuis le site de l’enseignement) et l’exécuter. Il prépare et démarre une machine virtuelle sous Windows XP dont on se servira plus tard. L’exécution de ce script prend du temps : passer à la suite et de temps en temps répondre aux messages de VirtualBox ; 2. Télécharger le fichier tp4_confip_lab1.mar (depuis le site de l’enseignement) 3. Lancer le simulateur Marionnet via le menu Autres −→ Marionnet 4. Cliquer sur la fenêtre de bienvenue puis charger le fichier tp4_confip_lab1.mar par le menu Projet −→ Ouvrir (prend un temps plus ou moins long) 5. Ce projet contient le réseau 10.0.2.0/24 présenté à la figure 1. Il est formé par : • une machine virtuelle linux m1 non configurée ; • une machine virtuelle linux m2 déjà configurée avec une adresse dans le réseau 10.0.2.0/24 ; • la machine virtuelle windows XP, non configurée, représentée par B1 ; • une passerelle vers Internet (de type box des FAI) nommée G1 et d’adresse 10.0.2.2. Elle est configurée pour donner accès (partiellement) à Internet aux hôtes du réseau. Cette passerelle fait office de routeur par défaut. • un switch S1 qui connecte tout ce beau monde. C. Pain-Barre - 19/3/2015 IUT Aix-Marseille - INFO Aix 7/48 Enonc´e du TP 4 UE21 - M2102 : Architecture des r´eseaux F IGURE 1 – Interface de Marionnet suite au chargement de tp5_confip_lab1.mar 6. Cliquer sur le bouton Tout Démarrer en bas à gauche de l’interface. Les machines virtuelles démarrent chacune dans une fenêtre terminal dédiée. 7. Se loger sur m2 en tant que root (mot de passe root) 8. Faire afficher la configuration de ses interfaces. Repérer l’interface Ethernet déjà configurée et déterminer : (a) son adresse MAC (Ethernet) (b) son adresse IPv4 (c) l’adresse de diffusion dirigée dans ce réseau (d) son masque de sous-réseau (e) le MTU de son réseau 9. Se loger sur m1 en tant que root (mot de passe root) 10. Faire afficher la configuration de ses interfaces 11. Configurer son interface eth0 avec l’adresse 10.0.2.15/24 12. Afficher la configuration de eth0 [Corrigé] IUT Aix-Marseille - INFO Aix 19/3/2015 - C. Pain-Barre UE21 - M2102 : Architecture des r´eseaux 1.3 Enonc´e du TP 4 8/48 Test de connectivité avec ping La commande ping est disponible sur les systèmes Unix et Windows (voir section 2.3, page 19). Elle permet de tester l’acheminement de datagrammes sur le réseau et, accessoirement, de vérifier qu’une machine est bien présente sur le réseau. Elle permet aussi de réaliser des statistiques sur les temps de réponse ainsi que sur le pourcentage de paquets perdus. i Sous Linux, la commande ping se trouve dans le répertoire /bin, déjà présent dans le PATH d’un utilisateur normal. ping utilise par défaut le protocole ICMP en envoyant des messages (ICMP) de type "Demande d’ECHO" (ECHO REQUEST) demandant au destinataire de répondre par un "Réponse d’ECHO" (ECHO REPLY). Sur certains systèmes, ping effectue plusieurs envois puis s’arrête en fournissant des statistiques sur le temps de propagation aller-retour (Round Trip Time). Sur d’autres systèmes (comme Linux), il faut arrêter ping en tapant Ctrl-C . Ainsi, lorsqu’une réponse arrive, on est assuré que l’ordinateur qu’on utilise est correctement configuré, de même que l’ordinateur intérrogé, que les réseaux qui les séparent sont opérationnels et que les routeurs intermédiaires sont correctement configurés. Exercice 2 (tests de connectivité depuis m2) Ouvrir un terminal sur votre PC, et consulter le manuel en ligne de ping en tapant : $ man ping pour étudier ses options -c, -b et -f. Depuis la machine virtuelle m2 : 1. Taper ping 10.0.2.2 pour tester la connectivité avec la passerelle Internet (G1). Vous devriez obtenir les réponses. Taper Ctrl-C pour arrêter la commande ; 2. Reprendre la commande précédente et utiliser l’option permettant de limiter le nombre de requêtes à 3 ; 3. Tester la connectivité avec m1 qui devrait avoir l’adresse 10.0.2.15. Si m1 a été correctement configurée, ses réponses doivent revenir ; 4. Tester la connectivité avec l’hôte 139.124.187.15. Si la passerelle Internet fonctionne normalement, vous devriez encore obtenir des réponses. 5. Tester la connectivité avec l’hôte 192.168.10.30 en limitant à 3 requêtes (il y a peu de chances d’avoir une réponse. . .) et en utilisant l’option -f pour afficher une trace des requêtes transmises (un point est affiché par requête). [Corrigé] Exercice 3 (tests de connectivité depuis m1) Depuis m1 : 1. Tester la connectivité avec G1. Vous devriez obtenir les réponses ; 2. Tester la connectivité avec 139.124.187.15. Vous devriez obtenir un message d’erreur. Pourtant, aucun matériel (S1, G1, allegro) n’a de configuration particulière excluant m1 de l’accès à Internet. Le problème vient uniquement de m1. D’après vous, quel est-il ? C. Pain-Barre - 19/3/2015 IUT Aix-Marseille - INFO Aix 9/48 Enonc´e du TP 4 i UE21 - M2102 : Architecture des r´eseaux Aides (si besoin) : • un indice est déjà donné par l’erreur indiquée par ping ; • un autre est que l’adresse 139.124.187.15 n’appartient pas au réseau local de m1 ; • un dernier est de se demander quels sont les paramètres que nous avons eu besoin d’entrer pour configurer correctement un hôte sur Packet Tracer ? Peut être un élément de configuration manque encore. . . [Corrigé] 1.4 Configuration d’une table de routage Les informations que l’on peut (ou doit) spécifier lorsqu’on ajoute une route dans une table de routage sont : • le type de destination (réseau ou hôte) ; • son adresse IP ; • le masque de cette adresse (afin de prendre en compte des regroupements de réseaux) s’il est différent de celui de la classe du réseau ; • le routeur associé (0.0.0.0 si la route est directe) ; • l’interface à utiliser pour cette route (lo, eth0,. . .), et permettant de communiquer avec la destination (route directe) ou le routeur. La configuration de la table de routage se fait au moyen de la commande route sur Unix et Windows (voir section 2.5, page 21). Cette commande permet d’ajouter ou de supprimer des routeurs vers des réseaux ou des stations. Dans notre cas, le synopsis suivant devrait suffire. Synopsis route [-n] route add -net adresse-destination netmask masque gw routeur [dev interface] route del -net adresse-destination netmask masque gw routeur [dev interface] La première forme permet d’afficher la table de routage. L’option -n désactive la résolution inverse DNS, ce qui est parfois bien pratique. La seconde permet d’ajouter une route passant par le routeur routeur vers la destination adresse-destination de masque masque. Si besoin, l’interface à utiliser pour cette route peut être indiquée avec dev interface. La dernière forme permet de supprimer une route. - Il n’est pas nécessaire d’ajouter dans la table le réseau auquel est connectée l’interface de la station. En effet, sa configuration avec ifconfig a automatiquement provoqué son ajout dans la table. i Il est possible avec route d’interdire une destination en utilisant l’option reject mais cela ne remplace pas l’utilisation d’un bon firewall. . . IUT Aix-Marseille - INFO Aix 19/3/2015 - C. Pain-Barre UE21 - M2102 : Architecture des r´eseaux Enonc´e du TP 4 10/48 Exemple 2 Supposons que nous voulons ajouter une route vers la destination 139.124.110.0/24 qui passe par le routeur 150.151.152.250 et une route par défaut qui passe par le routeur 150.151.152.153. Dans un premier temps, supposons que l’hôte est déjà configuré au niveau IP, et consultons sa table de routage : # route -n Table de routage IP du noyau Destination Passerelle 150.151.0.0 0.0.0.0 Genmask 255.255.0.0 Indic Metric Ref U 0 0 Use Iface 0 eth0 On ajoute ensuite la route vers 139.124.187.0/24 : # route add -net 139.124.110.0 netmask 255.255.255.0 gw 150.151.152.250 puis la route par défaut : # route add -net 0.0.0.0 netmask 0.0.0.0 gw 150.151.152.153 Puis on peut vérifier en affichant la table : # route -n Table de routage IP du noyau Destination Passerelle 150.151.0.0 0.0.0.0 139.124.110.0 150.151.152.250 0.0.0.0 150.151.152.153 Genmask 255.255.0.0 255.255.255.0 0.0.0.0 Indic U UG UG Metric 0 0 0 Ref 0 0 0 Use 0 0 0 Iface eth0 eth0 eth0 Puis en testant la connectivité d’un hôte (dont on sait qu’il répond en temps normal) : # ping 139.124.110.8 PING 139.124.110.8 (139.124.110.8) 56(84) bytes of data. 64 bytes from 139.124.110.8: icmp_seq=1 ttl=64 time=0.276 ms 64 bytes from 139.124.110.8: icmp_seq=2 ttl=64 time=0.485 ms 64 bytes from 139.124.110.8: icmp_seq=3 ttl=64 time=0.408 ms 64 bytes from 139.124.110.8: icmp_seq=4 ttl=64 time=0.363 ms CTRL + C --- 139.124.110.8 ping statistics --4 packets transmitted, 4 received, 0% packet loss, time 2998ms rtt min/avg/max/mdev = 0.276/0.383/0.485/0.075 ms C. Pain-Barre - 19/3/2015 IUT Aix-Marseille - INFO Aix 11/48 i Enonc´e du TP 4 UE21 - M2102 : Architecture des r´eseaux La colonne Indic (ou flags, selon l’installation) contient une combinaison d’indicateurs donnant quelques renseignements sur la route. Parmi les indicateurs possibles, il y a U, H, G, D, M et ! : • U : la route est en service (activée). • H : la destination est un ordinateur (host). Sans cet indicateur, la destination est un réseau. • G : la route n’est pas directe et la passerelle est un routeur (gateway). Sans cet indicateur, la destination est directement accessible. • D : la route a été créée par une redirection (message ICMP). • M : la route a été modifiée par une redirection (message ICMP). • ! : la route est rejetée (option reject). Dans certaines implémentations, la table de routage peut contenir les adresses de la station elle-même. Par exemple, pour la station d’adresse 139.124.187.4, on pourrait avoir comme table : Destination 139.124.187.4 139.124.187.0 127.0.0.0 0.0.0.0 Passerelle 0.0.0.0 0.0.0.0 0.0.0.0 139.124.187.1 Genmask 255.255.255.255 255.255.255.0 255.0.0.0 0.0.0.0 Indic UH U U UG Metric 0 10 0 10 Ref Use Iface 0 0 eth0 0 0 eth0 0 0 lo 0 0 eth0 Exercice 4 (Consultation de la table de routage de m2) Sur m2, utiliser route avec l’option -n pour faire afficher sa table de routage. Recommencer ensuite sans l’option -n. [Corrigé] Exercice 5 (Modification de la table de routage de m1) Sur m1 : 1. faire afficher sa table de routage ; 2. ajouter une route par défaut passant par la passerelle Internet (10.0.2.2) ; 3. faire à nouveau afficher sa table de routage et vérifier cette nouvelle route ; 4. tester la connectivité de 139.124.187.15. Cette fois, cela devrait fonctionner. [Corrigé] - Un raccourci pour créer une route par défaut est d’utiliser la forme : route add default gw routeur [dev interface] Exercice 6 (routes du PC) Sur un terminal de votre PC, faire afficher les routes connues. Les routes utilisant les interfaces tap* offrent une connectivité avec les machines virtuelles de Marionnet. Nous y reviendrons ultérieurement. [Corrigé] IUT Aix-Marseille - INFO Aix 19/3/2015 - C. Pain-Barre UE21 - M2102 : Architecture des r´eseaux 1.5 Enonc´e du TP 4 12/48 Consultation et modification du cache ARP La commande arp permet de consulter et de modifier le cache ARP, sous Unix (Linux) et Windows (voir section 2.4, page 20). - Sous Linux, la commande arp est située dans le répertoire /usr/sbin qui ne figure pas par défaut dans le PATH d’un utilisateur normal. Exemple 3 Voici un petit extrait des informations que l’on peut obtenir avec arp (sur un PC du département) : $ /usr/sbin/arp Address b122.iut.univ-aix.fr imp-a.iut.univ-aix.fr b118.iut.univ-aix.fr pcdl.iut.univ-aix.fr iutextreme.iut.univ-aix ... $ /usr/sbin/arp -n Address 139.124.187.122 139.124.187.94 139.124.187.118 139.124.187.248 139.124.187.1 ... ê HWtype ether ether ether ether HWtype ether ether ether ether HWaddress f0:4d:a2:24:24:5a (incomplete) f0:4d:a2:23:6a:e9 b8:ac:6f:30:7d:65 00:23:89:57:5e:a3 Flags Mask C HWaddress f0:4d:a2:24:24:5a (incomplete) f0:4d:a2:23:6a:e9 b8:ac:6f:30:7d:65 00:23:89:57:5e:a3 Flags Mask C C C C C C C Iface eth0 eth0 eth0 eth0 eth0 Iface eth0 eth0 eth0 eth0 eth0 on voit que l’entrée 139.124.187.94 (imp-a.iut.univ-aix.fr) est incomplète car ce PC cherche à la résoudre (attend la réponse ARP de sa requête). Les entrées marquées C dans la colonne Flags sont des entrées temporaires normales. Exercice 7 (manipulation du cache ARP) Sur un terminal du PC, consulter le manuel en ligne Linux de arp en tapant : $ man arp et étudier ses options -a, -n, -d et -s. Puis, sur la machine virtuelle m1 : 1. afficher la liste de toutes les associations présentes dans son cache ARP. Utiliser l’option -n pour désactiver la résolution inverse qui n’est pas souhaitée. Selon le temps passé avant cette question, il peut être vide, ce qui est normal car les entrées du cache expirent rapidement (ont une durée de vie très courte). 2. taper ping -c 1 10.0.2.2 3. afficher la liste de toutes les associations présentes dans le cache ARP. Cette fois nous devrions voir apparaître une entrée pour 10.0.2.2. Pourquoi ? 4. utilser arp pour ajouter manuellement (et de façon permanente) l’entrée 10.0.2.10 associée à l’adresse MAC 00:21:9b:dd:db:f9 puis vérifier le cache C. Pain-Barre - 19/3/2015 IUT Aix-Marseille - INFO Aix 13/48 Enonc´e du TP 4 UE21 - M2102 : Architecture des r´eseaux 5. taper ping -c 1 10.0.2.10. Vous devriez ne pas obtenir de réponse. Pouvez-vous expliquer pourquoi ? i Aide (si besoin) : • une entrée permanente n’est pas remise en cause • quelle est l’adresse MAC de l’interface eth0 de m2 ? - On ne devrait jamais avoir besoin d’ajouter une entrée manuellement dans le cache ARP. . . 6. supprimer du cache l’entrée pour 10.0.2.10 puis vérifier l’état du cache 7. taper ping -c 1 10.0.2.10. Cette fois, vous devriez obtenir une réponse. Comprenez-vous pourquoi ? [Corrigé] Exercice 8 (petites questions sur arp) 1. Pensez-vous que le cache de m1 (ou de m2) puisse contenir une entrée ARP pour l’adresse 10.0.10.10 ? i Aide (si besoin) : ces hôtes se trouvent-ils sur le même réseau ? 2. Trouvez-vous dans le manuel de arp une option permettant d’obtenir l’adresse physique d’un hôte (station ou routeur) non présent dans le cache ? [Corrigé] 1.6 traceroute : connaître le chemin suivi par les datagrammes La commande traceroute permet de connaître le chemin (route) que suivent les datagrammes envoyés vers un hôte donné. Son homologue sous Windows est tracert (voir section 2.6, page 24). - traceroute affiche les adresses IP des routeurs traversés pour atteindre l’hôte. Cependant, en cas de routage dynamique, ce ne sera peut être plus le chemin utilisé pour des envois ultérieurs vers ce même hôte. Elle permet ainsi de savoir à quel endroit bloque la transmission d’un paquet que l’on tente d’envoyer sans succès (malheureusement, ça arrive). Pour afficher ces routeurs, elle provoque une erreur d’acheminement sur chaque routeur par lequel passe le datagramme IP en agissant sur le champ TTL de ce dernier. En effet, traceroute commence par envoyer un datagramme UDP véhiculé par un datagramme IP avec un TTL positionné à 1. Le premier routeur rencontré détruit le datagramme et renvoie une erreur ICMP de TTL expiré. On obtient ainsi l’adresse du premier routeur de la route. traceroute envoie ensuite un datagramme UDP dans un datagramme IP avec un TTL à 2 pour connaître le second routeur, et ainsi de suite, jusqu’à atteindre la destination spécifiée (mais sur un port non attribué pour recevoir un message ICMP de port inaccessible). IUT Aix-Marseille - INFO Aix 19/3/2015 - C. Pain-Barre UE21 - M2102 : Architecture des r´eseaux Enonc´e du TP 4 14/48 Exercice 9 (traceroute sur le PC) i Sous Linux, la commande traceroute se trouve dans le répertoire /usr/sbin qui ne figure pas dans le PATH d’un utilisateur normal. . . Sur un terminal du PC, consulter le manuel en ligne Linux de traceroute en tapant : $ man traceroute et étudier ses options -n et -f. Sur ce même terminal, utiliser traceroute afin de déterminer les routes suivantes : 1. pour atteindre infodoc.aix.univ-amu.fr i Certainement à des fins de confidentialité, certains routeurs ne renvoient pas d’erreur ICMP. Cela se traduit dans traceroute par un timeout pour l’envoi et l’affichage d’une étoile * plutôt que de l’adresse (ou le nom) du routeur. Puisque, pour chaque routeur, traceroute fait 3 tentatives, il y aura alors 3 étoiles (3 timeout). traceroute est alors considérablement ralenti. Si, à partir d’un certain point, plusieurs routeurs de suite ne répondent pas, c’est probablement que les messages sont filtrés et qu’il n’y aura pas d’espoir d’en savoir davantage. On peut alors arrêter traceroute. 2. pour atteindre www.free.fr. Attention, ce peut être assez long ! 3. pour atteindre saphir.lidil.univ-mrs.fr en demandant d’afficher les adresses IP des routeurs plutôt que leurs noms. 4. pour atteindre www.nasa.gov 5. reprendre la question 2 en demandant à ce que les cinq premiers routeurs n’apparaissent pas (il faut agir sur le TTL du premier datagramme envoyé par traceroute) [Corrigé] i 2 Il existe des versions graphiques de traceroute, notamment xtraceroute (qui n’est pas installé sur nos stations) mais la localisation géographique des routeurs est loin d’être vraiment précise. . . Commandes réseau dans l’environnement Windows Cette section regroupe les équivalents Windows des commandes étudiées. Elle est constituée principalement d’exemples d’utilisation. - Les exemples d’exécution des commandes sont tapés sur une fenêtre terminal de Windows XP (émulation MSDOS), lancée via le menu Démarrer −→ Exécuter −→ cmd. C. Pain-Barre - 19/3/2015 IUT Aix-Marseille - INFO Aix 15/48 2.1 Enonc´e du TP 4 UE21 - M2102 : Architecture des r´eseaux ipconfig ipconfig permet de consulter la configuration IP, et d’obtenir des informations plus détaillées sur les interfaces et autres éléments de configuration. Elle permet de réaliser des opérations élémentaires DHCP comme le renouvellement d’une adresse ou sa résiliation. Exemple 4 • Obtenir de l’aide sur ipconfig : C:>ipconfig/? UTILISATION : ipconfig [/? | /all | /renew [carte] | /release [carte] | /flushdns | /displaydns | /registerdns | /showclassid carte | /setclassid carte [ID de classe] ] ... • Afficher les informations principales sur la configuration IP : C:\>ipconfig Configuration IP de Windows Carte Ethernet Connexion au réseau local: Suffixe DNS propre à la Adresse IP. . . . . . . Masque de sous-réseau . Passerelle par défaut . connexion . . . . . . . . . . . . . . . : : 10.0.2.15 : 255.255.255.0 : 10.0.2.2 • Afficher une synthèse des configurations réseau de l’hôte : C:\>ipconfig/all Configuration IP de Windows Nom de l’hôte . . . . . . . . . . : vb-xp-iut Suffixe DNS principal . . . . . . : Type de noud . . . . . . . . . . : Inconnu Routage IP activé . . . . . . . . : Non Proxy WINS activé . . . . . . . . : Non Carte Ethernet Connexion au réseau local: Suffixe DNS propre à la connexion : Description . . . . . . . . . . . : Carte AMD PCNET Family Ethernet PCI Adresse physique . . . . . . . . .: 08-00-27-71-76-54 DHCP activé. . . . . . . . . . . : Oui Configuration automatique activée . . . . : Oui Adresse IP. . . . . . . . . . . . : 10.0.2.15 IUT Aix-Marseille - INFO Aix 19/3/2015 - C. Pain-Barre UE21 - M2102 : Architecture des r´eseaux Enonc´e du TP 4 Masque de sous-réseau . . . . . . Passerelle par défaut . . . . . . Serveur DHCP. . . . . . . . . . . Serveurs DNS . . . . . . . . . . 16/48 255.255.255.0 10.0.2.2 10.0.2.2 212.27.40.240 212.27.40.241 Bail obtenu . . . . . . . . . . . : jeudi 12 avril 2012 14:33:28 Bail expirant . . . . . . . . . . : vendredi 13 avril 2012 14:33:28 - : : : : Sous Windows, les interfaces sont nommées comme ici "Connexion au réseau local". On voit aussi que la représentation d’une adresse Ethernet change sur Windows (08-00-27-71-76-54). • Utiliser ipconfig pour résilier une allocation DHCP (pour une interface configurée pour DHCP, voir netsh) : C:>ipconfig/release Configuration IP de Windows Carte Ethernet Connexion au réseau local: Suffixe DNS propre à la Adresse IP. . . . . . . Masque de sous-réseau . Passerelle par défaut . connexion . . . . . . . . . . . . . . . : : 0.0.0.0 : 0.0.0.0 : • et pour renouveler sa configuration par DHCP : C:>ipconfig/renew Configuration IP de Windows Carte Ethernet Connexion au réseau local: Suffixe DNS propre à la Adresse IP. . . . . . . Masque de sous-réseau . Passerelle par défaut . C. Pain-Barre - 19/3/2015 connexion . . . . . . . . . . . . . . . : : : : iut.univ-aix.fr 10.0.2.15 255.255.255.0 10.0.2.2 IUT Aix-Marseille - INFO Aix 17/48 2.2 Enonc´e du TP 4 UE21 - M2102 : Architecture des r´eseaux netsh La commande netsh regroupe un ensemble de modules permettant d’agir sur la configuration réseau d’un poste Windows. Pour configurer les paramètres IPv4 d’une interface réseau, il faut utiliser le module netsh interface ip. Il permet notamment d’affecter manuellement (statiquement) les paramètres IPv4 ou de configurer l’interface pour les obtenir par DHCP (dynamiquement). Exemple 5 • Obtenir de l’aide sur netsh interface ip : C:>netsh interface ip Les commandes suivantes sont disponibles : Commandes dans ce contexte : ? - Affiche une liste de commandes. add - Ajoute une entrée de configuration à une table. delete - Supprime une entrée de configuration d’une table. dump - Affiche un script de configuration. help - Affiche une liste de commandes. reset - Réinitialisez TCP/IP et les composants associés. set - Définit l’information de configuration. show - Affiche les informations. Pour consulter l’aide d’une commande, entrez la commande, suivie par un espace, et ensuite entrez ?. • Fixer statiquement l’adresse IPv4 10.0.2.100/24 pour l’interface Connexion au réseau local. Fixer aussi les paramètres (optionnels) Gateway et métrique de la route par défaut à 10.0.2.2 et 20 (le tout sur une seule ligne) : C:>netsh int ip set address "Connexion au réseau local" static 10.0.2.100 255.255.255.0 10.0.2.2 20 Ok. • Vérifications de la configuration : C:>ipconfig Configuration IP de Windows Carte Ethernet Connexion au réseau local: Suffixe DNS propre à la Adresse IP. . . . . . . Masque de sous-réseau . Passerelle par défaut . IUT Aix-Marseille - INFO Aix connexion . . . . . . . . . . . . . . . : : 10.0.2.100 : 255.255.255.0 : 10.0.2.2 19/3/2015 - C. Pain-Barre UE21 - M2102 : Architecture des r´eseaux Enonc´e du TP 4 18/48 C:>route print =========================================================================== Liste d’Interfaces 0x1 ........................... MS TCP Loopback interface 0x2 ...08 00 27 71 76 54 ...... Carte AMD PCNET Family Ethernet PCI - Miniport d’ordonnance =========================================================================== =========================================================================== Itinéraires actifs : Destination réseau Masque réseau Adr. passerelle Adr. interface Métrique 0.0.0.0 0.0.0.0 10.0.2.2 10.0.2.100 20 10.0.2.0 255.255.255.0 10.0.2.100 10.0.2.100 20 10.0.2.100 255.255.255.255 127.0.0.1 127.0.0.1 20 10.255.255.255 255.255.255.255 10.0.2.100 10.0.2.100 20 127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1 224.0.0.0 240.0.0.0 10.0.2.100 10.0.2.100 20 255.255.255.255 255.255.255.255 10.0.2.100 10.0.2.100 1 Passerelle par défaut : 10.0.2.2 =========================================================================== Itinéraires persistants : Aucun • Configurer la même interface pour obtenir les informations par DHCP (et abandonner la configuration statique) puis vérification : C:>netsh int ip set address "Connexion au réseau local" dhcp Ok. C:>ipconfig Configuration IP de Windows Carte Ethernet Connexion au réseau local: Suffixe DNS propre à la Adresse IP. . . . . . . Masque de sous-réseau . Passerelle par défaut . C. Pain-Barre - 19/3/2015 connexion . . . . . . . . . . . . . . . : : : : iut.univ-aix.fr 10.0.2.15 255.255.255.0 10.0.2.2 IUT Aix-Marseille - INFO Aix 19/48 2.3 Enonc´e du TP 4 UE21 - M2102 : Architecture des r´eseaux ping La commande ping sous Windows a les mêmes fonctionnalités que sous Unix, bien qu’elle n’admette pas tout à fait les mêmes options. Notamment, elle s’arrête par défaut après l’émission de 4 requêtes. Exemple 6 • Obtenir de l’aide sur ping : C:>ping/? Utilisation : ping [-t] [-a] [-n échos] [-l taille] [-f] [-i vie] [-v TypServ] [-r NbSauts] [-s NbSauts] [[-j ListeHôtes] | [-k ListeHôtes]] [-w Délai] NomCible Options : -t -a -n échos Envoie la requête ping sur l’hôte spécifié jusqu’à interruption. Entrez Ctrl-Attn pour afficher les statistiques et continuer, Ctrl-C pour arrêter. Recherche les noms d’hôte à partir des adresses. Nombre de requêtes d’écho à envoyer. • Tester l’accissibilité d’un hôte : C:>ping 139.124.187.4 Envoi d’une requête ’ping’ sur 139.124.187.4 avec 32 octets de données : Réponse Réponse Réponse Réponse de de de de 139.124.187.4 139.124.187.4 139.124.187.4 139.124.187.4 : : : : octets=32 octets=32 octets=32 octets=32 temps=58 temps=48 temps=57 temps=47 ms ms ms ms TTL=127 TTL=127 TTL=127 TTL=127 Statistiques Ping pour 139.124.187.4: Paquets : envoyés = 4, reçus = 4, perdus = 0 (perte 0%), Durée approximative des boucles en millisecondes : Minimum = 47ms, Maximum = 58ms, Moyenne = 52ms IUT Aix-Marseille - INFO Aix 19/3/2015 - C. Pain-Barre UE21 - M2102 : Architecture des r´eseaux 2.4 Enonc´e du TP 4 20/48 arp La commande arp sous Windows a les mêmes fonctionnalités que sous Unix. Exemple 7 • Obtenir de l’aide sur arp : C:\>arp/? Affiche et modifie les tables de traduction d’adresses IP en adresses physiques utilisées par le protocole de résolution d’adresses ARP. ARP -s inet_addr eth_addr [if_addr] ARP -d inet_addr [if_addr] ARP -a [inet_addr] [-N if_addr] -a Affiche les entrées ARP en cours en interrogeant les données en cours du protocole. Si inet_addr est spécifié, seules les adresses IP et physiques de l’ordinateur spécifié sont affichées. Si plus d’une interface réseau utilise ARP, les entrées de chaque table ARP sont affichées. ... Exemples : > arp -s 157.55.85.212 > arp -a 00-aa-00-62-c6-09 .... Ajoute une entrée statique. .... Affiche la table ARP. • Afficher le cache ARP : C:\>arp -a Interface : 10.0.2.15 --- 0x2 Adresse Internet Adresse physique 10.0.2.2 52-54-00-12-35-02 C. Pain-Barre - 19/3/2015 Type dynamique IUT Aix-Marseille - INFO Aix 21/48 2.5 Enonc´e du TP 4 UE21 - M2102 : Architecture des r´eseaux route Comme sous Unix, la commande route sous Windows permet d’afficher la table de routage et de la modifier. Cependant, on notera que les informations figurant dans les tables Windows sont sensiblement différentes que celles affichées sous Linux. Exemple 8 • Obtenir de l’aide sur route : C:>route Manipule les tables de routage du réseau. ROUTE [-f] [-p] [cmde [destin] [MASK MasqueRés] [passerelle] [METRIC coût] ... cmde destin MASK MasqueRés passerelle interface METRIC [IF interface] Spécifie une des quatre commandes suivantes : PRINT Affiche un itinéraire ADD Ajoute un itinéraire DELETE Supprime un itinéraire CHANGE Modifie un itinéraire existant Spécifie l’hôte destination. Si le mot clé MASK est présent, le paramètre qui le suit est interprété en tant que paramètre de masque réseau. Spécifie la valeur éventuelle du sous-masque réseau à associer avec cette entrée d’itinéraire. La valeur par défaut est : 255.255.255.255. Spécifie la passerelle. numéro d’interface pour l’itinéraire spécifié. Spécifie le coût métrique pour la destination ... Exemples : > route PRINT > route ADD 157.0.0.0 destination^ MASK 255.0.0.0 157.55.80.1 METRIC ^masque passerelle^ 3 IF 2 métrique^ ^ interface^ Si IF n’est pas fourni, la meilleure interface pour une passerelle donnée est recherchée. > route PRINT > route PRINT 157* .... N’imprime que les adresses commençant par 157* > route CHANGE 157.0.0.0 MASK 255.0.0.0 157.55.80.5 METRIC 2 IF 2 CHANGE est utilisé pour modifier la passerelle et/ou la métrique seulement . > route PRINT > route DELETE 157.0.0.0 IUT Aix-Marseille - INFO Aix 19/3/2015 - C. Pain-Barre UE21 - M2102 : Architecture des r´eseaux Enonc´e du TP 4 22/48 > route PRINT • Supposons que la configuration IP actuelle d’un hôte est la suivante : C:>ipconfig Configuration IP de Windows Carte Ethernet Connexion au réseau local: Suffixe DNS propre à la Adresse IP. . . . . . . Masque de sous-réseau . Passerelle par défaut . connexion . . . . . . . . . . . . . . . : : 10.0.2.15 : 255.255.255.0 : 10.0.2.2 • Étudions l’affichage de la table de routage : C:>route print =========================================================================== Liste d’Interfaces 0x1 ........................... MS TCP Loopback interface 0x2 ...08 00 27 71 76 54 ...... Carte AMD PCNET Family Ethernet PCI - Mini... =========================================================================== =========================================================================== Itinéraires actifs : Destination réseau Masque réseau Adr. passerelle Adr. interface Métrique 0.0.0.0 0.0.0.0 10.0.2.2 10.0.2.15 20 10.0.2.0 255.255.255.0 10.0.2.15 10.0.2.15 20 10.0.2.15 255.255.255.255 127.0.0.1 127.0.0.1 20 10.0.2.255 255.255.255.255 10.0.2.15 10.0.2.15 20 127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1 224.0.0.0 240.0.0.0 10.0.2.15 10.0.2.15 20 255.255.255.255 255.255.255.255 10.0.2.15 10.0.2.15 1 Passerelle par défaut : 10.0.2.2 =========================================================================== Itinéraires persistants : Aucun ê La première partie de la commande liste les interfaces réseau de l’hôte. Windows attribue un numéro à chaque interface. Ce numéro est requis pour l’ajout (ADD) et la modification (CHANGE) d’une route avec route. Dans cet exemple, il y a 2 interfaces : l’interface 1 (0x1) est l’interface loopback ; l’interface 2 (0x2) correspond à la carte réseau de l’hôte. Elle a pour adresse MAC 08-00-27-71-76-54 (selon l’écriture Windows). On pourra faire référence à une interface en utilisant son numéro en hexadécimal (en laissant le 0x) ou en décimal. Ensuite, route affiche la table de routage qui contient beaucoup plus de lignes que sous Linux (ou que sur un routeur CISCO) sans pour autant ajouter de fonctionnalité supplémentaire. Les routes importantes ont été mises en évidence en gras dans l’exemple : la 1re ligne correspond à la route par défaut qui passe par le routeur (passerelle) 10.0.2.2 ; C. Pain-Barre - 19/3/2015 IUT Aix-Marseille - INFO Aix 23/48 Enonc´e du TP 4 - UE21 - M2102 : Architecture des r´eseaux on peut remarquer que la colonne Adr. interface indique l’adresse IP de l’interface à utiliser pour la route. la 2e ligne correspond à la route directe vers le réseau local ; - on peut remarquer qu’au lieu de l’adresse 0.0.0.0 comme passerelle pour les destinations directement accessibles (comme sous Linux), Windows affiche l’adresse IP de l’hôte sur ce réseau. la 3e ligne correspond à l’adresse IP de l’hôte. Elle indique que si l’hôte doit discuter avec lui-même, il doit utiliser l’interface loopback ; la 4e ligne correspond à l’adresse de diffusion dirigée dans le réseau local ; la 5e ligne correspond à l’interface loopback et regroupe toutes les adresses commençant par 127 ; la 6e ligne correspond à une route pour les adresses de classe D (multidiffusion). Ce type d’adresse est aussi compris par Linux mais il ne les fait pas apparaître dans la table de routage ; la dernière route correspond à l’adresse de diffusion limitée. - On peut remarquer que Linux n’afficherait que les 2 premières routes tout en gérant les adresses formant les autres routes affichées par Windows. • Modification de la route par défaut pour passer par le routeur 10.0.2.1 via l’interface 2 : C:>route CHANGE 0.0.0.0 MASK 0.0.0.0 10.0.2.1 METRIC 2 IF 2 • Vérification de la modification : C:>route print =========================================================================== Liste d’Interfaces 0x1 ........................... MS TCP Loopback interface 0x2 ...08 00 27 71 76 54 ...... Carte AMD PCNET Family Ethernet PCI - Mini... =========================================================================== =========================================================================== Itinéraires actifs : Destination réseau Masque réseau Adr. passerelle Adr. interface Métrique 0.0.0.0 0.0.0.0 10.0.2.1 10.0.2.15 2 10.0.2.0 255.255.255.0 10.0.2.15 10.0.2.15 20 10.0.2.15 255.255.255.255 127.0.0.1 127.0.0.1 20 10.255.255.255 255.255.255.255 10.0.2.15 10.0.2.15 20 127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1 224.0.0.0 240.0.0.0 10.0.2.15 10.0.2.15 20 255.255.255.255 255.255.255.255 10.0.2.15 10.0.2.15 1 Passerelle par défaut : 10.0.2.1 =========================================================================== Itinéraires persistants : Aucun IUT Aix-Marseille - INFO Aix 19/3/2015 - C. Pain-Barre UE21 - M2102 : Architecture des r´eseaux 2.6 Enonc´e du TP 4 24/48 tracert La commande tracert offre la même fonctionnalité principale que traceroute sous Linux, mais admet un nombre réduit d’options. Exemple 9 • Obtenir de l’aide sur tracert : C:>tracert Utilisation : tracert [-d] [-h SautsMaxi] [-j ListeHôtes] [-w délai] NomCible Options : -d -h SautsMaxi -j ListeHôtes -w délai Ne pas convertir les adresses en noms d’hôtes. Nombre maximum de sauts pour rechercher la cible. Itinéraire source libre parmi la liste des hôtes. Attente d’un délai en millisecondes pour chaque réponse. • Tracer la route vers www.univmed.fr en désactivant la résolution inverse : C:>tracert -d www.univmed.fr Détermination de l’itinéraire vers mozart.pg.univmed.fr [139.124.196.119] avec un maximum de 30 sauts : 1 2 3 4 5 6 7 <1 * <1 5 2 3 3 ms ms ms ms ms ms 1 * <1 1 1 2 2 ms ms ms ms ms ms <1 * <1 2 1 2 1 ms ms ms ms ms ms 10.0.2.2 Délai d’attente de la demande dépassé. 193.50.131.177 192.168.100.33 193.50.131.18 193.50.131.25 139.124.196.119 Itinéraire déterminé. • Tracer la route vers www.google.fr en limitant à 20 sauts : C:>tracert -h 20 www.google.fr Détermination de l’itinéraire vers www-cctld.l.google.com [74.125.230.216] avec un maximum de 20 sauts : 1 2 3 4 5 6 <1 * * 2 2 37 C. Pain-Barre - ms ms ms ms 19/3/2015 <1 * * <1 4 2 ms ms ms ms <1 * * <1 2 2 ms ms ms ms 10.0.2.2 Délai d’attente de la demande dépassé. Délai d’attente de la demande dépassé. 193.50.131.225 192.168.100.33 192.168.100.2 IUT Aix-Marseille - INFO Aix 25/48 Enonc´e du TP 4 7 8 9 10 11 12 13 14 15 15 12 11 14 21 10 23 17 8 ms ms ms ms ms ms ms ms ms 43 9 10 10 13 13 14 12 18 ms ms ms ms ms ms ms ms ms 50 14 11 19 10 11 17 13 12 ms ms ms ms ms ms ms ms ms UE21 - M2102 : Architecture des r´eseaux vl10-gi8-2-marseille1-rtr-021.noc.renater.fr [193.51 te1-1-marseille2-rtr-021.noc.renater.fr [193.51.179. 193.51.179.182 te0-0-0-1-paris2-rtr-001.noc.renater.fr [193.51.189. te1-1-paris2-rtr-021.noc.renater.fr [193.51.189.9] 193.51.182.197 72.14.238.228 209.85.242.49 par08s09-in-f24.1e100.net [74.125.230.216] Itinéraire déterminé. Exercice 10 (Configuration de la machine virtuelle Windows XP) Dans cet exercice, nous allons configurer la machine virtuelle Windows XP qui est représentée dans Marionnet par l’équipement B1 : 1. Se loger sur la VM Windows XP avec l’utilisateur proposé (sans mot de passe et avec les droits d’Administrateur) 2. Ouvrir une invite de commandes MS-DOS via le menu Démarrer −→ Exécuter −→ cmd ; 3. Utiliser la (ou les) commande(s) appropriée(s) pour configurer cette VM dans le réseau de m1 et m2, avec l’adresse 10.0.2.100, sans omettre le masque et le routeur par défaut (utiliser 20 comme métrique) ; 4. Utiliser les commandes appropriées pour afficher la configuration IP et la table de routage. Remarquer que la table sous Windows est assez différente de sous Linux ; 5. Tester la connectivité de cette VM avec m2 (10.0.2.10), puis avec le routeur 10.0.2.2. Tout devrait fonctionner sinon revoir la configuration ; 6. Afficher l’état du cache ARP de cette VM. Il devrait y avoir les adresses MAC de m2 et du routeur ; 7. Tester la connectivité de cette VM avec 139.124.187.15. Cela devrait fonctionner. [Corrigé] 3 Synthèse de l’utilisation des commandes réseau Exercice 11 (Déduction de la topologie) - Cet exercice est à faire chez soi et à rendre à l’enseignant ! On exécute des commandes sur trois machines A, B et C (stations de travail ou routeurs) d’un ou plusieurs réseaux physiques, dont voici les résultats : Machine A : (sous Windows) IUT Aix-Marseille - INFO Aix 19/3/2015 - C. Pain-Barre UE21 - M2102 : Architecture des r´eseaux Enonc´e du TP 4 26/48 C:>route print =========================================================================== Liste d’Interfaces 0x1 ........................... MS TCP Loopback interface 0x2 ...00 07 e9 83 0f 6b ...... Intel(R) PRO/100 VE Network Connection Miniport d’ordonnancement de paquets =========================================================================== =========================================================================== Itinéraires actifs : Destination réseau Masque réseau Adr. passerelle Adr. interface Métrique 0.0.0.0 0.0.0.0 130.26.144.245 130.26.148.10 20 127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1 130.26.144.0 255.255.240.0 130.26.148.10 130.26.148.10 20 130.26.64.0 255.255.240.0 130.26.149.20 130.26.148.10 20 130.26.80.0 255.255.240.0 130.26.149.20 130.26.148.10 20 130.26.148.10 255.255.255.255 127.0.0.1 127.0.0.1 20 130.26.159.255 255.255.255.255 130.26.148.10 130.26.148.10 20 224.0.0.0 240.0.0.0 130.26.148.10 130.26.148.10 20 255.255.255.255 255.255.255.255 130.26.148.10 130.26.148.10 1 Passerelle par défaut : 130.26.144.245 =========================================================================== Itinéraires persistants : Aucun C:>tracert 130.26.80.200 Détermination de l’itinéraire vers 130.26.80.200 avec un maximum de 30 sauts : 1 <1 ms <1 ms <1 ms 130.26.149.20 2 1 ms 1 ms 1 ms 130.26.68.250 3 1 ms 1 ms 1 ms 130.26.80.200 Itinéraire déterminé. C:>ping 130.26.64.1 Envoi d’une requête ’ping’ sur 130.26.64.1 avec 32 octets de données : Réponse de 130.26.64.1 : octets=32 temps<1ms TTL=64 Réponse de 130.26.64.1 : octets=32 temps<1ms TTL=64 Réponse de 130.26.64.1 : octets=32 temps<1ms TTL=64 Réponse de 130.26.64.1 : octets=32 temps<1ms TTL=64 Statistiques Ping pour 130.26.64.1: Paquets : envoyés = 4, reçus = 4, perdus = 0 (perte 0%), Durée approximative des boucles en millisecondes : Minimum = 0ms, Maximum = 0ms, Moyenne = 0ms Machine B : $ ifconfig -a eth0 Lien encap:Ethernet HWaddr 00:90:27:72:3B:E5 inet adr:130.26.149.20 Bcast:130.26.159.255 Masque:255.255.240.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 Paquets Reçus:481149199 erreurs:0 jetés:0 débordements:0 trames:0 Paquets transmis:501617823 erreurs:0 jetés:0 débordements:0 carrier:0 C. Pain-Barre - 19/3/2015 IUT Aix-Marseille - INFO Aix 27/48 Enonc´e du TP 4 UE21 - M2102 : Architecture des r´eseaux collisions:0 lg file transmission:100 Interruption:19 Adresse de base:0x4000 eth1 Lien encap:Ethernet HWaddr 00:80:55:72:34:6E inet adr:130.26.78.20 Bcast:130.26.79.255 Masque:255.255.240.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 Paquets Reçus:4899 erreurs:0 jetés:0 débordements:0 trames:0 Paquets transmis:5023 erreurs:0 jetés:0 débordements:0 carrier:0 collisions:0 lg file transmission:100 Interruption:19 Adresse de base:0x4000 lo Lien encap:Boucle locale inet adr:127.0.0.1 Masque:255.0.0.0 UP LOOPBACK RUNNING MTU:3924 Metric:1 Paquets Reçus:59841291 erreurs:0 jetés:0 débordements:0 trames:0 Paquets transmis:59841291 erreurs:0 jetés:0 débordements:0 carrier:0 collisions:0 lg file transmission:0 $ route -n Table de routage IP du noyau Destination Passerelle 130.26.144.0 0.0.0.0 130.26.64.0 0.0.0.0 130.26.80.0 130.26.68.250 127.0.0.0 0.0.0.0 0.0.0.0 130.26.144.245 Genmask 255.255.240.0 255.255.240.0 255.255.240.0 255.0.0.0 0.0.0.0 Indic U U UG U UG Metric 0 0 0 0 0 Ref 0 0 0 0 0 Use 0 0 0 0 0 Iface eth0 eth1 eth1 lo eth0 Machine C : $ ifconfig eth0 Lien encap:Ethernet HWaddr 00:0F:1F:10:11:12 inet adr:130.26.80.200 Bcast:130.26.95.255 Masque:255.255.240.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 Paquets Reçus:12345 erreurs:0 jetés:0 débordements:0 trames:0 Paquets transmis:6543 erreurs:0 jetés:0 débordements:0 carrier:0 collisions:0 lg file transmission:100 Interruption:19 Adresse de base:0x4000 lo Lien encap:Boucle locale inet adr:127.0.0.1 Masque:255.0.0.0 UP LOOPBACK RUNNING MTU:3924 Metric:1 Paquets Reçus:123456 erreurs:0 jetés:0 débordements:0 trames:0 Paquets transmis:123456 erreurs:0 jetés:0 débordements:0 carrier:0 collisions:0 lg file transmission:0 $ route -n Table de routage IP du noyau Destination Passerelle Genmask Indic Metric Ref Use Iface 130.26.80.0 0.0.0.0 255.255.240.0 U 0 0 0 eth0 127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo 0.0.0.0 130.26.86.110 0.0.0.0 UG 0 0 0 eth0 $ traceroute 130.26.64.1 traceroute to 130.26.64.1 (130.26.64.1), 30 hops max, 40 byte packets IUT Aix-Marseille - INFO Aix 19/3/2015 - C. Pain-Barre UE21 - M2102 : Architecture des r´eseaux 1 2 Enonc´e du TP 4 28/48 130.26.86.110 (130.26.86.110) 0.656 ms 0.986 ms 1.387 ms 130.26.64.1 (130.26.64.1) 1.847 ms 2.572 ms 3.298 ms Travail à faire : Faire le schéma de cette interconnexion de réseaux en précisant tous les équipements (stations et routeurs) déductibles de ces commandes, les interfaces, les adresses IP attribuées à ces interfaces, les noms de machines, si possible leurs OS, ainsi que les adresses réseaux. Le cas échéant, faire ressortir le routeur menant à Internet. i Afin de vous aider, vous pouvez utiliser la table de conversion décimal-binaire de toutes les valeurs possibles sur un octet disponible dans le fichier conversion_decimal_binaire.pdf (lien sur le site). [Corrigé] 4 Noms de stations et de domaine Les adresses IP ne sont pas forcément très lisibles et sont difficiles à retenir. C’est pourquoi, il est possible d’associer à une station, un ensemble de noms qui sont plus faciles à retenir. Cette association peut être officieuse ou officielle. Si elle est officieuse, elle ne sera reconnue que par les stations qui ont été configurées pour cela. C’est une configuration locale. Si elle est officielle, elle sera reconnue par toute station pouvant faire appel à un serveur de noms (normalement, toutes les machines connectées à Internet). Mais cela nécessite une déclaration au DNS (Domain Name Service). Les configurations officielle et officieuse diffèrent quelque peu dans la flexibilité du nommage. Si officieusement, on peut se laisser aller à quelques fantaisies, il n’en est pas de même officiellement. 4.1 4.1.1 Noms officieux Sous Unix Les noms officieux sont simplement renseignés sous Unix dans le fichier /etc/hosts pour les noms de stations et dans le fichier /etc/networks pour les noms de réseaux (qui ont peu d’intérêt). Ce sont des fichiers texte, constitués de lignes commençant par une adresse IP suivie d’un ou plusieurs noms qui lui sont associés. Toutes les commandes réseaux consultent 1 /etc/hosts et remplacent lorsqu’il y a lieu les noms qui leur sont passés en arguments par les adresses correspondantes et/ou affichent les noms plutôt que les adresses IP dans leurs sorties. Le fichier /etc/networks est plus folklorique et est utilisé par peu de commandes, dont route et netstat. Ces fichiers constituent une configuration locale : les noms qui y sont déclarés ne sont connus que de la station qui les possède. Lorsque le DNS n’existait pas encore, /etc/hosts était la seule façon d’utiliser un nom d’hôte plutôt que son adresse. i En réalité, à cette époque les associations (adresse IP, nom d’hôte) étaient centralisées par le NIC (Network Information Center) dans un fichier texte nommé HOSTS.TXT qui était régulièrement téléchargé avec FTP par toutes les stations d’Internet. Le fichier était donc officiel mais pouvait être complété localement avec des informations officieuses. 1. Nous verrons dans la section 4.2.2 que ce comportement est configurable. C. Pain-Barre - 19/3/2015 IUT Aix-Marseille - INFO Aix 29/48 Enonc´e du TP 4 UE21 - M2102 : Architecture des r´eseaux L’administrateur d’une station peut les modifier avec un simple éditeur de texte et ajouter des noms officieux (locaux) pour n’importe quel hôte ou réseau. i Parfois, pour empêcher l’accès non souhaité vers un site, il suffit d’ajouter dans /etc/hosts le nom du site et de l’associer à l’adresse 127.0.0.1, c’est à dire à l’interface loopback. Ainsi, toute tentative de dialogue avec ce site sera impossible puisque "dirigée" vers l’interface loopback qui est locale (aucun datagramme à destination de cette adresse n’est transmis sur le réseau). Exercice 12 (noms officieux sur allegro) 1. Depuis un terminal sur le PC, se connecter sur allegro par ssh, en tapant ssh etxxxx@allegro où etxxxx est votre nom d’utilisateur. La suite de l’exercice se passe sur allegro ; 2. Quels sont les noms d’hôtes officieusement reconnus par allegro ? Pour le savoir, consulter simplement le fichier /etc/hosts, où le caractère # marque le début d’un commentaire qui occupe le reste de la ligne. 3. Exécuter : (a) ping buvette et remarquer que ping remplace le nom par l’adresse correspondante (b) ping www.facebook.fr et remarquer que ce n’est pas la véritable adresse de ce site qui est utilisée mais 127.0.0.1 4. Quels sont les noms de réseaux officieusement reconnus par allegro ? Pour le savoir, consulter /etc/networks. S’il n’existe pas, c’est qu’il n’y en a pas. S’il y en a, ils ne sont utilisés qu’à de rares occasions, pour un affichage plus agréable notamment. [Corrigé] Exercice 13 (noms officieux sur m1) Nous allons poursuivre notre travail sur les machines virtuelles de Marionnet, dont les configurations devraient correspondre à la figure 2. La machine virtuelle m1 n’est pas (encore) configurée au niveau (client) DNS. On ne peut donc pas encore utiliser des noms officiels de machines. Pour le moment, nous allons procéder à une configuration locale. Depuis m1 : 1. Taper ping -c 2 allegro. Cela devrait échouer car le nom allegro est inconnu. 2. Essayer avec ping -c 2 allegro.aix.univ-amu.fr. On ne devrait pas avoir plus de succès. 3. Éditer le fichier /etc/hosts avec vi (si, si !) et ajouter une ligne pour associer les noms allegro et allegro.aix.univ-amu.fr à l’adresse 139.124.181.131 puis sauver le fichier en quittant 4. Retenter les ping précédents. Cette fois cela doit fonctionner car la résolution locale traduit les noms en l’adresse 139.124.181.131 [Corrigé] IUT Aix-Marseille - INFO Aix 19/3/2015 - C. Pain-Barre UE21 - M2102 : Architecture des r´eseaux Enonc´e du TP 4 30/48 F IGURE 2 – Environnement de travail dans Marionnet 4.1.2 Sous Windows Windows a adopté l’utilisation de noms officieux à la manière d’Unix, à tel point que les fichiers utilisés portent le même nom. Ces fichiers sont C:\WINDOWS\system32\drivers\etc\hosts (ou sur Windows 2000, C:\WINNT\system32\drivers\etc\hosts) et C:\WINDOWS\system32\drivers\etc\networks (ou sur Windows 2000, C:\WINNT\system32\drivers\etc\networks). Exemple 10 Sur la ligne de commande, on peut faire afficher ces fichiers en utilisant la commande type (sorte de cat). Sous Windows XP, cela donne : C:>type c:\windows\system32\drivers\etc\hosts # Copyright (c) 1993-1999 Microsoft Corp. # # Ceci est un exemple de fichier HOSTS utilisÚ par Microsoft TCP/IP # pour Windows. # # Ce fichier contient les correspondances des adresses IP aux noms d’hôtes. # Chaque entrÚe doit Ûtre sur une ligne propre. L’adresse IP doit être placée # dans la première colonne, suivie par le nom d’hôte correspondant. L’adresse # IP et le nom d’hôte doivent être séparés par au moins un espace. # # De plus, des commentaires (tels que celui-ci) peuvent être insérés sur des # lignes propres ou après le nom d’ordinateur. Ils sont indiqués par le # symbole ’#’. C. Pain-Barre - 19/3/2015 IUT Aix-Marseille - INFO Aix 31/48 Enonc´e du TP 4 # # Par exemple : # # 102.54.94.97 # 38.25.63.10 127.0.0.1 rhino.acme.com x.acme.com UE21 - M2102 : Architecture des r´eseaux # serveur source # hôte client x localhost C:>type c:\windows\system32\drivers\etc\networks # Copyright (c) 1993-1999 Microsoft Corp. # # Ce fichier contient les correspondances des noms et des numéros de réseau # pour les réseaux locaux. Les numéros de réseau sont reconnus en forme # décimale séparée par des points. # # Format: # # <nom réseau> <numéro réseau> [alias...] [#<commentaires>] # # Par exemple: # # loopback 127 # campus 284.122.107 # londres 284.122.108 loopback i 4.2 127 Ces fichiers sont modifiables avec un simple éditeur de texte comme bloc-notes (notepad). Il suffit de remplacer type par notepad dans les exemples précédents pour les éditer. Noms officiels : utilisation et configuration du client DNS Le format du nom officiel d’un hôte ressemble à hˆote.domaine. Dans cette écriture, domaine ne correspond pas forcément à un réseau. C’est en fait un nom de domaine qui est géré par une organisation. Elle est chargée de mettre à disposition un serveur de noms qui doit répondre aux requêtes provenant du réseau et concernant des caractéristiques de ce domaine : adresse IP d’un hôte de ce domaine, adresse IP du serveur de mail de ce domaine, adresse électronique du responsable de ce domaine. . . Le nom d’un domaine est composé de chaînes de caractères, appelées labels, séparées par des points. Par exemple, aix.univ-amu.fr est le domaine de certaines machines de l’IUT. Le nom officiel —ou nom complètement qualifié (FQDN pour Fully Qualified Domain Name— de allegro est allegro.aix.univ-amu.fr. (avec un point à la fin). 4.2.1 Commande hostname Les noms officiels (ou officieux) affectés à un hôte sont consultables avec la commande hostname sous Linux et Windows. IUT Aix-Marseille - INFO Aix 19/3/2015 - C. Pain-Barre UE21 - M2102 : Architecture des r´eseaux - Enonc´e du TP 4 32/48 Sous Linux, la commande hostname se trouve dans le répertoire /bin Exercice 14 (hostname sur allegro) Sur allegro, consulter le manuel en ligne de hostname en tapant : $ man hostname et étudier ses options -f, -s et -d. Toujours sur allegro, utiliser hostname pour afficher : 1. le nom complet d’allegro 2. le nom court d’allegro 3. le nom de domaine d’allegro [Corrigé] Commande hostname sur Windows Sur Windows, hostname ne reconnaît pas d’option. On ne peut qu’afficher le nom de l’hôte avec cette commande. Exemple 11 C:>hostname vb-xp-iut 4.2.2 Résolution de nom sous Unix et le fichier nsswitch.conf Sous Unix, lorsqu’un nom d’hôte est utilisé, les commandes réseau utilisent généralement d’abord le fichier /etc/hosts avant d’effectuer une requête DNS. D’autres méthodes pour "résoudre" des noms d’hôtes peuvent être aussi utilisées (noms netbios ou autres systèmes de nommage). C’est le fichier /etc/nsswitch.conf qui indique dans quel ordre la résolution doit être faite. i Le fichier /etc/nsswitch.conf provient de Sun Microsystems et de son système Solaris 2 et veut dire "aiguilleur de service de nom" (name service switch). Il a été adopté par la majorité des systèmes Unix, il y a déjà un moment. Il ne sert pas qu’à la résolution de noms, car de nombreuses autres ressources du système peuvent être décentralisées (utilisateurs et mots de passe, groupes d’utilisateurs, alias de messagerie, etc.). Pour chaque ressource, /etc/nsswitch.conf contient une ligne qui indique comment la rechercher, par ordre de méthode de recherche. Pour une ressource donnée, la ligne a la simple syntaxe suivante : ressource: { service } C. Pain-Barre - 19/3/2015 IUT Aix-Marseille - INFO Aix 33/48 Enonc´e du TP 4 UE21 - M2102 : Architecture des r´eseaux où service est le service à utiliser. Lorsqu’il y a plusieurs services, ils sont consultés de gauche à droite jusqu’à trouver une correspondance. Parmi les services possibles il y a : • files : rechercher dans les fichiers locaux. Le(s) fichier(s) à consulter dépend(ent) de la ressource (/etc/hosts pour un nom d’hôte, /etc/passwd pour un utilisateur, etc.) • dns : rechercher par le service DNS • nis : rechercher par le service NIS (de Sun Microsystems), appelé aussi pages-jaunes (yellow pages) • ldap : rechercher dans un annuaire par le protocole LDAP • winbind : rechercher par un serveur Windows (informations utilisateur/groupe, authentification) • wins : rechercher par le service de nommage Windows • etc. - La ressource qui concerne les noms d’hôtes est hosts. En principe, pour la résolution de noms d’hôtes, c’est le fichier local /etc/hosts qui est préféré avant tout autre service (notamment le DNS). Autrement dit, la résolution d’un nom ne se fera pas par le DNS si il figure dans /etc/hosts. Exemple 12 Sur la machine virtuelle m1, le fichier /etc/nsswitch.conf contient : passwd: group: shadow: compat compat compat hosts: networks: files dns files protocols: services: ethers: rpc: db db db db netgroup: nis ê files files files files la ligne mise en gras indique que pour la résolution de noms (hosts), il faut d’abord utiliser le fichier /etc/hosts (files) et si le nom n’y figure pas, utiliser le DNS (dns). Exercice 15 (consultation de /etc/nsswitch.conf sur allegro) Consulter le fichier /etc/nsswitch.conf de allegro pour savoir comment celui-ci procède pour la résolution de noms d’hôtes. i Pour en savoir plus sur le fichier nsswitch.conf, consulter le manuel de ce fichier en tapant : $ man nsswitch.conf [Corrigé] IUT Aix-Marseille - INFO Aix 19/3/2015 - C. Pain-Barre UE21 - M2102 : Architecture des r´eseaux 4.2.3 Enonc´e du TP 4 34/48 Configuration du client (solveur) DNS Sous Unix, afin d’interroger le DNS pour reconnaître les noms officiels de toutes les stations déclarées, les solveurs de noms (clients DNS) se basent sur le contenu du fichier /etc/resolv.conf, qu’il faut renseigner. Ce fichier comprend un certain nombre de paramètres indiqués par des mots clés suivis d’informations. Les paramètres principaux sont : • domain domaine-local pour préciser le domaine de la machine. La recherche d’un nom court d’hôte (i.e. qui ne comporte pas de .) se fera en priorité dans ce domaine. Si ce paramètre n’existe pas, il sera déduit du résultat de hostname ; • search domaine { domaine } pour préciser une liste ordonnée de domaines dans lesquels la recherche d’un nom court d’hôte se fera. Ce paramètre est souvent utilisé à la place de domain en particulier quand la station n’appartient pas à un domaine particulier ; • nameserver adresse-ip pour indiquer un serveur de noms DNS à contacter pour la résolution. Plusieurs lignes nameserver peuvent être indiquées. Leur ordre d’apparition détermine la priorité du serveur : la première désigne le serveur préféré. Celui qui suit n’est utilisé que si le premier ne répond pas, etc. Il est conseillé de renseigner au moins 2 serveurs de noms, voire 3. Pour effectuer une requête DNS, comme résoudre un nom en adresse IPv4, le solveur contacte le serveur de noms afin de lui demander l’adresse IP associée au nom recherché. Si le serveur ne connaît pas cette association, il demandera à un autre serveur ce renseignement. C’est le mode standard de recherche récursive. Exercice 16 (consultation de /etc/resolv.conf du PC) Sur un terminal de votre PC, consulter le fichier /etc/resolv.conf, où le caractère # commence un commentaire. Puis, répondre aux questions suivantes : 1. Dans quel(s) domaine(s) par défaut les noms courts d’hôtes sont-ils recherchés par votre PC ? 2. Quels sont les serveurs de noms utilisés par votre PC ? i Pour en savoir plus sur le fichier resolv.conf, consulter le manuel de ce fichier en tapant : $ man resolv.conf [Corrigé] Exercice 17 (configuration du client DNS de m1) i Bien que désormais la modification du fichier /etc/resolv.conf devrait passer par des outils appropriés, tels resolvconf, nous allons modifier manuellement celui de m1. Sur la machine virtuelle m1 : 1. Éditer le fichier /etc/hosts avec vi et supprimer les informations concernant allegro C. Pain-Barre - 19/3/2015 IUT Aix-Marseille - INFO Aix 35/48 Enonc´e du TP 4 UE21 - M2102 : Architecture des r´eseaux 2. Vérifier que ping -c 2 allegro provoque une erreur 3. Éditer le fichier /etc/resolv.conf avec vi et saisir les informations suivantes : nameserver 139.124.182.2 nameserver 139.124.1.2 nameserver 147.94.113.8 search aix.univ-amu.fr univ-amu.fr puis sauver et quitter 4. Si la configuration est correcte, la commande ping -c 2 allegro devrait réussir, sinon revoir le contenu du fichier. [Corrigé] 4.2.4 Interrogation du DNS avec host, dig et nslookup Certaines commandes permettent d’interroger des serveurs DNS. Il s’agit notamment de host, dig et de nslookup. Ces commandes ne sont pas toujours disponibles sur Windows. Elles admettent un bon nombre de paramétrages, notamment le serveur de nom à utiliser pour l’interrogation. Historiquement, nslookup était la plus utilisée. Elle a surtout l’avantage d’être interactive. La commande host host est une commande non interactive qui s’utilise en ligne de commandes. - Sous Linux host se trouve dans le répertoire /usr/bin. Son synopsis le plus basique est le suivant. Synopsis host [-r] [-t type] nom [serveur ] où : • nom est le nom que l’on veut résoudre. Ce peut être une adresse IP, dans ce cas, host effectue une résolution inverse • serveur est le serveur de noms qui sera utilisé pour la résolution. S’il n’est pas spécifié, le serveur utilisé est celui par défaut (le premier nameserver de /etc/resolv.conf) • -r désactive la recherche récursive. La recherche récursive est activée par défaut et demande au serveur de noms, si celui-ci ne sait pas résoudre le nom (pour le type de question posée), de contacter un serveur adéquat qui saura le faire (ou qui contactera lui-même un autre serveur, etc.), et d’afficher la réponse • -t type précise le type d’information (voir encadré ci-dessous) que l’on souhaite obtenir, correspondant à un ou plusieurs enregistrements DNS. IUT Aix-Marseille - INFO Aix 19/3/2015 - C. Pain-Barre UE21 - M2102 : Architecture des r´eseaux - Enonc´e du TP 4 36/48 Au cours de ce TP, les informations qui nous intéressent sont demandées par les types suivants (la casse importe peu) : • A : adresse IPv4 correspondant à nom (il existe aussi le type AAAA pour les adresses IPv6) • NS : (Name Server) serveur de domaines ayant autorité sur le domaine nom. Il faut dans ce cas que nom soit un domaine (pas un hôte) • MX : (Mail eXchanger) serveur SMTP du domaine nom. Il faut dans ce cas que nom soit un domaine (pas un hôte) • PTR : enregistrement servant à la résolution inverse (d’adresse IPv4 en nom d’hôte) • ANY : tout type d’information disponible pour ce nom Exemple 13 (a) Obtenir l’adresse IPv4 d’allegro.aix.univ-amu.fr : $ host -t a allegro.aix.univ-amu.fr allegro.aix.univ-amu.fr has address 139.124.181.131 (b) Demander la résolution inverse requiert de poser la question en présentant l’adresse 139.124.181.131 dans le domaine in-addr.arpa : $ host -t ptr 131.181.124.139.in-addr.arpa 131.181.124.139.in-addr.arpa domain name pointer allegro.aix.univ-amu.fr. (c) Obtenir le(s) serveur(s) de noms du domaine univmed.fr : $ host -t ns univmed.fr univmed.fr name server ns1.univmed.fr. univmed.fr name server cnudns.cines.fr. univmed.fr name server dns.irisa.fr. univmed.fr name server ns2.univmed.fr. (d) Obtenir le(s) serveur(s) SMTP en charge de la réception des courriels envoyés aux utilisateurs du domaine hotmail.fr (adresses électroniques de type toto@hotmail.fr) : $ host -t mx hotmail.fr hotmail.fr mail is handled hotmail.fr mail is handled hotmail.fr mail is handled hotmail.fr mail is handled by by by by 5 5 5 5 mx1.hotmail.com. mx2.hotmail.com. mx3.hotmail.com. mx4.hotmail.com. (e) Obtenir tout type d’information disponible sur le domaine univmed.fr : $ host -t any univmed.fr univmed.fr mail is handled by 0 mx1.univmed.fr. univmed.fr mail is handled by 0 mx0.univmed.fr. univmed.fr name server ns1.univmed.fr. univmed.fr name server ns2.univmed.fr. univmed.fr name server cnudns.cines.fr. univmed.fr name server dns.irisa.fr. C. Pain-Barre - 19/3/2015 IUT Aix-Marseille - INFO Aix 37/48 Enonc´e du TP 4 UE21 - M2102 : Architecture des r´eseaux Exercice 18 (interrogations DNS avec host) Sur un terminal de votre PC, afficher le manuel en ligne de host en tapant : $ man host afin de s’y référer éventuellement. Depuis un autre terminal du PC, utiliser host pour : 1. Obtenir l’adresse IPv4 de l’hôte www.lsis.org 2. Obtenir le(s) serveur(s) de noms du domaine lsis.org puis l’adresse IPv4 de l’un de ces serveurs si elle n’apparaît pas [Corrigé] La commande dig dig est une commande non interactive qui s’utilise en ligne de commandes. - Sous Linux dig se trouve dans le répertoire /usr/bin. Son synopsis le plus basique est le suivant. Synopsis dig [@serveur ] nom type où : • serveur est le serveur de noms à contacter • nom est le nom que l’on veut résoudre • type est le type de question posée (comme pour host) Exemple 14 Les interrogations de l’exemple précédent sont réalisées avec dig de la manière suivante : (a) IPv4 d’allegro.aix.univ-amu.fr : $ dig allegro.aix.univ-amu.fr a (b) Résolution inverse de 139.124.181.131 : $ dig 131.181.124.139.in-addr.arpa ptr (c) Serveur(s) de noms du domaine univmed.fr : $ dig univmed.fr ns (d) Serveur(s) SMTP du domaine hotmail.fr : $ dig hotmail.fr mx (e) Tout type d’information sur univmed.fr : $ dig univmed.fr any IUT Aix-Marseille - INFO Aix 19/3/2015 - C. Pain-Barre UE21 - M2102 : Architecture des r´eseaux Enonc´e du TP 4 38/48 Exercice 19 (interrogations DNS avec dig) Sur un terminal de votre PC, afficher le manuel en ligne de dig en tapant : $ man dig afin de s’y référer éventuellement. Depuis un autre terminal du PC, utiliser dig pour : 1. Obtenir le(s) serveur(s) SMTP en charge du domaine univ-amu.fr 2. Obtenir tout type d’information disponible sur www.enseignementsup-recherche.gouv.fr [Corrigé] La commande nslookup À la différence des deux commandes précédentes, nslookup est une commande interactive qui offre un invite de commande (prompt). - Sous Linux nslookup se trouve dans le répertoire /usr/bin. Son synopsis le plus basique est le suivant. Synopsis nslookup En l’exécutant, un prompt s’affiche et l’on peut paramétrer le solveur de nom avec les commandes suivantes : • set [no]rec pour désactiver (norec) ou activer (rec) le mode récursif. Il est activé par défaut • server serveur pour indiquer que l’on veut interroger le serveur de noms serveur. Sans cette commande, le serveur utilisé est celui par défaut de l’ordinateur (voir /etc/resolv.conf) • set q=type pour préciser le type de question posée. Le type par défaut est A • nom provoque l’émission d’une requête DNS au serveur choisi précédemment. Elle demande les informations correspondant au type choisi et concernant nom. Si nom ne se termine pas par un point, il n’est pas complètement qualifié (FQDN) et si la recherche échoue pour ce nom, des requêtes supplémentaires seront émises en ajoutant à nom les domaines de recherche de la machine (lignes domain et search dans /etc/resolv.conf) jusqu’à obtenir une réponse • exit pour quitter Exercice 20 (interrogations DNS avec nslookup) Sur un terminal de votre PC, afficher le manuel en ligne de nslookup en tapant : $ man nslookup afin de s’y référer éventuellement. Depuis un autre terminal du PC, utiliser nslookup pour : 1. Obtenir les serveurs SMTP en charge du domaine greenpeace.org 2. Obtenir l’adresse IPv4 de www.wwf.fr C. Pain-Barre - 19/3/2015 IUT Aix-Marseille - INFO Aix 39/48 Enonc´e du TP 4 UE21 - M2102 : Architecture des r´eseaux 3. Demander une résolution inverse pour obtenir le nom officiel de l’hôte d’adresse 139.124.182.99 [Corrigé] Exercice 21 (interrogations DNS itératives avec nslookup) Toutes les interrogations DNS que nous avons faites jusqu’à présent ont sollicité notre serveur de noms en mode récursif : nous l’avons à chaque fois chargé de trouver la réponse que nous lui posions. Nous allons maintenant chercher nous même ces réponses en interrogeant directement des serveurs de noms en mode itératif. Pour cela, on va désactiver le mode récursif dans nslookup (par set norec). Ainsi, lorsqu’on interrogera un serveur, s’il ne connaît pas la réponse il ne tentera pas de l’obtenir auprès d’un autre serveur. Il répondra simplement qu’il ne connaît pas la réponse mais nous indiquera éventuellement un ou plusieurs serveurs de noms qui pourraient nous aider. On interrogera alors un de ces serveurs et on continuera ce processus jusqu’à interroger un serveur de noms qui fait autorité pour le domaine recherché. Toujours dans nslookup : 1. taper set norec pour désactiver le mode récursif 2. interroger autant de serveurs de noms que nécessaire afin de retrouver le serveur de noms en charge du domaine lecanardenchaine.fr et lui demander quel est le mail exchanger de ce domaine, ainsi que son adresse IPv4. Pour cela, vous aurez à partir des serveurs de noms de la racine (nom de domaine réduit à un point). . . 3. quitter nslookup en tapant exit. [Corrigé] 4.2.5 WHOIS : informations sur les gestionnaires d’un domaine En formulant une "requête whois" à une "autorité compétente", on obtient en réponse un certain nombre de renseignements sur les gestionnaires d’un nom de domaine. L’autorité compétente pour les domaines se terminant par .fr et .re est l’AFNIC. C’est une association chargée d’attribuer et de gérer les domaines .fr et .re. Elle fournit la possibilité d’interroger en ligne sa base de données via l’URL http://www.afnic.fr/outils/whois. Un grand nombre de domaines tels que .arpa, .biz, .com, .edu, .org, et autres sont gérés par l’Internic bien que .com et .net soient en fait l’exclusivité de la société VeriSign. On peut aussi interroger en ligne ces gestionnaires via l’URL http://www.internic.net/whois.html. Enfin, on peut utiliser un site comme http://network-tools.com qui regroupe plusieurs des services que nous avons étudiés au cours de ce TP. - Sous Linux, on peut interroger les serveurs whois en utilisant la commande whois. Exercice 22 (interrogation whois sur Linux) Utiliser la commande whois sur allegro pour obtenir des renseignements sur différents domaines tels que : univ-aix.fr., univ-amu.fr., free.fr., wanadoo.fr., gouv.fr., et autres domaines de votre choix. [Corrigé] IUT Aix-Marseille - INFO Aix 19/3/2015 - C. Pain-Barre UE21 - M2102 : Architecture des r´eseaux 5 Enonc´e du TP 4 40/48 TELNET TELNET (pour TErminaL NETwork) a été défini par la RFC 854, à laquelle s’ajoutent de nombreuses autres RFC définissant des options ou extensions, à commencer par la RFC 855. Ce protocole a été élaboré dans le but de fournir un service de terminal virtuel, qui permet à un utilisateur de travailler à distance sur une station (comme avec SSH). Conçu à l’origine sous Unix, TELNET gomme les différences entre les systèmes d’exploitation : un utilisateur d’un système quelconque peut se loger sur un serveur d’un système quelconque. TELNET fonctionne en mode client/serveur et utilise une connexion TCP que le client établit avec le serveur. Dans cette section, sous allons principalement nous intéresser aux clients TELNET qui servent à : • se loger à distance sur une station hébergeant un serveur TELNET ; • dialoguer à distance avec un serveur quelconque, dont les messages sont formés de caractères ASCII. i 5.1 Sous Unix et Windows, la commande telnet exécute un client TELNET. Ce n’est pas la seule. Par exemple sous Windows, Putty et HyperTerminal en sont d’autres, plus élaborés que la commande telnet par défaut du système. Client telnet pour le terminal virtuel Pour une utilisation de terminal virtuel, permettant de se loger sur un hôte distant hébergeant un serveur TELNET, on exécute la commande : ˆ $ telnet hote où hˆote est l’adresse IP ou le nom du serveur. Cette commande exécute un client TELNET qui établit une connexion TCP avec le serveur TELNET qui doit être en écoute sur le port TCP 23 de l’hôte hˆote. Le terminal d’où est exécuté le client telnet sert alors aux entrées-sorties avec un programme de login exécuté sur le serveur. L’utilisateur est invité à entrer son nom et un mot de passe pour pourvoir exécuter un shell. Le serveur redirige les entrées-sorties du programme de login (et du shell) sur la connexion. TELNET fonctionne en transmettant du texte. La connexion TCP est utilisée pour transmettre les commandes à exécuter sur le shell, ainsi que leur résultat. Tout se passe comme si l’utilisateur était installé devant une console de cet hˆote. Outre ces données, la connexion sert aussi à transmettre des informations de contrôle. Notamment, le contrôle normalise les échanges de texte qui sont effectués car le client et le serveur peuvent avoir des codages de caractères différents. Le rôle du terminal virtuel (client et serveur) est de servir d’interface entre un utilisateur et (un shell sur) un hôte distant, où ce que l’utilisateur tape est envoyé au serveur et où ce que le serveur répond est affiché sur le terminal de l’utilisateur, jusqu’à ce que la connexion soit rompue. i Il est possible d’exécuter des applications graphiques à distance lorsqu’on est logé avec TELNET sur un hôte. Il faut pour cela exécuter en local un serveur X (afficheur de fenêtres) et paramétrer quelques variables et autorisations d’accès. De nos jours, on préférera utiliser SSH plutôt que TELNET pour réaliser cette opération. C. Pain-Barre - 19/3/2015 IUT Aix-Marseille - INFO Aix 41/48 Enonc´e du TP 4 UE21 - M2102 : Architecture des r´eseaux Un certain nombre d’options peuvent être négociées entre le client et le serveur. Le client telnet offre un mode commande pour son paramétrage et son contrôle, ce qui peut donner lieu à une négociation avec le serveur. Pour entrer dans ce mode, il faut taper la séquence de caractères d’échappement.Cette séquence est indiquée en début de session TELNET et consiste souvent à maintenir appuyée la touche Ctrl , suivie du caractère ] (crochet fermant que l’on saisit à l’aide de la touche AltGr ), ou parfois du $ (cas du client telnet de Windows). On entre alors dans le mode de commande du client telnet. On peut ensuite taper help pour avoir une liste de commandes disponibles, et il suffit de taper deux fois sur la touche Entrée pour revenir au terminal virtuel. Exercice 23 (Utilisation de telnet depuis Linux) Depuis un terminal sur votre PC : 1. utiliser telnet pour vous connecter à allegro ; 2. s’authentifier ; 3. une fois logé sur allegro (vérifier le prompt), taper une commande quelconque, telle que ls -l ; 4. taper les 3 touches AltGr + Ctrl + ] suivies de Entrée afin de rentrer dans le mode de commandes du client (où le prompt telnet> est affiché) ; 5. taper help 6. taper deux fois sur Entrée (pour revenir à la session) 7. taper à nouveau une commande ; 8. terminer la connexion soit en tapant Ctrl + D , soit exit, soit en entrant dans le mode de commande et en tapant close ou quit. [Corrigé] - TELNET est un service non sécurisé ni crypté. En particulier le nom de l’utilisateur et son mot de passe sont transmis "en clair" (sans cryptage) sur le réseau. Par conséquent, le service TELNET est de moins en moins autorisé par les administrateurs réseaux qui le remplacent par SSH (secure shell). Notamment, il n’est pas possible de se connecter sur une machine du Département Informatique par TELNET, à partir de l’extérieur de l’IUT. Cependant, TELNET est encore beaucoup utilisé pour administrer à distance certains (vieux) équipements réseaux, ou des équipements légers. Exercice 24 (Facultatif : utilisation de telnet depuis Windows) i Cet exercice est facultatif. . . Agrandir la fenêtre de la machine virtuelle Windows XP, puis ouvrir un invite de commandes MS-DOS (l’interpréteur de commandes Windows) par le Menu Démarrer −→ Exécuter puis taper cmd et Entrée . Sur ce terminal MS-DOS Windows : 1. pour élargir cette fenêtre terminal, effectuer un clic droit sur la barre du haut de la fenêtre et choisir Propriétés puis l’onglet Configuration et mettre 150 comme largeur dans la zone Taille Fenêtre ; IUT Aix-Marseille - INFO Aix 19/3/2015 - C. Pain-Barre UE21 - M2102 : Architecture des r´eseaux Enonc´e du TP 4 42/48 2. exécuter telnet sans se connecter à un serveur. On peut remarquer que le caractère d’échappement est CTRL-$ (indiqué au début). i Parfois, le client telnet sous Windows est graphique. Il ne dispose pas du mode commandes, mis à part les menus de la fenêtre qu’il ouvre. Si c’est le cas pour la version installée sur votre poste, explorer ces menus. 3. taper help 4. se connecter à allegro 5. s’authentifier ; 6. taper quelques commandes (pwd, cd, ls, . . .) sur la session TELNET sur allegro 7. entrer dans le mode commandes de telnet 8. taper set ? 9. utiliser set pour demander un echo local. 10. taper Entrée pour sortir du mode commandes de telnet 11. taper à nouveau quelques commandes (pwd, cd, ls, . . .), et observer. Les caractères tapés sont écrits 2 fois. i Cette option est utile lorsqu’on contacte un serveur autre que TELNET en utilisant le programme telnet (voir ci-après) et que les caractères tapés n’apparaissent pas à l’écran. 12. quitter telnet [Corrigé] 5.2 Telnet comme simple client TCP Le programme client telnet peut être utilisé dans un autre but. En effet, il permet de communiquer avec des serveurs (pour peu qu’on leur envoie des messages conformes aux protocoles qu’ils implémentent) qui utilisent TCP comme protocole de transport. Ceci parce que telnet peut se comporter comme un client TCP ordinaire. Il suffit de lui indiquer après l’hˆote, le port utilisé par le serveur par la ligne de commande suivante : $ telnet hˆote port où port est le numéro du port de l’application à contacter, ou le nom (ou un alias) du service rendu par cette application tel qu’il apparaît dans le fichier /etc/services sur Linux et C:\WINDOWS\system32\drivers\ etc\services (ou C:\WINNT\system32\drivers\etc\services) sur Windows. C. Pain-Barre - 19/3/2015 IUT Aix-Marseille - INFO Aix 43/48 - Enonc´e du TP 4 UE21 - M2102 : Architecture des r´eseaux On en profite pour rappeler ici quelques ports TCP réservés : Num (décimal) Application 7 Serveur echo 13 Serveur daytime 20 Serveur FTP (données) 21 Serveur FTP (commandes) 22 Serveur SSH 23 Serveur TELNET 25 Serveur SMTP (transfert de mail) 53 Serveur DNS 80 Serveur HTTP (www) 119 Serveur NNTP (news) Le client telnet va alors établir une connexion TCP avec le serveur en écoute sur le port port de l’hôte hˆote. Tout ce que l’utilisateur tapera sera transmis au serveur qui l’interprétera généralement comme un requête. Tout ce que le serveur enverra sera alors affiché sur le terminal de l’utilisateur et correspondra généralement à une réponse à une requête. De nombreux protocoles utilisent les caractères ASCII pour former leurs messages. Les serveurs de ces protocoles peuvent donc être contactés avec telnet. De plus, ces serveurs utilisent ou requièrent généralement que les fins de lignes soient exprimées par la séquence des deux caractères ’\r’ (Carriage Return ou CR) et ’\n’ (Line Feed ou LF), ce que fait justement telnet. i Pour ne citer que quelques protocoles majeurs qui utilisent des caractères il y a : HTTP, FTP, SMTP, POP3. ASCII dans leurs échanges, Exercice 25 (Utilisation de telnet en client TCP) Depuis un terminal du PC : 1. Utiliser less pour consulter le fichier /etc/services, en particulier le début ; 2. Essayer ensuite de contacter le serveur daytime d’allegro. Celui-ci se contente de renvoyer la date et l’heure qu’il possède puis ferme la connexion ou reste muet. En revanche, il y a très peu de chances de contacter avec succès un serveur situé à l’extérieur de l’IUT car ce genre de services est généralement désactivé (ou filtré). 3. Contacter le serveur echo de allegro. Celui-ci renvoie les caractères qu’il reçoit jusqu’à ce que la connexion soit rompue. Taper quelques lignes puis terminer la connexion (en passant par le mode commandes de telnet). [Corrigé] IUT Aix-Marseille - INFO Aix 19/3/2015 - C. Pain-Barre UE21 - M2102 : Architecture des r´eseaux 6 Enonc´e du TP 4 44/48 Activités réseaux d’un hôte 6.1 Les services réseau et la sécurité Les applications ou processus ouvrant un port TCP ou UDP sur un système, constituent le premier point d’attaque accessible via un réseau TCP/IP (LAN et WAN). Le plus souvent ce sont des erreurs de configuration qui sont à l’origine des failles de sécurité dans un réseau. Il est également courant que l’administrateur a tout simplement oublié de désactiver un service réseau "sensible", comme par exemple le serveur TELNET installé par défaut par certaines distributions Linux (maintenant obsolètes) ou un serveur HTTP destiné à une utilisation exclusive en Intranet —mais par erreur accessible via une adresse IP publique (i.e. à partir d’Internet). Et bien sûr, la plupart des virus (vers et chevaux de Troie) communiquent via Internet avec d’autres serveurs SMTP, HTTP ou FTP pour pouvoir se propager, pour télécharger des modules supplémentaires ou tout simplement pour déposer les informations qu’ils ont pu extraire du système "infecté" sur un serveur distant (listes d’adresses e-mail, codes d’accès, numéro de cartes bancaires, etc.). 6.2 Lister l’activité réseau avec netstat Les processus utilisant le réseau peuvent être "débusqués" par l’administrateur réseau en utilisant la commande netstat, disponible sur Unix et Windows. Elle donne des renseignements très complets sur les fonctionnalités réseau de la station, notamment sur l’état des connexions TCP, des ports (TCP ou UDP) utilisés par les applications, et bien d’autres choses. Elle admet de nombreuses options comme on peut le constater en consultant le manuel Linux. En particulier, netstat liste l’ensemble des sockets TCP, UDP ou Unix ouvertes sur l’hôte local : • les sockets TCP et UDP sont les adresses des applications utilisant internet. On les appelle les sockets internet et sont identifiées par le triplet : (Adresse IP, Protocole, Port) Tout programme utilisant la pile IP pour communiquer avec Internet doit demander une socket TCP ou UDP pour obtenir une adresse d’application ; • les sockets unix correspondent à des fichier spéciaux (de type socket) et sont utilisées localement pour des communications entre processus de l’hôte. Leur utilisation étant plus performante que les sockets internet, elles sont privilégiées pour les communications locales. Un processus dialoguant avec Internet reçoit ses données via une socket internet. Dans le cas de TCP, les serveurs sont en écoute sur une socket internet afin d’accepter les connexions des clients. Lorsqu’un client se connecte, le système fournit au serveur une socket internet supplémentaire représentant cette connexion. Lors de la demande de sa socket internet d’écoute, le serveur indique à TCP par quelle adresse IP il veut être joignable. S’il n’a pas de préférence, il indique 0.0.0.0, voulant dire n’importe quelle adresse (any). Un processus utilisant UDP fait de même pour indiquer par quelle adresse il souhaite recevoir des datagrammes. - Pour un protocole de transport donné (TCP ou UDP), l’adresse d’une application est généralement affichée sous le format adresse-ip:port (voir exemple ci-dessous). Exemple 15 Supposons que sur un hôte on obtienne : C. Pain-Barre - 19/3/2015 IUT Aix-Marseille - INFO Aix 45/48 Enonc´e du TP 4 UE21 - M2102 : Architecture des r´eseaux $ netstat -an Connexions Internet actives (serveurs et établies) Proto Recv-Q Send-Q Adresse locale Adresse distante Etat tcp 0 0 127.0.0.1:7634 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN ... tcp 0 0 139.124.187.34:40413 139.124.187.4:22 ESTABLISHED tcp 1 0 139.124.187.34:48549 91.197.138.30:80 CLOSE_WAIT ... tcp6 0 0 :::22 :::* LISTEN ... udp 0 0 0.0.0.0:68 0.0.0.0:* udp 0 0 0.0.0.0:69 0.0.0.0:* ... raw 0 0 0.0.0.0:1 0.0.0.0:* 7 ... Sockets du domaine UNIX actives(serveurs et établies) Proto RefCnt Flags Type State I-Node Chemin unix 2 [ ACC ] STREAM LISTENING 677938 /var/run/avahi-daemon/socket ... unix 2 [ ] DGRAM 2239 @/org/kernel/udev/udevd unix 3 [ ] STREAM CONNECTE 689563 @/tmp/.X11-unix/X0 alors dans l’ordre, on peut en déduire qu’il y a : • un serveur en écoute (LISTEN) sur le port TCP 7634 mais qu’il ne peut être contacté que par un processus local car il n’écoute que sur l’adresse 127.0.0.1 ; • un serveur (SSH) en écoute (LISTEN) sur le port TCP 22, en écoute sur toutes ses adresses IP (0.0.0.0) ; • une connexion TCP est en cours (ESTABLISHED) entre un client SSH local d’adresse 139.124.187.34:40413 et le serveur SSH 139.124.187.4:22 ; le port TCP 22 étant celui des serveurs SSH ; • une autre connexion TCP est en cours de terminaison (CLOSE_WAIT) entre un navigateur Web d’adresse 139.124.187.34:48549 et le serveur HTTP 91.197.138.30:80 ; • le serveur SSH accepte aussi IPv6 ; • un client DHCP est actif et utilise l’adresse 0.0.0.0:68 ; • un serveur TFTP est en écoute sur l’adresse 0 0.0.0.0:69 ; • une socket internet en mode raw est active : il s’agit d’une socket utilisée par une exécution de la commande ping, reposant sur ICMP (mode raw) ; • un serveur local est en écoute sur le fichier /var/run/avahi-daemon/socket pour accepter les connexions d’autres processus locaux ; • un processus utilise le fichier @/org/kernel/udev/udevd comme socket unix en mode non connecté (DGRAM) ; • un processus local est connecté (avec un autre) via le fichier @/tmp/.X11-unix/X0. Exercice 26 (netstat sur linux) Sur un terminal du PC, consulter le manuel en ligne de netstat en tapant : IUT Aix-Marseille - INFO Aix 19/3/2015 - C. Pain-Barre UE21 - M2102 : Architecture des r´eseaux Enonc´e du TP 4 46/48 $ man netstat pour étudier ses options -a, -r, -n, -t, -u et -p, puis répondre aux questions suivantes : 1. afficher toutes les sockets ouvertes ; 2. afficher la table de routage uniquement ; 3. afficher la table de routage uniquement mais en désactivant la résolution inverse (et voir les adresses IP et les numéros des ports plutôt que des noms d’hôtes et de services) ; 4. l’état des connexions TCP uniquement, sans résolution inverse ; 5. l’état des sockets UDP 6. l’état des sockets UDP avec des informations sur les processus qui les possèdent. En principe, cette dernière information n’est disponible que pour root. [Corrigé] Exercice 27 (Facultatif : netstat sur windows) i Cet exercice est facultatif. . . Consulter l’aide de netstat sous Windows en tapant : C:> netstat /? pour étudier ses options -a, -r, -p et -n, puis répondre aux questions suivantes : 1. afficher toutes les informations disponibles 2. afficher la table de routage uniquement 3. l’état des connexions TCP uniquement, sans résolution inverse. [Corrigé] Exercice 28 (identification des services actifs) 1. Sur une fenêtre terminal du PC, télécharger le fichier tp4_services.mar en tapant : $ wget http://infodoc/~cpb/enseignement/reseaux/2014/tp/tp4/enonce/tp4_services.mar 2. Sur le PC, lancer Marionnet et ouvrir le fichier tp4_services.mar. Cliquer ensuite sur Tout Démarrer. L’administrateur a remarqué un ralentissement anormal sur son réseau et suspecte une infection de m2 par un processus utilisant Internet. Il pense qu’un serveur a été activé à son insu et est à l’origine des problèmes. Aidez l’administrateur à se débarrasser de ce processus gênant. Pour cela, analyser sur m2 les sockets internet ouvertes. Essayer d’utiliser telnet pour discuter avec les serveurs que vous trouverez. Quand vous avez trouvé le processus coupable, tuez le ! i Sur m2 vous êtes root et vous pouvez vous servir avantageusement de l’option -p de netstat. . . [Corrigé] C. Pain-Barre - 19/3/2015 IUT Aix-Marseille - INFO Aix 47/48 7 Enonc´e du TP 4 UE21 - M2102 : Architecture des r´eseaux Autres outils du bricoleur réseau 7.1 nmap : scanner un réseau Un des logiciels favoris des pirates (N) est un scanner de ports. En effet, les pirates cherchent les services qui sont susceptibles de posséder une faille de sécurité afin de pénétrer un système. Pour cela, ils ont besoin d’un bon scanner dans leur trousse à outil. Le plus célèbre est certainement nmap. Mais le scanner ne sert pas seulement aux pirates ! ! Il permet aux administrateurs réseaux (☺) de vérifier les ports ouverts sur leurs systèmes et s’il n’y a pas de service inutile actif ni de backdoor. i nmap est aussi disponible pour Windows.De plus, une interface graphique nommée zenmap est maintenant disponible. Exercice 29 (Utilisation de nmap sur Linux) La documentation de nmap (et le manuel en ligne) est très fournie car elle admet un très grand nombre d’options dont certaines ne sont utilisables que par root. Nous nous limiterons à une utilisation des plus basiques, sans option simplement en tapant des commandes de la forme : nmap hˆote 1. Depuis le PC, utiliser nmap pour vérifier les services ouverts. Comparer avec le résultat de netstat -atn exécuté sur le PC (l’état d’un serveur en écoute et donc actif est LISTEN ou LISTENING) ; 2. Depuis allegro, utiliser nmap pour vérifier les services ouverts sur votre PC. remarquer que les services locaux (en écoute sur 127.0.0.1) ne sont pas détectables ; 3. Depuis le PC, utiliser nmap pour vérifier ceux ouverts sur allegro ; 4. Depuis le PC, utiliser nmap pour vérifier ceux ouverts sur infodoc ; 5. Éventuellement, utiliser nmap pour vérifier ceux ouverts sur votre box (ou toute autre machine que vous connaissez à l’extérieur) si vous connaissez votre adresse IP. [Corrigé] 7.2 netcat : un client/serveur à tester Il existe d’autres logiciels que telnet pour contacter un serveur quelconque, notamment le logiciel netcat (et son évolution socat). Sous Linux, l’exécutable se nomme nc et est généralement situé dans /usr/bin. Comparé par à telnet, l’avantage de nc est qu’il permet non seulement d’envoyer des caractères ASCII sur une connexion mais aussi des données binaires. Il peut aussi servir de client UDP (alors que telnet n’utilise que TCP). Enfin, il peut aussi servir de serveur, c’est à dire qu’il peut être "lié" à un port (TCP ou UDP selon le choix fait) et attendre que des clients lui envoient des données. i nc existe en plusieurs versions. Celle qui est installée sur les PC est la version BSD qui a plus de fonctionnalités que celle installée sur allegro, et qui s’utilise un peu différemment. i Il existe aussi un portage de netcat sur Windows. IUT Aix-Marseille - INFO Aix 19/3/2015 - C. Pain-Barre UE21 - M2102 : Architecture des r´eseaux Enonc´e du TP 4 48/48 Exercice 30 (Utilisation de netcat sur Linux) Sur un terminal du PC, consulter le manuel en ligne de nc en tapant : $ man nc pour étudier ses options -u et -l, puis répondre aux questions suivantes : 1. Utiliser nc pour contacter le serveur TCP daytime d’allegro ; 2. Utiliser nc pour contacter le serveur UDP echo d’allegro ; 3. Utiliser nc pour lancer un serveur sur un port que vous choisirez (au dessus de 10000). Sur un autre terminal, par exemple depuis allegro, utiliser telnet pour vous connecter à ce serveur ; 4. Utiliser nc pour lancer un serveur UDP sur un port que vous choisirez (au dessus de 10000). Essayer d’utiliser telnet pour le contacter (ça ne marchera pas). Le contacter en laçant un client nc (depuis allegro). [Corrigé] 8 Le courrier électronique et les clients de messagerie Un client de messagerie classique est un logiciel permettant de télécharger du courrier électronique, d’en composer et d’en envoyer. Il n’est pas à confondre avec un client hotmail ou caramail qui utilise les facilités d’un browser (navigateur Web). Les clients graphiques de messagerie les plus connus sont Outlook (Express), Eudora, Thunderbird sous Windows, et Netscape Messenger, Evolution ou Thunderbird sous Linux. Pour fonctionner, ces client ont besoin d’être paramétrés pour les deux protocoles qu’ils utilisent, POP3 et SMTP : • POP3 : le client a besoin de connaître le nom de la machine hébergeant le serveur POP3, et éventuellement le numéro du port qu’il utilise (normalement 110). Il a aussi besoin de connaître le nom d’utilisateur de la boîte aux lettres ainsi que son mot de passe. Avec ces informations, il est ensuite possible de télécharger tout le courrier disponible dans la boîte puis de le consulter hors-ligne ; • SMTP : le client a besoin de connaître le nom de la machine hébergeant le serveur SMTP (qui peut être différente de celle hébergeant le serveur POP3) ainsi que le port (normalement 25). Le plus souvent, ce serveur doit être celui mis à disposition par le FAI. Les autres serveurs devraient refuser de relayer les messages à cause des spams (ces courriers publicitaires qui pourrissent la vie et appelés aussi "pourriels" au lieu de "courriels"). Il faut aussi indiquer son adresse e-mail afin qu’elle soit indiquée dans les messages envoyés pour que le destinataire puisse répondre. Exercice 31 (Utilisation de Thunderbird) Lancer Thunderbird (nommé icedove sous Debian) sous Linux. Le configurer pour utiliser la messagerie de l’université, puis s’envoyer un ou deux messages, et éventuellement à un camarade du groupe. Ensuite les récupérer à nouveau avec Thunderbird. [Corrigé] C. Pain-Barre - 19/3/2015 IUT Aix-Marseille - INFO Aix