Chapitre 916 minDébutant
ARP, passerelle, routage et NAT : le trajet d'un paquet
Par Josselyn C., prof de BTS SIO. Mis à jour le .
À la fin de ce chapitre, tu sauras
- dire si un paquet reste dans le réseau local ou passe par la passerelle ;
- expliquer ARP et le risque d'ARP spoofing ;
- lire une table de routage, et le rôle du TTL et d'ICMP ;
- expliquer le NAT et le PAT, et suivre le trajet complet d'une requête web.
5 exercices corrigés1 schéma
Pour envoyer un paquet, une machine compare l'adresse de destination à son propre réseau : si la destination est locale, elle trouve son adresse MAC avec le protocole ARP et lui envoie la trame directement ; sinon, elle l'envoie à sa passerelle par défaut, un routeur qui le transmet de proche en proche, et le routeur de sortie traduit les adresses privées en adresse publique (NAT). Ce chapitre suit ce trajet étape par étape : ARP, passerelle, table de routage, TTL, ICMP, NAT et PAT.
La première décision : local ou distant ?
Avant chaque envoi, une machine se pose une seule question : la destination est-elle dans mon réseau ? Elle calcule l'adresse de réseau de la destination avec son propre masque et la compare à la sienne (chapitre 6).
- Destination locale : la machine envoie la trame directement au destinataire. Il lui faut l'adresse MAC du destinataire.
- Destination distante : la machine envoie la trame à sa passerelle par défaut. Il lui faut l'adresse MAC de la passerelle. L'adresse IP de destination, elle, reste celle du destinataire final.
La passerelle n'est donc jamais une adresse que l'on met dans le paquet : c'est l'adresse dont on cherche la MAC pour construire la trame.
ARP : trouver l'adresse MAC d'une adresse IP
Une trame Ethernet a besoin d'une adresse MAC de destination ; la machine ne connaît que l'adresse IP. ARP (Address Resolution Protocol, RFC 826) fait le lien, au sein d'un réseau local.
- Le cache d'abord. La machine consulte sa table ARP, qui garde les correspondances récentes. Si l'adresse y est, elle s'en sert.
- La requête ARP est envoyée en broadcast (MAC de destination
ff:ff:ff:ff:ff:ff) : « Qui a192.168.10.126? Réponds à192.168.10.70. » Toutes les machines du réseau la reçoivent. - La réponse ARP est envoyée en unicast, par la seule machine concernée : «
192.168.10.126est à l'adresse00:1a:2b:3c:4d:5e. » - La mise en cache. L'émetteur enregistre la correspondance pour quelques secondes à quelques minutes, selon le système. Le destinataire en profite souvent pour noter aussi l'adresse de l'émetteur.
Dans une capture Wireshark, l'échange tient en deux lignes :
Source Destination Protocol Info
3c:52:82:4a:10:7e ff:ff:ff:ff:ff:ff ARP Who has 192.168.10.126? Tell 192.168.10.70
00:1a:2b:3c:4d:5e 3c:52:82:4a:10:7e ARP 192.168.10.126 is at 00:1a:2b:3c:4d:5e
ARP ne franchit pas les routeurs, puisque la requête est un broadcast : une machine ne connaît jamais l'adresse MAC d'une machine distante, seulement celle de sa passerelle. ARP n'existe qu'en IPv4 ; IPv6 le remplace par NDP (chapitre 12).
Pour lire la table ARP :
| Système | Commande | Remarque |
|---|---|---|
| Windows | arp -a | Affiche aussi le type : dynamique ou statique |
| Windows (PowerShell) | Get-NetNeighbor -AddressFamily IPv4 | |
| Linux | ip neigh | La commande arp du paquet net-tools est obsolète |
| Vider le cache | arp -d * (Windows, en administrateur) ; sudo ip neigh flush all (Linux) |
ARP spoofing
ARP n'authentifie rien : une machine croit n'importe quelle réponse, même non sollicitée. Un attaquant du même réseau peut envoyer de fausses réponses répétées : « 192.168.10.126 (la passerelle) est à mon adresse MAC ». Les victimes lui envoient alors tout leur trafic vers l'extérieur ; il le relaie vers la vraie passerelle après l'avoir lu ou modifié. C'est une attaque de l'homme du milieu (man-in-the-middle).
Symptôme typique : dans arp -a, deux adresses IP différentes (la passerelle et l'attaquant) ont la même adresse MAC. Parades : l'inspection ARP dynamique (DAI) sur les switchs administrables, qui compare les réponses ARP aux baux DHCP ; la segmentation en VLAN, qui limite la portée ; le chiffrement (HTTPS, SSH), qui rend le trafic intercepté illisible.
La passerelle par défaut
La passerelle par défaut (default gateway) est l'adresse IP du routeur, dans le réseau local, auquel la machine confie tout ce qui n'est pas local. Elle fait partie des quatre paramètres d'une configuration IPv4, avec l'adresse, le masque et le serveur DNS.
Sans passerelle (ou avec une passerelle fausse), une machine parle à son réseau local et à rien d'autre : le ping d'un voisin passe, celui d'un serveur dans un autre VLAN ou d'Internet échoue. Le message de Windows est alors souvent « Défaillance générale » ou « Hôte de destination inaccessible ».
La table de routage
Chaque machine IP, et pas seulement les routeurs, possède une table de routage : une liste de réseaux de destination, avec pour chacun l'interface à utiliser et, si le réseau n'est pas directement connecté, l'adresse du prochain routeur (next hop).
Sur le poste 192.168.10.70 de Sorbier :
Linux : ip route
default via 192.168.10.126 dev enp0s3 proto dhcp src 192.168.10.70 metric 100
192.168.10.64/26 dev enp0s3 proto kernel scope link src 192.168.10.70 metric 100
Windows : route print -4 (extrait)
Destination réseau Masque réseau Adr. passerelle Adr. interface Métrique
0.0.0.0 0.0.0.0 192.168.10.126 192.168.10.70 25
192.168.10.64 255.255.255.192 On-link 192.168.10.70 281
La ligne default ou 0.0.0.0/0 est la route par défaut : elle correspond à toutes les destinations, et c'est elle qui pointe vers la passerelle. La ligne du réseau local est marquée « On-link » ou scope link : pas de routeur à traverser.
La règle du préfixe le plus long. Quand plusieurs lignes correspondent à une destination, la machine choisit la plus précise, celle dont le préfixe est le plus long. 0.0.0.0/0 correspond à tout, mais elle perd contre n'importe quelle route plus précise. Voici la table du switch de cœur de Sorbier, qui route entre les VLAN :
| Destination | Préfixe | Vers |
|---|---|---|
| 192.168.10.0 | /26 | VLAN 40, directement connecté |
| 192.168.10.64 | /26 | VLAN 10, directement connecté |
| 192.168.10.128 | /27 | VLAN 30, directement connecté |
| 192.168.10.160 | /28 | VLAN 50, directement connecté |
| 192.168.10.176 | /28 | VLAN 20, directement connecté |
| 192.168.10.192 | /30 | Lien de transit, directement connecté |
| 10.30.0.0 | /23 | Via 192.168.10.193 (le pare-feu, qui a un tunnel VPN vers l'agence de Marseille) |
| 0.0.0.0 | /0 | Via 192.168.10.193 (le pare-feu, vers Internet) |
Un paquet pour 10.30.1.130 correspond à 10.30.0.0/23 et à 0.0.0.0/0 : la route en /23 gagne. Les deux mènent ici au pare-feu, mais c'est la règle qui compte.
Les routes s'écrivent à la main (routes statiques) ou sont apprises automatiquement par des protocoles de routage : OSPF dans une entreprise, BGP entre les opérateurs d'Internet. Leur configuration est l'objet du cours Routage et commutation.
Le TTL et les messages ICMP
Chaque paquet IPv4 porte un compteur, le TTL (Time To Live), fixé par l'émetteur (64 sous Linux et macOS, 128 sous Windows). Chaque routeur le diminue de 1 ; à 0, le paquet est détruit et le routeur prévient l'émetteur. Sans TTL, un paquet pris dans une boucle de routage tournerait indéfiniment. En IPv6, le même champ s'appelle Hop Limit.
Ces avertissements passent par ICMP (Internet Control Message Protocol), le protocole de signalisation d'IP, transporté directement dans IP (protocole numéro 1).
| Type | Message | Quand |
|---|---|---|
| 8 | Echo Request | Envoyé par ping |
| 0 | Echo Reply | Réponse au ping |
| 3 | Destination Unreachable | Réseau, hôte ou port injoignable ; code 4 : fragmentation nécessaire mais interdite (problème de MTU) |
| 11 | Time Exceeded | Le TTL est tombé à 0 en route |
| 5 | Redirect | Un routeur signale un meilleur chemin |
La commande tracert (Windows) ou traceroute (Linux) utilise le TTL pour découvrir le chemin : elle envoie un premier paquet avec un TTL de 1 (le premier routeur répond « Time Exceeded »), puis 2, puis 3… Chaque réponse révèle un routeur. Le chapitre 15 montre comment lire son résultat.
NAT et PAT
Les adresses privées ne sont pas routées sur Internet. Pour sortir, le routeur de frontière remplace l'adresse source privée par une adresse publique, et fait l'opération inverse sur les réponses : c'est la traduction d'adresses (NAT, Network Address Translation). Il garde la trace de chaque traduction dans une table NAT.
Le PAT (Port Address Translation), qu'on appelle aussi NAT surchargé ou masquerading, est la forme utilisée par toutes les box et presque toutes les entreprises : une seule adresse publique pour toutes les machines internes. Le routeur distingue les connexions par le port source, qu'il réécrit si nécessaire.
La table PAT du pare-feu de Sorbier, à un instant donné :
| Adresse interne | Adresse traduite | Destination | Protocole |
|---|---|---|---|
| 192.168.10.70:51544 | 203.0.113.17:40001 | 198.51.100.80:443 | TCP |
| 192.168.10.71:51544 | 203.0.113.17:40002 | 198.51.100.80:443 | TCP |
| 192.168.10.5:60211 | 203.0.113.17:40003 | 8.8.8.8:53 | UDP |
Deux postes utilisent par hasard le même port source 51544 : le pare-feu leur donne deux ports publics différents, sans quoi il ne saurait pas à qui rendre la réponse. Quand 198.51.100.80 répond à 203.0.113.17:40002, le pare-feu retrouve la ligne et renvoie la réponse à 192.168.10.71:51544.
Les autres formes de NAT :
- NAT statique : une adresse privée associée en permanence à une adresse publique, dans les deux sens. Rare, puisque les adresses publiques sont chères.
- NAT dynamique : un groupe d'adresses publiques partagé, une par machine active. Rare aussi.
- Redirection de port (port forwarding, ou NAT de destination) : les connexions qui arrivent sur un port de l'adresse publique sont renvoyées vers une machine interne. C'est ainsi qu'on publie un serveur. Par exemple,
203.0.113.17:443→192.168.10.179:443publierait l'application de gestion. En entreprise, on place plutôt ce serveur dans une DMZ, un réseau isolé du LAN (Cybersécurité des infrastructures).
Les limites du NAT. Il casse le principe « de bout en bout » d'Internet : une machine interne n'est pas joignable de l'extérieur sans redirection. Certains protocoles qui écrivent des adresses dans leurs données (FTP actif, SIP pour la téléphonie) ont besoin d'aides spécifiques. Et chez les opérateurs mobiles, le CGNAT ajoute une deuxième couche de NAT (adresses 100.64.0.0/10) : impossible alors d'héberger quoi que ce soit derrière sa connexion. IPv6, avec ses adresses publiques pour tous, rend le NAT inutile.
Le voyage complet d'une requête web
Le poste 192.168.10.70/26 de Sorbier ouvre https://www.exemple.example, dont le serveur DNS a donné l'adresse 198.51.100.80.
- Décision.
198.51.100.80n'est pas dans192.168.10.64/26: destination distante, envoi à la passerelle192.168.10.126. - ARP. Le poste cherche la MAC de
192.168.10.126dans son cache ; au besoin, il la demande en broadcast. - Trame 1. MAC source : le poste. MAC destination : l'interface VLAN 10 du switch de cœur. IP source
192.168.10.70, IP destination198.51.100.80, port de destination TCP 443. - Switch de cœur. Il retire la trame, lit l'IP de destination, trouve la route par défaut vers
192.168.10.193, décrémente le TTL, fait une requête ARP pour le pare-feu si besoin et construit une nouvelle trame : MAC source le switch de cœur, MAC destination le pare-feu. Les adresses IP n'ont pas changé. - Pare-feu. Il vérifie ses règles (le VLAN 10 a le droit de sortir en HTTPS), traduit l'adresse source en
203.0.113.17avec un port public, note la ligne dans sa table PAT et envoie le paquet vers le routeur de l'opérateur, dans une nouvelle trame. - Internet. De routeur en routeur, chacun lit l'IP de destination, consulte sa table et réécrit la trame. Le TTL baisse à chaque saut.
- Retour. Le serveur répond à
203.0.113.17. Le pare-feu retrouve la ligne PAT, remet192.168.10.70comme destination, et la réponse redescend.
Exercices
Exercice 1 sur 5 Local ou distant ? Réussi À revoir
Le poste 192.168.10.70/26 (passerelle 192.168.10.126) veut joindre chacune de ces adresses. Pour chacune, dis si la destination est locale ou distante et quelle adresse IP le poste met dans sa requête ARP.
192.168.10.100192.168.10.1808.8.8.8192.168.10.127
Voir la réponseMasquer la réponse de l'exercice 1
- Locale (dans
192.168.10.64/26, de .65 à .126) : ARP pour192.168.10.100. - Distante (
192.168.10.176/28, les serveurs) : ARP pour la passerelle192.168.10.126. Commencer par192.168.10ne suffit pas à être local. - Distante : ARP pour
192.168.10.126. - C'est l'adresse de diffusion du réseau du poste : pas d'ARP, la trame part vers la MAC de broadcast
ff:ff:ff:ff:ff:ff.
Tu avais trouvé ?
Exercice 2 sur 5 Le préfixe le plus long Réussi À revoir
Un routeur a cette table :
| Destination | Vers |
|---|---|
| 10.0.0.0/8 | R1 |
| 10.30.0.0/16 | R2 |
| 10.30.1.0/24 | R3 |
| 0.0.0.0/0 | R4 |
Vers quel routeur envoie-t-il un paquet pour : 10.30.1.77, 10.30.2.5, 10.99.0.1, 172.16.0.1 ?
Voir la réponseMasquer la réponse de l'exercice 2
10.30.1.77correspond aux quatre routes ; la plus précise est /24 : R3.10.30.2.5correspond à /8, /16 et /0 (pas au /24, qui ne couvre que10.30.1.x) : R2.10.99.0.1correspond à /8 et /0 : R1.172.16.0.1ne correspond qu'à la route par défaut : R4.
Tu avais trouvé ?
Exercice 3 sur 5 Suivre les adresses Réussi À revoir
Le poste 192.168.10.70 (MAC PC) envoie un paquet au serveur 192.168.10.178 (MAC SRV). Entre les deux se trouve le switch de cœur, dont l'interface VLAN 10 a la MAC R10 et l'interface VLAN 20 la MAC R20. Complète le tableau pour la trame qui circule dans le VLAN 10, puis pour celle qui circule dans le VLAN 20.
| Trame | MAC source | MAC destination | IP source | IP destination |
|---|---|---|---|---|
| Dans le VLAN 10 | ? | ? | ? | ? |
| Dans le VLAN 20 | ? | ? | ? | ? |
Voir la réponseMasquer la réponse de l'exercice 3
| Trame | MAC source | MAC destination | IP source | IP destination |
|---|---|---|---|---|
| Dans le VLAN 10 | PC | R10 | 192.168.10.70 | 192.168.10.178 |
| Dans le VLAN 20 | R20 | SRV | 192.168.10.70 | 192.168.10.178 |
Les adresses IP ne changent pas (il n'y a pas de NAT entre deux VLAN internes). Les adresses MAC sont celles des deux voisins de chaque tronçon.
Tu avais trouvé ?
Exercice 4 sur 5 Lire une table ARP suspecte Réussi À revoir
Sur un poste de l'entrepôt, arp -a affiche :
Interface : 192.168.10.140 --- 0x6
Adresse Internet Adresse physique Type
192.168.10.135 08-00-27-5d-1a-90 dynamique
192.168.10.151 00-1b-a9-3e-77-21 dynamique
192.168.10.158 08-00-27-5d-1a-90 dynamique
192.168.10.159 ff-ff-ff-ff-ff-ff statique
- Quelle ligne correspond à la passerelle ? Pourquoi est-elle suspecte ?
- Que se passe-t-il probablement ?
- Que fais-tu ?
Voir la réponseMasquer la réponse de l'exercice 4
- La passerelle de l'entrepôt est
192.168.10.158(dernière adresse de192.168.10.128/27). Elle a la même adresse MAC que192.168.10.135, un simple poste : deux adresses IP, une seule carte. C'est la signature d'un ARP spoofing. (La ligne.159est normale : c'est la diffusion du réseau.) - La machine
192.168.10.135se fait passer pour la passerelle : elle reçoit tout le trafic sortant du poste, peut le lire et le relayer. Le préfixe08:00:27est celui des cartes virtuelles VirtualBox : quelqu'un a peut-être branché une machine virtuelle d'attaque. - Isoler la machine
.135(couper son port de switch), prévenir le responsable sécurité, vérifier quels postes ont un cache empoisonné, puis mettre en place l'inspection ARP dynamique sur le switch. Et tracer l'incident dans l'outil de tickets.
Tu avais trouvé ?
Exercice 5 sur 5 Remplir la table PAT Réussi À revoir
Le pare-feu de Sorbier (adresse publique 203.0.113.17) reçoit successivement :
- Du poste
192.168.10.80, port source 50100, vers198.51.100.80:443. - Du poste
192.168.10.81, port source 50100, vers198.51.100.80:443. - Une réponse de
198.51.100.80:443vers203.0.113.17:40011.
Il attribue les ports publics à partir de 40010. Complète la table, puis dis à qui va la réponse.
Voir la réponseMasquer la réponse de l'exercice 5
| Interne | Traduite | Destination |
|---|---|---|
| 192.168.10.80:50100 | 203.0.113.17:40010 | 198.51.100.80:443 |
| 192.168.10.81:50100 | 203.0.113.17:40011 | 198.51.100.80:443 |
La réponse vers 203.0.113.17:40011 correspond à la deuxième ligne : le pare-feu la renvoie à 192.168.10.81:50100. Sans la réécriture du port, les deux connexions auraient eu la même adresse et le même port publics, et le pare-feu n'aurait pas pu les distinguer.
Tu avais trouvé ?