RSX101 Réseaux & Télécommunications Le protocole NAT 1
Le protocole NAT INTRODUCTION 2
Introduction Réseau local 192.168.0.0/24 IP : 89.154.75.35 Internet Comment rendre possible les connexions entre le réseau local et internet? Solution : NAT - Partage de connexion 3
Définitions NAT = «Network Address Translation» (RFC 1631) Différents concepts : NAT statique, NAT dynamique, PAT, IP masquerading... Le terme NAT représente la modification des adresses IP dans l'en-tête d'un datagramme IP effectuée par un routeur. Deux types : SNAT quand l'adresse source du paquet est modifiée DNAT quand il s'agit de l'adresse destination. 4
Le protocole NAT 1 - LE NAT STATIQUE 5
NAT Statique : principe Association de n adresses publiques à n adresses privées IP : 10.0.0.1 IP : 10.0.0.254 IP : 89.154.75.35 Internet IPVirtuelle : 89.154.75.36 le routeur remplace l'adresse source ou destination par l'adresse correspondante. 6
NAT Statique : fonctionnement La machine X ne peut pas dialoguer directement sur Internet (car elle a une IP locale) Le routeur lui attribue une adresse publique virtuelle 89.154.75.36 dans notre exemple La machine X sera connue à l extérieur par l IP 89.154.75.36. Le routeur se contentant de soit remplacer 10.0.0.1 par 89.154.75.36 (sens sortant) ou 89.154.75.36 par 10.0.0.1 (sens entrant). Simple association entre une adresse privée et une adresse publique: 10.0.0.1 <--> 89.154.75.36 IP : 10.0.0.254 X Internet IP : 10.0.0.1 7 IP : 89.154.75.35 IP Virtuelle : 89.154.75.36
NAT Statique et plusieurs machines IP : 10.0.0.1 IP : 10.0.0.2 IP : 89.154.75.35 IPVirt1 : 89.154.75.36 IPVirt2 : 89.154.75.37 IPVitr3 : 89.154.75.38 Internet IP : 10.0.0.3 Chaque machine aura son IP publique Avantage : les machines sont protégées par le routeur (non exposées directement sur Internet) Inconvénient : cela ne règle pas le problème de la pénurie d adresse IPv4 8
Le protocole NAT 1 - LE NAT STATIQUE REMARQUES 9
NAT Statique et Proxy ARP IP : 10.0.0.1 IP : 10.0.0.254 IP : 89.154.75.254 R2 R1 Internet IP : 89.154.75.35 IP Virtuelle : 89.154.75.36 Que se passe-t-il au niveau Ethernet (ARP) sur ce réseau? Le routeur R1 devra mettre en place un Proxy ARP : qui permettra de répondre à la requête «qui est 89.154.75.36?» (venant du routeur R2) 10
NAT Statique et Routage IP : 10.0.0.1 IP : 10.0.0.254 R1 Internet IP : 89.154.75.35 IP Virtuelle : 89.154.75.36 Lorsque R1 reçoit un paquet à destination de 89.154.75.36, il est tenté de le renvoyer sur Internet (puisque ce n est pas sa propre IP) R1 devra donc avoir une route du type : route add -p 89.154.75.36 mask 255.255.255.255 10.0.0.1 11
Le protocole NAT 2 - LE NAT DYNAMIQUE 12
NAT Dynamique : Principe Le NAT dynamique est aussi appelé IP masquerading. Le NAT dynamique associe une seule adresse (internet) à n adresses (locales) ou plus exactement, M adresses (internet) à N adresses (locales), les adresses pour sortir étant choisies dans un pool. Ainsi, un grand nombre de machines connectées à un réseau privé (et ayant des adresses privées) peuvent accéder à Internet Contrairement au NAT Statique, le NAT Dynamique est plus complexe à gérer (pour le routeur) : le routeur devra modifier à la fois les adresses IP mais aussi les ports TCP/UDP (PAT, Port Address Translation). 13
NAT Dynamique : Fonctionnement IP : 10.0.0.1 IP : 10.0.0.254 IP : 89.154.75.35 Internet 1. Envoi d un paquet : SRC : 10.0.0.1 : 5987 DEST : www.google.fr : 80 6. Réception du paquet et affichage dans le navigateur (par exemple) 2. Le routeur reçoit le paquet et le réécrit : SRC : 89.154.75.35 : 10000 DEST : www.google.fr : 80 3. Le routeur stocke l association : 10.0.0.1 : 5987 et 89.154.75.35 : 10000 5. Le routeur reçoit le paquet et le réécrit (grâce au tab. 3) : SRC : www.google.fr : 80 DEST : 10.0.0.1 : 5987 4. Le site web reçoit le paquet et y répond : SRC : www.google.fr : 80 DEST : 89.154.75.35 : 10000 14
NAT Dynamique : Fonctionnement (2) IP : 10.0.0.1 IP : 10.0.0.254 IP : 89.154.75.35 Internet IP : 10.0.0.2 Grace à la table d association du routeur : - on peut gérer plusieurs machines voulant accéder à Internet - on peut gérer plusieurs IP publiques (Exemple table association : 10.0.0.1 : 5987 <-> 89.154.75.35 : 10000 10.0.0.2 : 8754 <-> 89.154.75.35 : 10001) 15
NAT Dynamique : avantages et inconvénients Avantages : Plusieurs machines (IP privées) derrière une seule IP publique Plus de sécurité (les machines ne sont pas visibles de l extérieur) Inconvénients : Une machine derrière le routeur n est plus accessible directement depuis l extérieur 16
Le protocole NAT 2 - LE NAT DYNAMIQUE REMARQUES 17
Vocabulaire : SNAT / DNAT SNAT ou Source NAT Le Source NAT correspond à la modification de l'adresse source dans un paquet translaté. Il est notamment utilisé pour le NAT dynamique, mais aussi pour le NAT statique lorsqu'on veut sortir du réseau local. DNAT ou Destination NAT Le Destination NAT correspond à la modification de l'adresse destination dans un paquet translaté. Il est utilisé pour le NAT statique, lorsqu'on veut accéder à un serveur sur un réseau local. 18
NAT Dynamique : Port Forwarding (PAT) Il est possible de rendre accessible, depuis l extérieur, certains ports de certaines machines. Ainsi, il est possible d enregistrer, sur le routeur, l association d un port donné (publique) à une adresse IP privée et le même port. Typiquement, pour héberger un serveur web (port 80) sur une machine en local, et le rendre accessible sur l IP publique sur le port 80 également. IP : 10.0.0.1 IP : 10.0.0.254 IP : 89.154.75.35 Port 80 -> redirige vers le port 80 de 10.0.0.2 Internet Port 80 IP : 10.0.0.2 19
NAT Dynamique : Port Mapping (PAT) Si le port associé est différent entre l IP publique et l IP privée, on parle alors de port Mapping. IP : 10.0.0.1 IP : 10.0.0.254 IP : 89.154.75.35 Port 80 -> redirige vers le port 8080 de 10.0.0.2 Internet Port 8080 IP : 10.0.0.2 20
NAT Dynamique et protocoles niveau 3 Le NAT dynamique utilise les ports TCP/UDP ICMP, PPTP, Netbios sont des protocoles de couche 3, donc n utilisent pas les ports TCP/UDP. Ces protocoles nécessitent l implémentation d une méthode spécifique : basée sur l'identifiant ICMP présent dans l'en-tête du message ICMP. Ainsi, le mécanisme est exactement le même, mis à part que l'on utilise cet identifiant, plutôt que les ports TCP/UDP. Certains paquets ICMP contiennent dans leur payload (charge utile) des informations concernant les datagrammes IP qui ont causé l'erreur. Le routeur faisant le NAT doit donc aussi modifier les informations contenues dans le payload pour que l'information apportée à la machine émettrice soit pertinente. 21
NAT Dynamique et FTP FTP, deux modes : Mode passif : L établissement de connexions et les commandes passent sur le port 21 du serveur Le serveur choisi un port pour le transfert de données (par défaut 20) et le communique au client, ce dernier ouvrira lui-même la connexion vers le serveur sur ce port Mode actif : L établissement de connexions et les commandes passent sur le port 21 du serveur Le client choisi le port où il recevra les données. La connexion de transfert de données étant initiée par le serveur (depuis le port 20) vers le client (port choisi), cela pose problème en présence d un NAT! (client injoignable à l extérieur du NAT) 22
Le protocole NAT BILAN 23
NAT Statique vs NAT Dynamique : le bilan NAT Statique Autant d adresse IP publiques que de serveurs à rendre publiques Utilisé pour certains serveurs en DMZ Il faut disposer de plusieurs adresses IP publiques NAT Dynamique Pratique pour accéder à Internet depuis un réseau local Possibilité de rendre certains ports public (PAT) Un port donné ne peut être associé qu à un seul serveur local (limité à cause de la seule IP publique utilisée) En conclusion Le NAT (statique ou dynamique) est très utile Pénurie d IP Dynamicité (on peut changer d attribution une adresse sans revoir l architecture ou l adressage IP du réseau dans sa globalité) Protection des machines face à l exposition directe sur Internet Utilisation conjointe des deux modes 24
Comment faire du NAT? Sous Windows Depuis Windows 2000, Windows inclut un «partage de connexion», réalisant du NAT Dynamique (IP en 192.168.0.0/255). Il est également possible de réaliser du NAT par la console «Routage et accès distant» (NAT Dynamique et Statique). Sous *nix IPchains, ipfilter, netfilter... 25