CCNA2 : Chapitre 11

Traduction d'adresses réseau pour IPv4

La Pénurie

La fameuse pénurie d'adresses IPv4 ! J'en ai parlé dans mon cours sur le VLSM ! On a donc conçu le NAT pour contrer ce problème. En inventant les différentes classes d'adresses privées :

Classe Plages d'adresses privées : RFC 1918 CIDR
A 10.0.0.0 - 10.255.255.255 10.0.0.0/8
B 172.16.0.0 - 172.31.255.255 172.16.0.0/12
C 192.168.0.0 - 192.168.255.255 192.168.0.0/16

Sans ce NAT et ces adresses privées, l'IPv4 aurait été saturé bien avant l'an 2000 !


Terminologie NAT

Qu'est-ce que le réseau interne ? Il s'agit de l'ensemble des réseaux traduits ! Le réseau externe = tous les autres réseaux. Selon si le trafic est sortant ou entrant, selon qu'elles se trouvent sur un réseau public ou privé : les adresses IP sont désignées différamment :

  • Adresse locale interne
  • Adresse locale externe
  • Adresse globale interne
  • Adresse globale externe

Pour savoir le type d'adresses utilisé, rappelez-vous qu'il faut se mettre du point de vue du périphérique dont l'adresse est traduite :

  • @ du périphérique traduite par la NAT
  • @ du périphérique de destination

Les adresses sont également identifiées de "locales" ou "globales" par la NAT :

  • Fait référence à toute la partie interne au réseau
  • Fait référence à toute la partie externe au réseau

Voici une petite description de l'exemple ci-dessus :

  • Adresse locale interne : L'adresse source vu du réseau interne : 192.168.10.10 : PC1 => @locale interne de PC1
  • Adresse globale interne : L'adresse source vue du réseau externe : 209.165.200.226 : PC1 traduit par la NAT
  • Adresse globale externe : L'adresse destination vue du réseaux externe : 209.165.201.1 : Serveur WEB
  • Adresse locale externe : L'adresse destination vue du réseau interne : 209.165.201.1 : Serveur WEB

Trois Types de NAT

  • NAT Statique : Mappage "un à un" entre les adresses locales et globales. Le tout configuré par l'administrateur. Pratique pour les serveurs WEB ou les périphériques qui doivent avoir une adresse permanente accessible depuis internet. Mais ça nécessite d'avoir suffisamment d'adresse publiques pour satisfaire le nombre total de sessions simultanées.
  • NAT Dynamique : Mappage de plusieurs adresses locales et globales. Cette NAT ci utilise un "pool" (et non poule) d'adresses publiques et les attribue selon la méthode du "premier arrivé, premier servi !". Dès qu'un périphérique interne a besoin de partir sur le réseau externe, hop, la NAT lui file une adresse publique disponible du pool.
  • PAT : Mappage de plusieurs adresses locales et globales vers une seule. Également appelée "surcharge NAT" ou "surcharge". C'est un peu ce que font nos box ! De la Traduction d'adresses de port. Cela mappe plusieurs adresses IPv4 privées sur une seule (ou très peu). Le FAI attribue qu'une seule adresses mais toute la famille peut aller sur le net :) C'est la forme de NAT la plus courante ! Grâce à la PAT, tous les périphériques utilisent un numéro de port TCP différent. Chaque session se différencie comme ça ! Quand une réponse est retournée par un serveur, le numéro de port source devient le numéro de destination lors du retour de la requête. Le routeur reconnait ainsi le destinataire grâce à ce numéro de port. Le processus PAT confirme aussi la demande des paquets entrants, cela renforce la sécurité de chaque session.

Les ports disponibles

Lorsque la PAT agit, elle tente de garder les ports source d'origine ! Mais ce n'est pas toujours évident... Si ce port est déjà utilisé par une autre session active, elle passe au prochain port disponible quelque part dans cette plage (en fonction du port le plus approprié) : 0 à 511 ; 512 à 1 023 ou 1 024 à 65 535. Si, même là, aucun port n'est disponible... Ben la PAT ira chercher dans l'adresse IP publique suivante ! Évidemment il faut qu'il y ait d'autres adresses publiques disponibles :3


Avantages et inconvénients de cette règle

Avantages :
  • Conserve le schéma d'adressage officiellement inscrit
  • Augmente la souplesse des connexions jusqu'au réseau public
  • Assure la cohérance des schémas d'adressage du réseau interne
  • Garantit la sécurité du réseau
Inconvénients :
  • Dégrade les performances
  • Dégrade la fonctionnalité de bout en bout
  • Perd la traçabilité IP de bout en bout
  • Complexifie la transmission tunnel
  • Peut pertuber l'établissement des connexions TCP

Configuration du NAT

Nat Statique

Pour la NAT Statique, il faut :

Lier une adresse privée à son adresse publique pour la traduction :
RDinde(config)# ip nat inside source static 192.168.10.25 209.166.200.15
Identifiez l'interface reliée au réseau local

RDinde(config)# inteface serial0/0/0
RDinde(config-if)# ip nat inside
								
Identifiez l'interface reliée au réseau externe

RDinde(config)# inteface serial0/1/0
RDinde(config-if)# ip nat outside
								

NAT Dynamique

Comment configurer la NAT dynamique ? Il faut :

Définir un pool d'adresses publiques à utiliser :
RDinde(config)# ip nat pool TEST-POOL 209.166.200.242 209.166.200.249 netmask 255.255.255.224
Configurer une ACL standard pour autoriser seulement les bonnes adresses locales pouvant être traduites
RDinde(config)# access-list 10 permit 192.168.5.0 0.0.0.255
Relier cette ACL au pool !
RDinde(config)# ip nat inside source list 10 pool TEST-POOL
Identifier l'interface interne (connectée au réseau local)

RDinde(config)# interface Serial0/0/0
RDinde(config-if)# ip nat inside
								
identifier l'interface externe (connectée au mur)

RDinde(config)# interface Serial0/1/0
RDinde(config-if)# ip nat outside
								

PAT

Configurez l'ACL qui autorisera le trafic à sortir
RDinde(config)# access-list 10 permit 192.168.10.0 0.0.0.255
Identifiez l'interface liée au réseau local

RDinde(config)# interface serial0/0/0
RDinde(config-if)# ip nat inside
								
Identifiez l'interface liée au réseau externe

RDinde(config)# interface serial0/1/0
RDinde(config-if)# ip nat outisde
								
Identifiez l'interface liée au réseau externe comme étant l'interface à surcharger via l'ACL 10
RDinde(config)# ip nat source list 10 interface serial0/1/0 overload

Redirection

Vous voulez que vos serveurs locaux aient un accès WEB tous sur la même IP ? Pas de problème !

Identifiez l'interface liée au réseau local

RDinde(config)# interface serial0/0/0
RDinde(config-if)# ip nat inside
								
Identifiez l'interface liée au réseau externe

RDinde(config)# interface serial0/1/0
RDinde(config-if)# ip nat outisde
								
Faire la redirection

RDinde(config)# ip nat inside source static tcp @IP_LOCALE PORT_LOCAL @IP_PUBLIQUE PORT_PUBLIC (extendable est ajouté par défaut à la fin)
								

Exemple : J'ai un serveur WEB sur 192.168.30.36 sur le port 80 et mon @publique est 192.168.38.38. Ainsi qu'un autre serveur local WEB sur 192.168.30.41 sur le port 80.


RDinde(config)# ip nat inside source static tcp 192.168.30.36 80 192.168.38.38 80 extendable
RDinde(config)# ip nat inside source static tcp 192.168.30.41 80 192.168.38.38 8080 extendable
								

Et voilà, vos redirections sont faites !

Quelques commandes pour dépanner le NAT

show ip nat translations
show ip nat statistics
clear ip nat translations
clear ip nat statistics
debug ip nat
debug ip nat detailed

CCNA2 : Chapitre 11