ping LG #56 Pat Eyler ping

Par Pat Eyler Un aperçu de ping

Ping est un outil de diagnostic qui permet de s'assurer de la connexion entre deux machines sur un réseau. Il envoie des paquets contenant des demandes d'écho ICMP vers une adresse IP distante et se met à l'écoute de réponses ICMP. L'auteur de la première version du programme ping que nous utilisons aujourd'hui était Mike Muss. Depuis, beaucoup d'autres ont peaufiné, réécrit et molesté ping de diverses façons. L'origine du nom ping est assez pittoresque. Certaines personnes affirment que c'est l'acronyme de Packet~INternet~Groper mais ce n'est pas le cas. Il tire son nom d'un système de détection par sonar. On connaît même l'histoire d'un administrateur ayant écrit un script qui «~pinguait~» continuellement une machine du réseau en émettant un signal d'alerte sonore qui faisait «~ping~» à chaque succès. Ensuite, il pouvait aller inspecter méthodiquement tous les connecteurs BNC de son réseau jusqu'à trouver le responsable de tous les maux de son réseau~: quand le signal s'arrêtait, il avait trouvé le fautif. Ping a longtemps été un très bon indicateur de la capacité des machines à recevoir et envoyer des paquets ICMP. Si vous pouviez «~pinguer~» un hôte, vous pouviez aussi établir une connexion ftp ou http. C'est moins le cas avec la généralisation du filtrage de paquets pour des raisons de sécurité. Beaucoup de pare-feu interdisent explicitement les paquets ICMP pour deux motifs~: les gens n'ont pas besoin de connaître les détails de votre réseau et, n'importe quel protocole peut servir à lancer une attaque, même ICMP. La décision de laisser ICMP passer par votre pare-feu est difficile à prendre. On peut certainement trouver à ICMP des utilisations intéressantes mais il peut aussi être le point de départ d'attaques (p. ex., le «~Ping de la Mort~» ("Ping of Death"), qui envoyait des paquets surdimensionnés pour engorger la pile IP de la cible --~avec souvent des effets spectaculaires). Si vous décidez d'autoriser ICMP dans votre réseau, réfléchissez bien aux conséquences. Des variantes de la commande ping ont été écrites pour d'autres usages. Parmi les plus connues, fping, qui a été conçue pour Exemple~1. Utilisation de Net::Perl

#!/usr/bin/perl -w use strict; use Net::Ping; my $host = $ARGV[0]; my $p = Net::Ping->new("icmp"); if ($p->ping($host)) { print "$host est vivant.\n"; } else { print "$host est hors d'atteinte.\n"; } ping au travail

La plupart du temps, ping est lancé sans autres arguments et arrêté avec un [pate@cherry pate]$ ping mango PING mango (192.168.1.1) from 192.168.1.10 : 56(84) bytes of data. 64 bytes from mango (192.168.1.1): icmp_seq=0 ttl=255 time=0.5 ms 64 bytes from mango (192.168.1.1): icmp_seq=1 ttl=255 time=0.3 ms 64 bytes from mango (192.168.1.1): icmp_seq=2 ttl=255 time=0.3 ms 64 bytes from mango (192.168.1.1): icmp_seq=3 ttl=255 time=0.3 ms 64 bytes from mango (192.168.1.1): icmp_seq=4 ttl=255 time=0.3 ms 64 bytes from mango (192.168.1.1): icmp_seq=5 ttl=255 time=0.3 ms --- mango ping statistics --- 6 packets transmitted, 6 packets received, 0% packet loss round-trip min/avg/max = 0.3/0.3/0.5 ms [pate@cherry pate]$ On peut diviser cette sortie en trois sections. La première, la simple ligne qui commence par le mot Tableau~1. Les options de la commande ping

On peut combiner ces options pour rendre ping encore plus utile. La commande ping telle qu'utilisée précédemment ne permet pas de se rendre compte qu'elle peut prendre plusieurs secondes pour être exécutée et retourner ses diagnostics. L'option [root@cherry /root]# ping -c 10 -fq mango PING mango (192.168.1.1) from 192.168.1.10 : 56(84) bytes of data. --- mango ping statistics --- 10 packets transmitted, 10 packets received, 0% packet loss round-trip min/avg/max = 0.2/0.2/0.9 ms [root@cherry /root]# NB~: Les options PING tbr.nailed.org (206.66.240.72) from 192.168.1.10 : 56(124) bytes of data. 64 bytes from bigfun.whirlycott.com (206.66.240.72): icmp_seq=0 ttl=239 time=217.2 ms RR: 192.168.1.10 216.41.39.90 serial0.mmgw32.bos1.Level3.net (209.244.39.25) 208.218.130.22 166.90.184.2 so-6-0-0.mp2.NewYork1.level3.net (209.247.10.45) 137.39.52.10 180.ATM7-0.BR2.NYC9.ALTER.NET (152.63.22.229) lo0.XR2.NYC9.ALTER.NET (137.39.4.175) 64 bytes from bigfun.whirlycott.com (206.66.240.72): icmp_seq=1 ttl=239 time=1940.8 ms (same route) 64 bytes from bigfun.whirlycott.com (206.66.240.72): icmp_seq=2 ttl=239 time=250.6 ms (same route) 64 bytes from bigfun.whirlycott.com (206.66.240.72): icmp_seq=3 ttl=239 time=230.3 ms (same route) 64 bytes from bigfun.whirlycott.com (206.66.240.72): icmp_seq=4 ttl=239 time=289.8 ms (same route) 64 bytes from bigfun.whirlycott.com (206.66.240.72): icmp_seq=5 ttl=239 time=1261.4 ms (same route) 64 bytes from bigfun.whirlycott.com (206.66.240.72): icmp_seq=6 ttl=239 time=469.4 ms (same route) 64 bytes from bigfun.whirlycott.com (206.66.240.72): icmp_seq=7 ttl=239 time=1272.3 ms (same route) 64 bytes from bigfun.whirlycott.com (206.66.240.72): icmp_seq=8 ttl=239 time=353.1 ms (same route) 64 bytes from bigfun.whirlycott.com (206.66.240.72): icmp_seq=9 ttl=239 time=1281.1 ms (same route) --- tbr.nailed.org ping statistics --- 10 packets transmitted, 10 packets received, 0% packet loss round-trip min/avg/max = 217.2/756.6/1940.8 ms NB~: L'option Copyright © 2000, Pat Eyler et New Riders Publishing. Cet article est publié sous la licence , sans aucune mention additionnelle. C'est le brouillon d'une section du livre «~Networking Linux: A Practical Guide to TCP/IP~», qui sera publié par l'hiver prochain. Paru dans le numéro 56 de la Linux Gazette d'août 2000.

Traduction française de Joel SAGNES.