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 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.
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 (Linux 2.2 to 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 (Linux 2.2 to 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 (Linux 2.2 to 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 (Linux 2.2 to 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.
Support for the
ICMP_ADDRESS request was removed in Linux 2.2.
La prise en charge pour
ICMP_SOURCE_QUENCH a été
supprimée dans Linux 2.2.
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.
ip(7),
rdisc(8)
RFC 792 pour une description du protocole ICMP.
La traduction française de cette page de manuel a été
créée par Christophe Blaess
<
https://www.blaess.fr/christophe/>, Stéphan Rafin
<
[email protected]>, Thierry Vignaud
<
[email protected]>, François Micaux, Alain Portal
<
[email protected]>, Jean-Philippe Guérard
<
[email protected]>, Jean-Luc Coulon (f5ibh)
<
[email protected]>, Julien Cristau
<
[email protected]>, Thomas Huriaux <
[email protected]>,
Nicolas François <
[email protected]>, Florentin
Duneau <
[email protected]>, Simon Paillard
<
[email protected]>, Denis Barbier
<
[email protected]>, David Prévot <
[email protected]> et
Jean-Paul Guillonneau <
[email protected]>
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 à
[email protected]