icmp
Table des matières
Retour à l'index
NOM
icmp – Module ICMP IPv4 du noyau Linux
DESCRIPTION
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 tous les
sockets locaux en utilisant un socket raw avec le protocole
IPPROTO_ICMP. Consultez la page raw(7) pour plus de détails. Les types
de paquets ICMP transmis au socket peuvent être filtrés en utilisant
l'option ICMP_FILTER du socket. Les paquets ICMP sont aussi toujours
traités par le noyau, même lorsqu'ils sont transmis à un 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.
/proc interfaces
ICMP prend en charge une série d'interfaces /proc pour configurer
certains paramètres IP globaux. Ces paramètres 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 de seau à jeton (token bucket) pour
limiter les ICMP. La valeur est un délai en jiffies jusqu'à ce que le filtre
soit vidé après une salve. Un jiffy est une unité de temps dépendant du
système, en général 10 ms sur i386 et environ 1 ms sur alpha et ia64.
- icmp_destunreach_rate (de Linux 2.2 à Linux 2.4.9)
-
Fréquence maximale pour envoyer des paquets ICMP « Destination
inaccessible ». Cela limite le débit avec lequel ces paquets sont émis vers
des routes individuelles ou collectives. Cette limite n'affecte pas l'envoi
des paquets ICMP_FRAG_NEEDED nécessaires pour la découverte de la MTU de
chemin.
- icmp_echo_ignore_all (depuis Linux 2.2)
-
Si cette valeur est différente de zéro, Linux ignorera toutes les requêtes
ICMP_ECHO.
- icmp_echo_ignore_broadcasts (depuis Linux 2.2)
-
Si cette valeur est différente de zéro, Linux ignorera tous les paquets
ICMP_ECHO envoyés à une adresse de diffusion générale (broadcast).
- icmp_echoreply_rate (de Linux 2.2 à Linux 2.4.9)
-
Vitesse maximale pour envoyer les paquets ICMP_ECHOREPLY en réponse aux
paquets 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ébogage 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. C’est généralement enregistré
dans les journaux au moyen d'un avertissement du 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 (de Linux 2.2 à Linux 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 incorrect.
- icmp_ratelimit (entier ; défaut : 1000 ; depuis Linux 2.4.10)
-
Limiter les taux maximaux pour l'envoi de paquets ICMP dont le type
correspond à icmp_ratemask (voir ci-dessous). Zéro désactive toute
limite, sinon il s'agit de l'intervalle minimal entre deux réponses, en
millisecondes.
- icmp_ratemask (entier ; voir ci-dessous la valeur par défaut ; depuis Linux 2.4.10)
-
Masque composé de types ICMP pour lesquels les taux sont limités.
-
Bits significatifs : IHGFEDCBA9876543210
Masque par défaut : 0000001100000011000 (0x1818)
-
Définitions des bits (consultez le fichier include/linux/icmp.h dans les
sources du noyau Linux) :
-
| 0 Réponse d’Echo |
|
| 3 Destination inaccessible * |
|
| 4 Extinction de la source * |
|
| 5 Redirection |
|
| 8 Demande d'Echo |
|
| B Temps dépassé * |
|
| C Problème de paramètre * |
|
| D Demande d’horodatage |
|
| E Réponse d’horodatage |
|
| F Demande d'information |
|
| G Réponse d’information |
|
| H Demande de masque d’adresse |
|
| I Réponse de masque d’adresse |
|
Les bits marqués d'un astérisque ont des limites de taux par défaut (voir le
masque de bits par défaut ci-dessus).
- icmp_timeexceed_rate (de Linux 2.2 à Linux 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
(hops).
- ping_group_range (deux entiers ; défaut : voir ci-dessous ; depuis Linux 2.6.39)
-
Intervalle des ID groupe (ID groupe minimal et ID groupe maximal inclus)
autorisé pour créer des sockets Echo ICMP. La valeur par défaut est « 1 0 »,
ce qui signifie qu’aucun groupe n’est autorisé à créer des sockets Echo
ICMP.
VERSIONS
La prise en charge des requêtes ICMP_ADDRESS a été supprimée dans Linux 2.2.
La prise en charge pour ICMP_SOURCE_QUENCH a été supprimée dans
Linux 2.2.
NOTES
Comme beaucoup d'autres implémentations ne prennent pas en charge les
sockets raw IPPROTO_ICMP, les programmes portables ne doivent pas reposer
sur cette fonctionnalité.
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 l'Époque, 1er janvier 1970 à 00:00:00 (UTC).
En interne, l'ICMP de Linux utilise un socket raw pour envoyer les ICMP. Ce
socket peut apparaître dans la sortie de netstat(8) avec un inœud
zéro.
VOIR AUSSI
ip(7), rdisc(8)
RFC 792 pour une description du protocole ICMP.
TRADUCTION
La traduction française de cette page de manuel a été créée par
Christophe Blaess <https://www.blaess.fr/christophe/>,
Stéphan Rafin <stephan.rafin@laposte.net>,
Thierry Vignaud <tvignaud@mandriva.com>,
François Micaux,
Alain Portal <aportal@univ-montp2.fr>,
Jean-Philippe Guérard <fevrier@tigreraye.org>,
Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>,
Julien Cristau <jcristau@debian.org>,
Thomas Huriaux <thomas.huriaux@gmail.com>,
Nicolas François <nicolas.francois@centraliens.net>,
Florentin Duneau <fduneau@gmail.com>,
Simon Paillard <simon.paillard@resel.enst-bretagne.fr>,
Denis Barbier <barbier@debian.org>,
David Prévot <david@tilapin.org>
et
Jean-Paul Guillonneau <guillonneau.jeanpaul@free.fr>
Cette traduction est une documentation libre ; veuillez vous reporter à la
GNU General Public License version 3
concernant les conditions de copie et
de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.
Si vous découvrez un bogue dans la traduction de cette page de manuel,
veuillez envoyer un message à
Index
- NOM
-
- DESCRIPTION
-
- /proc interfaces
-
- VERSIONS
-
- NOTES
-
- VOIR AUSSI
-
- TRADUCTION
-
This document was created by
man2html,
using the manual pages.
Time: 05:06:37 GMT, September 19, 2025