NAT
| Fiche express | |
|---|---|
| Domaine | Traduction d'adresses réseau |
| Couche OSI | 3/4 (Réseau/Transport) |
| RFC | RFC 1631 (concept, 1994) · RFC 3022 (NAT/PAT) |
| Voir aussi | IP · Iptables · Firewalld · SIP |
NAT (Network Address Translation) désigne les techniques qui modifient, au passage d'un routeur ou d'un pare-feu, les adresses IP (et éventuellement les ports) contenues dans l'en-tête des paquets. Le NAT a d'abord été conçu pour retarder l'épuisement des adresses IPv4 publiques en permettant à plusieurs machines d'un réseau privé de partager une seule adresse publique pour sortir sur Internet ; il est aujourd'hui aussi largement utilisé comme brique de sécurité de base (les machines internes ne sont pas directement joignables depuis l'extérieur).
Adressage privé (RFC 1918)
Le NAT s'appuie généralement sur les plages d'adresses réservées à un usage privé, non routables sur Internet public :
- 10.0.0.0/8
- 172.16.0.0/12
- 192.168.0.0/16
Une machine de ces plages ne peut atteindre Internet qu'après traduction de son adresse source par un équipement NAT en bordure de réseau.
Types de NAT
- NAT statique (1:1) — une adresse privée est systématiquement traduite vers la même adresse
publique. Utilisé pour exposer un serveur interne (ex. DMZ) avec une IP publique dédiée.
- NAT dynamique — un pool d'adresses publiques est attribué à la demande aux machines
internes, sans mapping fixe préétabli.
- PAT / NAT overload / masquerade — le cas le plus répandu : toutes les machines internes
partagent une seule adresse IP publique, distinguées entre elles par le port source
réécrit à la volée (d'où le nom PAT, Port Address Translation). C'est le mode utilisé par
la plupart des box/routeurs domestiques et par la directive MASQUERADE d'
Iptables ou de Firewalld.
Mise en œuvre sous Linux
Sous Linux, le NAT est réalisé au niveau du sous-système netfilter, piloté via Iptables
(table nat, chaînes PREROUTING/POSTROUTING) ou via la
notion de zones et de masquerade de Firewalld. Exemple minimal de sortie
masquerade avec Iptables :
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Limites et effets de bord
Le NAT casse le principe de bout-en-bout (end-to-end) d'Internet : une machine derrière un NAT n'est pas directement joignable depuis l'extérieur sans redirection de port explicite (port forwarding), et l'adresse IP source vue par le destinataire n'est plus celle de l'émetteur réel.
Cette réécriture pose des difficultés particulières aux protocoles qui transportent des adresses IP ou des numéros de port dans leurs données applicatives (et pas seulement dans les en-têtes réseau) :
- FTP actif — le serveur initie une connexion de données vers un port annoncé par le client
dans le flux de contrôle ; ce port, s'il n'est pas réécrit par un module NAT applicatif dédié (ALG, Application Layer Gateway), ne correspond plus à rien une fois passé le NAT.
- SIP — la signalisation SIP embarque elle aussi des adresses IP et des ports (pour la
négociation du flux média RTP) dans le corps de ses messages ; un NAT non conscient de SIP peut rendre l'établissement de l'appel ou la remontée du flux audio/vidéo impossible, d'où le recours fréquent à des mécanismes complémentaires (STUN, TURN, ALG SIP) pour la téléphonie sur IP en environnement NATé.