Upload
others
View
6
Download
0
Embed Size (px)
Citation preview
Reseaux - Cours 4Traduction d’adresse (NAT/PAT)
et Service de Nom de Domaine (DNS)
Cyril Pain-Barre
IUT Informatique Aix-en-Provence
Semestre 2 - version du 25/3/2011
Cyril Pain-Barre NAT/PAT et DNS 1 / 53
NAT (Network Address Translation)
(RFC 2663 et 3022)
Cyril Pain-Barre NAT/PAT et DNS 2 / 53
Saturation de l’espace d’adressage : cause
L’augmentation exponentielle du nombre d’ordinateurs connectes aInternet a rapidement sature l’espace d’adressage IP
Phenomene du aussi bien aux entreprises qu’aux particuliers
Cote entreprises :
hebergent souvent des serveurs devant etre joints en permanenceleurs stations de travail ont aussi souvent besoin d’acceder a toutmoment a des services externes
Cote particuliers :
nombreux a avoir choisi un abonnement ADSL ou cable paye au forfait etqui restent connectes en permanence (que l’attribution d’adresse soit fixeou dynamique)le prix des ordinateurs est tel qu’une famille possede souvent plusieursordinateurs qui doivent tous acceder a Internetdu point de vue FAI, une famille a les memes besoins qu’une petiteentreprise
Si le CIDR a permis de regler en partie le probleme, l’espace d’adres-sage IPv4 demeure insuffisant !
Cyril Pain-Barre NAT/PAT et DNS 3 / 53
Saturation de l’espace d’adressage : effets
La penurie d’adresses IPv4 s’est traduite par la situation suivante :
Il n’est plus possible d’attribuer une adresse IP a chaque stationconnectee a Internet.
Dit autrement :
Une organisation (entreprise/particulier) qui possede un certainnombre m de stations ayant besoin d’un acces Internet n’obtientgeneralement qu’un petit nombre n d’adresses IP dites publiquesou
n est bien plus petit que m (et peut meme valoir 1 !)
Mais :
En attendant le deploiement d’IPv6, la technique de traductiond’adresse NAT —et en particulier sa variante PAT— a ete develop-pee pour permettre a ces m stations d’avoir acces a Internet.
Cyril Pain-Barre NAT/PAT et DNS 4 / 53
Principe de la traduction d’adresse
Permettre a n adresses publiques d’etre partagees par un grandnombre m de stations (peripheriques reseau).
Pour cela :
il faut placer une NATBox qui doit etre le seul point de passageentre le Site NAT (reseau de l’organisation) et le WAN (Internet)
la NATBox est la seule qui possede et gere les n adresses publiques
adresses publiquesn
Site NAT
NATBox
WAN
(Internet)
En schematisant, quand une station du Site NAT veut dialoguer avecl’exterieur, elle passe par la NATBox qui utilisera (temporairement)l’une des n adresses publiques
Cyril Pain-Barre NAT/PAT et DNS 5 / 53
Quelques precisions
une NATBox est un routeur avec les fonctionnalites NAT (la plupartdes routeurs, et les *box des FAI)
les stations du Site NAT n’ont pas connaissance des adresses publiquesde la NATBox et ne les utilisent pas
mais ont des adresses privees qu’il est fortement conseille de prendredans les plages definies par la RFC 1918 :
10.0.0.0/8 soit 16 777 216 adresses (de 10.0.0.0 a 10.255.255.255)172.16.0.0/12 soit 1 048 576 adresses (de 172.16.0.0 a 172.31.255.255)192.168.0.0/16 soit 65 536 adresses (de 192.168.0.0 a 192.168.255.255)
adresses publiquesn
NATBoxSite NAT
réseau privé
10.0.0.0/8
partie "invisible" pour Internet
WAN
(Internet)
Pour les stations du WAN, seules les n adresses de la NATBoxexistent et le Site NAT avec ses adresses privees est invisible.
Cyril Pain-Barre NAT/PAT et DNS 6 / 53
Precisions (suite)
a l’interieur du Site NAT, les stations communiquent entre elles enutilisant leurs adresses privees
sans le NAT, un message envoye a l’exterieur ne pourrait avoir dereponse car les adresses privees ne sont pas routables dans le WAN
la NATBox doit traduire (remplacer) dans un tel message, l’adresseprivee par une adresse publique, et inversement pour la reponse
Sur un routeur CISCO, on definit les adresses publiques a utiliser pour latraduction (dynamique) dans un pool.Exemple :
ip nat pool adrpub 82.3.4.6 82.3.4.10 netmask 255.255.255.0
definit un pool de 5 adresses publiques nomme adrpub
Cyril Pain-Barre NAT/PAT et DNS 7 / 53
NAT et la discussion interne
La station A (10.0.0.2) veut discuter avec la station B (10.0.0.3) :
le dialogue etant interne, la NATBox n’est pas concernee parce trafic
les datagrammes contiennent les adresses de A et de B
10.0.0.1
82.3.4.5
NATBox
AC
B(pool 82.3.4.6 à 82.3.4.10)
Internet
réseau privé
10.0.0.0/8
10.0.0.2
10.0.0.3
139.124.187.4
IP Source 10.0.0.2
10.0.0.3IP Dest.
Cyril Pain-Barre NAT/PAT et DNS 8 / 53
NAT et la discussion avec l’exterieur
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 (privee) par une adressepublique disponible (82.3.4.6), enregistre une association (82.3.4.6,10.0.0.2) dans sa table de traductions, et transmet le datagrammevers C
3 C repond a l’adresse source du datagramme (82.3.4.6)
4 la NATBbox recoit le datagramme, consulte sa table de traductions,trouve l’association (82.3.4.6, 10.0.0.2), remplace l’adressedestination par 10.0.0.2 et retransmet le datagramme a A
10.0.0.1
82.3.4.5
NATBox
AC
B(pool 82.3.4.6 à 82.3.4.10)
Internet
réseau privé
10.0.0.0/8
10.0.0.2
10.0.0.3
139.124.187.4
IP Source 10.0.0.2
139.124.187.4IP Dest.
Cyril Pain-Barre NAT/PAT et DNS 9 / 53
NAT et la discussion avec l’exterieur
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 (privee) par une adressepublique disponible (82.3.4.6), enregistre une association (82.3.4.6,10.0.0.2) dans sa table de traductions, et transmet le datagrammevers C
3 C repond a l’adresse source du datagramme (82.3.4.6)
4 la NATBbox recoit le datagramme, consulte sa table de traductions,trouve l’association (82.3.4.6, 10.0.0.2), remplace l’adressedestination par 10.0.0.2 et retransmet le datagramme a A
10.0.0.1
82.3.4.5
NATBox
AC
B(pool 82.3.4.6 à 82.3.4.10)
Internet
réseau privé
10.0.0.0/8
10.0.0.2
10.0.0.3
139.124.187.4
IP Source 82.3.4.6
139.124.187.4IP Dest.
Cyril Pain-Barre NAT/PAT et DNS 10 / 53
NAT et la discussion avec l’exterieur
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 (privee) par une adressepublique disponible (82.3.4.6), enregistre une association (82.3.4.6,10.0.0.2) dans sa table de traductions, et transmet le datagrammevers C
3 C repond a l’adresse source du datagramme (82.3.4.6)
4 la NATBbox recoit le datagramme, consulte sa table de traductions,trouve l’association (82.3.4.6, 10.0.0.2), remplace l’adressedestination par 10.0.0.2 et retransmet le datagramme a A
10.0.0.1
82.3.4.5
NATBox
AC
B(pool 82.3.4.6 à 82.3.4.10)
Internet
réseau privé
10.0.0.0/8
10.0.0.2
10.0.0.3
139.124.187.4
IP Source 139.124.187.4
82.3.4.6IP Dest.
Cyril Pain-Barre NAT/PAT et DNS 11 / 53
NAT et la discussion avec l’exterieur
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 (privee) par une adressepublique disponible (82.3.4.6), enregistre une association (82.3.4.6,10.0.0.2) dans sa table de traductions, et transmet le datagrammevers C
3 C repond a l’adresse source du datagramme (82.3.4.6)
4 la NATBbox recoit le datagramme, consulte sa table de traductions,trouve l’association (82.3.4.6, 10.0.0.2), remplace l’adressedestination par 10.0.0.2 et retransmet le datagramme a A
10.0.0.1
82.3.4.5
NATBox
AC
B(pool 82.3.4.6 à 82.3.4.10)
Internet
réseau privé
10.0.0.0/8
10.0.0.2
10.0.0.3
139.124.187.4
IP Source 139.124.187.4
10.0.0.2IP Dest.
Cyril Pain-Barre NAT/PAT et DNS 12 / 53
Terminologie du NAT
Issue de CISCO, la terminologie fait la distinction entre :
les adresses globales : adresses publiques routables (sur Internet) carelles ont une signification a portee globale
les adresses locales : n’ont un sens que localement, dans le Site NAT
Selon ou l’on se trouve, on utilise l’un de ces types d’adresses :
a l’interieur (inside) du Site NAT, on utilise des adresses locales
a l’exterieur (outside), on utilise des adresses globales
Site NAT
NATBox
à l’extérieur, les adresses doivent être publiqueslocalement, les adresses des messages sont libres
Intérieur (inside) Extérieur (outside)
Internet
adresses globalesadresses locales
Cyril Pain-Barre NAT/PAT et DNS 13 / 53
Terminologie du NAT (2)
Les messages passant la frontiere inside/outside sont modifies parla NATBox qui en traduit les adresses :
pour les messages sortants (inside −→ outside) :les adresses locales sont traduites en adresses globales
pour les messages entrants (inside ←− outside) :les adresses globales sont traduites en adresses locales
Site NAT
NATBox
Intérieur (inside) Extérieur (outside)
Internet
adresses globalesadresses locales
adresses globalesadresses locales
Cyril Pain-Barre NAT/PAT et DNS 14 / 53
Terminologie du NAT (3)
On ajoute les qualificatifs d’interne et d’externe :
les adresses internes (inside) sont celles maıtrisees par l’administrateurdu Site NAT
les adresses externes (outside) font reference a des hotes situes sur leWAN et qui possedent (en principe) des adresses publiques
On distingue donc en realite les 4 types d’adresses suivantes :
adresses locales internes ou ALI (inside local address) :les adresses (en principe privees) des hotes du Site NAT
adresses globales internes ou AGI (inside global address) :les adresses publiques de la NATBox
adresses locales externes ou ALE (outside local address) :les adresses des hotes du WAN vues par les hotes du LAN
adresses globales externes ou AGE (outside global address) :les adresses des hotes du WAN
Cyril Pain-Barre NAT/PAT et DNS 15 / 53
Schema general de la traduction NAT
La NATBox traduit les adresses source (AS) et destination (AD) desmessages qui franchissent la frontiere inside/outside :
Site NAT
NATBox
Intérieur (inside) Extérieur (outside)
message sortant
message entrant
Internet
AD : adresse locale externe
AS : adresse locale interne AS : adresse globale interne
AD : adresse globale externe
AS : adresse globale externe
AD : adresse globale interne
AS : adresse locale externe
AD : adresse locale interne
Dans le cadre du NAT, les AS et les AD sont des adresses IP.Dans sa variante PAT, il s’agit d’adresses d’applications.
Dans le cas normal (hors overlapping), les adresses externes ne sontpas traduites (adresse locale externe ≡ adresse globale externe).
Cyril Pain-Barre NAT/PAT et DNS 16 / 53
Traductions inside et outside
On peut indiquer a la NATBox les traductions a operer
traduction inside : traduire les adresses internes (inside)
Site NAT
sortant
entrant
Internet
AS : adresse locale interne
AD : adresse globale interneAD : adresse locale interne
AS : adresse globale interne
Dans le cas normal, c’est la seule necessaire.
traduction outside : traduire les adresses externes (outside)
Site NAT
sortant
entrant
Internet
AD : adresse locale externe
AS : adresse globale externeAS : adresse locale externe
AD : adresse globale externe
Cette traduction n’est utile qu’en cas d’overlapping
ou les deux a la fois (realise en pratique pour traiter l’overlapping)
Cyril Pain-Barre NAT/PAT et DNS 17 / 53
Overlapping (chevauchement d’adresses)
Cas de l’intersection non vide des AGE et des ALI.
Par exemple, une entreprise a change d’adresse de reseau (oude fournisseur) mais n’a pas encore reconfigure ses stations.En attendant de le faire, elle met en place du NAT avec lepool des nouvelles adresses, mais il faut traiter le fait que lesALI sont probablement et legitimement reutilisees par desstations externes.
Autre exemple, une entreprise a eu la mauvaise idee de ne pasutiliser les adresses privees pour son site NAT. Les adressesqu’elle a choisies pour ses ALI sont deja utilisees dans le WAN(AGE).
Sans traduction des adresses externes, il y aurait ambiguıte car unememe adresse designerait a la fois une station interne et une stationexterne.
Cyril Pain-Barre NAT/PAT et DNS 18 / 53
Variantes du NAT
Avec n adresses publiques, plusieurs variantes sont possibles/combinables :
NAT statique : n stations choisies du Site NAT ont acces a l’exterieur(traductions ALI ←→ AGI fixees par avance)
NAT dynamique : m stations (voire toutes) du Site NAT sontautorisees a acceder a l’exterieur. Les AGI leur sont associeesdynamiquement et temporairement.
PAT dynamique : plusieurs milliers de stations peuvent partager uneseule AGI (adresse publique). La variante du NAT la plus utilisee.
PAT statique : surtout utilisee pour permettre a des serveurs internesd’etre joints depuis l’exterieur
auxquelles ont peut ajouter le traitement de l’overlapping.
Cyril Pain-Barre NAT/PAT et DNS 19 / 53
La traduction statique (ou 1 pour 1)
Associer de maniere fixe et permanente une AGI a une ALI.
Surtout utilisee si le Site NAT dispose m serveurs devant etre accessiblesdepuis l’exterieur :
reserver m adresses parmi les n adresses publiques
ces m adresses ne pourront plus servir a la traduction dynamique
configurer la NATBox avec m traductions statiques de type :
(adresse globale interne, adresse locale interne)
Exemple (partiel) d’activation sur un routeur CISCO :# ip nat inside source static 10.1.1.1 82.3.4.10
associe statiquement l’ALI 10.1.1.1 et l’AGI 82.3.4.10. Cette association estpermanente et apparaıt dans la table des traductions :# show ip nat translations
Pro Inside global Inside local Outside local Outside global
--- 82.3.4.10 10.1.1.1 --- ---
Cyril Pain-Barre NAT/PAT et DNS 20 / 53
Traitement des messages pour la traduction statique
Message sortant : adresse source traduite ALI −→ AGI si l’associationstatique (AGI, ALI) existe, sinon il est rejeteExemples : ou seule la traduction statique (82.3.4.10, 10.1.1.1) existe
10.0.0.1
82.3.4.5
NATBox
AGI ALI
(statique)
table des traductions
82.3.4.10 10.1.1.1
Internet
réseau privé
10.0.0.0/8
10.0.0.3
10.1.1.1
10.1.1.1
139.124.187.4
AS
AD
82.3.4.10
139.124.187.4
AS
AD
10.0.0.1
82.3.4.5
NATBox
AGI
82.3.4.10 10.1.1.1
ALI
(statique)
table des traductions
Internet
réseau privé
10.0.0.0/8
10.0.0.3
10.1.1.1
10.0.0.3
139.124.187.4
AS
AD
ERREUR
Message entrant : adresse destination traduite AGI −→ ALI sil’association statique (AGI, ALI) existe, sinon il est rejete (cette AGI estgeree mais non associee par la NATBox)
10.0.0.1
82.3.4.5
NATBox
AGI
82.3.4.10 10.1.1.1
ALI
(statique)
table des traductions
Internet
réseau privé
10.0.0.0/8
10.0.0.3
10.1.1.1
197.202.1.8
10.1.1.1
AS
AD
197.202.1.8
82.3.4.10
AS
AD
10.0.0.1
82.3.4.5
NATBox
AGI
82.3.4.10 10.1.1.1
ALI
(statique)
table des traductions
Internet
réseau privé
10.0.0.0/8
10.0.0.3
10.1.1.1197.202.1.8
82.3.4.9
AS
AD
ERREUR
Cyril Pain-Barre NAT/PAT et DNS 21 / 53
La traduction dynamique NAT (ou m pour n)
(m > n) Associer dynamiquement l’une des n AGI a l’une des m ALIautorisees lorsque necessaire.
Seules n stations auront un acces exterieur en meme temps :
configurer la NATBox pour autoriser les m hotes a discuter avecl’exterieur et definir le pool des n AGI qui seront utilisees
lorsqu’une sation autorisee entame un dialogue avec l’exterieur, luiassocier temporairement une AGI disponible
l’association prend fin apres un certain temps d’inactivite
l’AGI est alors remise dans le pool d’adresses disponibles
Aucune association ne peut etre creee par un message entrant.Mais tant que l’association (AGI, ALI) n’a pas expire, l’hote est ac-cessible aux stations externes par l’AGI.
Les traductions dynamiques apparaissent comme les traductions statiquesdans la table des traductions mais leur duree de vie (TTL) est limitee.
Cyril Pain-Barre NAT/PAT et DNS 22 / 53
NAT dynamique : exemples
Message sortant : association creee ou reutilisee pour les ALIautorisees uniquement (ici, 10.0.0.3)
82.3.4.510.0.0.1
AGI ALI
(statique)
table des traductions
NATBox
10.0.0.3 autorisée
pool 82.3.4.6 à 82.3.4.9
82.3.4.10
10.0.0.3 (dynamique)
10.1.1.1
82.3.4.6
Internet
réseau privé
10.0.0.0/8
10.0.0.3
10.1.1.1 10.2.2.2
10.0.0.3
139.124.187.4
AS
AD
82.3.4.6
139.124.187.4
AS
AD
82.3.4.510.0.0.1
AGI ALI
(statique)
table des traductions
NATBox
10.0.0.3 autorisée
pool 82.3.4.6 à 82.3.4.9
82.3.4.10
10.0.0.3 (dynamique)
10.1.1.1
82.3.4.6
Internet
réseau privé
10.0.0.0/8
10.0.0.3
10.1.1.1 10.2.2.2
10.2.2.2
139.124.187.4
AS
AD
ERREUR
Message entrant : accepte et traduit uniquement si associationexistante pour l’AGI
82.3.4.510.0.0.1
AGI ALI
(statique)
table des traductions
NATBox
82.3.4.10
10.0.0.3 (dynamique)
10.1.1.1
82.3.4.6
Internet
réseau privé
10.0.0.0/8
10.0.0.3
10.1.1.1 10.2.2.2
182.13.28.5
10.0.0.3
AS
AD
182.13.28.5
82.3.4.6
AS
AD
82.3.4.510.0.0.1
AGI ALI
(statique)
table des traductions
NATBox
82.3.4.10
10.0.0.3 (dynamique)
10.1.1.1
82.3.4.6
Internet
réseau privé
10.0.0.0/8
10.0.0.3
10.1.1.1 10.2.2.2182.13.28.5
82.3.4.7
AS
AD
ERREUR
Cyril Pain-Barre NAT/PAT et DNS 23 / 53
NAPT (Network Address Port Translation) ou PAT
(a nouveau RFC 2663 et 3022)
Cyril Pain-Barre NAT/PAT et DNS 24 / 53
Caracteristiques du PAT
Alors que NAT limite l’acces simultane a l’exterieur (Internet)a n stations si l’on dispose de n AGI, le PAT permet cet accesa plusieurs milliers de stations meme si n est reduit a 1
Les *box des FAI utilisent le PAT pour permettre a plusieursordinateurs d’un foyer (ou d’une TPE) d’acceder a Internet,puisqu’un foyer ne possede qu’une seule adresse IP
Le PAT est normalise pour fonctionner avec des datagrammesIP contenant des messages ICMP, UDP ou TCP
Pour d’eventuels autres protocoles, des solutions peuvent etremises en place mais ce n’est pas normalise
C’est la variante la plus utilisee du NAT.
Cyril Pain-Barre NAT/PAT et DNS 25 / 53
Fonctionnement du PAT
Le PAT gere et traduit des adresses d’application, la ou le NATcree et gere 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 a uneapplication d’un hote interne qui entame un dialogue avec l’exterieur
Pour cela, comme les adresses IP, les ports sont aussi traduits. Uneassociation a alors la forme :
(Protocole, ALI:PLI, AGI:PGI)
ou
Protocole : est UDP, TCP ou ICMPPLI (Port Local Interne) : est le port utilise par l’application localePGI (Port Global Interne) : est le port associe pour l’adresse globale del’application
Tout le benefice du PAT reside dans la traduction des ports :pour un Protocole donne, en attribuant un PGI different aux appli-cations ayant besoin d’un acces externe, une seule AGI suffit !
Cyril Pain-Barre NAT/PAT et DNS 26 / 53
PAT : Exemple avec AGI unique
La NATBox ne possede qu’une seule AGI 82.3.4.5 qu’ellepartage avec les hotes du Site NAT :
82.3.4.510.0.0.1
table des traductions
NATBox
10.0.0.3 autorisée
Inside localInside globalProto
82.3.4.5:15001 10.0.0.3:15001tcp
Internet
réseau privé
10.0.0.0/8
10.1.1.1 10.2.2.2
10.0.0.3
(D)
(S) 82.3.4.5:15001
143.28.12.40:22
TCP
(D)
(S) 10.0.0.3:15001
143.28.12.40:22
TCP
un client SSH de 10.0.0.3 se connecte au serveur SSH externe143.28.12.40
Cyril Pain-Barre NAT/PAT et DNS 27 / 53
PAT : Exemple avec AGI unique
La NATBox ne possede qu’une seule AGI 82.3.4.5 qu’ellepartage avec les hotes du Site NAT :
82.3.4.510.0.0.1
table des traductions
NATBox
10.2.2.2 autorisée
Inside localInside globalProto
82.3.4.5:15001 10.0.0.3:15001tcp
tcp 82.3.4.5:15002 10.2.2.2:15001
Internet
réseau privé
10.0.0.0/8
10.1.1.1 10.2.2.2
10.0.0.3
(D)
(S) 82.3.4.5:15002
195.3.66.1:25TCP
(D)
(S) 10.2.2.2:15001
195.3.66.1:25TCP
un client SMTP de 10.2.2.2 se connecte au serveur SMTP externe195.3.66.1
Cyril Pain-Barre NAT/PAT et DNS 28 / 53
PAT : Exemple avec AGI unique
La NATBox ne possede qu’une seule AGI 82.3.4.5 qu’ellepartage avec les hotes du Site NAT :
82.3.4.510.0.0.1
table des traductions
NATBox
Inside localInside globalProto
82.3.4.5:15001 10.0.0.3:15001tcp
tcp 82.3.4.5:15002 10.2.2.2:15001
Internet
réseau privé
10.0.0.0/8
10.1.1.1 10.2.2.2
10.0.0.3
(D)
(S) 143.28.12.40:22
10.0.0.3:15001TCP
(D)
(S) 143.28.12.40:22
82.3.4.5:15001TCP
le serveur SSH repond a la NATBox qui transmet au client de10.0.0.3
Cyril Pain-Barre NAT/PAT et DNS 29 / 53
PAT : Exemple avec AGI unique
La NATBox ne possede qu’une seule AGI 82.3.4.5 qu’ellepartage avec les hotes du Site NAT :
82.3.4.510.0.0.1
table des traductions
NATBox
Inside localInside globalProto
82.3.4.5:15001 10.0.0.3:15001tcp
tcp 82.3.4.5:15002 10.2.2.2:15001
Internet
réseau privé
10.0.0.0/8
10.1.1.1 10.2.2.2
10.0.0.3
(D)
(S) 195.3.66.1:25
82.3.4.5:15002TCP
(D)
(S) 195.3.66.1:25
10.2.2.2:15001TCP
le serveur SMTP repond a la NATBox qui transmet au client de10.2.2.2
Cyril Pain-Barre NAT/PAT et DNS 30 / 53
PAT : Filtrage des messages entrants
Un message entrant ne peut creer d’association dans la table destraductions : seul un message sortant peut le faire
Un message entrant n’est accepte et traduit que s’il fait partie d’undialogue en cours
Outre les associations en cours, les dialogues doivent etre enregistres etnotamment les adresses des applications externes
Quand un message entrant arrive, la NATBox verifie que les adressesd’application correspondent a celles d’un dialogue existant
Exemple : les adresses des applications externes des 2 connexions precedentesfigurent en realite dans la table des traductions.
Les messages entrantsqui n’appartiennentpas a ces connexionssont rejetes.
82.3.4.510.0.0.1
table des traductions
NATBox
Inside localInside globalProto
82.3.4.5:15001 10.0.0.3:15001tcp
tcp 82.3.4.5:15002 10.2.2.2:15001
Outside
143.28.12.40:22
195.3.66.1:25
Internet
réseau privé
10.0.0.0/8
10.1.1.1 10.2.2.2
10.0.0.3
(D)
(S) 110.80.81.82:22
82.3.4.5:15001TCP
ERREUR
Cyril Pain-Barre NAT/PAT et DNS 31 / 53
Fonctionnement du PAT pour ICMP
ICMP ne fournit pas de ports
Les messages d’erreur ICMP contiennent toutefois les en-tetes IP etTCP/UDP des datagrammes en cause et peuvent donc etre traduits
Les messages ICMP de demande (ECHO, Horodatage, etc.)contiennent un identificateur
L’identificateur est traduit comme s’il s’agissait d’un port. Unetraduction PAT pour un message ICMP (hors messages d’erreur)envoye vers l’exterieur par une ALI aura donc la forme suivante :
(ICMP, AGI:IGI, ALI:ILI)
ou ILI est l’Identificateur Local Interne et IGI est l’Identificateur GlobalInterne
Ainsi la reponse, qui aura comme IP destination l’AGI et commeidentificateur IGI pourra etre traduite et retransmise a l’ALIcorrespondante
Comme pour TCP et UDP, les adresses externes sont enregistrees, et lesmessages entrants ICMP etrangers a un dialogue en cours sont rejetes
Cyril Pain-Barre NAT/PAT et DNS 32 / 53
PAT de messages ICMP sortants (hors erreurs)
depuis 10.0.0.3 : requete ping (ECHO REQUEST) d’identificateur (ILI) 0 :
82.3.4.510.0.0.1
Outside
table des traductions
NATBox
10.0.0.3 autorisée
Inside localInside globalProto
icmp 82.3.4.5:0 10.0.0.3:0 194.199.116.4:0
Internet
réseau privé
10.0.0.0/8
10.1.1.1 10.2.2.2
10.0.0.3
(D)
(S) 82.3.4.5:0
194.199.116.4ICMP
(D)
(S) 10.0.0.3:0
194.199.116.4ICMP
depuis 10.1.1.1 : autre requete ping d’identificateur 0 :
82.3.4.510.0.0.1
Outside
table des traductions
NATBox
10.0.0.3 autorisée
Inside localInside globalProto
icmp 82.3.4.5:0 10.0.0.3:0 194.199.116.4:0
icmp 82.3.4.5:1 10.1.1.1:0 201.3.4.21:1
Internet
réseau privé
10.0.0.0/8
10.1.1.1 10.2.2.2
10.0.0.3
(D)
(S) 82.3.4.5:1
201.3.4.21ICMP
(D)
(S) 10.1.1.1:0
201.3.4.21ICMP
La NATBox a traduit l’ILI (0) avec un IGI libre (1)
Cyril Pain-Barre NAT/PAT et DNS 33 / 53
Schema general de la traduction PAT
Avec le PAT, on utilise aussi les PLE (Port Local Externe) et les PGE(Port Global Externe). On distingue les deux adresses suivantes pourune application externe pour un protocole donne (UDP, TCP, ICMP) :
ALE:PLE : son adresse vue par un hote du Site NATAGE:PGE : son adresse dans le WAN (Internet)
Pour des messages d’un meme protocole (UDP, TCP, ICMP), leschema general de la traduction PAT est :
Site NAT
NATBox
Intérieur (inside) Extérieur (outside)
message sortant
message entrant
Internet
(dest.) ALE:PLE
(source) ALI:PLI
(source) AGE:PGE
(dest.) AGI:PGIPro
toP
roto
(source) ALE:PLE
(dest.) ALI:PLIPro
toP
roto (source) AGI:PGI
(dest.) AGE:PGE
Sauf en cas d’overlapping, les adresses externes ne sont pas traduites :
ALE ≡ AGE et PLE ≡ PGECyril Pain-Barre NAT/PAT et DNS 34 / 53
Table de traductions complete
La table des traductions contient en realite toutes ces adresses
Exemple : la table ci-dessous montre les traductions pour les deux connexionsTCP des exemples precedents et les deux dialogues ICMP (ping) :
# show ip nat translations
Pro Inside global Inside local Outside local Outside global
tcp 82.3.4.5:15001 10.0.0.3:15001 143.28.12.40:22 143.28.12.40:22
tcp 82.3.4.5:15002 10.2.2.2:15001 195.3.66.1:25 195.3.66.1:25
icmp 82.3.4.5:0 10.0.0.3:0 194.199.116.4:0 194.199.116.4:0
icmp 82.3.4.5:1 10.1.1.1:0 201.3.4.21:1 201.3.4.21:1
Seules sont traduites les adresses internes (Inside global et Inside local) : lesadresses externes (Outside local et Outside global) restent les memes.
Ceci car la traduction demandee est inside (interne). Pour que les adresses ex-ternes soient traduites (cas d’overlapping), il faut aussi operer une traductionoutside.
Cyril Pain-Barre NAT/PAT et DNS 35 / 53
Gestion de la table des traductions/dialogues en cours
Pour les variantes dynamiques du NAT et du PAT, la NATBox doitmaintenir un etat des ”dialogues” (ou sessions) en cours :
connexions TCPdialogues avec UDPdialogues avec ICMP (essentiellement ping)
car les adresses globales internes —temporairement allouees— doiventetre rendues a nouveau disponibles des que possible :
pour le NAT : l’AGI associee a une ALI devra etre a nouveau disponiblelorsque les dialogues de l’ALI avec l’exterieur sont terminespour le PAT : les couples AGI:PGI (de TCP et ceux d’UDP) et AGI:IGI(ICMP) doivent etre aussi restitues lorsque les applications ont termineleur dialogue
La NATBox doit detecter la fin des dialogues en cours, afin de pouvoirreallouer des que possible les adresses globales internes.
Cyril Pain-Barre NAT/PAT et DNS 36 / 53
Detection de la fin d’un dialogue
C’est un probleme difficile auquel il n’y a pas de solution ”transparente”
Pour une connexion TCP :
les deux cotes ont envoye leur segment FINun cote a envoye un segment RSTmais rien ne dit qu’ils l’ont recu : la connexion est consideree commeclose un certain temps (configurable) apres l’une de ces situations
Pour un dialogue UDP ou ICMP :
cela dependant des (protocoles d’) applicationsle dialogue est considere comme termine si aucun datagramme leconcernant n’arrive a la NATBox pendant un certain temps (configurable)la NATBox peut disposer d’un module reconnaissant les protocolesd’application concernes et la fin de leurs dialogues
Cyril Pain-Barre NAT/PAT et DNS 37 / 53
PAT statique et redirection de port (port forwarding)
Comment un serveur du Site NAT peut-il etre contacte depuis l’exterieur ?
Rappel : le PAT (dynamique) filtre les messages entrants, et on ne peutcontacter un serveur du Site NAT depuis l’exterieur
Une traduction PAT statique permet a l’exterieur d’initier un dialogue
Exemple : la regle suivante sur la NATBox ajoute une entree statiquedans la table qui permet a l’exterieur de se connecter au serveur SMTPde la station 10.1.1.1 :
# ip nat inside source static tcp 10.1.1.1 25 82.3.4.5 25
# show ip nat translations
Pro Inside global Inside local Outside local Outside global
tcp 82.3.4.5:25 10.1.1.1:25 --- ---
Ainsi, les segments TCP destines au port 25 de la NATBoxseront rediriges (traduits) vers le serveur 10.1.1.1.
Certaines NATBox permettent de configurer des redirections de plagesde port vers d’autres plages, ainsi que les adresses externes autorisees
Cyril Pain-Barre NAT/PAT et DNS 38 / 53
Effets de la traduction sur les autres protocoles
La traduction operee par le NAT/PAT doit etre transparente, autantpour les ordinateurs que les protocoles de TCP/IP
Or, la modification des adresses/ports source et destination n’est pasanodine pour de nombreux protocoles comme IP, ICMP, TCP, UDP,FTP, et bien d’autres :
IP, TCP et UDP incluent les adresses IP dans le calcul de leur ChecksumTCP et UDP y incluent aussi les ports et les donnees (voir FTP)Les messages d’erreur d’ICMP (types 3 a 5 et 11) contiennent une partie(au moins en-tetes IP et TCP/UDP) des datagrammes ayant provoquel’erreurFTP envoie, dans la commande PORT et en reponse de la commandePASV, une adresse d’application a utiliser pour etablir une connexion dedonnees
La NATBox doit en tenir compte et modifier tous les messages desprotocoles qui utilisent les informations qu’elle traduit !Cela implique parfois de constamment modifier les numeros de sequenceet d’acquittement d’une connexion TCP. . .
Cyril Pain-Barre NAT/PAT et DNS 39 / 53
Le DNS (Domain Name Service)
(RFC 1034 et 1035)
Cyril Pain-Barre NAT/PAT et DNS 40 / 53
Introduction
Se rappeler d’une adresse IP est assez difficile, ex :212.27.48.10
Mais alors de plusieurs (209.85.137.99, 139.124.187.4, . . . ),c’est franchement penible !
En revanche, retenir des noms comme www.free.fr,www.google.com, allegro.iut.univ-aix.fr, c’est bienplus facile
C’est pourquoi le DNS existe : il permet de nommer desordinateurs et de ”resoudre” des noms en adresses IP :
www.free.fr en 212.27.48.10www.google.com en 209.85.137.99allegro.iut.univ-aix.fr en 139.124.187.4
et inversement (resolution inverse)
Cyril Pain-Barre NAT/PAT et DNS 41 / 53
Origine du DNS
Au debut d’internet, l’espace de noms etait ”plat” et admettaitdes noms de type :
serveur
capucine
gandalf
. . .
et centralise : gere par le NIC (Network Information Center)puis plus tard par l’INTERNIC (Internet Information Center)
mais la multiplicite des ordinateurs connectes et nommes arendu la gestion trop lourde
et un nom pris ne pouvait plus etre utilise
ce qui s’est traduit par l’utilisation de noms de plus en plusobscurs : serveurbis, gandalfsecond, etc.
Cyril Pain-Barre NAT/PAT et DNS 42 / 53
DNS : espace de noms hierarchise et decentralise
Avec le DNS, l’espace de noms est organise en une hierarchie ausommet de laquelle figure la racine et immediatement en dessous lesTLD (Top-Level Domain) ou domaines de niveau superieurs :
top−level domains
racine
...com edu org fr uk
L’ICANN (Internet Corporation for Assigned Names and Numbers) a encharge la creation des TLD et a cree notamment les TLD suivants :
com : entreprises commercialesedu : etablissements d’enseignementorg : organisations diversesun TLD par code pays sur 2 lettres (norme ISO 3166) :
fr : Franceuk : Royaume-Unide : Allemagnetv : ıle Tuvalu (qui en profite bien. . . )
Cyril Pain-Barre NAT/PAT et DNS 43 / 53
DNS : delegation de gestion de (sous-)domaine
L’ICANN a ensuite delegue la gestion des sous-domaines des TLD ades entreprises ou organisations gouvernementales :
com et net a la societe VeriSignedu, org et autres a l’INTERNICfr et re (ıle de la reunion) a l’AFNIC (Association Francaise pour leNommage Internet en Cooperation)etc.
Ces gestionnaires vendent (parfois via des registrars) les sous-domainesde leurs TLD et en deleguent la gestion a leurs acheteurs :
google.com
free.fr
gouv.fr
univ-aix.fr
Le proprietaire d’un sous-domaine peut ensuite le decliner a sa guise afinde nommer des ordinateurs et/ou de creer des sous-sous-domaines :
www.free.fr (ordinateur)smtp.free.fr (ordinateur)hd.free.fr (sous-sous-domaine)
Cyril Pain-Barre NAT/PAT et DNS 44 / 53
Achat/Depot d’un sous-domaine
Se fait generalement pour une duree limitee (1 a 10 ans) aupres d’unregistrar
Doit etre associe a l’identite et l’adresse postale d’une personne quidoit fournir 3 types d’informations :
Administrative Contact : responsable du sous-domaineBilling Contact : payeur du sous-domaineTechnical Contact : responsable technique du sous-domaine
le tout pouvant etre la meme personne
Ces informations sont publiques et consultables par tout le monde :
sous Unix, en utilisant la commande whoissur le Web, grace a des serveurs WHOIS (ex : http://www.whois.net)
Cyril Pain-Barre NAT/PAT et DNS 45 / 53
DNS : terminologie
Le terme domaine designe a la fois un domaine, un sous-domaine, etc :fr, univ-aix.fr et iut.univ-aix.fr sont des domaines
Le nom d’un domaine ne doit pas depasser 63 caracteres
Les seuls caracteres autorises sont les lettres a-z, les chiffres 0-9 et letiret -
Le DNS est insensible a la casse :iut.univ-aix.fr ≡ IUT.Univ-Aix.fr
Les points separent des labels : iut.univ-aix.fr est compose des 3labels iut, univ-aix et fr
On ne peut distinguer un domaine d’un nom d’ordinateur :allegro.iut.univ-aix.fr est un domaine (correspondant a unordinateur)
Un nom completement qualifie ou FQDN (Fully Qualified DomainName) est un domaine contenant sa position dans la hierarchie etdevrait se terminer par un point : univ-aix.fr.
allegro n’est pas un FQDN mais allegro.iut.univ-aix.fr. ouiCyril Pain-Barre NAT/PAT et DNS 46 / 53
DNS : base de donnees repartie, efficace et fiable
Un depositaire de domaine doit mettre a disposition au moins 2serveurs de noms (sur des reseaux en principe differents) charges derepondre aux requetes concernant les noms locaux
Les serveurs de noms d’un domaine doivent connaıtre les serveurs denoms du domaine parent et des domaines fils
Les relations (non physiques) entre les differents serveurs peuvent etreillustrees ainsi (en ne prenant qu’un serveur par domaine) :
org
hd.free.fr
free.frgoogle.com
fr
univ−aix.fr
iut.univ−aix.fr
com
lsis.org
serveur pour
serveur
racine
serveur pour
serveur pourserveur pour
serveur pour
serveur pour
serveur pour
serveur pour
serveur pour
...
Cyril Pain-Barre NAT/PAT et DNS 47 / 53
DNS : base de donnees repartie, efficace et fiable
Un serveur de noms peut gerer un domaine ainsi que plusieurssous-domaines
Par exemple, un registrar peut gerer lui-meme les domaines qu’il vend
Les schema en est reduit d’autant et moins de serveurs seront sollicitespour resoudre un nom :
org
google.com
frcom
lsis.org free.fr et
hd.free.fr iut.univ−aix.fr
univ−aix.fr et
serveur pour
serveur
racine
serveur pour
serveur pourserveur pour
serveur pour
...
serveur pour serveur pour
Cyril Pain-Barre NAT/PAT et DNS 48 / 53
DNS : la resolution de noms
Tout hote doit connaıtre au moins un serveur de noms (en principe deson domaine mais ce n’est pas une obligation)
Sur un hote, le client DNS effectuant la resolution de noms est appelesolveur de noms
Pour resoudre un nom, il a deux possibilites :
resolution recursive : demander a son serveur de le resoudre et si leserveur ne connaıt pas la reponse, il contactera un autre serveur, etc., etla reponse reviendraresolution iterative : demander a son serveur de le resoudre et si leserveur ne connaıt pas la reponse, il lui dira quel serveur est susceptiblede la connaıtre. Le solveur contactera alors ce serveur, etc., jusqu’acontacter un serveur en mesure de lui repondre
Cyril Pain-Barre NAT/PAT et DNS 49 / 53
Situation du DNS dans TCP/IP
Le DNS est un protocole d’application
DNS peut utiliser independamment UDP ouTCP
Pour la quasi-totalite des requetes DNS, c’estUDP qui est utilise car il est rapide
Mais certaines requetes engendrent des reponseslongues (superieures a 512 octets) : dans ce cas,TCP est utilise
Les serveurs DNS ont un port reserve enUDP et TCP : le 53
IP
UDP
DNS
TCP
Cyril Pain-Barre NAT/PAT et DNS 50 / 53
Utilisation de caches DNS
Lorsqu’un serveur DNS a realise une resolution recursive, ilenregistre la reponse obtenue dans un cache
Si un autre client lui pose la meme question, il utilisera soncache pour repondre mais indiquera dans la reponse qu’iln’avait pas autorite pour repondre (Non-authoritative answer)et precisera aupres de quel serveur le client peut esperer unereponse ferme
Une entree dans le cache a une duree de vie (TTL) qui a eteindiquee dans la reponse recue par le serveur
Elle sera enlevee du cache lorsque sa duree de vie expirera
Cyril Pain-Barre NAT/PAT et DNS 51 / 53
Le differentes informations d’une base DNS
Le DNS ne se limite pas a la simple resolution de noms
Differents types d’informations sont geres par un serveur et ont uncode. En particulier :
A : Adresse IPv4 d’ordinateurAAAA : Adresse IPv6 d’ordinateurMX : (Mail eXchanger) adresse du serveur SMTP du domaine. Il peut yen avoir plusieurs, chacun avec une priorite (le plus petit est prioritaire)CNAME : nom canonique pour un alias (autre nom pour le domaine)NS : (Name Server) nom d’un serveur de noms du domainePTR : lien vers un autre nom de domaine. Utilise surtout pour laresolution inverseSOA : (Start Of Authority) plusieurs parametres concernant le domaine :
nom du serveur primaire de la zoneadresse mail du responsable, ou @ est remplace par . (point)duree de vie des enregistrements fourniset autres choses
Une requete a un serveur de noms precise le type d’information voulue enreponse (ou ANY).
Cyril Pain-Barre NAT/PAT et DNS 52 / 53
La resolution inverse
La resolution inverse consiste a obtenir le FQDN d’un hote a partir deson adresse IP
Exemple : traduire 139.124.187.4 en allegro.iut.univ-aix.fr
Pour cela, il faut declarer un champ PTR pour l’ordinateur :4.187.124.139.in-addr.arpa. IN PTR allegro.iut.univ-aix.fr.
le serveur de noms doit aussi gerer le sous-domaine de in-addr.arpa
correspondantsoit w.x.y.z l’adresse d’un ordinateur, alors le serveur doit gerer :
w.in-addr.arpa. si le reseau est de classe Ax.w.in-addr.arpa. si le reseau est de classe By.x.w.in-addr.arpa. si le reseau est de classe C
Cyril Pain-Barre NAT/PAT et DNS 53 / 53