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 toutes les sockets
locales en utilisant une socket
raw avec le protocole
IPPROTO_ICMP. Consultez 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 ». Cela 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. C’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 incorrect.
- 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 (consultez le fichier
include/linux/icmp.h dans les sources du noyau Linux) :
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¶
La prise en charge des requêtes
ICMP_ADDRESS a été
supprimée dans le noyau 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
socket raw
IPPROTO_ICMP, les programmes portables ne doivent pas se
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 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.65 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¶
Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a
<
http://po4a.alioth.debian.org/> par l'équipe de traduction
francophone au sein du projet perkamon
<
http://perkamon.alioth.debian.org/>.
Christophe Blaess <
http://www.blaess.fr/christophe/> (1996-2003), Alain
Portal <
http://manpagesfr.free.fr/> (2003-2006). Julien Cristau et
l'équipe francophone de traduction de Debian (2006-2009).
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> ».