Article de reference

Traduction d'adresse réseau

Traduction d'adresses réseau entre un réseau privé et Internet La traduction d'adresses réseau ( NAT ) est une méthode permettant de faire correspondre un espace d'adressage IP ...

Traduction d'adresses réseau entre un réseau privé et Internet

La traduction d'adresses réseau ( NAT ) est une méthode permettant de faire correspondre un espace d'adressage IP à un autre en modifiant les informations d'adresse réseau dans l' en-tête IP des paquets lors de leur transit à travers un routeur . [ technique a été initialement utilisée pour éviter d'avoir à attribuer une nouvelle adresse à chaque hôte lors du déplacement d'un réseau ou lorsque le fournisseur d'accès Internet en amont était remplacé sans pouvoir router l'espace d'adressage du réseau. C'est un outil populaire et essentiel pour préserver l'espace d'adressage global face à l' épuisement des adresses IPv4 . Une seule adresse IP routable sur Internet d'une passerelle NAT peut être utilisée pour un réseau privé entier .

Comme la traduction d'adresses réseau (NAT) modifie les informations d'adresse IP dans les paquets, les implémentations NAT peuvent varier dans leur comportement spécifique selon les cas d'adressage et leur impact sur le trafic réseau. Les fournisseurs d'équipements intégrant des implémentations NAT ne documentent généralement pas les spécificités de leur comportement.

Le protocole Internet version 4 (IPv4) utilise des adresses 32 bits, permettant d'adresser de manière unique environ 4,3 milliards de périphériques sur le réseau. Dès 1992, il est devenu évident que cela ne suffirait pas. La RFC 1631 de 1994 décrit la NAT comme une « solution à court terme » aux deux problèmes les plus urgents auxquels était confronté le protocole Internet à cette époque : la raréfaction des adresses IP et la complexité du routage. En 2004, la NAT était largement répandue.

Cette technique, également connue sous le nom de masquage d'adresse IP , consiste à dissimuler un espace d'adressage IP entier, généralement composé d'adresses privées, derrière une seule adresse IP appartenant à un autre espace d'adressage, généralement public. Du fait de sa popularité pour économiser l'espace d'adressage IPv4, le terme NAT est devenu quasiment synonyme de masquage d'adresse IP.

En 1996, la traduction d'adresses de port (PAT) a été introduite, qui a étendu la traduction des adresses pour inclure les numéros de port.

NAT de base

Le type de NAT le plus simple assure une traduction un-à-un des adresses IP (RFC 1631). La RFC 2663 désigne ce type de NAT sous le nom de NAT de base , également appelé NAT un-à-un . Dans ce type de NAT, seules les adresses IP, la somme de contrôle de l'en-tête IP et les sommes de contrôle de niveau supérieur incluant l'adresse IP sont modifiées. Le NAT de base peut être utilisé pour interconnecter deux réseaux IP aux adresses incompatibles.

NAT un-à-plusieurs

Cartographie des adresses réseau

La plupart des traducteurs d'adresses réseau associent plusieurs hôtes privés à une seule adresse IP publique.

Dans une configuration typique, un réseau local utilise l'un des sous-réseaux d'adresses IP privées désignés (RFC 1918 ). Ce réseau comprend un routeur doté d'interfaces réseau sur les réseaux privé et public. L'adresse publique est généralement attribuée par un fournisseur d'accès Internet . Lorsque le trafic transite du réseau privé vers Internet, la NAT traduit l'adresse source de chaque paquet, la faisant passer d'une adresse privée à l'adresse publique du routeur. La fonction NAT assure le suivi de chaque connexion active. Lorsque le routeur reçoit du trafic entrant en provenance d'Internet, il utilise les données de suivi de connexion obtenues lors de la phase sortante pour déterminer à quelle adresse privée il doit acheminer la réponse.

Les paquets transitant du réseau privé vers le réseau public voient leur adresse source modifiée, tandis que ceux transitant du réseau public vers le réseau privé voient leur adresse de destination modifiée. Afin d'éviter toute ambiguïté dans la traduction des réponses, des modifications supplémentaires des paquets sont nécessaires. La grande majorité du trafic Internet utilise le protocole TCP (Transmission Control Protocol ) ou le protocole UDP (User Datagram Protocol ). Pour ces protocoles, les numéros de port sont modifiés afin que la combinaison de l'adresse IP (dans l' en-tête IP ) et du numéro de port (dans l' en-tête de la couche transport ) du paquet renvoyé puisse être associée sans ambiguïté à la destination correspondante sur le réseau privé. La RFC 2663 utilise le terme « traduction d'adresse réseau et de port » ( NAPT ) pour ce type de NAT. On parle également de traduction d'adresse de port ( PAT ), de masquage IP , de surcharge NAT et de NAT plusieurs-à-un . Il s'agit du type de NAT le plus courant, devenu synonyme de NAT dans le langage courant.

Cette méthode autorise la communication via le routeur uniquement lorsque la conversation provient du réseau privé, car la transmission initiale établit les informations nécessaires dans les tables de traduction. Ainsi, un navigateur web du réseau privé peut consulter des sites web externes, tandis qu'un navigateur web externe ne peut pas consulter un site web hébergé sur le réseau. Les protocoles non basés sur TCP et UDP nécessitent d'autres techniques de traduction.

Le principal avantage du NAT un-à-plusieurs est l'atténuation de l'épuisement des adresses IPv4 en permettant à des réseaux entiers d'être connectés à Internet en utilisant une seule adresse IP publique.

Méthodes de traduction

La traduction d'adresses réseau et de ports peut être mise en œuvre de plusieurs manières. Certaines applications utilisant des informations d'adresse IP peuvent avoir besoin de déterminer l'adresse externe d'un traducteur d'adresses réseau (NAT). Il s'agit de l'adresse détectée par ses homologues sur le réseau externe. De plus, il peut être nécessaire d'examiner et de catégoriser le type de mappage utilisé, par exemple lorsqu'il est souhaité établir une communication directe entre deux clients situés derrière des passerelles NAT distinctes.

À cette fin, la RFC 3489 a spécifié le protocole STUN ( Simple Traversal of UDP over NATs ) en 2003. Elle classait les implémentations NAT en NAT à cône complet , NAT à cône restreint (adresse) , NAT à cône restreint (port) et NAT symétrique , et proposait une méthodologie pour tester un périphérique en conséquence. Cependant, ces procédures ne sont plus considérées comme des normes, car elles ne permettent pas d'évaluer correctement de nombreux périphériques. La RFC 5389 a normalisé de nouvelles méthodes en 2008 et l'acronyme STUN représente depuis le nouveau titre de la spécification : Utilitaires de traversée de session pour NAT .

Types NAT

Étant donné que de nombreuses implémentations NAT combinent plusieurs types, il est préférable de se référer au comportement spécifique de chaque NAT plutôt que d'utiliser la terminologie Cône/Symétrique. La RFC 4787 vise à clarifier la situation en introduisant une terminologie standardisée pour les comportements observés. Pour le premier point de chaque ligne du tableau ci-dessus, la RFC caractérise les NAT à cône complet, à cône restreint et à cône restreint par port comme ayant un mappage indépendant du point de terminaison , tandis qu'elle caractérise un NAT symétrique comme ayant un mappage dépendant de l'adresse et du port . Pour le deuxième point de chaque ligne du tableau ci-dessus, la RFC 4787 indique également que le NAT à cône complet utilise un filtrage indépendant du point de terminaison , le NAT à cône restreint utilise un filtrage dépendant de l'adresse , le NAT à cône restreint par port utilise un filtrage dépendant de l'adresse et du port , et le NAT symétrique utilise soit un filtrage dépendant de l'adresse, soit un filtrage dépendant de l'adresse et du port . La RFC mentionne d'autres classifications du comportement du NAT, notamment la préservation des ports, la fréquence et la méthode d'actualisation des mappages, la possibilité d'utiliser les mappages externes par les hôtes internes (c'est-à-dire le comportement de bouclage ), et le niveau de déterminisme du NAT lors de l'application de ces règles. Plus précisément, la plupart des NAT combinent le NAT symétrique pour les connexions sortantes avec un mappage de port statique , où les paquets entrants adressés à l'adresse et au port externes sont redirigés vers une adresse et un port internes spécifiques.

Cartographie NAT vs filtrage NAT

La RFC 4787 établit une distinction entre le mappage NAT et le filtrage NAT.

La section 4.1 de la RFC traite du mappage NAT et spécifie la traduction d'une adresse IP et d'un numéro de port externes en une adresse IP et un numéro de port internes. Elle définit le mappage indépendant du point de terminaison, le mappage dépendant de l'adresse et le mappage dépendant de l'adresse et du port, explique que ces trois options n'ont aucune incidence sur la sécurité du NAT, celle-ci étant déterminée par le comportement de filtrage, et précise ensuite : « Un NAT DOIT avoir un comportement de mappage indépendant du point de terminaison. »

La section 5 de la RFC traite du filtrage NAT et décrit les critères utilisés par le NAT pour filtrer les paquets provenant de points de terminaison externes spécifiques. Les options sont le filtrage indépendant du point de terminaison, le filtrage dépendant de l'adresse et le filtrage dépendant de l'adresse et du port. Le filtrage indépendant du point de terminaison est recommandé lorsqu'une transparence maximale des applications est requise, tandis que le filtrage dépendant de l'adresse est recommandé lorsqu'un comportement de filtrage plus strict est primordial.

Certains périphériques NAT ne sont pas conformes à la RFC 4787 car ils traitent le mappage et le filtrage NAT de la même manière, de sorte que leur option de configuration pour changer la méthode de filtrage NAT modifie également la méthode de mappage NAT (par exemple, Netgate TNSR le 30/01/2024 sur la Wayback Machine ).

Les problèmes de traversée NAT surviennent lorsque des pairs situés derrière des NAT différents tentent de communiquer. Une solution consiste à utiliser la redirection de ports . Une autre solution consiste à utiliser diverses techniques de traversée NAT. La technique la plus courante pour la traversée NAT TCP est le TCP hole punching .

Le TCP hole punching exige que le NAT respecte le principe de préservation des ports pour TCP. Pour une communication TCP sortante donnée, les mêmes numéros de port sont utilisés de part et d'autre du NAT. La préservation des ports NAT pour les connexions TCP sortantes est cruciale pour le franchissement du NAT TCP car, sous TCP, un port ne peut être utilisé que pour une seule communication à la fois. Les programmes qui associent des sockets TCP distinctes à des ports éphémères pour chaque communication TCP rendent la prédiction des ports NAT impossible pour TCP.

En revanche, pour UDP, la préservation des ports n'est pas nécessaire avec les NAT. En effet, plusieurs communications UDP (chacune avec un point de terminaison distinct ) peuvent avoir lieu sur le même port source, et les applications réutilisent généralement le même socket UDP pour envoyer des paquets à différents hôtes. La prédiction du port est donc simple, puisqu'il s'agit du même port source pour chaque paquet.

De plus, la préservation des ports dans NAT pour TCP permet aux protocoles P2P d'offrir moins de complexité et moins de latence, car il n'est pas nécessaire d'utiliser un tiers (comme STUN) pour découvrir le port NAT puisque l'application elle-même connaît déjà le port NAT.

Toutefois, si deux hôtes internes tentent de communiquer avec le même hôte externe en utilisant le même numéro de port, le NAT peut tenter d'utiliser une adresse IP externe différente pour la seconde connexion ou devoir renoncer à la préservation du port et le réaffecter. peer-to-peer (P2P) utilisaient une forme de NAT.

Mise en œuvre

Établir une communication bidirectionnelle

En NAT bidirectionnel, la session peut être établie à la fois depuis l'intérieur et l'extérieur du domaine.

Chaque paquet TCP et UDP contient un numéro de port source et un numéro de port de destination. Chacun de ces paquets est encapsulé dans un paquet IP, dont l'en-tête IP contient une adresse IP source et une adresse IP de destination. Le triplet adresse IP/protocole/numéro de port définit une association avec un socket réseau .

Pour les services accessibles au public, tels que les serveurs web et de messagerie, le numéro de port est essentiel. Par exemple, le port 443 est utilisé pour la connexion au serveur web via un socket, et le port 465 pour la connexion au serveur de messagerie SMTP . L'adresse IP d'un serveur public est également importante, car elle est unique au niveau mondial, à l'instar d'une adresse postale ou d'un numéro de téléphone. Tous les hôtes souhaitant communiquer avec un serveur public doivent connaître correctement son adresse IP et son numéro de port.

Les adresses IP privées, telles que décrites dans la RFC 1918, ne sont utilisables que sur les réseaux privés non directement connectés à Internet. Les ports constituent des points de terminaison de communication propres à chaque hôte ; ainsi, une connexion via le périphérique NAT est maintenue par la combinaison du port et de l'adresse IP. Une adresse privée à l'intérieur du NAT est associée à une adresse publique externe. La traduction d'adresses de port (PAT) résout les conflits qui surviennent lorsque plusieurs hôtes utilisent simultanément le même numéro de port source pour établir différentes connexions externes.

processus de traduction

Avec la NAT, toutes les communications envoyées à des hôtes externes contiennent en réalité l' adresse IP et les informations de port externes du périphérique NAT, et non les adresses IP ou les numéros de port internes des hôtes. La NAT ne traduit que les adresses IP et les ports de ses hôtes internes, masquant ainsi le véritable point de terminaison d'un hôte interne sur un réseau privé.

Lorsqu'un ordinateur du réseau privé (interne) envoie un paquet IP vers le réseau externe, le périphérique NAT remplace l'adresse IP source interne dans l'en-tête du paquet par sa propre adresse IP externe. Le PAT peut ensuite attribuer à la connexion un numéro de port parmi ceux disponibles, en traduction l'adresse IP interne, le port source d'origine et le port source traduit. Les paquets suivants provenant de la même adresse IP source interne et portant le même numéro de port sont traduits vers la même adresse IP source externe et le même numéro de port. L'ordinateur recevant un paquet ayant subi une traduction d'adresses réseau (NAT) établit une connexion avec le port et l'adresse IP spécifiés dans le paquet modifié, sans se rendre compte que l'adresse fournie est traduite.

Lorsqu'il reçoit un paquet du réseau externe, le périphérique NAT consulte sa table de traduction en fonction du port de destination indiqué dans l'en-tête du paquet. Si une correspondance est trouvée, l'adresse IP et le numéro de port de destination sont remplacés par les valeurs correspondantes dans la table, et le paquet est transmis au réseau interne. Dans le cas contraire, si le numéro de port de destination du paquet entrant est introuvable dans la table de traduction, le paquet est abandonné ou rejeté, car le périphérique NAT ne sait pas où l'envoyer.

Applications

Routage
La traduction d'adresses réseau (NAT) permet d'atténuer le chevauchement des adresses IP. Ce chevauchement survient lorsque des hôtes appartenant à des réseaux différents et possédant le même espace d'adressage IP tentent d'atteindre le même hôte de destination. Il s'agit le plus souvent d'une erreur de configuration, pouvant résulter de la fusion de deux réseaux ou sous-réseaux, notamment lors de l'utilisation de l'adressage de réseau privé RFC 1918. L'hôte de destination reçoit alors du trafic semblant provenir du même réseau, et les routeurs intermédiaires sont incapables de déterminer où envoyer le trafic de réponse. La solution consiste soit à renuméroter les adresses pour éliminer le chevauchement, soit à effectuer une traduction d'adresses réseau.
Équilibrage de charge
Dans les applications client-serveur , les équilibreurs de charge répartissent les requêtes des clients vers un ensemble de serveurs afin de gérer la charge de travail de chaque serveur. La traduction d'adresses réseau (NAT) peut être utilisée pour associer une adresse IP représentative du cluster de serveurs aux hôtes spécifiques qui traitent la requête.

Techniques connexes

IEEE Reverse Address and Port Translation (RAPT or RAT) allows a host whose real IP address changes from time to time to remain reachable as a server via a fixed home IP address.Cisco's RAPT implementation is PAT or NAT overloading and maps multiple private IP addresses to a single public IP address. Multiple addresses can be mapped to a single address because each private address is tracked by a port number. PAT uses unique source port numbers on the inside global IP address to distinguish between translations. PAT attempts to preserve the original source port. If this source port is already used, PAT assigns the first available port number starting from the beginning of the appropriate port group 0–511, 512–1023, or 1024–65535. When there are no more ports available and there is more than one external IP address configured, PAT moves to the next IP address to try to allocate the original source port again. This process continues until it runs out of available ports and external IP addresses.

Mapping of Address and Port is a Cisco proposal that combines Address plus Port translation with tunneling of the IPv4 packets over an ISP provider's internal IPv6 network. In effect, it is an (almost) stateless alternative to carrier-grade NAT and DS-Lite that pushes the IPv4 address/port translation function (and the maintenance of NAT state) entirely into the existing customer premises equipment NAT implementation. Thus avoiding the NAT444 and statefulness problems of carrier-grade NAT, and also provides a transition mechanism for the deployment of native IPv6 at the same time with very little added complexity.

Issues and limitations

Les hôtes situés derrière des routeurs utilisant la NAT ne bénéficient pas d'une connectivité de bout en bout et ne peuvent pas participer à certains protocoles Internet. Les services nécessitant l'établissement de connexions TCP depuis le réseau externe, ou utilisant des protocoles sans état tels que ceux utilisant UDP , peuvent être interrompus. À moins que le routeur NAT ne prenne spécifiquement en charge ces protocoles, les paquets entrants ne peuvent atteindre leur destination. Certains protocoles peuvent tolérer une instance de NAT entre les hôtes participants ( par exemple, le protocole FTP en mode passif ), parfois avec l'aide d'une passerelle applicative (voir les protocoles de tunnelisation tels qu'IPsec , car elle modifie les valeurs des en-têtes, ce qui perturbe les contrôles d'intégrité effectués par IPsec et d'autres protocoles de tunnelisation.

La connectivité de bout en bout est un principe fondamental d'Internet, soutenu notamment par l' Internet Architecture Board . Les documents d'architecture actuels d'Internet constatent que la NAT contrevient à ce principe , mais reconnaissent son utilité dans le cadre d'une conception soignée. L'utilisation de la NAT IPv6 suscite des inquiétudes bien plus importantes, et de nombreux architectes IPv6 estiment que l'IPv6 visait précisément à supprimer le besoin de NAT.

Une implémentation qui ne suit que les ports peut rapidement être saturée par les applications internes utilisant plusieurs connexions simultanées, comme une requête HTTP pour une page web contenant de nombreux objets intégrés. Ce problème peut être atténué en suivant l'adresse IP de destination en plus du port, permettant ainsi de partager un seul port local avec plusieurs hôtes distants. Ce suivi supplémentaire accroît la complexité de l'implémentation et les ressources de calcul nécessaires au niveau du dispositif de traduction.

Comme les adresses internes sont toutes masquées derrière une seule adresse publique, il est impossible pour les hôtes externes d'établir directement une connexion avec un hôte interne particulier. Les applications telles que la VoIP , la visioconférence et autres applications peer-to-peer doivent utiliser des techniques de traversée NAT pour fonctionner.

Fragmentation et sommes de contrôle

La NAT pure, fonctionnant uniquement sur le protocole IP, peut ne pas analyser correctement les protocoles dont la charge utile contient des informations relatives à IP, comme ICMP . Cela dépend de l'hôte qui interprète la charge utile : à l' intérieur ou à l'extérieur de la couche de traduction. Les protocoles de base tels que TCP et UDP ne peuvent fonctionner correctement que si la NAT intervient au-delà de la couche réseau.

Les paquets IP comportent une somme de contrôle dans leur en-tête, assurant la détection d'erreurs uniquement au niveau de cet en-tête. Les datagrammes IP peuvent être fragmentés ; un NAT doit alors réassembler ces fragments pour permettre le recalcul correct des sommes de contrôle de niveau supérieur et l'identification précise des paquets appartenant à chaque connexion.

Les protocoles TCP et UDP possèdent une somme de contrôle qui couvre toutes les données qu'ils transportent, ainsi que leur en-tête et un pseudo-en-tête contenant les adresses IP source et de destination du paquet. Pour qu'un NAT d'origine autorise la transmission TCP ou UDP, il doit recalculer la somme de contrôle de l'en-tête TCP ou UDP à partir des adresses IP traduites (et non des adresses d'origine) et l'insérer dans l'en-tête TCP ou UDP du premier paquet de la fragmentation.

L'hôte d'origine peut également effectuer une découverte de la MTU du chemin pour déterminer la taille des paquets pouvant être transmis sans fragmentation, puis activer le bit « Ne pas fragmenter » (DF) dans l'en-tête du paquet. Cette solution est toutefois unidirectionnelle, car l'hôte répondant peut envoyer des paquets de n'importe quelle taille, susceptibles d'être fragmentés avant d'atteindre le NAT.

Termes de variante

ADN

La traduction d'adresses réseau de destination (DNAT) est une technique permettant de modifier de manière transparente l' adresse IP de destination d'un paquet routé et d'effectuer l'opération inverse pour les réponses. Tout routeur situé entre deux points d'extrémité peut réaliser cette transformation du paquet.

Le DNAT est couramment utilisé pour publier un service situé sur un réseau privé sur une adresse IP accessible publiquement. Cette utilisation du DNAT est également appelée redirection de port , ou DMZ lorsqu'elle est utilisée sur un serveur entier , qui devient alors exposé au WAN, devenant analogue à une zone démilitarisée militaire non protégée (DMZ).

SNAT

La signification du terme SNAT varie selon le fournisseur :

  • Le terme NAT source est une extension courante et correspond au NAT de destination ( DNAT ). Il est utilisé pour décrire le NAT de type un-à-plusieurs ; le NAT pour les connexions sortantes vers les services publics.
  • La NAT avec état est utilisée par Cisco Systems
  • La NAT statique est utilisée par WatchGuard
  • Le NAT sécurisé est utilisé par F5 et par Microsoft (en ce qui concerne le serveur ISA ).

La traduction d'adresses réseau sécurisée (SNAT) fait partie du serveur Internet Security and Acceleration de Microsoft et constitue une extension du pilote NAT intégré à Microsoft Windows Server . Elle assure le suivi et le filtrage des connexions réseau supplémentaires nécessaires aux protocoles FTP , ICMP , H.323 et PPTP , et permet également de configurer un serveur proxy HTTP transparent .

Traduction dynamique d'adresses réseau

Comment fonctionne le NAT dynamique

La NAT dynamique, tout comme la NAT statique, est peu courante dans les petits réseaux, mais se rencontre au sein des grandes entreprises dotées de réseaux complexes. Alors que la NAT statique établit une correspondance un-à-un entre les adresses IP internes et publiques statiques, la NAT dynamique utilise un groupe d'adresses IP publiques.

NAT en épingle à cheveux

Le NAT hairpinning , également appelé NAT loopback ou NAT reflection est une fonctionnalité présente dans de nombreux routeurs grand public permettant à une machine du réseau local d'accéder à une autre machine du même réseau via l'adresse IP externe du routeur (grâce à la redirection de ports configurée sur le routeur pour diriger les requêtes vers la machine appropriée). Ce concept est décrit officiellement dans la RFC 5128 de 2008 .

Ce qui suit décrit un exemple de réseau :

  • Adresse publique : WAN du routeur.
  • Adresse interne du routeur : passerelle par défaut (le routeur) . Un routeur doté de la fonction de bouclage NAT détecte que ICMP « Destination inaccessible » peut être envoyée. Si des règles DNAT étaient présentes, la traduction d'adresse est toujours active ; le routeur réécrit toujours l'adresse IP source dans le paquet.

    Dans l'exemple ci-dessus de connexion TCP au serveur, l'ordinateur local initie la connexion en envoyant un paquet de domaine de diffusion que le serveur, ce dernier répond par un paquet destiné directement à l'ordinateur local au niveau de la couche 2 , sans passer par le routeur. L'ordinateur local, ne s'attendant pas à recevoir de trafic de IPv6 car l'un des objectifs de conception d'IPv6 est de rétablir la connectivité réseau de bout en bout . Le vaste espace d'adressage d'IPv6 rend inutile la conservation des adresses et chaque périphérique peut se voir attribuer une adresse unique routable globalement. L'utilisation d' adresses locales uniques , combinée à la traduction de préfixes réseau, permet d'obtenir des résultats similaires à ceux de la NAT.

    Malgré la grande capacité d'adressage d'IPv6, il est possible de contourner certaines limitations, notamment la longueur du préfixe attribué par l'opérateur. Il n'est pas rare de se voir attribuer un préfixe /64 – le plus petit sous-réseau recommandé – pour l'ensemble d'un réseau domestique, ce qui nécessite le recours à diverses techniques pour subdiviser manuellement la plage d'adresses et garantir la connectivité de tous les appareils. Dans ce cas, il peut être nécessaire d'utiliser la traduction complète d'adresses réseau et de ports (NAPT) sur IPv6, généralement appelée NAT66, où un préfixe ULA IPv6 est transformé en une seule adresse IPv6 unique globale (GUA). Le blog de l'APNIC décrit un cas où l'auteur n'a reçu qu'une seule adresse (/128).

Applications affectées par NAT

Certains protocoles de la couche application , tels que le protocole de transfert de fichiers (FTP) et le protocole d'initiation de session (SIP), transmettent des adresses réseau explicites dans leurs données applicatives. En mode actif, le FTP utilise par exemple des connexions distinctes pour le trafic de contrôle (commandes) et le trafic de données (contenu des fichiers). Lors d'une requête de transfert de fichier, l'hôte à l'origine de la requête identifie la connexion de données correspondante par ses adresses de couche réseau et de couche transport . Si cet hôte se trouve derrière un pare-feu NAT simple, la traduction de l'adresse IP ou du numéro de port TCP invalide les informations reçues par le serveur. Le protocole SIP, couramment utilisé pour les appels VoIP , est sujet au même problème. Le SIP et son protocole de description de session (SDP) associé peuvent utiliser plusieurs ports pour établir une connexion et transmettre un flux vocal via le protocole de transport en temps réel (RTP) . Les adresses IP et les numéros de port sont encodés dans les données utiles et doivent être connus avant la traversée des NAT. Sans techniques spécifiques, telles que STUN , le comportement des NAT est imprévisible et les communications peuvent échouer. Un logiciel ou un matériel de passerelle de couche application (ALG) peut corriger ces problèmes. Un module logiciel ALG exécuté sur un pare-feu NAT met à jour les données invalidées par la traduction d'adresses. Les ALG doivent comprendre le protocole de couche supérieure à corriger ; chaque protocole présentant ce problème requiert donc un ALG distinct. Par exemple, sur de nombreux systèmes Linux, des modules noyau appelés « suiveurs de connexion » implémentent les ALG. Cependant, un ALG ne peut pas fonctionner si les données du protocole sont chiffrées.

Une autre solution possible à ce problème consiste à utiliser des techniques de traversée NAT via des protocoles tels que STUN ou ICE ( Interactive Connectivity Establishment ), ou encore des approches propriétaires au sein d'un contrôleur de frontière de session . La traversée NAT est possible aussi bien pour les applications TCP que pour les applications UDP, mais la technique UDP est plus simple, plus répandue et plus compatible avec les NAT existants. Dans tous les cas, le protocole de haut niveau doit être conçu pour la traversée NAT et son fonctionnement n'est pas fiable avec les NAT symétriques ou d'autres NAT existants présentant des dysfonctionnements.le protocole de contrôle de port (PCP), le protocole de mappage de port NAT (NAT-PMP) ou le protocole de périphérique de passerelle Internet , mais ces derniers nécessitent que le périphérique NAT implémente ce protocole.

La plupart des protocoles client-serveur (FTP étant la principale exception ) n'envoient pas d'informations de contact de couche 3 et ne nécessitent aucun traitement particulier de la part des NAT. De fait, éviter les complications liées aux NAT est aujourd'hui quasiment indispensable lors de la conception de nouveaux protocoles de couche supérieure.

Les NAT peuvent également poser problème lorsque le chiffrement IPsec est utilisé et lorsque plusieurs périphériques, tels que des téléphones SIP, sont situés derrière un NAT. Les téléphones qui chiffrent leur signalisation avec IPsec encapsulent les informations de port dans un paquet chiffré, ce qui empêche les périphériques NAT d'accéder au port et de le traduire. Dans ce cas, les périphériques NAT fonctionnent selon un fonctionnement NAT simple. Par conséquent, tout le trafic retournant au NAT est redirigé vers un seul client, ce qui entraîne une interruption de service pour plusieurs clients situés derrière le NAT. Plusieurs solutions existent : utiliser TLS , qui opère à la couche 4 et ne masque pas le numéro de port ; encapsuler l'IPsec dans UDP (cette dernière solution étant celle choisie par TISPAN pour assurer une traversée NAT sécurisée) ou utiliser un NAT compatible avec la fonction « IPsec Passthru » ; ou encore utiliser un contrôleur de frontière de session (SBC) pour faciliter la traversée du NAT .

L'établissement de connectivité interactive (ICE) est une technique de traversée NAT qui ne repose pas sur la prise en charge ALG.

La vulnérabilité du protocole DNS annoncée par Dan Kaminsky le 8 juillet 2008 est indirectement affectée par la redirection de ports NAT. Afin d'éviter l'empoisonnement du cache DNS , il est fortement recommandé de ne pas traduire les numéros de port source UDP des requêtes DNS sortantes depuis un serveur DNS situé derrière un pare-feu implémentant la NAT. La solution de contournement recommandée pour cette vulnérabilité DNS consiste à configurer tous les serveurs DNS de cache pour qu'ils utilisent des ports source UDP aléatoires. Si la fonction NAT dé-aléatoire les ports source UDP, le serveur DNS devient vulnérable.

Exemples de logiciels NAT

Plus d articles de Worldlex Wiki

Revenez a l index pour explorer davantage de pages sur l histoire, la science, la culture, la geographie et la societe en francais.

Explorer l index