Résolution locale, ICMP, MTU et multicast
- Accueil
- Fondations techniques
- Réseaux
- Résolution locale, ICMP, MTU et multicast
Résolution locale, ICMP, MTU et multicast
Section intitulée « Résolution locale, ICMP, MTU et multicast »Connaître l’adresse IP (Internet Protocol) d’un voisin ne suffit pas pour lui envoyer une trame : il faut son adresse MAC (Media Access Control). Savoir qu’un paquet est perdu ne suffit pas non plus : il faut qu’on dise pourquoi. Cette fiche décrit les protocoles discrets qui comblent ces trous : ARP (Address Resolution Protocol) et NDP (Neighbor Discovery Protocol) pour la résolution locale, ICMP (Internet Control Message Protocol) et ICMPv6 pour les messages de contrôle, la MTU (Maximum Transmission Unit) et la fragmentation, enfin le multicast et IGMP (Internet Group Management Protocol). Elle montre aussi pourquoi ces mécanismes, conçus pour un voisinage de confiance, sont la cible favorite des attaques locales.
Avant de livrer un colis dans le même immeuble, il faut savoir derrière quelle porte habite le destinataire ; et quand un colis ne passe pas, le transporteur laisse un avis expliquant pourquoi. Cette page parle de ces petits échanges discrets qui rendent la livraison possible et les pannes compréhensibles.
→ Lire l’explication complète de la marmotte
Résoudre localement
Section intitulée « Résoudre localement »De l’envoi d’un paquet à la trame
Section intitulée « De l’envoi d’un paquet à la trame »Quand un poste 192.168.1.20/24 veut joindre 192.168.1.30, il constate que la destination est dans son sous-réseau : il doit trouver la MAC de .30. Pour joindre 8.8.8.8, hors du sous-réseau, il envoie le paquet à sa passerelle 192.168.1.1 : il lui faut alors la MAC de la passerelle, jamais celle de la destination finale. La résolution locale porte donc toujours sur le prochain saut, ce qui explique qu’une erreur de passerelle par défaut produise des symptômes de résolution.
ARP pour IPv4
Section intitulée « ARP pour IPv4 »ARP (RFC 826, 1982) est d’une simplicité désarmante. Le poste diffuse en broadcast une requête « qui a 192.168.1.30 ? Répondre à 192.168.1.20 », et la machine concernée répond en unicast avec sa MAC. Le résultat est conservé dans un cache ARP pour quelques dizaines de secondes à quelques minutes selon le système. Son pendant inverse, RARP (Reverse ARP, RFC 903), permettait à une machine sans disque de découvrir sa propre adresse IP à partir de sa MAC ; il a été remplacé par BOOTP (Bootstrap Protocol) puis DHCP (Dynamic Host Configuration Protocol) et n’a plus qu’un intérêt historique.
Le gratuitous ARP est une annonce non sollicitée : une machine diffuse sa propre association IP-MAC. Elle sert à détecter un doublon d’adresse au démarrage et à mettre à jour les caches lors d’une bascule de haute disponibilité, quand une adresse virtuelle change de serveur. Elle sert aussi à l’attaquant, puisque rien ne la vérifie.
Neighbor Discovery pour IPv6
Section intitulée « Neighbor Discovery pour IPv6 »En IPv6 (Internet Protocol version 6), ARP disparaît au profit de NDP (RFC 4861), qui s’appuie sur des messages ICMPv6 :
| Type ICMPv6 | Message | Rôle |
|---|---|---|
| 133 | Router Solicitation (RS) | un hôte demande aux routeurs de se manifester |
| 134 | Router Advertisement (RA) | un routeur annonce sa présence, les préfixes, la MTU, les drapeaux de configuration |
| 135 | Neighbor Solicitation (NS) | équivalent de la requête ARP, et détection de doublon |
| 136 | Neighbor Advertisement (NA) | équivalent de la réponse ARP |
| 137 | Redirect | indique un meilleur premier saut |
Au lieu d’un broadcast, la sollicitation part vers une adresse multicast dérivée de l’adresse cherchée, dite solicited-node (ff02::1:ff suivi des 24 derniers bits de l’adresse). Seules les machines dont les adresses partagent ces bits sont dérangées. Les RA rendent le routeur visible sans configuration : c’est par eux qu’un hôte apprend sa passerelle et, avec SLAAC (Stateless Address Autoconfiguration), construit son adresse. Le détail figure dans IPv6 : autoconfiguration et coexistence.
Lire les tables de voisinage
Section intitulée « Lire les tables de voisinage »Sous Linux, une seule commande couvre les deux familles :
$ ip neigh show192.168.1.1 dev eth0 lladdr 3c:52:82:aa:bb:01 REACHABLE192.168.1.30 dev eth0 lladdr 00:16:3e:12:34:56 STALE192.168.1.44 dev eth0 FAILEDfe80::3e52:82ff:feaa:bb01 dev eth0 lladdr 3c:52:82:aa:bb:01 router REACHABLEREACHABLE signifie que l’association a été confirmée récemment ; STALE qu’elle est encore utilisable mais sera revérifiée au prochain envoi ; FAILED que personne n’a répondu, ce qui pointe vers une machine éteinte, un mauvais VLAN ou un filtrage. La mention router provient des annonces NDP. Sous Windows, arp -a pour IPv4 et Get-NetNeighbor en PowerShell pour les deux familles donnent l’équivalent. Une même MAC qui apparaît derrière deux adresses IP différentes n’est pas forcément une attaque (un routeur a souvent plusieurs adresses), mais une MAC de passerelle qui change sans maintenance annoncée mérite une enquête.
Messages de contrôle
Section intitulée « Messages de contrôle »ICMP n’est pas que ping
Section intitulée « ICMP n’est pas que ping »ICMP (RFC 792 pour IPv4) et ICMPv6 (RFC 4443) transportent les avis de service du réseau. Les plus utiles au diagnostic :
| Fonction | ICMPv4 | ICMPv6 |
|---|---|---|
| Demande et réponse d’écho | types 8 et 0 | types 128 et 129 |
| Destination injoignable | type 3 (code 4 : fragmentation nécessaire mais interdite) | type 1 |
| Paquet trop grand | via type 3 code 4 | type 2 (Packet Too Big) |
| Durée de vie dépassée | type 11 | type 3 |
| Redirection | type 5 | type 137 (NDP) |
ping n’utilise que l’écho. traceroute envoie des paquets avec un TTL (Time To Live) croissant, 1, 2, 3, et chaque routeur qui décrémente le TTL à zéro renvoie un « durée de vie dépassée » qui révèle sa présence. Les implémentations Unix envoient par défaut de l’UDP vers des ports élevés et reconnaissent l’arrivée par un « port injoignable » ; Windows tracert utilise des échos ICMP. Une ligne d’astérisques signifie seulement qu’un routeur n’a pas répondu, pas forcément que le trafic s’arrête là.
Ne pas tout bloquer
Section intitulée « Ne pas tout bloquer »Bloquer tout ICMP est un réflexe ancien qui casse plus qu’il ne protège. En IPv6, c’est même rédhibitoire : sans NDP, il n’y a plus de résolution de voisins ; sans Packet Too Big, plus de découverte de MTU, puisque les routeurs IPv6 ne fragmentent jamais. La RFC 4890 donne des recommandations de filtrage ICMPv6 pour les pare-feu. En résumé : laisser passer les erreurs (injoignable, trop grand, durée dépassée, problème de paramètre) liées aux flux autorisés, garder NDP sur le lien local, limiter le débit des échos plutôt que les interdire si la politique l’exige.
Multicast et IGMP
Section intitulée « Multicast et IGMP »Le broadcast s’adresse à toutes les machines du segment, qu’elles le veuillent ou non. Le multicast s’adresse à un groupe d’abonnés, identifié en IPv4 par une adresse de 224.0.0.0/4 et en IPv6 par le préfixe ff00::/8. Les flux vidéo d’entreprise, certains protocoles de routage et la découverte de services l’utilisent.
IGMP (version 2 : RFC 2236, version 3 : RFC 3376) permet à un hôte IPv4 de signaler au routeur qu’il rejoint ou quitte un groupe ; IPv6 confie ce rôle à MLD (Multicast Listener Discovery). Sans précaution, un commutateur traite le multicast comme du broadcast et l’inonde sur tous les ports. L’IGMP snooping lui fait écouter ces messages pour ne transmettre chaque groupe qu’aux ports abonnés, à condition qu’un querier IGMP existe sur le VLAN (Virtual Local Area Network) ; sinon, les abonnements expirent et les flux disparaissent au bout de quelques minutes, ce qui donne lieu à des tickets intitulés « la vidéo coupe toujours au même moment ».
MTU, fragmentation et tunnels
Section intitulée « MTU, fragmentation et tunnels »MTU et MSS
Section intitulée « MTU et MSS »La MTU est la taille maximale d’un paquet IP sur un lien : 1500 octets en Ethernet standard. Le MSS (Maximum Segment Size) est la taille maximale des données TCP (Transmission Control Protocol) dans un segment, annoncée par chaque extrémité à l’ouverture de connexion. Avec des en-têtes IPv4 et TCP de 20 octets chacun, MSS = 1500 − 40 = 1460 ; en IPv6, l’en-tête IP faisant 40 octets, MSS = 1440. La MTU concerne le lien, le MSS la connexion TCP ; UDP n’a pas de MSS et subit la MTU sans négociation.
En IPv4, un routeur peut fragmenter un paquet trop grand, sauf si le bit DF (Don’t Fragment) est positionné, ce que font presque tous les systèmes modernes pour TCP. En IPv6, seule la source fragmente, et tout lien doit accepter au moins 1280 octets.
PMTUD et le trou noir
Section intitulée « PMTUD et le trou noir »La PMTUD (Path MTU Discovery, RFC 1191 pour IPv4, RFC 8201 pour IPv6) repose sur un principe simple : la source envoie des paquets avec DF, le routeur qui ne peut pas les passer les jette et renvoie « fragmentation nécessaire » ou « Packet Too Big » avec la MTU acceptable, et la source réduit. Si un pare-feu filtre ces messages, la source ne saura jamais pourquoi ses gros paquets disparaissent. Symptôme typique : la connexion TCP s’établit (les petits paquets passent), la page commence à charger, puis tout se fige au premier segment de taille pleine. C’est un trou noir PMTUD, régulièrement diagnostiqué comme une panne applicative par des équipes qui n’ont rien à se reprocher. Le PLPMTUD (Packetization Layer PMTUD, RFC 4821) contourne ce problème en sondant la taille au niveau transport sans dépendre d’ICMP.
Tester une MTU avec des tailles contrôlées
Section intitulée « Tester une MTU avec des tailles contrôlées »On envoie des échos avec interdiction de fragmenter et une taille de données choisie. Pour vérifier 1500 octets en IPv4 : 1472 octets de données + 8 d’en-tête ICMP + 20 d’en-tête IP.
# Linuxping -M do -s 1472 192.0.2.10 # passe si la MTU du chemin vaut 1500ping -M do -s 1473 192.0.2.10 # doit échouer : "message too long" ou absence de réponsetracepath 192.0.2.10 # indique la pmtu découverte saut par saut# Windowsping -f -l 1472 192.0.2.10# macOSping -D -s 1472 192.0.2.10Si 1392 passe et que 1393 échoue, le chemin accepte exactement 1420 octets (1392 + 28) : un tunnel est probablement sur le trajet.
Tunnels, VPN et jumbo frames
Section intitulée « Tunnels, VPN et jumbo frames »Chaque encapsulation consomme une partie de la MTU. Quelques surcoûts courants : GRE (Generic Routing Encapsulation) sur IPv4, 24 octets ; VXLAN (Virtual Extensible LAN), 50 octets en IPv4 ; WireGuard, 60 octets en IPv4 et 80 en IPv6, d’où sa MTU par défaut de 1420 ; IPsec, variable selon le mode et les algorithmes. Les VPN (Virtual Private Network) fixent généralement une MTU réduite sur l’interface virtuelle et pratiquent le MSS clamping : le routeur réécrit à la baisse le MSS annoncé dans les paquets SYN pour que TCP s’adapte sans attendre la PMTUD. Voir VPN, tunnels et bastions.
Les jumbo frames portent la MTU à environ 9000 octets pour réduire le coût par paquet sur les réseaux de stockage ou de virtualisation. Toutes les interfaces du domaine de couche 2, commutateurs compris, doivent être configurées à l’identique. Une activation partielle donne un réseau où le ping passe, les petites requêtes aussi, et les transferts de gros fichiers s’effondrent, puisqu’un commutateur intermédiaire jette sans prévenir les trames trop grandes : aucun message ICMP n’est émis en couche 2.
Attaques de voisinage et contre-mesures
Section intitulée « Attaques de voisinage et contre-mesures »Tous ces protocoles font confiance au premier qui répond. L’ARP spoofing consiste à envoyer des réponses ARP non sollicitées associant l’IP de la passerelle à la MAC de l’attaquant, qui se place ainsi au milieu des échanges. En IPv6, une NA forgée produit le même effet, et un rogue RA (annonce de routeur pirate) fait mieux encore : la machine se déclare routeur, voire distribue un préfixe et un résolveur. Le DHCP spoofing reproduit le scénario en IPv4 avec un faux serveur de configuration.
Les commutateurs d’entreprise apportent les parades :
- le DHCP snooping n’accepte les réponses DHCP que depuis des ports déclarés de confiance et construit une table des associations IP, MAC et port observées ;
- la DAI (Dynamic ARP Inspection) s’appuie sur cette table pour rejeter les réponses ARP incohérentes ;
- le RA Guard (RFC 6105) bloque les annonces de routeur sur les ports d’accès ; il doit être complété par un filtrage des en-têtes d’extension, que certaines attaques utilisent pour le contourner.
Ces protections agissent dans le réseau local, là où aucun pare-feu périmétrique ne regarde. Leur articulation avec la segmentation est traitée dans filtrage, segmentation et NAC.
Capturer une résolution : exemple commenté
Section intitulée « Capturer une résolution : exemple commenté »ip neigh flush dev eth0tcpdump -n -e -i eth0 'arp or (icmp6 and ip6[40] >= 133 and ip6[40] <= 136)'La première commande vide le cache pour forcer une résolution ; le filtre ne garde qu’ARP et les quatre messages NDP utiles (le test sur ip6[40] ne fonctionne que sans en-tête d’extension, ce qui est le cas courant). Un ping vers un voisin IPv4 montre une requête en broadcast ff:ff:ff:ff:ff:ff puis une réponse en unicast. Un ping IPv6 montre une NS envoyée vers une adresse 33:33:ff:… (la MAC multicast correspondant au groupe solicited-node), puis une NA. Deux réponses différentes à la même question, en revanche, signalent un doublon ou un usurpateur.
À ne pas confondre
Section intitulée « À ne pas confondre »ARP et DNS : le DNS (Domain Name System) traduit un nom en adresse IP à l’échelle d’internet ; ARP traduit une adresse IP en adresse MAC sur un seul lien. Voir DNS, DHCP, NTP.
ICMP et ping : ping n’est qu’un usage d’ICMP parmi d’autres ; interdire ICMP pour masquer ping revient à couper le téléphone pour ne plus recevoir de démarchage.
MTU et MSS : la MTU limite le paquet IP sur un lien, le MSS limite les données d’un segment TCP.
Multicast et broadcast : le broadcast touche tout le segment, le multicast seulement les abonnés, à condition que les commutateurs le sachent.
🐝 Ce qui arrive si on s’en passe
Section intitulée « 🐝 Ce qui arrive si on s’en passe »Sans inspection des réponses de résolution ni filtrage des annonces de routeur, une seule machine compromise sur un segment peut se déclarer passerelle et voir passer le trafic de tous ses voisins. L’interception se déroule entièrement à l’intérieur du réseau local : le pare-feu périphérique ne voit rien, puisque rien ne le traverse, et ses journaux restent parfaitement sereins. Les caches des postes, de leur côté, conservent la fausse association pendant un moment, si bien que le retrait de l’intrus ne rétablit pas immédiatement le trafic, ce qui déroute le diagnostic juste après l’incident.
🦫 Explication de la marmotte 🍫
Section intitulée « 🦫 Explication de la marmotte 🍫 »Pour envoyer un paquet à une machine du même réseau local, il ne suffit pas de connaître son adresse IP, l’adresse du protocole Internet : il faut son adresse matérielle, celle de sa carte réseau. Dans la version 4 du protocole Internet, le protocole ARP, résolution d’adresse, diffuse la question « qui possède cette adresse ? » et la machine concernée répond. La réponse est gardée un moment dans un cache. Dans la version 6, la découverte des voisins joue le même rôle, et les routeurs annoncent eux-mêmes leur présence. Personne ne vérifie ces réponses : une machine malveillante peut prétendre être la passerelle ou un routeur. Les commutateurs peuvent filtrer ces annonces et ne laisser les réponses de configuration venir que de ports de confiance.
ICMP, le protocole de messages de contrôle, transporte les avis de service : réponse à un test de présence, destination injoignable, durée de vie dépassée ou paquet trop grand.
Chaque lien accepte une taille maximale de paquet. Dans la version 4, un paquet trop grand peut être découpé ; sinon, le routeur renvoie un message « paquet trop grand » et l’émetteur réduit la taille. Si un pare-feu bloque tous ces messages, les gros paquets disparaissent sans explication : la connexion s’établit puis se fige. Les tunnels chiffrés réduisent cette taille.
La diffusion de groupe envoie un même flux à plusieurs destinataires inscrits, grâce au protocole IGMP qui gère les inscriptions aux groupes.
À lire aussi
- Ethernet, trames et commutation localeExpliquer Ethernet comme base des réseaux locaux modernes : trame, adressage MAC, apprentissage, diffusion, commutation et limites d’un réseau plat.
- Couches, normes et vocabulaire de paquetsConstruire le vocabulaire nécessaire pour lire une communication réseau : couche, protocole, encapsulation, trame, paquet, segment, datagramme, message et plans réseau.
- Données, signaux, latence et fiabilitéExpliquer comment une donnée devient un signal transmis, puis comment mesurer ce que le réseau fait subir aux échanges : délai, débit, perte, gigue et erreurs.
- Topologies, composants d’interconnexion et LAN sécuriséChoisir et documenter une topologie locale en comprenant modes de communication, méthodes d’accès au support et rôle des composants d’interconnexion.
Pages voisines
La citent
- Données, signaux, latence et fiabilité
- Ethernet, trames et commutation locale
- Suivre un flux de bout en bout
- WireGuard et VPN maillés, fonctionnement, AllowedIPs et limites
- Captures, observabilité et diagnostic multi-couche
Résolution locale, ICMP, MTU et multicast
Elle cite
- Lien dans les deux sens :Attaque de l'intercepteur par ARP, DHCP, DNS, Wi-Fi et proxy TLS
- Lien dans les deux sens :IPv6 sans NAT
- DNS, DHCP, NTP : services d'infrastructure réseau
- IPv6, autoconfiguration et coexistence
- Filtrage, segmentation, NAC et Zero Trust
- GRE, IPsec ou GRE dans IPsec pour un tunnel site à site
- VPN, tunnels, bastions et interconnexions protégées
: les deux pages se citent l’une l’autre.
