Académique Documents
Professionnel Documents
Culture Documents
Dit autrement :
Une organisation (entreprise/particulier) qui possède un certain
nombre m de stations ayant besoin d’un accès Internet n’obtient
généralement qu’un petit nombre n d’adresses IP dites publiques
où
Mais :
En attendant le déploiement d’IPv6, la technique de traduction
d’adresse NAT —et en particulier sa variante PAT— a été dévelop-
pée pour permettre à ces m stations d’avoir accès à Internet.
2
Principe de la traduction d’adresse
Permettre à n adresses publiques d’être partagées par un grand
nombre m de stations (périphériques réseau).
Pour cela :
il faut placer une NATBox qui doit être le seul point de passage
entre le Site NAT (réseau de l’organisation) et le WAN (Internet)
la NATBox est la seule qui possède et gère les n adresses publiques
NATBox
n adresses publiques
Site NAT
NATBox
réseau privé WAN
10.0.0.0/8
(Internet)
partie "invisible" pour Internet
n adresses publiques
5
NAT et la discussion interne
IPréseau
Sourceprivé10.0.0.2 82.3.4.5
IP 10.0.0.0/8
Dest. 10.0.0.3 Internet
10.0.0.1
10.0.0.3 NATBox
(pool 82.3.4.6 à 82.3.4.10)
B
6
NAT et la discussion avec l’extérieur
A (10.0.0.2) veut discuter avec la station externe C (139.124.187.4) :
1 A envoie le datagramme qui parvient au routeur (NATBox)
2 la NATBox remplace l’adresse source (privée) par une adresse
publique disponible (82.3.4.6), enregistre une association (82.3.4.6,
10.0.0.2) dans sa table de traductions, et transmet le datagramme
vers C
3 C répond à l’adresse source du datagramme (82.3.4.6)
4 la NATBbox reçoit le datagramme, consulte sa table de traductions,
trouve l’association (82.3.4.6, 10.0.0.2), remplace l’adresse
destination par 10.0.0.2 et retransmet le datagramme à A
C
A
10.0.0.2 139.124.187.4
82.3.4.5
IP Source réseau privé
10.0.0.2
10.0.0.0/8
IP Dest. 139.124.187.4 10.0.0.1
Internet
10.0.0.3 NATBox
(pool 82.3.4.6 à 82.3.4.10)
B
7
NAT et la discussion avec l’extérieur
A (10.0.0.2) veut discuter avec la station externe C (139.124.187.4) :
1 A envoie le datagramme qui parvient au routeur (NATBox)
2 la NATBox remplace l’adresse source (privée) par une adresse
publique disponible (82.3.4.6), enregistre une association (82.3.4.6,
10.0.0.2) dans sa table de traductions, et transmet le datagramme
vers C
3 C répond à l’adresse source du datagramme (82.3.4.6)
4 la NATBbox reçoit le datagramme, consulte sa table de traductions,
trouve l’association (82.3.4.6, 10.0.0.2), remplace l’adresse
destination par 10.0.0.2 et retransmet le datagramme à A
C
A
10.0.0.2 139.124.187.4
NATBox
Site NAT Internet
11
Terminologie du NAT (2)
NATBox
Site NAT Internet
12
Terminologie du NAT (3)
On ajoute les qualificatifs d’interne et d’externe :
les adresses internes (inside) sont celles maı̂trisées par l’administrateur
du Site NAT
les adresses externes (outside) font référence à des hôtes situés sur le
WAN et qui possèdent (en principe) des adresses publiques
14
La traduction statique (ou 1 pour 1)
Associer de manière fixe et permanente une AGI à une ALI.
AS 82.3.4.10
AS 10.1.1.1
réseau privé AD
82.3.4.5 139.124.187.4 AS 10.0.0.3
réseau privé 82.3.4.5
AD 10.0.0.0/8
139.124.187.4 Internet AD 10.0.0.0/8
139.124.187.4 Internet
10.0.0.1 10.0.0.1
NATBox NATBox
ERREUR
table des traductions table des traductions
10.0.0.3 AGI ALI 10.0.0.3 AGI ALI
82.3.4.10 10.1.1.1 (statique) 82.3.4.10 10.1.1.1 (statique)
AD 10.0.0.0/8
10.1.1.1 Internet 10.0.0.0/8 Internet
10.0.0.1 10.0.0.1
NATBox NATBox ERREUR
table des traductions table des traductions
10.0.0.3 AGI ALI 10.0.0.3 AGI ALI
82.3.4.10 10.1.1.1 (statique) 82.3.4.10 10.1.1.1 (statique)
16
La traduction dynamique NAT (ou m pour n)
(m > n) Associer dynamiquement l’une des n AGI à l’une des m ALI
autorisées lorsque nécessaire.
Seules n stations auront un accès extérieur en même temps :
configurer la NATBox pour autoriser les m hôtes à discuter avec
l’extérieur et définir le pool des n AGI qui seront utilisées
lorsqu’une sation autorisée entame un dialogue avec l’extérieur, lui
associer temporairement une AGI disponible
l’association prend fin après un certain temps d’inactivité
l’AGI est alors remise dans le pool d’adresses disponibles
Aucune association ne peut être créée par un message entrant.
Mais tant que l’association (AGI, ALI) n’a pas expiré, l’hôte est ac-
cessible aux stations externes par l’AGI.
Les traductions dynamiques apparaissent comme les traductions statiques
dans la table des traductions mais leur durée de vie (TTL) est limitée.
17
NAT dynamique : exemples
Message sortant : association créée ou réutilisée pour les ALI
autorisées uniquement (ici, 10.0.0.3)
10.1.1.1 10.2.2.2 10.1.1.1 10.2.2.2
pool 82.3.4.6 à 82.3.4.9
AS 82.3.4.6 pool
ERREUR
82.3.4.6 à 82.3.4.9
10.0.0.3 autorisée 10.0.0.3 autorisée
AS 10.0.0.3
réseau privé AD 139.124.187.4 AS
réseau10.2.2.2
privé
AD 10.0.0.0/8
139.124.187.4 10.0.0.1 82.3.4.5 Internet 10.0.0.0/8
AD 139.124.187.410.0.0.1 82.3.4.5 Internet
NATBox NATBox
table des traductions table des traductions
10.0.0.3 AGI ALI 10.0.0.3 AGI ALI
82.3.4.10 10.1.1.1 (statique) 82.3.4.10 10.1.1.1 (statique)
82.3.4.6 10.0.0.3 (dynamique) 82.3.4.6 10.0.0.3 (dynamique)
18
NAPT (Network Address Port Translation) ou PAT
(à nouveau RFC 2663 et 3022)
19
Caractéristiques du PAT
20
Fonctionnement du PAT
Le PAT gère et traduit des adresses d’application, là où le NAT
crée et gère des associations (AGI, ALI) avec des adresses IP
Rappel : les adresses d’application sont des triplets (IP, Protocole, Port)
La NATBox (PAT) associe une adresse d’application globale à une
application d’un hôte interne qui entame un dialogue avec l’extérieur
Pour cela, comme les adresses IP, les ports sont aussi traduits. Une
association a alors la forme :
(Protocole, ALI:PLI, AGI:PGI)
où
Protocole : est UDP, TCP ou ICMP
PLI (Port Local Interne) : est le port utilisé par l’application locale
PGI (Port Global Interne) : est le port associé pour l’adresse globale de
l’application
Tout le bénéfice du PAT réside dans la traduction des ports :
pour un Protocole donné, en attribuant un PGI différent aux appli-
cations ayant besoin d’un accès externe, une seule AGI suffit !
21
PAT : Exemple avec AGI unique
10.1.1.1 10.2.2.2
(S) 82.3.4.5:15001
TCP
10.0.0.3 autorisée
réseau privé (D) 143.28.12.40:22
(S) 10.0.0.3:15001
TCP
22
PAT : Exemple avec AGI unique
10.1.1.1 10.2.2.2
(S) 82.3.4.5:15002
TCP
(S) 10.2.2.2:15001 10.2.2.2 autorisée
TCP
23
PAT : Exemple avec AGI unique
10.1.1.1 10.2.2.2
(S) 143.28.12.40:22
TCP
réseau privé
(S) 143.28.12.40:22 (D) 82.3.4.5:15001
TCP
10.0.0.0/8 Internet
(D) 10.0.0.3:15001 10.0.0.1 82.3.4.5
NATBox
table des traductions
Proto Inside global Inside local
10.0.0.3 tcp 82.3.4.5:15001 10.0.0.3:15001
tcp 82.3.4.5:15002 10.2.2.2:15001
24
PAT : Exemple avec AGI unique
10.1.1.1 10.2.2.2
(S) 195.3.66.1:25
TCP
(S) 195.3.66.1:25
TCP
25
PAT : Filtrage des messages entrants
Un message entrant ne peut créer d’association dans la table des
traductions : seul un message sortant peut le faire
Un message entrant n’est accepté et traduit que s’il fait partie d’un
dialogue en cours
Outre les associations en cours, les dialogues doivent être enregistrés et
notamment les adresses des applications externes
Quand un message entrant arrive, la NATBox vérifie que les adresses
d’application correspondent à celles d’un dialogue existant
Exemple : les adresses des applications externes des 2 connexions précédentes
figurent en réalité dans la table des traductions.
10.1.1.1 10.2.2.2
(S) 110.80.81.82:22
TCP
(D) 82.3.4.5:15001
Les messages entrants réseau privé
qui n’appartiennent 10.0.0.0/8 10.0.0.1 82.3.4.5 Internet
NATBox ERREUR
pas à ces connexions table des traductions
sont rejetés. 10.0.0.3
Proto Inside global Inside local Outside
tcp 82.3.4.5:15001 10.0.0.3:15001 143.28.12.40:22
tcp 82.3.4.5:15002 10.2.2.2:15001 195.3.66.1:25
26
Fonctionnement du PAT pour ICMP
ICMP ne fournit pas de ports
Les messages d’erreur ICMP contiennent toutefois les en-têtes IP et
TCP/UDP des datagrammes en cause et peuvent donc être traduits
Les messages ICMP de demande (ECHO, Horodatage, etc.)
contiennent un identificateur
L’identificateur est traduit comme s’il s’agissait d’un port. Une
traduction PAT pour un message ICMP (hors messages d’erreur)
envoyé vers l’extérieur par une ALI aura donc la forme suivante :
(ICMP, AGI:IGI, ALI:ILI)
où ILI est l’Identificateur Local Interne et IGI est l’Identificateur Global
Interne
Ainsi la réponse, qui aura comme IP destination l’AGI et comme
identificateur IGI pourra être traduite et retransmise à l’ALI
correspondante
Comme pour TCP et UDP, les adresses externes sont enregistrées, et les
messages entrants ICMP étrangers à un dialogue en cours son rejetés
27
PAT de messages ICMP sortants (hors erreurs)
depuis 10.0.0.3 : requête ping (ECHO REQUEST) d’identificateur (ILI) 0 :
10.1.1.1 10.2.2.2
ICMP
(S) 82.3.4.5:0
10.0.0.3 autorisée
réseau privé (D) 194.199.116.4
ICMP
(S) 10.0.0.3:0
10.0.0.0/8 10.0.0.1 82.3.4.5 Internet
(D) 194.199.116.4
NATBox
table des traductions
Proto Inside global Inside local Outside
10.0.0.3 icmp 82.3.4.5:0 10.0.0.3:0 194.199.116.4:0
ICMP
(S) 82.3.4.5:1
ICMP
Seules sont traduites les adresses internes (Inside global et Inside local) : les
adresses externes (Outside local et Outside global) restent les mêmes.
Ceci car la traduction demandée est inside (interne). Pour que les adresses ex-
ternes soient traduites (cas d’overlapping), il faut aussi opérer une traduction
outside.
29
Gestion de la table des traductions/dialogues en cours
Pour les variantes dynamiques du NAT et du PAT, la NATBox doit
maintenir un état des ”dialogues” (ou sessions) en cours :
connexions TCP
dialogues avec UDP
dialogues avec ICMP (essentiellement ping)
30
Détection de la fin d’un dialogue
31
PAT statique et redirection de port (port forwarding)
Comment un serveur du Site NAT peut-il être contacté depuis l’extérieur ?