TP2 Commandes et outils de base pour le réseau Objectifs Savoir consulter les paramètres IP d un PC sous Linux (commandes ifconfig, route, ip) Découvrir les commandes principales de diagnostic réseau (ping, traceroute, whois, nslookup, host, dig) Découvrir les fichiers essentiels de configuration réseau sous Linux Apprendre à utiliser un analyseur de trames (sniffer) Pré-requis Modèle TCP/IP et fonctions basiques de ses principaux protocoles Principes de l'adressage et du routage IPv4 Commandes Linux étudiées dans le TP1 Matériel et logiciel utilisés Une station sous Linux Le logiciel Wireshark Nombre de séances : 2 (4 heures) 1. Consultation des paramètres IP Vous allez étudier les commandes permettant de consulter et de configurer les paramètres IP d'une machine sous Linux. Jusqu'à la version 2.2 du noyau Linux, la configuration de l'adresse IP était réalisée par la commande ifconfig et celle de la table de routage par la commande route. Désormais, la commande ip regroupe à elle seule les fonctionnalités de ces deux commandes. Ces dernières étant toujours couramment utilisées, vous allez apprendre à vous servir des 3 commandes. Pour afficher les interfaces réseau dont dispose votre machine, vous pouvez utiliser : la commande ifconfig seule : seules les interfaces actives sont listées ; la commande ifconfig -a : toutes les interfaces sont affichées, y compris les interfaces désactivées ; la commande ip link show ou ip link : les interfaces sont listées ; leur état est affiché après le champ STATE. Seuls les paramètres de niveau liaison sont affichés. La commande ip addr show : les interfaces sont toutes listées ; leur état, leurs paramètres de niveau liaison et leurs paramètres de niveau IP sont présentés. Si vous souhaitez connaître les paramètres d'une seule carte réseau, il suffit de préciser le nom de l'interface en argument. Par exemple, les commandes ifconfig eth0 et ip addr show eth0 fournissent les informations relatives à l'interface eth0 uniquement. 1) Relevez le nom des interfaces réseau (actives ou non) dont dispose votre machine. Pour cela, testez les deux commandes, ifconfig et ip. Remarque : dans la suite, nous noterons la carte Ethernet ethx : remplacez x par la valeur de votre machine... A. Quidelleur Services sur réseaux S1 1/8
2) Relevez l'adresse IP et le masque de l'interface Ethernet (ethx). a) Quelle est l'adresse du réseau de la salle de TP? Utilisez la notation CIDR. b) S'agit-il d'une adresse privée ou publique? c) Quelle est l'adresse de diffusion sur le réseau? 3) Relevez l'adresse MAC de votre interface eth. Elle vous servira plus tard. 4) Une interface nommée lo est citée : à quoi correspond-elle? Pour afficher la table de routage de votre machine, vous pouvez utiliser ces commandes : - route -n (l'option -n précise que les machines sont identifiées par leur adresse IP et non par leur nom d'hôte) - ip route show 5) Testez successivement ces deux commandes. a) Identifiez la ligne de la table dont la destination est le réseau de la salle de TP et le ligne de routage par défaut. b) Quelle est l'adresse IP de la passerelle par défaut? 6) Le fichier dans lequel les serveurs DNS sont définis est le fichier /etc/resolv.conf a) Affichez son contenu. b) Déterminez le nom du domaine auquel appartient votre machine. c) Déterminez l'adresse du ou des serveurs DNS utilisés par votre machine. Les machines de l'iut obtiennent leurs paramètres IP d'un serveur DHCP au démarrage. Pour demander une nouvelle adresse, il faut redémarrer le service réseau, nommé networking. Trois commandes sont possibles : - /etc/init.d/networking restart - service networking restart - systemctl restart networking Les deux premières commandes utilisent le démon (programme) System V pour le démarrage du service networking alors que la dernière utilise le démon Systemd qui est plus récent et devrait remplacer System V. 7) Après avoir exécuté la commande de votre choix, observez de nouveau votre adresse IP. Vous devez remarquer qu elle n a pas été modifiée : c'est un choix de configuration du serveur DHCP. Le fichier dans lequel la configuration dynamique de votre carte réseau est définie est /etc/network/interfaces. La directive auto indique que la carte réseau doit être démarrée automatiquement. 8) Dans ce fichier, identifiez la ligne qui indique que votre carte Ethernet obtient son adresse IP d un serveur DHCP. A. Quidelleur Services sur réseaux S1 2/8
2. Commandes de diagnostic 2.1. La commande ping La commande ping (Packet INternet Groper) permet de vérifier qu une machine est connectée. Elle est consiste à émettre une requête d'écho vers cetet machine ; si la requête est reçue par le destinataire, il envoie une réponse d'écho. La réception ou non de la réponse est affichée dans le terminal, ce qui permet à l utilisateur de déterminée si la machine visée est bien connectée ou non. L Illustration 1 montre le fonctionnement de la commande ping. S Requête ping Réponse ping D La syntaxe de la commande ping est : ping adresse_ip ou bien ping nom_dns_de_machine Illustration 1 Sur Linux, par défaut, la commande ping émet des requêtes jusqu'à ce qu'elle soit manuellement arrêtée en tapant sur simultanément sur les touches Ctrl et C du clavier. 9) Réalisez une commande ping à destination de la machine de votre voisin. 10) Observez les informations affichées dans le terminal : a) À votre avis, la valeur de TTL affichée dans le terminal correspond-elle au TTL de la requête d écho émise ou de la réponse d écho reçue? b) A quoi correspond la valeur de temps affichée dans le terminal? Vous allez maintenant utiliser un outil fondamental de l'administration des réseaux : l analyseur de trames encore appelé analyseur de protocoles ou sniffer. Il permet de lire toutes les trames passant sur l interface réseau de votre machine dans le but d analyser les échanges sur le réseau (surveillance du trafic pour la maintenance et la sécurité). Dans les TP, nous utiliserons Wireshark, un logiciel gratuit et open-source, utilisable sur les systèmes Linux, Windows et Mac. Il est téléchargeable sur le site www.wireshark.org. Wireshark analyse le trafic passant sur les interfaces Ethernet et WiFi. Il repose sur la commande linux tcpdump, qui permet de sniffer le trafic en mode commande. Le logiciel fournit juste une interface graphique à tcpdump pour faciliter la lecture. Il dispose en plus de nombreux outils permettant de simplifier et d'affiner l analyse du trafic. L interface graphique de Wireshark présente trois fenêtres (Illustration 2). - Fenêtre du haut : liste des paquets capturés avec résumé de leurs caractéristiques. En cliquant sur un paquet de cette fenêtre, vous modifiez le contenu des deux autres. A. Quidelleur Services sur réseaux S1 3/8
- Fenêtre du milieu : contenu du paquet, en-tête par en-tête (des couches basses vers les couches hautes) - Fenêtre du bas : représentation hexadécimale du paquet sélectionné. Les champs sélectionnés dans la fenêtre du milieu y sont affichés en caractères gras. Illustration 2: Les trois fenêtres de Wireshark Pour observer le contenu de chaque champ d'un en-tête, il suffit de cliquer sur l'icône en triangle en face de l'entête (Illustration 3). Illustration 3: Affichage des en-têtes Pour utiliser Wireshark, il faut avoir les privilèges du root. Il est donc nécessaire, soit d'ouvrir une session root (alors vous pouvez utiliser Wireshark depuis l'interface graphique), soit de prendre l'identité du root dans un terminal (commande su -) et lancer le logiciel en tapant simplement dans ce terminal : wireshark Dans le TP, vous êtes déjà connecté sous l'identité du root donc vous pouvez utiliser Wireshark sans problème. 11) Activez une capture wireshark (capture interfaces : choisissez ethx puis cliquez sur start) et activez un filtre d'affichage permettant de ne voir que les trames échangées avec votre voisin (tapez ip.addr==adresse_du_voisin dans la ligne filter, puis cliquez sur le bouton apply). A. Quidelleur Services sur réseaux S1 4/8
12) Réalisez une commande ping sur la machine de votre voisin. Arrêtez la commande lorsque vous avez reçu deux ou trois réponses. 13) Observez la capture wireshark : a) Quels sont les protocoles de niveau liaison et réseau utilisés par la commande ping? Complétez ce schéma représentant la pile de protocoles utilisés par votre machine pour réaliser une commande ping : Couche réseau Couche liaison/physique b) Relevez les adresses MAC source et destination dans l'en-tête Ethernet et les adresses IP source et destination dans l'en-tête IP de la requête et de la réponse ping. A quelles machines appartiennent-elles? c) Relevez la valeur numérique du champ Protocol de l'en-tête IP : à quel protocole correspond cette valeur? d) Relevez la valeur numérique du champ TTL de l'en-tête IP d'une requête et d'une réponse ping. Expliquezles. e) Relevez la valeur des champs Type et Code d'une réponse et d'une requête ping. f) Arrêtez la capture. 14) Activez une nouvelle capture Wireshark, activez-y un filtre permettant d'afficher uniquement les paquets ICMP (tapez icmp dans la case filtre) puis réalisez une commande ping sur une machine d'internet (par exemple : ping www.google.com) puis arrêtez la capture. 15) Observez les informations affichées dans le terminal. A quoi correspond la valeur de TTL affichée dans le terminal? Expliquez pourquoi cette valeur est différente de celle observée à la question 10)a. 16) Observez la capture wireshark : a) Relevez les adresses MAC source et destination dans l'en-tête Ethernet et les adresses IP source et destination dans l'en-tête IP de la requête et de la réponse ping. Elles vous serviront plus tard... b) Relevez la valeur du champ TTL de l'en-tête IP d'une requête et d'une réponse ping. Expliquez les valeurs observées. c) Arrêtez la capture. 17) Activez une nouvelle capture et exécutez la commande : ping www.linux.org a) Relevez l'adresse MAC destination de la requête émise. Comparez-la à celle relevée à la questions 16)a. b) A votre avis, à qui appartient l'adresse MAC destination de la requête? 18) Conclusion ; quelle est la portée d'une adresse MAC? D'une adresse IP? Complétez le schéma de l'illustration 4 récapitulant les usages des adresses MAC et IP. A. Quidelleur Services sur réseaux S1 5/8
C A Réseau local Paquet émis de A vers C : MAC src = MAC dst = IP src = IP dst = eth0 Routeur Internet B Paquet émis de A vers B : MAC src = MAC dst = IP src = IP dst = Illustration 4 19) Relancez une nouvelle capture et exécutez la commande suivante : ping -t 2 www.google.com a) Dans la capture, sélectionnez une requête et observez le champ TTL. Déduisez-en la fonction de l'option -t. Expliquez le résultat de la commande. b) Sélectionnez maintenant une réponse : quelles sont les valeurs des champs Type et Code pour un paquet ICMP Time to live exceeded? c) Arrêtez la capture. 20) Testez la commande ping 127.0.0.1 Quelle est la machine interrogée? Dans un navigateur, tapez : http://127.0.0.1 À quel site web est-vous connecté? À quoi peut servir l adresse de bouclage local? 2.2. La commande traceroute La syntaxe de la commande traceroute est la suivante : traceroute adresse_ip_de_la_machine_visée ou bien traceroute nom_dns_de_la_machine_visée 21) Activez une nouvelle capture. 22) Exécutez la commande : traceroute www.google.com 23) Observez les résultats dans le terminal : a) A quoi correspondent les trois valeurs de temps indiquées dans chaque ligne? Expliquez les variations de ces trois valeurs de temps sur une même ligne. b) Combien de routeurs ont-ils été traversés pour atteindre la destination? Si l'on recommence l'expérience plus tard, est-on certain d'obtenir le même nombre? Expliquez. 24) Observez les résultats dans la capture. A. Quidelleur Services sur réseaux S1 6/8
a) Observez d'abord les paquets émis par votre machine : quel est le protocole de niveau transport utilisé? b) Quel est le protocole utilisé par les paquets de réponse reçus? c) Observez le TTL des paquets émis par votre machine et expliquez les paquets de réponse reçus. 25) Conclusion : expliquez simplement le fonctionnement de la commande traceroute. Pour cela, complétez l'illustration 5. Remarque Windows n'utilise pas le même protocole que Linux pour exécuter la commande traceroute (nommée tracert sous Windows) : ce sont des paquets ICMP qui sont émis. Le principe reste le même : le TTL du premier paquet ICMP echo request émis vaut 1, celui des suivants est incrémenté. traceroute D S D R1 R2 R3 R4 TTL : Type/code : IP src /IP dst : TTL : Type/code : IP src /IP dst : TTL : Type/code : IP src /IP dst : TTL : Type/code : Illustration 5 A. Quidelleur Services sur réseaux S1 7/8
3. Introduction à la résolution d'adresse 26) Activez une capture et activez un filtre permettant de ne visualiser que les paquets portant l'adresse IP de votre machine. 27) Depuis un navigateur, connectez-vous à un site internet quelconque et arrêtez la capture. 28) Dans la capture, sélectionnez la requête DNS émise par votre machine. a) Quelle est l'adresse IP du serveur DNS consulté? b) A quelle couche du modèle TCP/IP le protocole DNS appartient-il? c) Dans quel protocole de niveau transport est-il encapsulé? Justifiez le choix de ce protocole. Il existe plusieurs commandes permettant d'interroger directement un serveur DNS à propos de ses enregistrements, notamment nslookup, host et dig. Si on ne précise par de serveur DNS spécifique, c'est le serveur défini dans le fichier /etc/resolv.conf qui est interrogé. La syntaxe de ces commandes pour résoudre le nom en adresse est : nslookup nom host nom dig nom Pour résoudre une adresse en nom : nslookup adresse host adresse dig -x adresse 29) Réalisez la résolution de nom pour www.u-pem.fr 30) Réalisez la résolution inverse pour l adresse 80.247.225.35 4. Exercices d'application Ces deux questions sont des exercices de réflexion et ne nécessitent aucune manipulation. 31) Vous venez de démarrer votre machine. Vous saisissez dans la barre de navigation de votre navigateur http://picsou.monreseau.com, Picsou étant le nom DNS d un serveur web connecté à votre réseau local. La connexion échoue. Vous tapez alors http://192.168.1.12 dans la barre de navigation et la connexion est acceptée (192.168.1.12 est l adresse IP de la machine picsou). D où vient le problème? 32) Vous avez vérifié la connectivité de votre machine sur le réseau local. Vous ouvrez un navigateur sur votre station et tapez successivement plusieurs URL. Le navigateur vous répond à chaque fois «Impossible de trouver la page». Décrivez les étapes suivies pour localiser «la panne». A. Quidelleur Services sur réseaux S1 8/8