ICMP - Internet Control Message Protocol. ICMP Introduction : ICMP est le protocole de contrôle des...
-
Upload
acelet-faure -
Category
Documents
-
view
114 -
download
2
Transcript of ICMP - Internet Control Message Protocol. ICMP Introduction : ICMP est le protocole de contrôle des...
ICMP - Internet Control Message Protocol
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
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)
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
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
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
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
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
ICMP
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
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
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
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
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
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
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
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
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
ICMP
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é
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
ICMP
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
ICMP
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
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
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é
ICMP
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
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
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
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
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
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
ICMP
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
ICMP
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.