Outils pour utilisateurs

Outils du site


cours:informatique:sysadmin:administrer_un_systeme_linux:440_tp_ping

Notes et transcriptions du coursAdministrez un système Linux” disponible sur la plateforme Openclassrooms.

TP : Un ping pong avec une drôle de balle…

L'objectif de ce TP est d'utiliser la surveillance réseau et les outils évoqués dans la partie 4 du cours pour analyser un peu plus dans le détail le trafic généré par les fameuses commandes ping.

Allez, on sort sa loupe de Sherlock et c'est parti !

Étape 1

Connecté sur votre serveur Linux (console physique ou terminal) vérifiez que vous pouvez lancer une commande ping sur une autre machine joignable sur votre réseau local. (Dans l'exemple ici, je lance la commande ping sur la machine qui héberge la VM Linux).

seb@debServer:~$ ping 172.20.10.2
PING 172.20.10.2 (172.20.10.2) 56(84) bytes of data.
64 bytes from 172.20.10.2: icmp_seq=1 ttl=64 time=0.401 ms
64 bytes from 172.20.10.2: icmp_seq=2 ttl=64 time=0.574 ms
64 bytes from 172.20.10.2: icmp_seq=3 ttl=64 time=0.479 ms
64 bytes from 172.20.10.2: icmp_seq=4 ttl=64 time=0.528 ms
^C
--- 172.20.10.2 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3728ms
rtt min/avg/max/mdev = 0.401/0.495/0.574/0.064 ms
seb@debServer:~$

Vous allez constater que sous Linux, la commande ping ne s'arrête pas toute seule… Pour la stopper, utilisez le signal SIGINT vu pendant le cours et la combinaison de touche CTRL+C (heureusement pour nous que cette commande écoute ce signal !).

Étape 2

À l'aide d'une connexion secondaire (seconde console physique ou nouvelle session via un terminal), sous le compte root, lancez la commande tcpdump en indiquant en paramètre le protocole utilisé par la commande ping: icmp. Et vérifiez depuis la première connexion en relançant la commande ping que vous parvenez à relever le trafic icmp. Vous devriez obtenir quelque chose ressemblant à ça :

root@debServer:~# tcpdump icmp
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on enp0s3, link-type EN10MB (Ethernet), snapshot length 262144 bytes
17:17:00.011565 IP 172.20.10.13 > 172.20.10.2: ICMP echo request, id 4673, seq 1, length 64
17:17:00.012004 IP 172.20.10.2 > 172.20.10.13: ICMP echo reply, id 4673, seq 1, length 64
17:17:01.270579 IP 172.20.10.13 > 172.20.10.2: ICMP echo request, id 4673, seq 2, length 64
17:17:01.271290 IP 172.20.10.2 > 172.20.10.13: ICMP echo reply, id 4673, seq 2, length 64
17:17:02.294303 IP 172.20.10.13 > 172.20.10.2: ICMP echo request, id 4673, seq 3, length 64
17:17:02.294849 IP 172.20.10.2 > 172.20.10.13: ICMP echo reply, id 4673, seq 3, length 64
17:17:03.321463 IP 172.20.10.13 > 172.20.10.2: ICMP echo request, id 4673, seq 4, length 64
17:17:03.322027 IP 172.20.10.2 > 172.20.10.13: ICMP echo reply, id 4673, seq 4, length 64
^C
8 packets captured
8 packets received by filter
0 packets dropped by kernel

Idem ici, tcpdump écoute SIGINT, donc un petit CTRL+C pour l'arrêter.

Étape 3

Réitérez cette opération en indiquant un fichier d'enregistrement pour tcpdump, par exemple /tmp/traficICMP.dump. Capturez ainsi quelques paquets ICMP (entre 4 et 8 par exemple) tels que :

root@debServer:~# tcpdump icmp -w /tmp/traficICMP.dump
tcpdump: listening on enp0s3, link-type EN10MB (Ethernet), snapshot length 262144 bytes
^C6 packets captured
6 packets received by filter
0 packets dropped by kernel

Étape 4

Transférez cette trace réseau sur un poste de travail disposant de wireshark. Dans l'exemple ci dessous, je transfère ce fichier sur un poste Ubuntu via scp, tel que :

root@debServer:~# scp /tmp/traficICMP.dump seb@172.20.10.2:/home/seb/

Étape 5

Ouvrez la trace avec Wireshark, dépliez les différentes couches OSI de la trace et notamment la couche ICMP, pouvez-vous relever les données envoyées par la commande ping? Quelle taille fait le paquet ICMP ?

Sélectionnez le paquet de données ICMP et faites un clic droit / show packet bytes afin de visualiser ces données.

La commande ping envoie quelques caractères tels que!“#$%&'()*+,-./01234567 au format hexadécimal, voilà une balle originale pour faire un ping/pong.

L'option -p permet de définir un motif (pattern) allant jusqu’à 16 Octets utilisé par la commande pour générer les données.

Étape 6

Cherchez dans les options de la commande ping comment passer la taille du paquet ICMP à 128 bits et effectuez une nouvelle capture. Que devient notre balle de ping pong ?

ping -c 4 -s 128 -p 4c494e55582e2e2e server.local                                                                  
MOTIF : 0x4c494e55582e2e2e
PING server.local (192.168.1.180) 128(156) bytes of data.
...

Sous Wireshark on peut observer que les données transmises par les ping ont été générées à l'aide du motif hexadécimal passé en paramètre

◁ Précédent | ⌂ Retour au sommaire | Suivant ▷

cours/informatique/sysadmin/administrer_un_systeme_linux/440_tp_ping.txt · Dernière modification : 2024/01/30 11:34 de yoann