Retour à la page d'accueil

NAT Frequently Asked Questions

Cette FAQ contient les diverses questions posées à Laurent Montini par le groupe de travail au sujet de l'implementation du mécanisme sur les routeurs Cisco.
Vous pouvez également trouver d'autres informations dans la FAQ gérée sur le serveur Cisco

  

 1. Est-il possible d'allouer des adresses globales en continu?
2. Un serveur déclaré avec une adresse statique ne peut plus être accédé de l'extérieur. Pourquoi?
3. Certains services externes exigent du client une adresse globale. Peut-on éviter de déclarer une adresse statique et, par conséquent, une déperdition des adresses dynamiques?
4. Comment est effectuée la distribution de charge TCP lorsqu'un des serveurs concernés devient "hors service"?
5. Peut-on modifier la configuration "au vol" (pendant que les traductions sont actives)?
6. Est-ce que tous les services sont supportés?
7. Faut-il redistribuer explicitement le routage en externe?
8. Comment doit évoluer le DNS pour différencier les machines privées et les machines publiques?
9. Y aura-t-il des possibilités de tracer les informations dans les versions suivantes?
10. Netflow Lan Switching et NAT?
11. Comment est gérée la récupération des adresses dynamiques attribuées?


1. Est-il possible d'allouer des adresses globales en continu ?

Deux blocs d'adresses classe C ont été choisies pour l'adressage global : est-il possible d'allouer d'abord toutes les adresses (dans l'ordre croissant) du premier bloc, puis toutes les adresses du second bloc?
Non.
Bien que l'allocation dynamique des adresses dans le pool soit effectuée suivant un algorithme de "round robin", lorsqu'une adresse basse se libère, elle est remise dans le pool et attribuée en priorité. L'allocation devient difficilement prévisible ensuite. Mais ce sont les adresses du premier pool qui sont utilisées avant celles du second pool.

2. Un serveur déclaré avec une adresse statique ne peut plus être accédé de l'extérieur. Pourquoi?

Lorsqu'un pool d'adresses dynamiques est spécifié, il est associé à une liste d'accès qui décrit les adresses locales à traduire sous forme de groupe et de masque. Il est impératif de supprimer explicitement de cette liste d'accès les adresses locales déclarées en statique. En effet, celles-ci risquent d'être utilisées comme adresses dynamiques (suivant l'algorithme d allocation) ce qui peut conduire à des dysfonctionnements.

ip nat pool p 192.1.23.11 192.1.23.254 netmask 255.255.255.0
ip nat inside source list 1 pool p
ip nat inside source static 10.1.5.3 192.1.23.1
access-list 1 deny host 10.1.5.3
acces-list 1 permit 10.0.0.0 0.255.255.255

3. Certains services externes exigent du client une adresse globale.
Peut-on éviter de déclarer une adresse statique et par conséquent une déperdition des adresses dynamiques?

Des services tels que des pourvoyeurs de revues techniques exigent que le client possède une adresse globale.
NAT est un mécanisme qui permet de traduire des adresses locales en adresses globales (de manière statique ou dynamique): lorsque le nombre des adresses globales internes nécessaires devient important, il n'y a pas de parade possible, et NAT n'est plus adapté à la situation.
Toutefois, si les postes clients ne sont pas des serveurs, l'administrateur peut prendre le risque de l'utiliser comme adresse dynamique (en ne la supprimant pas explicitement de la liste d'accès). Dans ce cas, il y a utilisation d'adressage statique et dynamique sur les mêmes adresses. Il peut aussi travailler en "policy routing", c'est à dire spécifier une route qui permet toute combinaison d'ACLs, d'adresse IP next hop et interface de sortie pour déterminer le pool à utiliser.

4. Comment est effectuée la distribution de charge TCP lorsqu'un des serveurs concernés devient "hors service"?

La distribution de charge TCP est une fonctionnalité basique de NAT. Celle-ci ne fait que de l'allocation "round-robin" sur adresse IP sans regard de la disponibilité du service. Le routeur ne pourra donc pas détecter que la machine est devenue "hors service".
Pour cela, il faut utiliser des services conçus en ce sens, tels que Local Director.

5. Peut-on modifier la configuration "au vol" (pendant que les traductions sont actives)?

Pour être sûr de supprimer toutes les traductions dynamiques en cours, il faut:

  • supprimer NAT sur l'interface de sortie pendant le nettoyage : no ip nat outside
  • nettoyer les translations dynamiques dans la table : clear ip nat translation *
  • remettre NAT sur l'interface de sortie : ip nat outside

En revanche, il est possible de redéfinir une ACL NAT (par exemple, pour déclarer des adresses à utiliser en statique) sans perturber l'activité NAT. Une commande "clear ip nat" de l'adresse ou des adresses déclarée sera nécessaire si le besoin est immédiat, sinon il suffit d'attendre le timeout.

6. Est-ce que tous les services sont supportés?

Non.
En particulier toute application qui transporte et utilise une adresse IP dans la partie des données ne sera pas supportée par NAT, sauf si NAT connait l'emplacement et sait le traduire.
Par exemple, le service FTP est supporté bien que la commande PORT contienne une adresse IP dans la partie des données.
Mais des services tels que talk , bootp et surtout IP Multicast ne sont pas supportés.
D'autres services peuvent être supportés partiellement : le service SMTP ne pourra pas fonctionner lorsque une adresse IP est utilisé dans l'adresse électronique plutôt qu'un nom complet de domaine. De même pour le service DNS (pas de traduction des transferts de zone). Mais Secure DNS peut être traité
Liste détaillée

7. Faut-il redistribuer explicitement le routage en interne?

Les mises à jour des tables de routages ne sont pas supportées par le NAT : Pour annoncer l'accessibilité à un réseau virtuel interne (c'est à dire pouvoir communiquer avec les machines qui ont des adresses globales internes) il faut créer une route statique vers ces adresses à Null0 et la redistribuer à l'extérieur.

8. Comment doit évoluer le DNS pour différencier les machines privées et les machines publiques ?

Lorsque NAT est mis en oeuvre, il faut installer deux DNS : un DNS global pour les machines du site déclarées avec des adresses globales statiques (qui doivent être connues de l'extérieur) et un DNS local associant les machines et leurs adresses locales.
Le NAT traduit les adresses apparaissant dans les réponses du DNS global à des recherches de noms (A query) ou d'adresses (PTR query). Si une machine externe interroge le serveur DNS global interne, celui-ci répond avec l'adresse locale qui est ensuite traduite par le NAT en adresse locale.
NAT ne traduit pas les adresses IP encapsulées dans les transferts de zone DNS.

9. Y aura-t-il des possibilités de tracer les informations dans les versions suivantes?

Laurent Montini (Cisco) écrit à ce sujet:

"C'est une demande récurrente. A ce jour, aucun moyen dans le NAT IOS ne permet de répondre à cette requête sans "tuer" les performances du routeur. C'est toutefois dans le plan de développement mais je ne peux donner de date de disponibilité "

10. Est-ce que NAT est compatible avec NetFlow Lan Switching?

Pour répondre à cette question, il convient de repositionner les technologies de routage et de commutation dans un environnement de niveau 3 et 4 où NAT est impliqué.

Laurent Montini (Cisco) écrit à ce sujet::

" En résumé, NAT dans un commutateur de campus, ne devrait pas être nécessaire. Par contre, NAT est utile entre le réseau interne/privé et l'extérieur/Internet. Toutefois, les faits montrent (voir Q7) que le cas peut se présenter. Le mode NFLS s'appuie sur la reconnaissance par un commutateur de niveau 2 avec des capacités de "forwarding"de niveau 3 des adresses IP source et destination. Ici, il faut comprendre la séparation effectuée entre la partie intelligente du routeur ( routage, sécurité, services) et la partie "forwarding", c'est à dire le fait de faire transiter chaque paquet d'une interface d'entrée vers l'interface de sortie appropriée (après routage, validation du flux et ajout ou suivi des fonctionnalités complémentaires à ce flux).
Le travail de "forwarding" est répétitif, demande peu d'intelligence (réécriture de l'adresse MAC - celle du routeur -, décrémentation du TTL et recalcul du checksum) mais demande à être effectué rapidement pour préserver les performances.
NFLS s'occupe exclusivement de la partie "forwarding" en lieu et place du routeur: il reconnaîtra les flux (niveau 3 et 4) en direction d'un routeur (adresse MAC de destination) et si la continuité de ce flux (mêmes identifiants en adresses et ports) en provenance du routeur (adresse MAC source) est "vue", alors le commutateur avec ses capacités de reconnaissance des niveaux 3 et 4 prendra en charge le "forwarding" entre les deux ports du commutateur avec des performances de niveau 2. Le flux ne passe plus par le routeur.
Avec NFLS, la fonction intelligente est centralisée (un seul point de gestion du routage, des ACLs, des services) dans le routeur, tandis que les capacités de "forwarding" sont multipliées par le nombre de commutateurs ayant ces fonctions de niveau 3.
Avec NAT, le routeur agissant comme partie intelligente, effectue la traduction. Le niveau 3 du commutateur n'est plus capable de reconnaître le flux (le flux avant et le flux après le passage par le routeur NAT sont différents) et ne peut donc effectuer le "forwarding" lui-même.
Le routeur effectuera donc l'ensemble du travail de routage (intelligence et "forwarding") sans l'aide et donc la performance du commutateur.
La solution pour effectuer du NAT avec un niveau de performance de commutation est alors d'avoir un routeur avec des performances de "forwarding" du niveau d'un commutateur de niveau 2 au sein d'un réseau de campus.
Le design du réseau est alors différent car chaque équipement de ce type est alors un point de routage à part entière (noeud de routage avec protocoles associés, définition d'ACL et autres services). L'administration est nécessaire sur chacun de ces points.
La différence entre un équipement de ce type et un routeur "classique" est que ce dernier possède l'ensemble des capacités d'un routeur (tel que le travail de routeur WAN - accès Internet ou Renater -, le support des protocoles AT, DECnet, SNA et protocoles de routage associés, ..) tandis que le premier sera limité aux fonctions strictement nécessaires aux nouvelles tendances des réseaux: routage LAN (RIP v1, RIP v2, IGRP, SPF, EIGRP, EGP, BGP, IS-IS, NLSP), IP (et IPX), définition et traitement de QoS très précis (IP precedence, WFQ, WRED, CAR...) et rapides, interfaces aux débits importants (Fast Ethernet, Gigabit Ethernet et ATM uniquement) tout en maintenant les capacités intrinsèques nécessaires et minima à fournir que sont: redondance, accouting, supervision, administration, sécurité... disponibles sur les routeurs dits classiques.

En résumé, pas de support de NAT en mode NFLS"

11. Comment est gérée la récupération des adresses dynamiques attribuées ?

Les adresses dynamiques sont récupérées lorsque celles-ci n'ont pas été utilisées pendant un temps spécifié (timeout) . Par défaut ce timeout est 24 heures, lorsque la fonctionnalité d'adressage étendu n'est pas utilisée (overloading). L'administrateur peut le modifier par la commande:

ip nat translation timeout <seconds>

Lorsque l'adressage étendu est utilisé, l'administrateur peut exercer un contrôle plus fin par protocole, puisque chaque entrée contient plus d'informations sur le contexte. Il dispose de plusieurs mots-clés pour adapter le timeout au protocole utilisé (disponibles à partir de la version 11.2)

ip nat translation dns-timeout <seconds>
ip nat translation finrst-timeout <seconds>
ip nat translation tcp-timeout <seconds>
ip nat translation udp-timeout <seconds>
ip nat translation icmp-timeout <seconds>
ip nat translation syn-timeout <seconds>
ip nat translation max-entries   (spécifie le nombre maximum des entrées NAT)

© Unité RÉseaux du CNRS Écrivez nous