38
ICMP - Internet Control Message Protocol

ICMP - Internet Control Message Protocol. ICMP Introduction : ICMP est le protocole de contrôle des erreurs de IP Il permet aussi dadministrer sommairement

Embed Size (px)

Citation preview

Page 1: ICMP - Internet Control Message Protocol. ICMP Introduction : ICMP est le protocole de contrôle des erreurs de IP Il permet aussi dadministrer sommairement

ICMP - Internet Control Message Protocol

Page 2: ICMP - Internet Control Message Protocol. ICMP Introduction : ICMP est le protocole de contrôle des erreurs de IP Il permet aussi dadministrer sommairement

ICMP

Introduction :

ICMP est le protocole de contrôle des erreurs de IP

Il permet aussi d’administrer sommairement les réseaux IP

ICMP est très lié à IP

Les messages ICMP sont véhiculés dans des datagrammes IP

Page 3: ICMP - Internet Control Message Protocol. ICMP Introduction : ICMP est le protocole de contrôle des erreurs de IP Il permet aussi dadministrer sommairement

ICMP

Dans un système d'acheminement de paquets comme IP, les datagrammes véhiculés de routeurs en routeurs, peuvent se perdre entre l'émetteur et le récepteur

Cela peut survenir lorsqu'un routeur fait transiter un nombre de paquets supérieur à sa capacité de traitement

Ce qui ne rentre pas dans son tampon de réception est donc détruit

On appelle cette situation « encombrement de réseau » (en anglais: network congestion)

Page 4: ICMP - Internet Control Message Protocol. ICMP Introduction : ICMP est le protocole de contrôle des erreurs de IP Il permet aussi dadministrer sommairement

ICMP

Un routeur qui traite un paquet IP et qui ne parvient pas à le retransmettre vers le routeur suivant devra détruire le datagramme

Lorsqu’un routeur doit faire parvenir un datagramme au coupleur réseau d’un ordinateur éteint à ce moment précis, devra également détruire celui-ci

Le protocole ICMP permettra, dans ces situations, de constituer des messages d’informations pour avertir les applications concernées

Page 5: ICMP - Internet Control Message Protocol. ICMP Introduction : ICMP est le protocole de contrôle des erreurs de IP Il permet aussi dadministrer sommairement

ICMP

Ni l'expéditeur initial, ni les routeurs que le paquet a jusqu'à présent croisés sur son chemin ne peuvent prédire qu'un paquet sera ou pas abandonné ultérieurement

Si un paquet est perdu à n'importe quel moment entre deux routeurs il faut considérer que le paquet devra être réémis

Si un routeur abandonne un paquet, pour une raison ou pour une autre, il en informera l'expéditeur

Page 6: ICMP - Internet Control Message Protocol. ICMP Introduction : ICMP est le protocole de contrôle des erreurs de IP Il permet aussi dadministrer sommairement

ICMP

Le protocole ICMP aura pour rôle principal d’informer l’émetteur d’un problème survenu à un datagramme, dans un réseau considéré « peu sûr »

ICMP se positionne au même niveau que le protocole IP avec lequel il est étroitement lié

ICMP est un protocole utilisé par les serveurs hôtes et les routeurs pour s'informer réciproquement des perturbations de fonctionnement et de tous les événements ayant trait à la transmission de paquets IP

Page 7: ICMP - Internet Control Message Protocol. ICMP Introduction : ICMP est le protocole de contrôle des erreurs de IP Il permet aussi dadministrer sommairement

ICMP

Structure et envoi de messages ICMP :

Les messages ICMP sont emportés comme données de datagrammes IP dont le champ protocole vaudra 0x01

Les messages ICMP ne remontent pas jusqu'aux applications exécutées sur le système émetteur

Ce qui se passe au niveau ICMP reste transparent aux applications

Page 8: ICMP - Internet Control Message Protocol. ICMP Introduction : ICMP est le protocole de contrôle des erreurs de IP Il permet aussi dadministrer sommairement

ICMP

ICMP est constitué d’une vingtaine de messages différents

Chacun possède une structure particulière

Tous ces messages possèdent un en-tête commun de trois champs suivi des données ICMP

Les différents messages ICMP sont identifiés grâce à un champ TYPE de 8 bits suivi d’un champ CODE sur 8 bits permettant d’affiner la nature du message

Une somme de contrôle est prévue pour tous les messages ICMP

Page 9: ICMP - Internet Control Message Protocol. ICMP Introduction : ICMP est le protocole de contrôle des erreurs de IP Il permet aussi dadministrer sommairement

ICMP

Page 10: ICMP - Internet Control Message Protocol. ICMP Introduction : ICMP est le protocole de contrôle des erreurs de IP Il permet aussi dadministrer sommairement

ICMP

Champs du message ICMP :

Type (8 bits) Identifie chaque message

Code (8 bits) Permet la ventilation ultérieure de messages

Checksum (16 bits) Somme de contrôle de tous les mots dans le paquet ICMP

Page 11: ICMP - Internet Control Message Protocol. ICMP Introduction : ICMP est le protocole de contrôle des erreurs de IP Il permet aussi dadministrer sommairement

ICMP

Comme pour les datagrammes IP, la somme de contrôle est constituée en additionnant tous les mots (unités 16 bits) du message ICMP

Le contenu du champ de la somme de contrôle est considéré à 0 pour l'addition

Il en résulte une valeur sur 16 bits dont le complément unitaire est alors stocké dans le champ CHECKSUM de l'en-tête du message ICMP

Page 12: ICMP - Internet Control Message Protocol. ICMP Introduction : ICMP est le protocole de contrôle des erreurs de IP Il permet aussi dadministrer sommairement

ICMP

Le champ Type décide du traitement ultérieur du message ICMP

Ceux définis jusqu'à présent se rangent en trois catégories :

Messages d'erreur ICMP

Requêtes ICMP

Informations d'état ICMP

Page 13: ICMP - Internet Control Message Protocol. ICMP Introduction : ICMP est le protocole de contrôle des erreurs de IP Il permet aussi dadministrer sommairement

ICMP

En général, juste après le checksum ICMP, apparaît le début du datagramme initial qui a généré l’erreur

Dans le message ICMP, ni l'émetteur ni le récepteur du paquet ne sont nommés

Ceci ne s'avère en effet pas nécessaire car l'en-tête IP placé au tout début du message ICMP contient déjà cette information, sous la forme de l'adresse IP de l'expéditeur et du destinataire

Page 14: ICMP - Internet Control Message Protocol. ICMP Introduction : ICMP est le protocole de contrôle des erreurs de IP Il permet aussi dadministrer sommairement

ICMP

Type ICMP

Message ICMP Signification Défini dans

0 Echo Reply Réponse à une demande Echo RFC 792

3 Destination Unreachable

Le paquet lP n'a pu être distribué (la cible ne peut être atteinte) RFC 792

4 Source Quench Paquet IP non distribué pour cause d'embouteillage sur le réseau RFC 792

5 Redirect Demande de déviation des paquets IP sur un autre routeur RFC 792

8 Echo Demande à un serveur hôte de renvoyer un Echo Reply RFC 792

9 Router Advertisement Le routeur fait connaître son adresse lP (pour les serveurs hôtes auxquels manque cette information)

RFC 1256

10 Router Solicitation Demande à ce qu'un serveur hôte envoie des Router Advertisements RFC 1256

11 Time Exceeded La durée de vie d'un paquet IP est terminée RFC 792

12 Parameter Problem Valeur erronée dans un champ de l'en-tête lP RFC 792

13 Timestamp Demande de l'heure par un serveur hôte RFC 792

14 Timestamp Reply _ Réponse à une demande d'heure RFC 792

15 Information Request Demande de l'actuel numéro de réseau RFC 792

16 Information Reply Réponse de Information Request RFC 792

17 Address Mask Request Déterminer le masque de sous-réseau pour le réseau local actuel RFC 950

18 Address Mask RepIy Réponse à Address Mask Request RFC 950

Page 15: ICMP - Internet Control Message Protocol. ICMP Introduction : ICMP est le protocole de contrôle des erreurs de IP Il permet aussi dadministrer sommairement

ICMP

Outre les informations spécifiques aux messages, les messages ICMP de signal d'erreur contiennent toujours une partie du datagramme IP à l’origine du problème

Ceci correspond aux cinq mots longs de l'en-tête IP et aux huit premiers octets de la partie de données du datagramme

Cela doit offrir au récepteur du message la possibilité de reconnaître le paquet IP « perdu », afin de mettre en oeuvre éventuellement une retransmission si cela s'avère possible

Page 16: ICMP - Internet Control Message Protocol. ICMP Introduction : ICMP est le protocole de contrôle des erreurs de IP Il permet aussi dadministrer sommairement

ICMP

Le datagramme contenant le message ICMP est envoyé à l’émetteur d’origine

Il n’est pas envoyé au routeur précédent, ni à la destination

Le message d’erreur peut se perdre et dans ce cas, les protocoles de couches supérieures devront gérer le problème

Page 17: ICMP - Internet Control Message Protocol. ICMP Introduction : ICMP est le protocole de contrôle des erreurs de IP Il permet aussi dadministrer sommairement

ICMP

Dans certaines situations, il n'y a pas d’envoi de messages ICMP :

Quand le datagramme contient un message ICMP

Quand le datagramme est broadcast ou multicast

Quand le datagramme est un fragment

Ceci permet d’éviter la congestion du réseau

Page 18: ICMP - Internet Control Message Protocol. ICMP Introduction : ICMP est le protocole de contrôle des erreurs de IP Il permet aussi dadministrer sommairement

ICMP

Les messages ICMP les plus importants :

Destination Unreachable (message ICMP 3)

Ce message est le plus courant sur l’Internet

Il est généré lorsqu’un datagramme ne parvient pas à destination, en terme de réseau, d’hôte ou de service

Le sous-code permet d’affiner la raison de l’erreur

Page 19: ICMP - Internet Control Message Protocol. ICMP Introduction : ICMP est le protocole de contrôle des erreurs de IP Il permet aussi dadministrer sommairement

ICMP

Page 20: ICMP - Internet Control Message Protocol. ICMP Introduction : ICMP est le protocole de contrôle des erreurs de IP Il permet aussi dadministrer sommairement

ICMP

Type

Message Signification

0 Net Unreachable Le réseau cible ne peut être atteint

1 Host Unreachable L'hôte cible ne peut être atteint

2 Protocol Unreachable Le protocole souhaité n'est pas disponible sur le serveur hôte cible

3 Port Unreachable Le port cité sur le serveur hôte n'est pas disponible

4 Fragmentation Needed and Don't Fragment was Set

Le paquet IP a dû être fragmenté en raison de son importance, ce que l'expéditeur a toutefois interdit via le drapeau DF

5 Source Route Failed La route proposée dans le paquet IP en tant qu'option n'a pu être suivie

6 Destination Network Unknown Réseau cible inconnu

7 Destination Host Unknown Serveur hôte cible inconnu (ce qui n'est pas le cas du réseau cible)

8 Source Host lsolated Pas de passage pour le serveur hôte cible

9 Communication with Destination Network is Administratively Prohibited

Accès au réseau cible interdit (protection d'accès au moyen d'un firewall sur les pages du destinataire)

10 Communication with Destination Host is Administratively Prohibited

Accès au serveur hôte cible interdit (protection d'accès au moyen d'un firewall sur les pages du destinataire)

11 Destination Network unreachable for Type of Service

Le réseau cible ne peut être atteint avec le TOS (Type of Service) indiqué

12 Destination Host unreachable for Type of Service Le serveur hôte cible ne peut être atteint avec le TOS indiqué

Page 21: ICMP - Internet Control Message Protocol. ICMP Introduction : ICMP est le protocole de contrôle des erreurs de IP Il permet aussi dadministrer sommairement

ICMP

Source Quench (message ICMP 4)

Ce message ICMP est généré lorsqu'un embouteillage se produit au niveau du routeur ou du serveur hôte cible

Il n'est pas divisé en sous-codes individuels

Il doit amener l'expéditeur d'un paquet IP à réduire le débit de transmission vers le destinataire souhaité, afin de faire baisser le flux des données

Page 22: ICMP - Internet Control Message Protocol. ICMP Introduction : ICMP est le protocole de contrôle des erreurs de IP Il permet aussi dadministrer sommairement

ICMP

Page 23: ICMP - Internet Control Message Protocol. ICMP Introduction : ICMP est le protocole de contrôle des erreurs de IP Il permet aussi dadministrer sommairement

ICMP

Time Exceeded (message ICMP 11)

Ce message signale un dépassement de temps ayant provoqué l'abandon d'un paquet IP

Le compteur Time-To-Live (TTL) dans l'en-tête d'un paquet IP est dépassé (sous-code ICMP = 0)

Les fragments d'un paquet IP n'ont pu être assemblés (sous-code ICMP = 1) dans le délai imparti

Dès qu'un premier fragment d'un paquet IP est rencontré, un routeur place un compteur Time Out en attendant la réception des autres fragments

Page 24: ICMP - Internet Control Message Protocol. ICMP Introduction : ICMP est le protocole de contrôle des erreurs de IP Il permet aussi dadministrer sommairement

ICMP

Page 25: ICMP - Internet Control Message Protocol. ICMP Introduction : ICMP est le protocole de contrôle des erreurs de IP Il permet aussi dadministrer sommairement

ICMP

Les requêtes de statut ICMP les plus importantes :

Couples de messages ICMP

Signification

Echo(8) - Echo Reply(0) Permet de demander si un serveur hôte particulier peut être atteint et délivre indirectement des informations sur les délais de circulation des paquets sur cette distance

Timestamp(13) - Timestamp Reply(14)

Sert à la synchronisation de l'heure entre deux stations

Address Mask Request(17) - Address Mask Reply(18)

Donne à une station la possibilité de trouver les masques de sous-réseau de toutes les stations dans le réseau courant

Page 26: ICMP - Internet Control Message Protocol. ICMP Introduction : ICMP est le protocole de contrôle des erreurs de IP Il permet aussi dadministrer sommairement

ICMP

Coordination requête-réponse

Il y a deux champs Identifier Number et Sequence Number

Ils apparaissent aussi bien dans une demande de statut que dans sa réponse

Ils contiennent deux nombres sur 16 bits dont le rôle est d'aider à relier les questions posées à leurs réponses

Page 27: ICMP - Internet Control Message Protocol. ICMP Introduction : ICMP est le protocole de contrôle des erreurs de IP Il permet aussi dadministrer sommairement

ICMP

Il s'agit là d'une fonction importante dès lors que plusieurs demandes de statut sont envoyées en même temps sur le réseau à partir d'un serveur hôte

La source prend la valeur SequenceNumber du message et la mémorise en interne

Dès qu'une réponse ICMP arrive, il peut relier le message à la demande précédente grâce à l'Identifier renvoyé

Page 28: ICMP - Internet Control Message Protocol. ICMP Introduction : ICMP est le protocole de contrôle des erreurs de IP Il permet aussi dadministrer sommairement

ICMP

Page 29: ICMP - Internet Control Message Protocol. ICMP Introduction : ICMP est le protocole de contrôle des erreurs de IP Il permet aussi dadministrer sommairement

ICMP

Ping

Echo Request et Echo Reply sont utilisés très souvent sur l'Internet

Le programme PING permet à l’aide de ces messges, de déterminer la possibilité d'atteindre un serveur hôte et les temps de parcours des paquets sur la distance

Page 30: ICMP - Internet Control Message Protocol. ICMP Introduction : ICMP est le protocole de contrôle des erreurs de IP Il permet aussi dadministrer sommairement

ICMP

Dans certains cas, le message Echo Reply attendu n'arrive pas et il est remplacé par le message ICMP 3 Destination Unreachable

Une réponse Echo Reply confirme le fonctionnement correct du système TCP/IP sur toute la distance

Une absence de réponse n’assure pas du contraire, en cas de firewall, par exemple

Page 31: ICMP - Internet Control Message Protocol. ICMP Introduction : ICMP est le protocole de contrôle des erreurs de IP Il permet aussi dadministrer sommairement

ICMP

Synchronisation d'horloges

La synchronisation du temps est un sujet essentiel dans toutes les technologies de réseau, qu'il s'agisse de l'Internet ou d'Ethernet local

Lorsque plusieurs stations travaillent ensemble et veulent accorder leurs activités, il est nécessaire de pouvoir régler leurs horloges

Internet reconnaît toute une série d'outils et de protocoles servant à la synchronisation de l'heure

Les deux messages Timestamp Request et Timestamp Reply représentent les plus simples d'entre eux

Page 32: ICMP - Internet Control Message Protocol. ICMP Introduction : ICMP est le protocole de contrôle des erreurs de IP Il permet aussi dadministrer sommairement

ICMP

L'initiateur envoie tout d'abord le message ICMP Timestamp au serveur hôte dont il aimerait recevoir des renseignements relatifs à l'heure

Dans le message, il indique son heure actuelle en plus de l 'identifier habituel qui accompagne le Sequence Number

Il effectue ceci au format Internet établi pour l'heure universelle en valeur 32 bits

Page 33: ICMP - Internet Control Message Protocol. ICMP Introduction : ICMP est le protocole de contrôle des erreurs de IP Il permet aussi dadministrer sommairement

ICMP

Le serveur hôte situé à l'autre bout de l’écgange réceptionne le message, remplace simplement le code du message ICMP de Timestamp (13) par le message de Timestamp Reply (14) et enregistre sa propre heure dans le champ Receive Timestamp

Ceci s'exécute immédiatement à l'arrivée du paquet

Lorsqu'il quitte ensuite le serveur hôte pour revenir à l'initiateur, l'heure s'inscrit de nouveau dans le message, mais cette fois dans le champ Transmit Timestamp

Page 34: ICMP - Internet Control Message Protocol. ICMP Introduction : ICMP est le protocole de contrôle des erreurs de IP Il permet aussi dadministrer sommairement

ICMP

Dès que le message ICMP de Timestamp Reply arrive à l'initiateur de la requête, ce dernier dispose de quatre indications horaires (la quatrième étant l'heure de réception du message Timestamp Reply)

Grâce à ces données, il peut non seulement évaluer le temps de parcours du paquet jusqu'au site correspondant, mais également mesurer l'écart entre son horloge et celle du correspondant

Un certain degré d’erreur non négligeable est à déplorer

Page 35: ICMP - Internet Control Message Protocol. ICMP Introduction : ICMP est le protocole de contrôle des erreurs de IP Il permet aussi dadministrer sommairement

ICMP

Page 36: ICMP - Internet Control Message Protocol. ICMP Introduction : ICMP est le protocole de contrôle des erreurs de IP Il permet aussi dadministrer sommairement

ICMP

Routage

A l'aide de ce message ICMP, un routeur peut faire connaître à un serveur hôte un meilleur routeur pour faire parvenir des paquets IP sur un réseau cible déterminé

Le message Redirect avec le code ICMP 5 pourra être expédié qui ira modifier la table de routage d’un hôte, pour signifier une route alternative

Page 37: ICMP - Internet Control Message Protocol. ICMP Introduction : ICMP est le protocole de contrôle des erreurs de IP Il permet aussi dadministrer sommairement

ICMP

Page 38: ICMP - Internet Control Message Protocol. ICMP Introduction : ICMP est le protocole de contrôle des erreurs de IP Il permet aussi dadministrer sommairement

ICMP

Spécifications ICMP et informations dans les RFC :

RFC 792

Internet Control Message Protocol. J. Postel, 1981 : le document ICMP initial, dans lequel le mécanisme ICMP et les messages ICMP sont décrits de 0 à 16.

RFC 950

Internet Standard Subnetting Procedure. j. Mogul & J. Postel, 1985: décrit le travail avec des masques de sous-réseau ainsi que les modifications concernant les routeurs et les serveurs hôtes qu'il faut effectuer pour l'utilisation de sous-réseaux.

RFC 1122

Requirements for Internet Hosts - Communication Layers. R. Braden, 1989:compléments et éclaircissements sur de nombreuses questions de détail des protocoles réseau et Data Link Layer, également pour ICMP.

RFC 1256

ICMP Router Discovery Messages. S. Deering, 1991: décrit un mécanisme par lequel des serveurs hôtes peuvent apprendre l'adresse IP du prochain routeur via ICMP.