53
eseaux - Cours 4 Traduction 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

R eseaux - Cours 4

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: R eseaux - Cours 4

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

Page 2: R eseaux - Cours 4

NAT (Network Address Translation)

(RFC 2663 et 3022)

Cyril Pain-Barre NAT/PAT et DNS 2 / 53

Page 3: R eseaux - Cours 4

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

Page 4: R eseaux - Cours 4

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

Page 5: R eseaux - Cours 4

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

Page 6: R eseaux - Cours 4

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

Page 7: R eseaux - Cours 4

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

Page 8: R eseaux - Cours 4

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

Page 9: R eseaux - Cours 4

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

Page 10: R eseaux - Cours 4

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

Page 11: R eseaux - Cours 4

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

Page 12: R eseaux - Cours 4

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

Page 13: R eseaux - Cours 4

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

Page 14: R eseaux - Cours 4

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

Page 15: R eseaux - Cours 4

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

Page 16: R eseaux - Cours 4

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

Page 17: R eseaux - Cours 4

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

Page 18: R eseaux - Cours 4

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

Page 19: R eseaux - Cours 4

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

Page 20: R eseaux - Cours 4

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

Page 21: R eseaux - Cours 4

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

Page 22: R eseaux - Cours 4

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

Page 23: R eseaux - Cours 4

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

Page 24: R eseaux - Cours 4

NAPT (Network Address Port Translation) ou PAT

(a nouveau RFC 2663 et 3022)

Cyril Pain-Barre NAT/PAT et DNS 24 / 53

Page 25: R eseaux - Cours 4

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

Page 26: R eseaux - Cours 4

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

Page 27: R eseaux - Cours 4

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

Page 28: R eseaux - Cours 4

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

Page 29: R eseaux - Cours 4

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

Page 30: R eseaux - Cours 4

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

Page 31: R eseaux - Cours 4

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

Page 32: R eseaux - Cours 4

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

Page 33: R eseaux - Cours 4

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

Page 34: R eseaux - Cours 4

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

Page 35: R eseaux - Cours 4

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

Page 36: R eseaux - Cours 4

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

Page 37: R eseaux - Cours 4

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

Page 38: R eseaux - Cours 4

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

Page 39: R eseaux - Cours 4

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

Page 40: R eseaux - Cours 4

Le DNS (Domain Name Service)

(RFC 1034 et 1035)

Cyril Pain-Barre NAT/PAT et DNS 40 / 53

Page 41: R eseaux - Cours 4

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

Page 42: R eseaux - Cours 4

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

Page 43: R eseaux - Cours 4

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

Page 44: R eseaux - Cours 4

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

Page 45: R eseaux - Cours 4

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

Page 46: R eseaux - Cours 4

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

Page 47: R eseaux - Cours 4

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

Page 48: R eseaux - Cours 4

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

Page 49: R eseaux - Cours 4

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

Page 50: R eseaux - Cours 4

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

Page 51: R eseaux - Cours 4

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

Page 52: R eseaux - Cours 4

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

Page 53: R eseaux - Cours 4

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