Objectifs de certification
CCNA 200-301
1.6 Configurer et vérifier l’adressage et le sous-réseautage (subnetting) IPv4
1.10 Vérifier les paramètres IP des OS clients (Windows, Mac OS, Linux)
Protocoles ARP et ICMP
1. Introduction
1.1. ARP, ICMP, ICMPv6
IPv4 est aidé par deux protocoles pour la résolution d’adresses et le contrôle : ARP et ICMP.
En IPv6, c’est ICMPv6 qui remplit ces deux fonctions.
1.2. Protocoles de résolution d’adresses et de découverte du voisinage
- Afin d’encapsuler un paquet IP dans une trame, l’hôte d’origine a besoin de connaître l’adresse physique (MAC) de la destination.
- En IPv4, c’est le protocole ARP (Address Resolution Protocol) qui remplit cette fonction. Les hôtes IPv4 maintiennent une table de correspondance entre les adresses IPv4 à joindre et leur adresse physique (MAC). Cette table est appelée “cache ARP”.
- En IPv6, c’est le protocole ND (Neighbor Discovery), sous-protocole ICMPv6, qui reprend cette fonction. Les hôtes IPv6 maintiennent une table de correspondance entre les adresses IPv6 à joindre et leur adresse physique. Elle est appelée “table de voisinage”.
Commandes utiles
Table ARP sous Windows et Linux
arp -a
Table de voisinage sous Linux
ip -6 neigh
Table de voisinage sous Windows
netsh interface ipv6 show neighbors
2. Résolution d’adresse ARP
La résolution d’adresse est utile dans les réseaux IPv4 pour obtenir l’adresse physique à laquelle une adresse IP correspond.
On peut obtenir le cache ARP sur un système avec la commande :
arp -a
Ce processus permet à l’hôte émetteur de trouver l’adresse de livraison physique du trafic.
Il permet à l’hôte d’encapsuler le trafic au niveau de la couche Accès Réseau (Liaison de données) en ajoutant l’adresse MAC du destinataire dans l’en-tête de la trame.
2.1. Address Resolution Protocol
ARP est le protocole de résolution d’adresse utilisé par IPv4.
- Il est directement encapsulé par la couche 2.
- Il est donc indépendant d’IP.
- Il est formalisé par le RFC 826.
2.2. Résolution d’adresses en IPv4
Au moment de l’encapsulation d’un paquet IPv4 dans une trame Ethernet ou Wi-Fi par exemple, l’hôte émetteur connaît d’avance l’adresse IP de destination. Mais comment peut-il connaître son adresse physique correspondante (l’adresse MAC de destination par exemple) afin de placer le trafic sur le support ?
Un hôte TCP/IP ne peut connaître l’adresse de destination sans qu’elle ne s’annonce elle-même de manière gratuite ou de manière sollicitée.
Dans le but de maintenir une correspondance entre des adresses IP à joindre et leur adresse physique de destination, les hôtes TCP/IP entretiennent une “table ARP” pour les adresses IPv4 et une “table de voisinage” pour les adresses IPv6.
ARP est un protocole indépendant d’IPv4 qui offre ce service de résolution d’adresses.
En IPv6, ce sont des paquets ICMPv6 appelés Neighbor Discovery (ND) qui sont utilisés selon un mode sensiblement différent. En IPv6, les fonctions d’informations et de contrôle (ICMPv6) ont été améliorées et renforcées.
La requête ARP émane en Broadcast et la réponse est envoyée en unicast. ND (IPv6) aura un fonctionnement similaire en utilisant une adresse Multicast spéciale en lieu et place du Broadcast.
On trouvera une capture de trafic de ce processus de résolution d’adresse par ARP : http://www.cloudshark.org/captures/96a2bb5fe747?filter=arp
Ce trafic émane en Broadcast et se termine en Unicast.
2.3. Variantes ARP
- ARP Probe
- Gratuitous ARP : annonces sans état
- Inverse ARP : obtenir l’IP à partir l’adresse L2 (Frame-Relay)
- Reverse ARP : attribution d’adresse IP
- Proxy ARP : mandataire ARP (routeur), fonction que l’on conseille de désactiver.
2.4. Processus ARP
2.5. Empoisonnement de cache ARP
3. ICMP
En IPv4, ICMP “aide” IP par des messages de contrôle et d’erreur. ICMP est formalisé dans le RFC792.
Communément, il y a deux classes de messages ICMP :
- Les messages d’erreur dont le type est de 0 à 127.
- Les messages d’information dont le type est de 128 à 255.
Les différents types ICMP sont précisés par des codes.
3.1. Liste de messages ICMP
Voici une liste non exhaustive des types de messages ICMP :
Type | Message |
---|---|
Type 0 | réponse d’écho |
Type 1 et 2 | réservés |
Type 3 | destinataire inaccessible |
Type 4 | extinction de la source |
Type 5 | redirection |
Type 8 | écho |
Type 11 | temps dépassé |
Type 12 | en-tête erroné |
Type 13 | demande heure |
Type 14 | réponse heure |
Type 15 | demande adresse IP |
Type 16 | réponse adresse IP |
Type 17 | demande masque sous-réseau |
Type 18 | réponse masque sous-réseau |
3.2. ICMP Types 8 Echo Request - 0 Echo Reply
Le programme ping
qui permet entre autre de vérifier la connectivité, envoie un paquet “ICMP Echo request” (type 8 code 0), peut recevoir un paquet “ICMP Echo Reply” (type 0 code 0).
Capture de paquets ICMP à la suite de la commande >ping www.google.com
: https://www.cloudshark.org/captures/f1b5fba6f83f
3.3. ICMP Type 3 Destination Unreachable
Les messages “ICMP Type 3 Destination Unreachable” ont des codes qui ne sont pas toujours rendus par les logiciels.
Code | Signification |
---|---|
0 | Destination network unreachable |
1 | Destination host unreachable |
2 | Destination protocol unreachable |
3 | Destination port unreachable |
4 | Fragmentation required, and DF flag set |
5 | Source route failed |
6 | Destination network unknown |
7 | Destination host unknown |
8 | Source host isolated |
9 | Network administratively prohibited |
10 | Host administratively prohibited |
11 | Network unreachable for ToS |
12 | Host unreachable for ToS |
13 | Communication administratively prohibited |
14 | Host Precedence Violation |
15 | Precedence cutoff in effect |
3.4. Type 11 Time exceeded
A la suite de la commande traceroute -m 1 www.google.com
, on un message “ICMP Type 11 Time exceeded” revenant du premier saut :
Capture : https://www.cloudshark.org/captures/f751ade6b3f1
3.5. Conclusions
- Quand du trafic TCP/IP doit être envoyé, l’hôte encapsule le trafic à destination de l’adresse MAC apprise par ARP.
- Les messages “ARP Reply” peuvent être gratuits.
- ICMP complète IPv4 en terme de contrôle et de messages d’erreurs.