Diagnostiquer les problèmes de connectivité avec la commande ping de Linux

Les ordinateurs en réseau sont si courants de nos jours que la plupart d’entre nous tiennent pour acquis qu’un ordinateur d’un côté d’une pièce peut contacter un de l’autre côté de la pièce, encore moins l’autre côté du monde. Lorsqu’il fonctionne comme prévu, la mise en réseau est ce qui rend Internet, le cloud, les partages de fichiers, la diffusion multimédia en continu, l’administration à distance, l’impression et bien plus encore. Lorsque quelque chose ne va pas, il peut parfois être difficile de diagnostiquer. L’un des outils de diagnostic les plus fondamentaux pour la connectivité en réseau est le ping
commander.
Contents
Le ping de base
Lorsque vous ne pouvez pas accéder à un ordinateur de votre réseau local ou à un serveur sur Internet, vous pouvez le cingler. Un ping envoie un paquet ICMP (Internet Control Message Protocol) à une adresse IP de destination. ICMP est, par conception, un format rudimentaire utilisé principalement pour les diagnostics : il s’agit essentiellement d’un signal d’appel et de réponse.
Mais il y a un ordre de dépannage, et il commence aussi près de chez soi que possible. En cas de doute, commencez par envoyer un ping à votre propre ordinateur pour vous assurer que vous exécutez une pile réseau. L’ordinateur que vous utilisez est également appelé votre hôte local, et il a une adresse IP spéciale attribuée pour se parler : 12.0.0.1.
Les ping
commande comprend le hôte local nom d’hôte, son adresse IP et un raccourci de seulement 0
.
Vous pouvez contrôler le nombre de signaux que vous envoyez avec le -c
(un péché compter) option.
$ ping 0 -c1
PING 0 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.069 ms--- 0 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.069/0.069/0.069/0.000 ms
Une fois que vous avez établi que votre pile de réseau local est opérationnelle, vous pouvez envoyer un ping à votre routeur. L’adresse d’un routeur commence généralement par 192,168 ou 10. L’adresse IP exacte dépend de la configuration de votre routeur.
Lorsque vous ne spécifiez pas le nombre de pings à envoyer, vous pouvez arrêter ping
de courir avec Ctrl+C.
$ ping 192.168.0.1
PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data.
From 192.168.0.100: icmp_seq=2 Redirect Host(New nexthop: 192.168.0.1)
From 192.168.0.100: icmp_seq=3 Redirect Host(New nexthop: 192.168.0.1)
From 192.168.0.100: icmp_seq=4 Redirect Host(New nexthop: 192.168.0.1)
From 192.168.0.100: icmp_seq=5 Redirect Host(New nexthop: 192.168.0.1)
^C
Si vous pouvez atteindre votre routeur, cela signifie que votre connexion filaire ou sans fil fonctionne.
Qu’en est-il des autres hôtes de mon réseau ? Vous pouvez cingler toutes sortes d’appareils. Tous ne sont pas assurés de répondre (certains appareils abandonnent les paquets ICMP), mais beaucoup le font. Par exemple, je peux envoyer un ping à mon imprimante :
$ ping 192.168.0.4
Ping au-delà de votre réseau
Au-delà de l’établissement que votre propre réseau fonctionne comme prévu, vous pouvez également vous connecter au monde au-delà de votre routeur. Encore une fois, tous les serveurs ne sont pas autorisés à recevoir, et encore moins à répondre, ICMP. Cependant, il y en a qui le font, et un serveur vital pour le fonctionnement d’Internet est un serveur de noms.
Le serveur DNS de Google est relativement facile à retenir et répond aux pings :
$ ping -c 2 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=116 time=53.3 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=116 time=53.5 ms--- 8.8.8.8 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 53.304/53.424/53.544/0.120 ms
Lorsqu’un site a apparemment disparu, vous pourrez peut-être sonder le réseau DNS mondial pour connaître l’adresse de son serveur hôte, puis envoyer un ping à ce serveur. Cela vous indique au moins si l’hôte est en panne ou s’il s’agit simplement d’un problème de serveur Web.
Par exemple, supposons que vous essayez sans succès d’atteindre example.com. Tout d’abord, trouvez l’adresse IP à l’aide du host
commander:
$ host example.com
example.com has address 93.184.216.34
example.com has IPv6 address 2606:2800:220:1:248:1893:25c8:1946
example.com mail is handled by 0
Ensuite, envoyez un ping à l’hôte du site Web par IP :
$ ping 93.184.216.34 -c 1
Ping et IPv6
Ping fonctionne sur IPv4 ainsi que sur IPv6. L’utilisation d’un seul d’entre eux explicitement peut être imposée en spécifiant -4
ou -6
.
Taille du paquet
Vous pouvez modifier la taille des paquets ICMP que vous envoyez avec le -s
option. La taille de paquet par défaut est de 56, ce qui se traduit par 64 octets de données ICMP lorsqu’il est combiné avec l’en-tête de 8 octets. Cette commande envoie 43 octets :
$ ping -s 35 -c 5 8.8.8.8
Vous pouvez imprimer un horodatage avant chaque rapport de ping dans votre terminal avec le -D
option. Cela fournit l’heure d’époque UNIX, plus des microsecondes :
$ ping -D 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
[1634013430.297468] 64 bytes from 8.8.8.8: icmp_seq=1 ttl=116 time=53.3 ms
[1634013431.298738] 64 bytes from 8.8.8.8: icmp_seq=2 ttl=116 time=53.1 ms
Temps de ping
Vous pouvez modifier l’intervalle de temps entre les pings en utilisant le -i
option. Cela modifie l’intervalle de ping à deux secondes :
$ ping -s 2
Vous pouvez également arrêter le ping après une certaine valeur de temps (en secondes) avec le -w
option:
$ ping -w 6
Variantes
Il existe de nombreuses implémentations de ping. Les iputils
paquet fournit un ping
commande, Busybox a une ping
commande, et il y en a un de BSD et d’autres. Il y a même une interface graphique pour ping
: Gping est disponible pour Linux, macOS et Windows. Vous pouvez trouver plus d’informations pour gping
au Github.
Apprendre à cingler
Les ping
La commande est simple, mais cela peut être les yeux et les oreilles sur la vaste étendue qu’est votre réseau. La prochaine fois que vous rencontrerez des problèmes de connectivité, laissez ping
soyez le premier outil vers lequel vous vous tournez.