Protocole de message de contrôle Internet

ICMP (Internet Control Message Protocol)
Famille: Famille de protocoles Internet
Zone d'opération : Ajout obligatoire

au protocole Internet ,
messages d'erreur, diagnostics

ICMP sur la pile de protocoles TCP/IP
l'Internet ICMP
IPv4
L'accès au réseau Ethernet
Bus à jetons

Anneau de jeton
FDDI ...
Normes: RFC 792 (1981)

L' Internet Control Message Protocol ( ICMP ) est utilisé dans les réseaux informatiques pour échanger des informations et des messages d'erreur via Internet Protocol version 4 ( IPv4 ). Un protocole similaire appelé ICMPv6 existe pour IPv6 .

ICMP fait partie d'IPv4, mais est traité comme un protocole distinct. Chaque routeur et chaque ordinateur est censé « comprendre » ICMP. La plupart des paquets ICMP contiennent des informations de diagnostic : ils sont renvoyés du routeur à la source si le routeur rejette des paquets, par exemple parce que la destination ne peut pas être atteinte ou que la durée de vie a expiré. Les principes suivants s'appliquent :

  • ICMP utilise IP comme base de communication en s'interprétant comme un protocole d'une couche supérieure, c'est-à-dire. H. Les messages ICMP sont encapsulés dans des paquets IP.
  • ICMP détecte certaines conditions d'erreur mais ne fait pas d'IP un protocole fiable.
  • ICMP analyse les erreurs dans chaque paquet IP, à l'exception de ceux qui transportent un message ICMP.
  • Les messages ICMP ne sont pas envoyés en réponse aux paquets vers des adresses de destination qui sont des adresses de multidiffusion ou de diffusion.
  • Les messages ICMP ne répondent qu'à une adresse IP source unique.

Les types de paquets ICMP

Le type du paquet ICMP est un nombre de 8 bits au début de l'en- tête ICMP . Les nombres ont les significations suivantes :

  • 0 = écho (réponse)
  • 1–2 = non attribué
  • 3 = la destination du datagramme ne peut pas être atteinte
  • 4 = demande de limitation de la livraison du colis
  • 5 = Recommandation de redirection vers une autre passerelle sur le même réseau avec une connexion plus rapide vers la destination
  • 6 = adresse hôte alternative
  • 7 = non attribué
  • 8 = demande d'écho
  • 9 = offre d'un routeur
  • 10 = recrutement de routeur
  • 11 = délai d'attente
  • 12 = Problème avec les paramètres du datagramme
  • 13 = horodatage (facilite la synchronisation de l'heure)
  • 14 = horodatage (réponse)
  • 15 = "Demande d'information" (pour déterminer le numéro de réseau, remplacé par DHCP )
  • 16 = "Réponse d'information"
  • 17 = demander le masque de réseau
  • 18 = réponse masque de réseau
  • 19 = réservé (pour la sécurité)
  • 20–29 = réservé (pour les expériences de robustesse)
  • 30 = traceroute
  • 31 = Erreur lors de la conversion du datagramme
  • 32 = Redirection hôte mobile
  • 33 = à l'origine IPv6 Where-Are-You (remplacé par ICMPv6 )
  • 34 = à l'origine IPv6 I-Am-Here (remplacé par ICMPv6 )
  • 35 = Demande d'inscription mobile
  • 36 = Réponse d'inscription mobile
  • 37 = Demande de nom de domaine
  • 38 = Réponse de nom de domaine
  • 39 = SKIP
  • 40 = photo
  • 41 = utilisé par les protocoles de mobilité expérimentaux tels que Seamoby
  • 42 = écho étendu *
  • 43 = écho étendu (réponse) *
  • 44-252 = non attribué
  • 253 = expérience 1 selon RFC 3692
  • 254 = Expérience 2 selon RFC 3692

[†] aboli

Temps de vivre

Pour éviter que des paquets ne soient envoyés sans fin sur un réseau (par exemple dans un cercle entre plusieurs routeurs), un routeur réduit la valeur TTL de 1. Lorsque la valeur TTL atteint la valeur 0, le paquet est supprimé et l'expéditeur informe de ce processus via un message ICMP. Traceroute utilise ce mécanisme .

Afin de déterminer la route (les sauts ) d'un paquet vers un hôte de destination spécifique , le programme d'analyse de traceroute envoie des paquets de données avec un Time-To-Live (TTL) incrémentiel (commençant par 1) et attend "Time to live dépassé en transit" ou des messages "Destination inaccessible" en réaction. Selon l'implémentation ou une option sélectionnée de Traceroute, ceux-ci peuvent être des paquets ICMP (par exemple sous Windows) ou UDP (par exemple sous Linux).

construction

ICMP envoie et reçoit une grande variété de messages. Le message ICMP est indiqué par le numéro de protocole 1 dans l'en-tête IP. ICMPv6, d'autre part, a le numéro de protocole 58. Le format de message ICMP se compose de seulement quelques champs :

0 4e 8e 12e 16 20e 24 28 31
Taper code Somme de contrôle
Données (facultatif)

Le champ type spécifie le message. Le champ code interprète plus précisément le type de message. Les données contiennent généralement une partie du message IP d'origine. Certaines des combinaisons de codes de type les plus courantes sont :

Taper Tapez le nom code sens
0 Réponse d'écho 0 Réponse d'écho
3 Destination non réalisable 0 Le réseau ne peut pas être atteint
1 L'hôte (station cible) ne peut pas être atteint
2 Le protocole ne peut pas être atteint
3 Le port ne peut pas être atteint
4e Fragmentation nécessaire D on't F ragment mais ensemble
5 Route pas possible (la direction est incorrectement spécifiée dans le champ d'option d'en-tête IP)
13e Communication interdite administrativement (le paquet est bloqué par le pare-feu du destinataire)
4e Soulager la source 0 Datagramme rejeté car la file d'attente est pleine
8e Demande d'écho 0 Demande d'écho (mieux connue sous le nom de " ping ")
11 Délai dépassé 0 TTL (Time To Live) expiré
1 La défragmentation a expiré

Dans le cas de nombreux messages ICMP, un champ supplémentaire « Données » contient des informations plus détaillées sur l'affectation du message ICMP dans le premier mot de 32 bits. Souvent à partir du deuxième mot de données, l'en-tête IP du datagramme initiateur et les 32 premiers bits du paquet sont également transmis. Le champ « data » peut cependant aussi être utilisé à mauvais escient pour transmettre des données utilisateur ( tunneling ICMP ). Cependant, le traitement d'erreur ou la correction d'erreur nécessaire et similaire doit alors être mis en œuvre au niveau de l'application.

Aspects liés à la sécurité

L'Internet Control Message Protocol peut être utilisé pour une attaque par déni de service (DoS) ou par déni de service distribué (DDoS) sur un appareil. Un appareil peut également être utilisé à mauvais escient par un attaquant dans le cadre d'une attaque DDoS pour attaquer un troisième appareil. Les méthodes d'attaque typiques sont l' attaque schtroumpf , l' inondation ou le ping de la mort . Une autre possibilité d'utiliser le protocole ICMP est de l'utiliser pour la transmission de données non autorisée via la connexion tunnel ICMP .

liens web

  • RFC 792 . - Protocole de message de contrôle Internet . [Errata : RFC 792 ]. Septembre 1989. (Mise à jour par RFC 950  - Anglais).
  • RFC 1122 . - Exigences pour les hôtes Internet - Couches de communication . [Errata : RFC 1122 ]. Octobre 1989. (Mise à jour par RFC 1349  - également pour d'autres extensions ICMP - Anglais).
  • Paramètres ICMP IANA - liste complète des types et codes ICMP

Preuve individuelle

  1. paramètres Internet Control Message Protocol (ICMP). IANA, 15 juin 2018, consulté le 9 décembre 2018 .
  2. ^ J. Postel :  RFC 792  - Internet Control Message Protocol . Septembre 1989. P. 18. ( DARPA Internet Program Protocol Specification. Vers la p. 19 - Anglais).
  3. © F. Gont :  RFC 6918 . - Dépréciation formelle de certains types de messages ICMPv4 . Avril 2013. (Remplace RFC 1788 - Anglais).
  4. ^ R. Bonica, R. Thomas, J. Linkova, C. Lenart, M. Boucadair :  RFC 8335 . - PROBE : Un utilitaire pour sonder les interfaces . Février 2018. (Norme proposée).