Vous êtes sur la page 1sur 53

Reseaux - Cours 4

Traduction dadresse (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 lespace dadressage : cause


Laugmentation exponentielle du nombre dordinateurs connectes `a
Internet a rapidement sature lespace dadressage IP
Phenom`ene d
u aussi bien aux entreprises quaux particuliers
C
ote entreprises :
hebergent souvent des serveurs devant etre joints en permanence
leurs stations de travail ont aussi souvent besoin dacceder `a tout
moment `a des services externes

C
ote particuliers :
nombreux `a avoir choisi un abonnement ADSL ou cable paye au forfait et
qui restent connectes en permanence (que lattribution dadresse soit fixe
ou dynamique)
le prix des ordinateurs est tel quune famille poss`ede souvent plusieurs
ordinateurs qui doivent tous acceder `a Internet
du point de vue FAI, une famille a les memes besoins quune petite
entreprise

Si le CIDR a permis de regler en partie le probl`eme, lespace dadressage IPv4 demeure insuffisant !
Cyril Pain-Barre

NAT/PAT et DNS

3 / 53

Saturation de lespace dadressage : effets


La penurie dadresses IPv4 sest traduite par la situation suivante :
Il nest plus possible dattribuer une adresse IP `a chaque station
connectee `a Internet.
Dit autrement :
Une organisation (entreprise/particulier) qui poss`ede un certain
nombre m de stations ayant besoin dun acc`es Internet nobtient
generalement quun petit nombre n dadresses IP dites publiques
o`
u
n est bien plus petit que m (et peut meme valoir 1 !)
Mais :
En attendant le deploiement dIPv6, la technique de traduction
dadresse NAT et en particulier sa variante PAT a ete developpee pour permettre `a ces m stations davoir acc`es `a Internet.
Cyril Pain-Barre

NAT/PAT et DNS

4 / 53

Principe de la traduction dadresse


Permettre `
a n adresses publiques d
etre partag
ees par un grand
nombre m de stations (peripheriques reseau).
Pour cela :
il faut placer une NATBox qui doit
etre le seul point de passage
entre le Site NAT (reseau de lorganisation) et le WAN (Internet)
la NATBox est la seule qui poss`ede et g`ere les n adresses publiques
NATBox

WAN

Site NAT

(Internet)
n adresses publiques

En schematisant, quand une station du Site NAT veut dialoguer avec


lexterieur, elle passe par la NATBox qui utilisera (temporairement)
lune 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 plupart
des routeurs, et les *box des FAI)
les stations du Site NAT nont pas connaissance des adresses publiques
de la NATBox et ne les utilisent pas
mais ont des adresses priv
ees quil est fortement conseille de prendre
dans 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)
Site NAT

NATBox

WAN

rseau priv
10.0.0.0/8

(Internet)
partie "invisible" pour Internet

n adresses publiques

Pour les stations du WAN, seules les n adresses de la NATBox


existent et le Site NAT avec ses adresses privees est invisible.
Cyril Pain-Barre

NAT/PAT et DNS

6 / 53

Precisions (suite)
`a linterieur du Site NAT, les stations communiquent entre elles en
utilisant leurs adresses privees
sans le NAT, un message envoye `a lexterieur ne pourrait avoir de
reponse car les adresses privees ne sont pas routables dans le WAN
la NATBox doit traduire (remplacer) dans un tel message, ladresse
privee par une adresse publique, et inversement pour la reponse
Sur un routeur CISCO, on definit les adresses publiques `a utiliser pour la
traduction (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 nest pas concernee par
ce trafic
les datagrammes contiennent les adresses de A et de B
C
A
10.0.0.2
IPrseau
Sourcepriv10.0.0.2
IP 10.0.0.0/8
Dest.
10.0.0.3
10.0.0.3

139.124.187.4
82.3.4.5

Internet

10.0.0.1

NATBox
(pool 82.3.4.6 82.3.4.10)

Cyril Pain-Barre

NAT/PAT et DNS

8 / 53

NAT et la discussion avec lexterieur


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)

la NATBox remplace ladresse source (privee) 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

C repond `a ladresse source du datagramme (82.3.4.6)

la NATBbox recoit le datagramme, consulte sa table de traductions,


trouve lassociation (82.3.4.6, 10.0.0.2), remplace ladresse
destination par 10.0.0.2 et retransmet le datagramme `a A
C
A
10.0.0.2

priv
IP Source rseau
10.0.0.2
10.0.0.0/8
IP Dest.
139.124.187.4
10.0.0.3

139.124.187.4
82.3.4.5

Internet

10.0.0.1

NATBox
(pool 82.3.4.6 82.3.4.10)
Cyril Pain-Barre

NAT/PAT et DNS

9 / 53

NAT et la discussion avec lexterieur


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)

la NATBox remplace ladresse source (privee) 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

C repond `a ladresse source du datagramme (82.3.4.6)

la NATBbox recoit le datagramme, consulte sa table de traductions,


trouve lassociation (82.3.4.6, 10.0.0.2), remplace ladresse
destination par 10.0.0.2 et retransmet le datagramme `a A
C
A
10.0.0.2

139.124.187.4
82.3.4.5

rseau priv
10.0.0.0/8
10.0.0.1
10.0.0.3

NATBox

IP Source

82.3.4.6

IP Dest.

139.124.187.4

Internet

(pool 82.3.4.6 82.3.4.10)


Cyril Pain-Barre

NAT/PAT et DNS

10 / 53

NAT et la discussion avec lexterieur


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)

la NATBox remplace ladresse source (privee) 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

C repond `a ladresse source du datagramme (82.3.4.6)

la NATBbox recoit le datagramme, consulte sa table de traductions,


trouve lassociation (82.3.4.6, 10.0.0.2), remplace ladresse
destination par 10.0.0.2 et retransmet le datagramme `a A
C
A
10.0.0.2

IP Source

139.124.187.4

IP Dest.

82.3.4.6

Internet

10.0.0.1
10.0.0.3

139.124.187.4

82.3.4.5

rseau priv
10.0.0.0/8

NATBox
(pool 82.3.4.6 82.3.4.10)
Cyril Pain-Barre

NAT/PAT et DNS

11 / 53

NAT et la discussion avec lexterieur


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)

la NATBox remplace ladresse source (privee) 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

C repond `a ladresse source du datagramme (82.3.4.6)

la NATBbox recoit le datagramme, consulte sa table de traductions,


trouve lassociation (82.3.4.6, 10.0.0.2), remplace ladresse
destination par 10.0.0.2 et retransmet le datagramme `a A
C
A

IP Source

139.124.187.4

10.0.0.2

IP Dest.

10.0.0.2

139.124.187.4
82.3.4.5

rseau priv
10.0.0.0/8

Internet

10.0.0.1
10.0.0.3

NATBox
(pool 82.3.4.6 82.3.4.10)
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) car
elles ont une signification `a portee globale
les adresses locales : nont un sens que localement, dans le Site NAT
Selon o`
u lon se trouve, on utilise lun de ces types dadresses :
`a lint
erieur (inside) du Site NAT, on utilise des adresses locales
`a lext
erieur (outside), on utilise des adresses globales
adresses locales

adresses globales
NATBox

Site NAT

Internet

Intrieur (inside)
localement, les adresses des messages sont libres

Cyril Pain-Barre

Extrieur (outside)
lextrieur, les adresses doivent tre publiques

NAT/PAT et DNS

13 / 53

Terminologie du NAT (2)


Les messages passant la fronti`ere inside/outside sont modifies par
la 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
adresses locales

adresses globales
NATBox

Site NAT

Internet

adresses locales

Intrieur (inside)

Cyril Pain-Barre

adresses globales

Extrieur (outside)

NAT/PAT et DNS

14 / 53

Terminologie du NAT (3)


On ajoute les qualificatifs dinterne et dexterne :
les adresses internes (inside) sont celles matrisees par ladministrateur
du Site NAT
les adresses externes (outside) font reference `a des hotes situes sur le
WAN et qui poss`edent (en principe) des adresses publiques
On distingue donc en realite les 4 types dadresses suivantes :
adresses locales internes ou ALI (inside local address) :
les adresses (en principe privees) des h
otes 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 h
otes 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) des
messages qui franchissent la fronti`ere inside/outside :
message sortant
AS : adresse locale interne

AS : adresse globale interne

AD : adresse locale externe

AD : adresse globale externe


NATBox

Site NAT

Internet

AS : adresse locale externe

AS : adresse globale externe

AD : adresse locale interne

AD : adresse globale interne


message entrant

Intrieur (inside)

Extrieur (outside)

Dans le cadre du NAT, les AS et les AD sont des adresses IP.


Dans sa variante PAT, il sagit dadresses dapplications.
Dans le cas normal (hors overlapping), les adresses externes ne sont
pas 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)
AS : adresse locale interne

sortant

AS : adresse globale interne

Site NAT

Internet

AD : adresse locale interne

AD : adresse globale interne


entrant

Dans le cas normal, cest la seule necessaire.


traduction outside : traduire les adresses externes (outside)
AD : adresse locale externe

sortant

Site NAT

AD : adresse globale externe

Internet

AS : adresse locale externe

AS : adresse globale externe


entrant

Cette traduction nest utile quen cas doverlapping


ou les deux `a la fois (realise en pratique pour traiter loverlapping)

Cyril Pain-Barre

NAT/PAT et DNS

17 / 53

Overlapping (chevauchement dadresses)


Cas de lintersection non vide des AGE et des ALI.
Par exemple, une entreprise a change dadresse de reseau (ou
de fournisseur) mais na pas encore reconfigure ses stations.
En attendant de le faire, elle met en place du NAT avec le
pool des nouvelles adresses, mais il faut traiter le fait que les
ALI sont probablement et legitimement reutilisees par des
stations externes.
Autre exemple, une entreprise a eu la mauvaise idee de ne pas
utiliser les adresses privees pour son site NAT. Les adresses
quelle a choisies pour ses ALI sont dej`a utilisees dans le WAN
(AGE).
Sans traduction des adresses externes, il y aurait ambigute car une
meme adresse designerait `a la fois une station interne et une station
externe.
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 acc`es `a lexterieur
(traductions ALI AGI fixees par avance)
NAT dynamique : m stations (voire toutes) du Site NAT sont
autorisees `a acceder `a lexterieur. Les AGI leur sont associees
dynamiquement et temporairement.
PAT dynamique : plusieurs milliers de stations peuvent partager une
seule AGI (adresse publique). La variante du NAT la plus utilisee.
PAT statique : surtout utilisee pour permettre `a des serveurs internes
detre joints depuis lexterieur
auxquelles ont peut ajouter le traitement de loverlapping.

Cyril Pain-Barre

NAT/PAT et DNS

19 / 53

La traduction statique (ou 1 pour 1)


Associer de mani`ere fixe et permanente une AGI `a une ALI.
Surtout utilisee si le Site NAT dispose m serveurs devant etre accessibles
depuis lexterieur :
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) dactivation sur un routeur CISCO :
# ip nat inside source static 10.1.1.1 82.3.4.10

associe statiquement lALI 10.1.1.1 et lAGI 82.3.4.10. Cette association est


permanente et apparat dans la table des traductions :
# show ip nat translations
Pro Inside global
Inside local
--- 82.3.4.10
10.1.1.1
Cyril Pain-Barre

Outside local
--NAT/PAT et DNS

Outside global
--20 / 53

Traitement des messages pour la traduction statique


Message sortant : adresse source traduite ALI AGI si lassociation
statique (AGI, ALI) existe, sinon il est rejete
Exemples : o`
u seule la traduction statique (82.3.4.10, 10.1.1.1) existe
10.1.1.1

10.1.1.1
82.3.4.10

AS
AS
AD

10.1.1.1
rseau priv
10.0.0.0/8
139.124.187.4

139.124.187.4

AD
82.3.4.5

AS

Internet
10.0.0.1

AD

82.3.4.5

10.0.0.3
rseau priv
10.0.0.0/8
139.124.187.4

Internet
10.0.0.1

NATBox
10.0.0.3

NATBox

table des traductions


AGI
ALI
82.3.4.10
10.1.1.1

ERREUR
10.0.0.3
(statique)

table des traductions


AGI
ALI
82.3.4.10
10.1.1.1

(statique)

Message entrant : adresse destination traduite AGI ALI si


lassociation statique (AGI, ALI) existe, sinon il est rejete (cette AGI est
geree mais non associee par la NATBox)
10.1.1.1

10.1.1.1
AS

AS
AD

197.202.1.8
rseau priv
10.0.0.0/8
10.1.1.1

82.3.4.5 AD

197.202.1.8
82.3.4.10

Internet

82.3.4.9

Internet
10.0.0.1

NATBox
10.0.0.3

197.202.1.8

AD
82.3.4.5

rseau priv
10.0.0.0/8

10.0.0.1

AS

table des traductions


AGI
ALI
82.3.4.10
10.1.1.1

NATBox
10.0.0.3
(statique)

Cyril Pain-Barre

NAT/PAT et DNS

ERREUR

table des traductions


AGI
ALI
82.3.4.10
10.1.1.1

(statique)

21 / 53

La traduction dynamique NAT (ou m pour n)


(m > n) Associer dynamiquement lune des n AGI `a lune des m ALI
autorisees lorsque necessaire.
Seules n stations auront un acc`es exterieur en meme temps :
configurer la NATBox pour autoriser les m h
otes `a discuter avec
lexterieur et definir le pool des n AGI qui seront utilisees
lorsquune sation autorisee entame un dialogue avec lexterieur, lui
associer temporairement une AGI disponible
lassociation prend fin apr`es un certain temps dinactivite
lAGI est alors remise dans le pool dadresses disponibles
Aucune association ne peut
etre cr
e
ee par un message entrant.
Mais tant que lassociation (AGI, ALI) na pas expire, lhote est accessible aux stations externes par lAGI.
Les traductions dynamiques apparaissent comme les traductions statiques
dans 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 ALI
autorisees uniquement (ici, 10.0.0.3)
10.1.1.1

AS
AD

10.0.0.3
rseau priv
10.0.0.0/8
139.124.187.4

10.2.2.2

10.1.1.1
pool 82.3.4.6 82.3.4.9
82.3.4.6
AS
10.0.0.3 autorise
AD 139.124.187.4

10.0.0.1

Internet

82.3.4.5

10.2.2.2

ERREUR
pool
82.3.4.6 82.3.4.9
10.0.0.3 autorise
AS
rseau10.2.2.2
priv
10.0.0.0/8
AD
139.124.187.410.0.0.1
82.3.4.5

NATBox
10.0.0.3

Internet

NATBox

table des traductions


AGI
ALI
82.3.4.10
10.1.1.1
82.3.4.6
10.0.0.3

table des traductions


AGI
ALI
82.3.4.10
10.1.1.1
82.3.4.6
10.0.0.3

10.0.0.3
(statique)
(dynamique)

(statique)
(dynamique)

Message entrant : accepte et traduit uniquement si association


existante pour lAGI
10.1.1.1

AS
AD

182.13.28.5
rseau priv
10.0.0.0/8
10.0.0.3

10.2.2.2

10.1.1.1

10.0.0.1

AS

182.13.28.5

AD

82.3.4.6

82.3.4.5

Internet

10.2.2.2

rseau priv
10.0.0.0/8

NATBox
10.0.0.3

table des traductions


AGI
ALI
82.3.4.10
10.1.1.1
82.3.4.6
10.0.0.3

10.0.0.1

NATBox
10.0.0.3
(statique)
(dynamique)

Cyril Pain-Barre

NAT/PAT et DNS

AS

182.13.28.5

AD

82.3.4.7

Internet

82.3.4.5
ERREUR

table des traductions


AGI
ALI
82.3.4.10
10.1.1.1
82.3.4.6
10.0.0.3

(statique)
(dynamique)

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 lacc`es simultane `a lexterieur (Internet)


`a n stations si lon dispose de n AGI, le PAT permet cet acc`es
`a plusieurs milliers de stations meme si n est reduit `a 1
Les *box des FAI utilisent le PAT pour permettre `a plusieurs
ordinateurs dun foyer (ou dune TPE) dacceder `a Internet,
puisquun foyer ne poss`ede quune seule adresse IP
Le PAT est normalise pour fonctionner avec des datagrammes
IP contenant des messages ICMP, UDP ou TCP
Pour deventuels autres protocoles, des solutions peuvent etre
mises en place mais ce nest pas normalise
Cest la variante la plus utilisee du NAT.

Cyril Pain-Barre

NAT/PAT et DNS

25 / 53

Fonctionnement du PAT
Le PAT g`
ere et traduit des adresses dapplication, l`a o`
u le NAT
cree et g`ere des associations (AGI, ALI) avec des adresses IP
Rappel : les adresses dapplication sont des triplets (IP, Protocole, Port)
La NATBox (PAT) associe une adresse dapplication globale `a une
application dun hote interne qui entame un dialogue avec lexterieur
Pour cela, comme les adresses IP, les ports sont aussi traduits. Une
association a alors la forme :
(Protocole, ALI:PLI, AGI:PGI)
o`
u
Protocole : est UDP, TCP ou ICMP
PLI (Port Local Interne) : est le port utilise par lapplication locale
PGI (Port Global Interne) : est le port associ
e pour ladresse globale de
lapplication

Tout le b
en
efice du PAT r
eside dans la traduction des ports :
pour un Protocole donne, en attribuant un PGI different aux applications ayant besoin dun acc`es externe, une seule AGI suffit !
Cyril Pain-Barre

NAT/PAT et DNS

26 / 53

PAT : Exemple avec AGI unique


La NATBox ne poss`ede quune seule AGI 82.3.4.5 quelle
partage avec les hotes du Site NAT :
10.1.1.1

10.2.2.2

TCP

TCP

(S) 82.3.4.5:15001
10.0.0.3 autorise
(D) 143.28.12.40:22

rseau priv
(S) 10.0.0.3:15001
10.0.0.0/8
10.0.0.1
(D) 143.28.12.40:22

Internet

82.3.4.5

NATBox

10.0.0.3

Proto
tcp

table des traductions


Inside global
82.3.4.5:15001

Inside local
10.0.0.3:15001

un client SSH de 10.0.0.3 se connecte au serveur SSH externe


143.28.12.40

Cyril Pain-Barre

NAT/PAT et DNS

27 / 53

PAT : Exemple avec AGI unique


La NATBox ne poss`ede quune seule AGI 82.3.4.5 quelle
partage avec les hotes du Site NAT :
10.2.2.2

(S) 82.3.4.5:15002
10.2.2.2 autorise
(S) 10.2.2.2:15001
(D) 195.3.66.1:25
rseau priv
(D) 195.3.66.1:25
10.0.0.0/8
Internet
10.0.0.1
82.3.4.5

TCP

TCP

10.1.1.1

NATBox

10.0.0.3

Proto
tcp
tcp

table des traductions


Inside global
82.3.4.5:15001
82.3.4.5:15002

Inside local
10.0.0.3:15001
10.2.2.2:15001

un client SMTP de 10.2.2.2 se connecte au serveur SMTP externe


195.3.66.1

Cyril Pain-Barre

NAT/PAT et DNS

28 / 53

PAT : Exemple avec AGI unique


La NATBox ne poss`ede quune seule AGI 82.3.4.5 quelle
partage avec les hotes du Site NAT :

TCP

10.2.2.2

rseau priv
(S) 143.28.12.40:22
10.0.0.0/8
(D) 10.0.0.3:15001 10.0.0.1

TCP

10.1.1.1

(S) 143.28.12.40:22
(D) 82.3.4.5:15001

Internet

82.3.4.5

NATBox

10.0.0.3

Proto
tcp
tcp

table des traductions


Inside global
82.3.4.5:15001
82.3.4.5:15002

Inside local
10.0.0.3:15001
10.2.2.2:15001

le serveur SSH repond `a la NATBox qui transmet au client de


10.0.0.3

Cyril Pain-Barre

NAT/PAT et DNS

29 / 53

PAT : Exemple avec AGI unique


La NATBox ne poss`ede quune seule AGI 82.3.4.5 quelle
partage avec les hotes du Site NAT :
10.2.2.2

(S) 195.3.66.1:25
rseau priv
(D) 10.2.2.2:15001
10.0.0.0/8
10.0.0.1

TCP

TCP

10.1.1.1

(S) 195.3.66.1:25
(D) 82.3.4.5:15002

Internet

82.3.4.5

NATBox

10.0.0.3

Proto
tcp
tcp

table des traductions


Inside global
82.3.4.5:15001
82.3.4.5:15002

Inside local
10.0.0.3:15001
10.2.2.2:15001

le serveur SMTP repond `a la NATBox qui transmet au client de


10.2.2.2

Cyril Pain-Barre

NAT/PAT et DNS

30 / 53

PAT : Filtrage des messages entrants


Un message entrant ne peut creer dassociation dans la table des
traductions : seul un message sortant peut le faire
Un message entrant nest accepte et traduit que sil fait partie dun
dialogue en cours
Outre les associations en cours, les dialogues doivent etre enregistres et
notamment les adresses des applications externes
Quand un message entrant arrive, la NATBox verifie que les adresses
dapplication correspondent `a celles dun dialogue existant
Exemple : les adresses des applications externes des 2 connexions precedentes
figurent en realite dans la table des traductions.
Les messages entrants
qui nappartiennent
pas `a ces connexions
sont rejetes.

10.2.2.2

TCP

10.1.1.1

rseau priv
10.0.0.0/8

10.0.0.1

Cyril Pain-Barre

Proto
tcp
tcp

(D) 82.3.4.5:15001

Internet

82.3.4.5

NATBox

10.0.0.3

(S) 110.80.81.82:22

table des traductions


Inside global
82.3.4.5:15001
82.3.4.5:15002

NAT/PAT et DNS

ERREUR
Inside local
10.0.0.3:15001
10.2.2.2:15001

Outside
143.28.12.40:22
195.3.66.1:25

31 / 53

Fonctionnement du PAT pour ICMP


ICMP ne fournit pas de ports
Les messages derreur ICMP contiennent toutefois les en-tetes IP et
TCP/UDP des datagrammes en cause et peuvent donc etre traduits
Les messages ICMP de demande (ECHO, Horodatage, etc.)
contiennent un identificateur
Lidentificateur est traduit comme sil sagissait dun port. Une
traduction PAT pour un message ICMP (hors messages derreur)
envoye vers lexterieur par une ALI aura donc la forme suivante :
(ICMP, AGI:IGI, ALI:ILI)
o`
u ILI est lIdentificateur Local Interne et IGI est lIdentificateur Global
Interne
Ainsi la reponse, qui aura comme IP destination lAGI et comme
identificateur IGI pourra etre traduite et retransmise `a lALI
correspondante
Comme pour TCP et UDP, les adresses externes sont enregistrees, et les
messages 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) didentificateur (ILI) 0 :

ICMP

10.2.2.2

rseau priv
(S) 10.0.0.3:0
10.0.0.0/8
(D) 194.199.116.4

ICMP

10.1.1.1

(S) 82.3.4.5:0
10.0.0.3 autorise
(D) 194.199.116.4
10.0.0.1

Proto
icmp

10.0.0.3

Internet

82.3.4.5

NATBox
table des traductions
Inside global
82.3.4.5:0

Inside local
10.0.0.3:0

Outside
194.199.116.4:0

depuis 10.1.1.1 : autre requete ping didentificateur 0 :


(S) 10.1.1.1:0
rseau priv
(D) 201.3.4.21
10.0.0.0/8

10.2.2.2

ICMP

ICMP

10.1.1.1

(S) 82.3.4.5:1
10.0.0.3 autorise
(D) 201.3.4.21
10.0.0.1

Internet

82.3.4.5

NATBox

10.0.0.3

Proto
icmp
icmp

table des traductions


Inside global
82.3.4.5:0
82.3.4.5:1

Inside local
10.0.0.3:0
10.1.1.1:0

Outside
194.199.116.4:0
201.3.4.21:1

La NATBox a traduit lILI (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 pour
une application externe pour un protocole donne (UDP, TCP, ICMP) :
ALE:PLE : son adresse vue par un h
ote du Site NAT
AGE:PGE : son adresse dans le WAN (Internet)

Pour des messages dun meme protocole (UDP, TCP, ICMP), le


schema general de la traduction PAT est :

(dest.)

ALE:PLE

Proto

ALI:PLI

(source)

Proto

Proto

message sortant
(source)

AGI:PGI

(dest.)

AGE:PGE

(source)

AGE:PGE

(dest.)

AGI:PGI

NATBox

Proto

Site NAT

Internet

(source)

ALE:PLE

(dest.)

ALI:PLI
message entrant

Intrieur (inside)

Extrieur (outside)

Sauf en cas doverlapping, les adresses externes ne sont pas traduites :


ALE AGE et PLE PGE
Cyril Pain-Barre

NAT/PAT et DNS

34 / 53

Table de traductions compl`ete


La table des traductions contient en r
ealit
e toutes ces adresses
Exemple : la table ci-dessous montre les traductions pour les deux connexions
TCP des exemples precedents et les deux dialogues ICMP (ping) :
# show ip nat translations
Pro Inside global Inside local
tcp 82.3.4.5:15001 10.0.0.3:15001
tcp 82.3.4.5:15002 10.2.2.2:15001
icmp 82.3.4.5:0
10.0.0.3:0
icmp 82.3.4.5:1
10.1.1.1:0

Outside local
143.28.12.40:22
195.3.66.1:25
194.199.116.4:0
201.3.4.21:1

Outside global
143.28.12.40:22
195.3.66.1:25
194.199.116.4:0
201.3.4.21:1

Seules sont traduites les adresses internes (Inside global et Inside local) : les
adresses externes (Outside local et Outside global) restent les memes.
Ceci car la traduction demandee est inside (interne). Pour que les adresses externes soient traduites (cas doverlapping), il faut aussi operer une traduction
outside.
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 doit
maintenir un etat des dialogues (ou sessions) en cours :
connexions TCP
dialogues avec UDP
dialogues avec ICMP (essentiellement ping)

car les adresses globales internes temporairement allouees doivent


etre rendues `a nouveau disponibles d`es que possible :
pour le NAT : lAGI associee `a une ALI devra etre `a nouveau disponible
lorsque les dialogues de lALI avec lexterieur sont termines
pour le PAT : les couples AGI:PGI (de TCP et ceux dUDP) et AGI:IGI
(ICMP) doivent etre aussi restitues lorsque les applications ont termine
leur dialogue

La NATBox doit detecter la fin des dialogues en cours, afin de pouvoir


reallouer d`es que possible les adresses globales internes.

Cyril Pain-Barre

NAT/PAT et DNS

36 / 53

Detection de la fin dun dialogue

Cest un probl`eme difficile auquel il ny a pas de solution transparente


Pour une connexion TCP :
les deux c
otes ont envoye leur segment FIN
un c
ote `a envoye un segment RST
mais rien ne dit quils lont recu : la connexion est consideree comme
close un certain temps (configurable) apr`es lune de ces situations

Pour un dialogue UDP ou ICMP :


cela dependant des (protocoles d) applications
le dialogue est considere comme termine si aucun datagramme le
concernant narrive `a la NATBox pendant un certain temps (configurable)
la NATBox peut disposer dun module reconnaissant les protocoles
dapplication 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 lexterieur ?
Rappel : le PAT (dynamique) filtre les messages entrants, et on ne peut
contacter un serveur du Site NAT depuis lexterieur
Une traduction PAT statique permet `a lexterieur dinitier un dialogue
Exemple : la r`egle suivante sur la NATBox ajoute une entree statique
dans la table qui permet `a lexterieur de se connecter au serveur SMTP
de 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 destin


es au port 25 de la NATBox
seront redirig
es (traduits) vers le serveur 10.1.1.1.
Certaines NATBox permettent de configurer des redirections de plages
de port vers dautres 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, autant
pour les ordinateurs que les protocoles de TCP/IP
Or, la modification des adresses/ports source et destination nest pas
anodine pour de nombreux protocoles comme IP, ICMP, TCP, UDP,
FTP, et bien dautres :
IP, TCP et UDP incluent les adresses IP dans le calcul de leur Checksum
TCP et UDP y incluent aussi les ports et les donnees (voir FTP)
Les messages derreur dICMP (types 3 `a 5 et 11) contiennent une partie
(au moins en-tetes IP et TCP/UDP) des datagrammes ayant provoque
lerreur
FTP envoie, dans la commande PORT et en reponse de la commande
PASV, une adresse dapplication `a utiliser pour etablir une connexion de
donnees

La NATBox doit en tenir compte et modifier tous les messages des


protocoles qui utilisent les informations quelle traduit !
Cela implique parfois de constamment modifier les numeros de sequence
et dacquittement dune 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 dune adresse IP est assez difficile, ex :
212.27.48.10
Mais alors de plusieurs (209.85.137.99, 139.124.187.4, . . . ),
cest franchement penible !
En revanche, retenir des noms comme www.free.fr,
www.google.com, allegro.iut.univ-aix.fr, cest bien
plus facile
Cest pourquoi le DNS existe : il permet de nommer des
ordinateurs et de resoudre des noms en adresses IP :
www.free.fr en 212.27.48.10
www.google.com en 209.85.137.99
allegro.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 dinternet, lespace de noms etait plat et admettait
des noms de type :
serveur
capucine
gandalf
...

et centralise : gere par le NIC (Network Information Center)


puis plus tard par lINTERNIC (Internet Information Center)
mais la multiplicite des ordinateurs connectes et nommes a
rendu la gestion trop lourde
et un nom pris ne pouvait plus etre utilise
ce qui sest traduit par lutilisation de noms de plus en plus
obscurs : serveurbis, gandalfsecond, etc.

Cyril Pain-Barre

NAT/PAT et DNS

42 / 53

DNS : espace de noms hierarchise et decentralise


Avec le DNS, lespace de noms est organise en une hierarchie au
sommet de laquelle figure la racine et immediatement en dessous les
TLD (Top-Level Domain) ou domaines de niveau superieurs :
racine

com

edu

org

...

fr

uk

toplevel domains

LICANN (Internet Corporation for Assigned Names and Numbers) a en


charge la creation des TLD et a cree notamment les TLD suivants :
com : entreprises commerciales
edu : etablissements denseignement
org : organisations diverses
un TLD par code pays sur 2 lettres (norme ISO 3166) :
fr
uk
de
tv

: France
: Royaume-Uni
: Allemagne
: le Tuvalu (qui en profite bien. . . )
Cyril Pain-Barre

NAT/PAT et DNS

43 / 53

DNS : delegation de gestion de (sous-)domaine


LICANN a ensuite delegue la gestion des sous-domaines des TLD `a
des entreprises ou organisations gouvernementales :
com et net `a la societe VeriSign
edu, org et autres `a lINTERNIC
fr et re (le de la reunion) `a lAFNIC (Association Francaise pour le
Nommage Internet en Cooperation)
etc.

Ces gestionnaires vendent (parfois via des registrars) les sous-domaines


de leurs TLD et en del`eguent la gestion `a leurs acheteurs :
google.com
free.fr
gouv.fr
univ-aix.fr

Le proprietaire dun sous-domaine peut ensuite le decliner `a sa guise afin


de 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 dun sous-domaine

Se fait generalement pour une duree limitee (1 `a 10 ans) aupr`es dun


registrar
Doit etre associe `a lidentite et ladresse postale dune personne qui
doit fournir 3 types dinformations :
Administrative Contact : responsable du sous-domaine
Billing Contact : payeur du sous-domaine
Technical 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 whois
sur 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 dun domaine ne doit pas depasser 63 caract`eres
Les seuls caract`eres autorises sont les lettres a-z, les chiffres 0-9 et le
tiret 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 3
labels iut, univ-aix et fr
On ne peut distinguer un domaine dun nom dordinateur :
allegro.iut.univ-aix.fr est un domaine (correspondant `a un
ordinateur)
Un nom compl`etement qualifie ou FQDN (Fully Qualified Domain
Name) est un domaine contenant sa position dans la hierarchie et
devrait se terminer par un point : univ-aix.fr.
allegro nest pas un FQDN mais allegro.iut.univ-aix.fr. oui
Cyril 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 2
serveurs de noms (sur des reseaux en principe differents) charges de
repondre aux requetes concernant les noms locaux
Les serveurs de noms dun domaine doivent connatre les serveurs de
noms du domaine parent et des domaines fils
Les relations (non physiques) entre les differents serveurs peuvent etre
illustrees ainsi (en ne prenant quun serveur par domaine) :
serveur
racine

serveur pour
com

serveur pour
google.com

serveur pour
org

serveur pour
lsis.org

Cyril Pain-Barre

...

serveur pour
fr

serveur pour
free.fr

serveur pour
univaix.fr

serveur pour
hd.free.fr

serveur pour
iut.univaix.fr

NAT/PAT et DNS

47 / 53

DNS : base de donnees repartie, efficace et fiable


Un serveur de noms peut gerer un domaine ainsi que plusieurs
sous-domaines
Par exemple, un registrar peut gerer lui-meme les domaines quil vend
Les schema en est reduit dautant et moins de serveurs seront sollicites
pour resoudre un nom :
serveur
racine

serveur pour
com

serveur pour
google.com

serveur pour
org

serveur pour
lsis.org

Cyril Pain-Barre

...

serveur pour
fr

serveur pour
free.fr et
hd.free.fr

NAT/PAT et DNS

serveur pour
univaix.fr et
iut.univaix.fr

48 / 53

DNS : la resolution de noms

Tout hote doit connatre au moins un serveur de noms (en principe de


son domaine mais ce nest pas une obligation)
Sur un hote, le client DNS effectuant la resolution de noms est appele
solveur de noms
Pour resoudre un nom, il a deux possibilites :
r
esolution r
ecursive : demander `a son serveur de le resoudre et si le
serveur ne connat pas la reponse, il contactera un autre serveur, etc., et
la reponse reviendra
r
esolution it
erative : demander `a son serveur de le resoudre et si le
serveur ne connat pas la reponse, il lui dira quel serveur est susceptible
de la connatre. Le solveur contactera alors ce serveur, etc., jusqu`a
contacter 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 dapplication


DNS peut utiliser independamment UDP ou
TCP
Pour la quasi-totalite des requetes DNS, cest
UDP qui est utilise car il est rapide
Mais certaines requetes engendrent des reponses
longues (superieures `a 512 octets) : dans ce cas,
TCP est utilise

DNS

UDP

TCP

IP

Les serveurs DNS ont un port r


eserv
e en
UDP et TCP : le 53

Cyril Pain-Barre

NAT/PAT et DNS

50 / 53

Utilisation de caches DNS

Lorsquun serveur DNS a realise une resolution recursive, il


enregistre la reponse obtenue dans un cache
Si un autre client lui pose la meme question, il utilisera son
cache pour repondre mais indiquera dans la reponse quil
navait pas autorite pour repondre (Non-authoritative answer)
et precisera aupr`es de quel serveur le client peut esperer une
reponse ferme
Une entree dans le cache `a une duree de vie (TTL) qui a ete
indiquee 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 dune base DNS


Le DNS ne se limite pas `a la simple resolution de noms
Differents types dinformations sont geres par un serveur et ont un
code. En particulier :
A : Adresse IPv4 dordinateur
AAAA : Adresse IPv6 dordinateur
MX : (Mail eXchanger) adresse du serveur SMTP du domaine. Il peut y
en 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 dun serveur de noms du domaine
PTR : lien vers un autre nom de domaine. Utilise surtout pour la
resolution inverse
SOA : (Start Of Authority) plusieurs param`etres concernant le domaine :
nom du serveur primaire de la zone
adresse mail du responsable, o`
u @ est remplace par . (point)
duree de vie des enregistrements fournis
et autres choses

Une requete `a un serveur de noms precise le type dinformation voulue en


reponse (ou ANY).
Cyril Pain-Barre

NAT/PAT et DNS

52 / 53

La resolution inverse

La resolution inverse consiste `a obtenir le FQDN dun hote `a partir de


son adresse IP
Exemple : traduire 139.124.187.4 en allegro.iut.univ-aix.fr
Pour cela, il faut declarer un champ PTR pour lordinateur :
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


correspondant
soit w.x.y.z ladresse dun ordinateur, alors le serveur doit gerer :
w.in-addr.arpa. si le reseau est de classe A
x.w.in-addr.arpa. si le reseau est de classe B
y.x.w.in-addr.arpa. si le reseau est de classe C

Cyril Pain-Barre

NAT/PAT et DNS

53 / 53

Vous aimerez peut-être aussi