Les requêtes ICMP sont souvent utilisées pour savoir si un serveur est actuellement en ligne. La vérification de la disponibilité d'un nœud s'effectue avec la commande ping précisant l'adresse IP.
ping xx.123.xx.123
Exchange of packets from xx.123.xx.123 to 32 bytes of data:
Response from xx.123.xx.123: number of bytes=32 time=3ms TTL=64
Response from xx.123.xx.123: number of bytes=32 time=3ms TTL=64
Dans le même temps, le serveur distant envoie des réponses à ce moment-là et d'après le résultat de la commande, il est clair qu'elle est disponible.
Dans ce cas, sur le serveur distant auquel nous envoyons les requêtes, il n'y aura aucune donnée d'événement dans le journal. Parfois, vous devez savoir qui envoie actuellement des requêtes icmp, pour cela nous utiliserons l'utilitaire tcpdump
1. Installez tcpdump
apt update
apt install tcpdump
2. Définir l'interface réseau
apt install net-tools
ifconfig
La commande affichera toutes les interfaces réseau et nous devons sélectionner celle sur laquelle nous écouterons les paquets, dans notre cas enp3s0
tcpdump -i enp3s0 icmp and icmp[icmptype]=icmp-echo -n
listening on enp3s0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
21:52:20.352600 IP xx.234.xx.234 > xx.123.xx.123: ICMP echo request, id 1, seq 57, length 40
21:52:21.360715 IP xx.234.xx.234 > xx.123.xx.123: ICMP echo request, id 1, seq 58, length 40
Pour écrire dans un fichier, utilisez la commande :
tcpdump -i enp3s0 icmp and icmp[icmptype]=icmp-echo -n >> /var/log/ping.log
Cette commande écrira dans un fichier toutes les adresses IP ayant déjà accédé à cet hôte en utilisant le protocole icmp.
Nous vous déconseillons de laisser cette commande activée en permanence, car elle gaspille des ressources matérielles. Cet exemple est destiné à être utilisé à des fins de débogage.