Le protocole ICMP (Internet Control Message Protocol) est un protocole de couche réseau utilisé par les routeurs et les hôtes pour signaler des erreurs et échanger des informations opérationnelles : destinations inaccessibles, paquets ayant dépassé le délai d'attente, ainsi que les requêtes et réponses d'écho. Il ne transporte pas de données utilisateur en soi ; son rôle est de signaler ce qui est arrivé au trafic IP, ce qui en fait la base d'outils tels que ping et traceroute.
Points clés à retenir
- Le protocole ICMP signale les erreurs et fournit des informations de diagnostic concernant le trafic IP, et non les données utilisateur.
- Les messages de requête et de réponse « echo » constituent le principe de fonctionnement de l'utilitaire ping.
- Les appareils VOS utilisent des sondes ICMP pour la surveillance des accords de niveau de service (SLA) et la vérification de l'intégrité des routes.
- Les messages de dépassement de délai permettent à traceroute de déterminer le chemin étape par étape.
- Dans VOS, le protocole ICMP peut être désactivé, activé ou configuré de manière variable pour chaque interface WAN.
Sur cette page : Pourquoi est-ce important ?Comment ça marcheTypesICMP et VersaFAQ
Pourquoi le protocole ICMP est-il important ?
Le protocole ICMP permet à la couche réseau de communiquer sur son propre état. Sans lui, un routeur qui rejette un paquet parce que la destination est inaccessible ou parce que son TTL a expiré n’aurait aucun moyen d’en informer l’expéditeur : les paquets disparaîtraient tout simplement, et chaque défaillance se présenterait de la même manière : le silence. L’ICMP transforme ce silence en un signal explicite : destination inaccessible, délai dépassé, fragmentation nécessaire. C’est ce signal qui permet aux terminaux et aux outils de gestion de faire la distinction entre « le réseau est lent » et « le réseau est en panne », et c’est la base de deux des utilitaires les plus fondamentaux du réseau : ping et traceroute.
L’importance de l’ICMP transparaît également dans les opérations quotidiennes. Tout réseau tenant compte des chemins de routage a besoin d’un moyen léger de se demander « ce prochain saut est-il toujours là ? » plusieurs fois par seconde sur de nombreuses liaisons ; une sonde lourde au niveau de la couche application serait trop coûteuse à exécuter à cette échelle. Les requêtes d’écho ICMP constituent la réponse la moins coûteuse possible à cette question. C’est pourquoi les contrôles de disponibilité, les moniteurs de routes statiques et les sondes SLA dans l’ensemble du secteur – y compris les déploiements VOS – s’appuient sur ce protocole comme type de sonde par défaut, aux côtés du DNS et du TCP.
Qu'est-ce que l'ICMP ?
Les messages ICMP circulent à l’intérieur des paquets IP – protocole numéro 1 pour IPv4, protocole numéro 58 pour ICMPv6 – mais ils ne sont pas acheminés via un protocole de la couche de transport tel que TCP ou UDP ; il n’y a donc pas de ports impliqués. Chaque message comporte un type et un code qui, ensemble, identifient ce qui s’est produit : le type 8 correspond à une requête d’écho, le type 0 à une réponse d’écho, le type 3 à une destination inaccessible (avec des codes indiquant notamment que l’hôte, le réseau ou le port est inaccessible), et le type 11 à un dépassement de délai, envoyé lorsque le TTL d’un paquet atteint zéro.
Comme l’ICMP rend compte de la transmission IP elle-même, les routeurs le génèrent automatiquement à mesure que les paquets transitent sur le réseau – un hôte n’a jamais besoin de le demander. C’est ce qui rend le traceroute possible : il envoie des paquets avec des valeurs TTL croissantes et lit les réponses de délai dépassé provenant de chaque saut le long du chemin. C’est également la raison pour laquelle l’ICMP est souvent visé par les politiques de pare-feu : comme il s’agit d’un protocole automatique et de bas niveau, un ICMP non restreint peut divulguer des informations sur la topologie du réseau ou être utilisé à des fins de reconnaissance ; c’est pourquoi la plupart des réseaux l’autorisent de manière sélective plutôt que de le permettre sans condition.
Types de protocoles ICMP
Il existe deux versions du protocole. ICMPv4 (RFC 792) est la version d'origine, utilisée avec IPv4, qui couvre les messages d'écho, d'inaccessibilité, de redirection et de dépassement de délai. ICMPv6 (RFC 4443) est destiné à IPv6 et prend en charge les fonctions qu'IPv4 délègue à d'autres protocoles : la découverte des voisins et la configuration automatique d'adresses sans état s'effectuent toutes deux via ICMPv6 plutôt que par le biais d'un protocole distinct.
Au sein de chaque version, les messages se divisent en deux catégories. Les messages d’erreur – destination inaccessible, délai dépassé, problème de paramètre – signalent un échec de transmission à l’expéditeur d’origine. Les messages d’information – requête/réponse d’écho, annonce/sollicitation de routeur – ne contiennent aucune erreur ; il s’agit de requêtes et de réponses utilisées à des fins de diagnostic et de découverte. La commande « ping » utilise la paire d’informations ; la commande « traceroute » s’appuie sur la paire d’erreurs. La majeure partie du trafic ICMP opérationnel, y compris la surveillance des SLA et de l’accessibilité, repose sur ce même petit ensemble de messages d’écho et d’erreur plutôt que sur les options moins courantes du protocole.
ICMP et Versa
L'ICMP est une option à part entière dans la configuration des interfaces VOS, et non un simple ajout après coup. Les interfaces WAN – physiques, PPPoE et de bouclage – peuvent chacune être configurées sur « Désactivé », « Activé » ou « Variable » pour la transmission ICMP, ce qui permet à l'opérateur de choisir l'exposition au cas par appareil et par interface via la configuration des interfaces WAN dans Concerto. Les sous-interfaces disposent d’un commutateur « Réponse ICMP » ainsi que de paramètres d’intervalle et de seuil de signalement d’erreurs, configurables dans la section « Configurer les interfaces » ; les appareils VOS répondent par défaut aux requêtes ICMP, mais ce comportement peut être désactivé.
Au-delà de la politique d’interface, VOS utilise l’ICMP comme sonde de surveillance. Les routes statiques peuvent être associées à des objets de surveillance basés sur l’ICMP qui retirent une route en cas d’échec des sondes, et les mesures SLA du SD-WAN utilisent l’ICMP, aux côtés du DNS et du TCP, comme types de sondes de surveillance active pour la sélection des chemins et la surveillance des applications SaaS, comme décrit dans le guide de conception du SD-WAN. Dans les topologies de succursales à haute disponibilité (HA) de type actif-actif, c’est la surveillance ICMP sur la liaison de connexion croisée qui détecte la défaillance d’un périphérique homologue et déclenche le retrait de la route statique.
Questions fréquentes
Quelle est la différence entre ICMP et TCP ou UDP ?
TCP et UDP sont des protocoles de la couche transport qui acheminent les données d'application entre des ports ; ICMP est un protocole de la couche réseau, dépourvu de ports, qui transmet des messages opérationnels et d'erreur concernant la transmission IP elle-même. ICMP ne remplace aucun des deux : il fournit des informations sur le réseau, mais ne transporte pas le trafic d'application.
Pourquoi la commande « ping » utilise-t-elle le protocole ICMP ?
La commande « ping » envoie une requête d'écho ICMP et attend une réponse d'écho. Cet échange ne nécessite ni application, ni port, ni état de session : il suffit de deux hôtes capables de traiter le protocole IP. Cela en fait donc le test le plus simple qui soit pour vérifier l'accessibilité de base et la latence aller-retour entre deux points.
Pourquoi les pare-feu bloquent-ils ou limitent-ils le protocole ICMP ?
Comme les messages ICMP sont générés automatiquement et fonctionnent en dessous de la couche application, un trafic ICMP non restreint peut révéler la topologie interne à un scanner ou être détourné à des fins d'attaques par inondation ou par réflexion. La plupart des politiques de pare-feu autorisent certains types de messages spécifiques – « echo » et « destination inaccessible » – tout en bloquant ou en limitant le débit des autres.
Quelle est la différence entre ICMPv4 et ICMPv6 ?
ICMPv4 (RFC 792) gère les messages d'erreur et de diagnostic pour IPv4. ICMPv6 (RFC 4443) remplit la même fonction pour IPv6, mais intègre également des fonctions que IPv4 traitait séparément, notamment la découverte des voisins et la configuration automatique d'adresses sans état, ce qui lui confère un rôle plus central dans le fonctionnement des réseaux IPv6.
Comment le traceroute utilise-t-il le protocole ICMP ?
Traceroute envoie une séquence de paquets dont les valeurs TTL augmentent progressivement. Chaque routeur qui rejette un paquet périmé renvoie un message ICMP de délai dépassé, se révélant ainsi comme un saut ; lorsque la destination finit par répondre, Traceroute a reconstitué le chemin complet, un saut à la fois.
En savoir plus sur l'ICMP
Si vous souhaitez en savoir plus, voici des sources auxquelles nous faisons confiance.
| RFC 792 : Protocole de messages de contrôle Internet | RFC 4443 : ICMPv6 |
|---|---|
| La spécification originale de l'IETF définissant les types, les codes et les formats des messages ICMP pour les réseaux IPv4. | La spécification complémentaire IPv6, qui intègre la découverte des voisins et la configuration automatique des adresses au protocole ICMP. |
Termes associés
Si vous vous intéressez à l'ICMP, voici quelques liens qui pourraient vous intéresser.
| Réseau étendu | Réseau | Acheminement du trafic |
|---|---|---|
| Les liaisons de transport externes (haut débit, MPLS, sans fil) pour lesquelles le protocole ICMP peut être activé, désactivé ou configuré de manière variable selon l'interface. | L'objet de configuration VOS qui regroupe les interfaces ; les paramètres ICMP et les surveillances s'appliquent au niveau de cette interface et de ce réseau. | La fonctionnalité SD-WAN qui utilise des sondes SLA basées sur le protocole ICMP, ainsi que les protocoles DNS et TCP, pour évaluer l'état du chemin et orienter le trafic des applications. |