NOM
icmp, IPPROTO_ICMP - Module ICMP IPv4 du noyau Linux.
Ce module du noyau implémente le protocole ICMP (Internet Control
Message Protocol) défini dans la RFC 792. Il sert pour diagnostiquer et
indiquer des conditions d’erreurs. L’utilisateur n’interagit pas
directement avec ce module. À la place, il communique avec les autres
protocoles dans le noyau, et ceux-ci transmettent les erreurs ICMP aux
couches applicatives. Ce module répond également aux requêtes ICMP.
Un protocole utilisateur peut recevoir des paquets ICMP pour toutes les
sockets locales en utilisant une socket raw avec le protocole
IPPROTO_ICMP. Voir la page raw(7) pour plus de détails. Les types de
paquets ICMP transmis à la socket peuvent être filtrés en utilisant
l’option ICMP_FILTER de la socket. Les paquets ICMP sont toujours
traités par le noyau aussi, même lorsqu’ils sont transmis à une socket
utilisateur.
Linux limite le débit des paquets d’erreurs ICMP pour chaque
destination. ICMP_REDIRECT et ICMP_DEST_UNREACH sont aussi limitées par
la route de destination des paquets entrants.
Interfaces /proc
ICMP prend en charge une série d’interfaces /proc pour configurer
certains paramètres IP globaux. Ces paramètre sont accessibles en
lisant ou écrivant les fichiers du répertoire /proc/sys/net/ipv4/. La
plupart de ces paramètres sont des limitations de débit pour des types
ICMP spécifiques. Linux 2.2 utilise un filtre à jeton pour limiter les
ICMPs. La valeur est un délai en jiffies jusqu’à ce que le filtre soit
vidé. Un jiffy est une unité de temps dépendant du système, en général
10ms sur i386 et environ 1ms sur alpha et ia64.
icmp_destunreach_rate (Linux 2.2 à 2.4.9)
Fréquence maximale pour envoyer des paquets ICMP « Destination
inaccessible ». Ceci limite le débit avec lequel ces paquets
sont émis vers des routes individuelles ou collectives. Cette
limite n’affecte par l’envoi des paquets ICMP_FRAG_NEEDED
nécessaire pour rechercher le MTU d’un chemin.
icmp_echo_ignore_all (depuis Linux 2.2)
Si cette valeur est non nulle, Linux ignorera toutes les
requêtes ICMP_ECHO.
icmp_echo_ignore_broadcasts (depuis Linux 2.2)
Si cette valeur est non nulle, Linux ignorera toutes les
requêtes ICMP_ECHO envoyées à une adresse broadcast.
icmp_echoreply_rate (Linux 2.2 à 2.4.9)
Vitesse maximale pour envoyer les paquets ICMP_ECHOREPLY en
réponse aux requêtes ICMP_ECHOREQUEST.
icmp_errors_use_inbound_ifaddr (booléen ; désactivé par défaut ; depuis
Linux 2.6.12)
Lorsqu’il est désactivé, les messages d’erreurs ICMP sont
envoyés avec l’adresse primaire de l’interface existante.
Lorsqu’il est activé, le message est envoyé avec l’adresse
primaire de l’interface qui a reçu le paquet qui a causé
l’erreur ICMP. Il s’agit du comportement que beaucoup
d’administrateurs réseau attendent d’un routeur. Et cela peut
faciliter le déboguage de réseaux complexes.
Notez que s’il n’y a pas d’adresse primaire pour l’interface
sélectionnée, l’adresse de la première interface n’étant pas une
interface de boucle (loopback) et ayant une adresse primaire
sera utilisée quelle que soit la configuration de ce booléen.
icmp_ignore_bogus_error_responses (booléen ; désactivé par défaut ;
depuis Linux 2.2)
Certains routeurs ne respectent pas la RFC 1122 et renvoient des
réponses erronées aux trames de diffusion générale. Ceci est
généralement enregistré dans les journaux comme des
avertissements par le noyau. Si ce paramètre est activé, le
noyau ne produira pas d’avertissement, ce qui évitera de
surcharger le fichier de journal.
icmp_paramprob_rate (Linux 2.2 à 2.4.9)
Débit maximal pour émettre les paquets ICMP_PARAMETERPROB.
Ceux-ci sont envoyés lorsqu’un paquet arrive avec un en-tête IP
invalide.
icmp_ratelimit (entier ; défaut : 1000 ; depuis Linux 2.4.10)
Limiter les taux maximum pour l’envoie de paquets ICMP dont le
type correspond à icmp_ratemask (voir ci-dessous). 0 désactive
toute limite, sinon il s’agit de l’intervalle minimum entre deux
réponses, en millisecondes.
icmp_ratemask (entier ; voir ci-dessous la valeur par défaut ; depuis
Linux 2.4.10)
Masque de types ICMP pour lesquels les taux sont limités.
bit significatifs : IHGFEDCBA9876543210
Masque par défaut : 0000001100000011000 (0x1818)
Définitions des bits (voir le fichier include/linux/icmp.h dans
les sources du noyau) :
0 Réponse Echo
3 Destination inaccessible *
4 Extinction de la source *
5 Redirection
8 Demande d’un Echo
B Temps dépassé *
C Problème de paramètre *
D Demande d’horodatage
E Horodatage en réponse
F Demande d’information
G Information en réponse
H Demande d’un masque de sous-réseau
I Masque de sous-réseau en réponse
Les bits marqués d’un astérisque sont limités par défaut (voir
le masque de bits par défaut ci-dessus).
icmp_timeexceed_rate (Linux 2.2 à 2.4.9)
Débit maximal pour émettre les paquets ICMP_TIME_EXCEEDED.
Ceux-ci sont envoyés pour empêcher les boucles quand un paquet a
réalisé trop de sauts.
VERSIONS
Le support pour les requêtes ICMP_ADDRESS a été supprimé dans le noyau
2.2.
Le support pour ICMP_SOURCE_QUENCH a été supprimé dans Linux 2.2.
NOTES
Comme beaucoup d’autres implémentations ne supportent pas les socket
raw IPPROTO_ICMP, on ne doit pas se reposer sur cette fonctionnalité
dans les programmes portables.
Les paquets ICMP_REDIRECT ne sont pas envoyés quand Linux ne fonctionne
pas en routeur. Ils ne sont également acceptés que d’une passerelle
précédemment définie dans la table de routage, et les routes de
redirection expirent après un certain délai.
L’horodatage 64 bits renvoyé par ICMP_TIMESTAMP est en millisecondes
depuis le 1er janvier 1970.
En interne, l’ICMP Linux utilise une socket raw pour envoyer les ICMPs.
Cette socket peut apparaître dans la sortie de netstat(8) avec un inœud
nul.
VOIR AUSSI
ip(7)
RFC 792 pour une description du protocole ICMP.
COLOPHON
Cette page fait partie de la publication 3.23 du projet man-pages
Linux. Une description du projet et des instructions pour signaler des
anomalies peuvent être trouvées à l’adresse
http://www.kernel.org/doc/man-pages/.
TRADUCTION
Cette page de manuel a été traduite et mise à jour par Christophe
Blaess <http://www.blaess.fr/christophe/> entre 1996 et 2003, puis par
Alain Portal <aportal AT univ-montp2 DOT fr> jusqu’en 2006, et mise à
disposition sur http://manpagesfr.free.fr/.
Les mises à jour et corrections de la version présente dans Debian sont
directement gérées par Julien Cristau <jcristau@debian.org> et l’équipe
francophone de traduction de Debian.
Veuillez signaler toute erreur de traduction en écrivant à
<debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
paquet manpages-fr.
Vous pouvez toujours avoir accès à la version anglaise de ce document
en utilisant la commande « man -L C <section> <page_de_man> ».