Aller au contenu
Réussir mon BTS SIO

Tape une notion, une commande ou le nom d'une épreuve.

Par exemple

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.
Poste 192.168.10.70/26La destination est-elle dans mon réseau ?réseau de la destination, calculé avec mon masque, = 192.168.10.64 ?OuiNonDestination 192.168.10.100locale : envoi directDestination 192.168.10.180distante : envoi à la passerelleARP : MAC de 192.168.10.100 ?ARP : MAC de 192.168.10.126 ?Trame envoyéeMAC dest. : celle de .100IP dest. : 192.168.10.100Trame envoyéeMAC dest. : celle de la passerelleIP dest. : 192.168.10.180 (inchangée)
Local : la trame va au destinataire. Distant : la trame va à la passerelle, le paquet garde sa destination

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.

  1. 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.
  2. La requête ARP est envoyée en broadcast (MAC de destination ff:ff:ff:ff:ff:ff) : « Qui a 192.168.10.126 ? Réponds à 192.168.10.70. » Toutes les machines du réseau la reçoivent.
  3. La réponse ARP est envoyée en unicast, par la seule machine concernée : « 192.168.10.126 est à l'adresse 00:1a:2b:3c:4d:5e. »
  4. 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 :

text
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èmeCommandeRemarque
Windowsarp -aAffiche aussi le type : dynamique ou statique
Windows (PowerShell)Get-NetNeighbor -AddressFamily IPv4
Linuxip neighLa commande arp du paquet net-tools est obsolète
Vider le cachearp -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 :

text
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
text
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 :

DestinationPréfixeVers
192.168.10.0/26VLAN 40, directement connecté
192.168.10.64/26VLAN 10, directement connecté
192.168.10.128/27VLAN 30, directement connecté
192.168.10.160/28VLAN 50, directement connecté
192.168.10.176/28VLAN 20, directement connecté
192.168.10.192/30Lien de transit, directement connecté
10.30.0.0/23Via 192.168.10.193 (le pare-feu, qui a un tunnel VPN vers l'agence de Marseille)
0.0.0.0/0Via 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).

TypeMessageQuand
8Echo RequestEnvoyé par ping
0Echo ReplyRéponse au ping
3Destination UnreachableRéseau, hôte ou port injoignable ; code 4 : fragmentation nécessaire mais interdite (problème de MTU)
11Time ExceededLe TTL est tombé à 0 en route
5RedirectUn 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 interneAdresse traduiteDestinationProtocole
192.168.10.70:51544203.0.113.17:40001198.51.100.80:443TCP
192.168.10.71:51544203.0.113.17:40002198.51.100.80:443TCP
192.168.10.5:60211203.0.113.17:400038.8.8.8:53UDP

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:443 publierait 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.

  1. Décision. 198.51.100.80 n'est pas dans 192.168.10.64/26 : destination distante, envoi à la passerelle 192.168.10.126.
  2. ARP. Le poste cherche la MAC de 192.168.10.126 dans son cache ; au besoin, il la demande en broadcast.
  3. Trame 1. MAC source : le poste. MAC destination : l'interface VLAN 10 du switch de cœur. IP source 192.168.10.70, IP destination 198.51.100.80, port de destination TCP 443.
  4. 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é.
  5. 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.17 avec 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.
  6. Internet. De routeur en routeur, chacun lit l'IP de destination, consulte sa table et réécrit la trame. Le TTL baisse à chaque saut.
  7. Retour. Le serveur répond à 203.0.113.17. Le pare-feu retrouve la ligne PAT, remet 192.168.10.70 comme 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.

  1. 192.168.10.100
  2. 192.168.10.180
  3. 8.8.8.8
  4. 192.168.10.127
Voir la réponseMasquer la réponse de l'exercice 1
  1. Locale (dans 192.168.10.64/26, de .65 à .126) : ARP pour 192.168.10.100.
  2. Distante (192.168.10.176/28, les serveurs) : ARP pour la passerelle 192.168.10.126. Commencer par 192.168.10 ne suffit pas à être local.
  3. Distante : ARP pour 192.168.10.126.
  4. 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 :

DestinationVers
10.0.0.0/8R1
10.30.0.0/16R2
10.30.1.0/24R3
0.0.0.0/0R4

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.77 correspond aux quatre routes ; la plus précise est /24 : R3.
  • 10.30.2.5 correspond à /8, /16 et /0 (pas au /24, qui ne couvre que 10.30.1.x) : R2.
  • 10.99.0.1 correspond à /8 et /0 : R1.
  • 172.16.0.1 ne 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.

TrameMAC sourceMAC destinationIP sourceIP destination
Dans le VLAN 10????
Dans le VLAN 20????
Voir la réponseMasquer la réponse de l'exercice 3
TrameMAC sourceMAC destinationIP sourceIP destination
Dans le VLAN 10PCR10192.168.10.70192.168.10.178
Dans le VLAN 20R20SRV192.168.10.70192.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 :

text
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
  1. Quelle ligne correspond à la passerelle ? Pourquoi est-elle suspecte ?
  2. Que se passe-t-il probablement ?
  3. Que fais-tu ?
Voir la réponseMasquer la réponse de l'exercice 4
  1. La passerelle de l'entrepôt est 192.168.10.158 (dernière adresse de 192.168.10.128/27). Elle a la même adresse MAC que 192.168.10.135, un simple poste : deux adresses IP, une seule carte. C'est la signature d'un ARP spoofing. (La ligne .159 est normale : c'est la diffusion du réseau.)
  2. La machine 192.168.10.135 se fait passer pour la passerelle : elle reçoit tout le trafic sortant du poste, peut le lire et le relayer. Le préfixe 08:00:27 est celui des cartes virtuelles VirtualBox : quelqu'un a peut-être branché une machine virtuelle d'attaque.
  3. 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 :

  1. Du poste 192.168.10.80, port source 50100, vers 198.51.100.80:443.
  2. Du poste 192.168.10.81, port source 50100, vers 198.51.100.80:443.
  3. Une réponse de 198.51.100.80:443 vers 203.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
InterneTraduiteDestination
192.168.10.80:50100203.0.113.17:40010198.51.100.80:443
192.168.10.81:50100203.0.113.17:40011198.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é ?

Chapitre terminé !

Fais les 5 exercices avant de passer à la suite : c'est en t'entraînant que tout se fixe.

chapitres
–
de série
–
du cours
–
Chapitre suivant : TCP, UDP et ports : la couche transportRevoir le sommaire du cours