NAT

Transcription

NAT
Stéphane CATELOIN
v1.1/2012-09
Problématique
 Adresses IP locales
(non routables)
INTERNET
80.126.84.12
routeur
10.0.0.1
10.0.0.2
10.0.0.3
10.0.0.254
Problématique (2)
10.0.0.1
@sce:10.0.0.1, @dest:216.239.57.103
SYN, port sce:2345, port dest:80
INTERNET
216.239.57.103 (www.google.com)
?
@sce:216.239.57.103, @dest:10.0.0.1
SYN,ACK, port sce:80, port dest:2345
 Ouverture passive impossible :
 l’adresse de retour n’est pas routable
1
Solution
 Le routeur doit substituer
les adresses locales par une
adresse routable
INTERNET
80.126.84.12
10.0.0.1
10.0.0.2
10.0.0.3
10.0.0.254
NAT statique
10.0.0.1
@sce:10.0.0.1, @dest:216.239.57.103
@sce:216.239.57.103, @dest:10.0.0.1
SYN, port sce:2345, port dest:80
SYN,ACK, port sce:80, port dest:2345
@sce:80.126.84.13, @dest:216.239.57.103
80.126.84.12
SYN, port sce:2345, port dest:80
 Condition: le routeur dispose
d’une plage d’adresse virtuelles
 En sortie : il substitue l’adresse
locale par une adresse virtuelle
 En entrée : il effectue la
substitution inverse
INTERNET
@sce:216.239.57.103, @dest:80.126.84.13
SYN,ACK, port sce:80, port dest:2345
216.239.57.103 (www.google.com)
NAT statique (2)
 Nécessité de mémoriser une table de substitution
(table NAT)
@locale
@virtuelle
10.0.0.1
10.0.0.2
10.0.0.3
80.126.84.13
80.126.84.14
80.126.84.15
2
NAT statique (3)
 Inconvénients
 on doit disposer d’une adresse publique par machine
accédant à internet


pourquoi ne pas leur attribuer directement cette adresse?
 adressage uniforme
 une modification de la table NAT permet de rediriger facilement
les requêtes
problème de pénurie d’adresses IP
NAT dynamique
 ou IP masquerading, Network Address and Port
Translation (NAPT)
 principe : faire correspondre une adresse IP publique à
plusieurs adresses IP locales
NAT dynamique (2)
10.0.0.1
@sce:10.0.0.1, @dest:216.239.57.103
@sce:216.239.57.103, @dest:10.0.0.1
SYN, port sce:2345, port dest:80
10.0.0.1:2345
SYN,ACK, port sce:80, port dest:2345
80.126.84.12:2345
@sce:80.126.84.12, @dest:216.239.57.103
80.126.84.12
SYN, port sce:2345, port dest:80
 utilisation de l’adresse
publique du routeur
 création dynamique
d’entrées @IP/port dans
la table NAT
INTERNET
@sce:216.239.57.103, @dest:80.126.84.12
SYN,ACK, port sce:80, port dest:2345
216.239.57.103 (www.google.com)
3
NAT dynamique (3)
 problème : utilisation du même port source par deux machines du
réseau local
 exemple: les machine 10.0.0.1 et 1.0.0.2 utilisent toutes deux le port
2345
local
externe
10.0.0.1:2345
80.126.84.12:2345
10.0.0.2:2345
80.126.84.12:2345
 vers quelle machine rediriger les données entrantes à destination du port
2345?
 solution : translation de port (NAPT)
 le routeur substitue le port source dans l’en-tête du protocole de
transport
NAT dynamique (4)
10.0.0.1
@sce:10.0.0.1, @dest:216.239.57.103
@sce:216.239.57.103, @dest:10.0.0.1
SYN, port sce:2345, port dest:80
10.0.0.1:2345
SYN,ACK, port sce:80, port dest:2345
80.126.84.12:10000
@sce:80.126.84.12, @dest:216.239.57.103
80.126.84.12
SYN, port sce:10000, port dest:80
INTERNET
 1ère connexion
@sce:216.239.57.103, @dest:80.126.84.12
SYN,ACK, port sce:80, port dest:10000
216.239.57.103 (www.google.com)
NAT dynamique (5)
10.0.0.2
@sce:10.0.0.2, @dest:216.239.57.103
@sce:216.239.57.103, @dest:10.0.0.2
SYN, port sce:2345, port dest:80
SYN,ACK, port sce:80, port dest:2345
10.0.0.1:2345
80.126.84.12:10000
10.0.0.2:2345
80.126.84.12:10001
@sce:80.126.84.12, @dest:216.239.57.103
80.126.84.12
SYN, port sce:10001, port dest:80
 2ème connexion
INTERNET
@sce:216.239.57.103, @dest:80.126.84.12
SYN,ACK, port sce:80, port dest:10001
216.239.57.103 (www.google.com)
4
NAT dynamique (6)
 Mise à jour dynamique de la table
 TCP


ajout d’une entrée par SYN
suppression de l’entrée par FIN
 UDP : pas de connexion
 ajout d’une entrée sur le premier segment venant d’un nouveau
couple @IP/port
 démarrage d’un timer (relancé par chaque segment venant de
ce même couple)
 suppression de l’entrée à l’issue du timer
 (le timer peut être aussi utilisé pour TCP)
NAT dynamique (7)
 Avantages
 permet de masquer un grand nombre de machines
derrières une seule adresse publique


limitation : nombre de ports translatés
réponse au problème de pénurie d’adresses IP
NAT dynamique : Inconvénients
 ne permet pas à une machine d’être jointe de l’extérieur
 la mise à jour dynamique de la table NAT ne peut se faire que « de l’intérieur »:
seuls ces messages contiennent les IP des machines locales
 (avantage d’un point vue sécurité)
 solutions :
 port forwarding : redirection d’un port vers une machine locale en particulier
(entrée statique)

exemple : serveur web sur la machine 10.0.0.1
10.0.0.1:80
80.126.84.12:80
 port mapping : similaire au port forwarding, en utilisant un translation statique
des ports
10.0.0.1:8080
80.126.84.12:80
 uPnP : Universal Plug and Play : protocole permettant aux serveurs utilisant des
ports aléatoires d’insérer des entrées dans la table NAT
 pas de solutions pour plusieurs serveurs utilisant le même port
5
NAT dynamique : Inconvénients(2)
 protocoles sans informations de ports
 cas d’ICMP (informations de niveau 3 uniquement)
 solution : implémentation spécifique du NAT
 pour ICMP:


utilisation de l’identifiant ICMP (type,code)
substitution des adresses IP internes aux message
NAT dynamique : Inconvénients(3)
 protocoles incluant des adresses IP dans la partie applicative
 exemple : FTP
Client
port 21
commande PORT x
port x
Serveur
port 20
 solution : helpers (modules d’application)


développés pour des protocoles spécifiques (FTP, H.323, RTSP…)
analysent et substituent les adresses IP dans la partie applicative du
message
6