Sur quelle couche du modèle OSI fonctionne NAT?

10

Une question simple et la réponse est la couche 3 bien sûr, mais pouvons-nous dire que PAT travaille sur la couche 4 également parce qu'il traite des numéros de port qui est une fonction de la couche 4?

Ou s'agit-il uniquement d'un protocole de couche 3?

aia87
la source
"Réseau" est le mot clé. La couche réseau. Le plus intrigant: comment cette question obtient-elle 6 votes positifs? Hmmm .... (Je ne dis pas que c'est une question terrible, mais ce n'est certainement pas spectaculaire)
Ronnie Royston

Réponses:

11

NAT fonctionne sur la couche 3 car il modifie l'en-tête IP. Si vous utilisez PAT, vous pouvez faire valoir qu'il fonctionne également sur la couche 4 car il POURRAIT changer le port source du paquet au cas où il ne serait pas unique.

Plusieurs adresses internes peuvent être mises en NAT pour une seule ou quelques adresses externes en utilisant une fonctionnalité appelée traduction d'adresse de port (PAT) qui est également appelée «surcharge», un sous-ensemble de fonctionnalités NAT.

PAT utilise des numéros de port source uniques sur l'adresse IP globale globale pour distinguer les traductions. Étant donné que le numéro de port est codé en 16 bits, le nombre total pourrait théoriquement atteindre 65 536 par adresse IP.

PAT tentera de conserver le port source d'origine, si ce port source est déjà alloué PAT tentera de trouver le premier numéro de port disponible à partir du début du groupe de ports approprié 0-5111, 512-1023 ou 1024-65535.

S'il n'y a toujours pas de port disponible dans le groupe approprié et que plusieurs adresses IP sont configurées, PAT se déplace vers la prochaine adresse IP et essaie à nouveau d'allouer le port source d'origine. Cela continue jusqu'à ce qu'il manque de ports et d'adresses IP disponibles.

Le port ne sera donc modifié que s'il n'est pas unique.

Ce lien vers Cisco est un assez bon aperçu du NAT.

Daniel Dib
la source
la chose est que j'ai eu cette question dans un examen écrit d'entretien d'embauche et j'ai besoin de savoir si je pense simplement à cette question simple ... nat est un protocole de couche 3 sans aucun doute, mais PAT et la cartographie de port statique fonctionnent avec non seulement l'ip ..j'ai recherché une déclaration disant que nat pourrait être le protocole de couche 4 mais pas de chance qu'en pensez-vous? considéreriez-vous cette réponse comme une bonne ou une mauvaise réponse? cisco.com/en/US/tech/tk175/tk15/…
aia87
5
Dans une interview, je chercherais à savoir comment un candidat raisonne non seulement le bien ou le mal binaire. NAT est la couche 3 mais si vous raisonniez autour de PAT et de la couche 4, je verrais cela comme une bonne connaissance et je ne me soucierais pas de chercher une réponse binaire.
Daniel Dib
3
Pour compliquer davantage, linux (etables) et certains kits SP (ALU ISAM) prennent en charge l'adresse MAC NAT. Donc, ça pourrait être à peu près n'importe quoi. Mais certainement normalement quand les gens disent NAT, ils veulent dire NAPT / PAT. Mais entièrement d'accord avec le candidat @DanielDib montrant une compréhension des concepts plutôt que des réponses mémorisées, c'est mieux.
ytti
3
De plus, certains NAT doivent fonctionner à la couche 7 si le protocole en cours de traduction a des adresses intégrées; FTP en est un exemple.
chrylis
Même le "NAT de base" nécessite des modifications aux en-têtes de la couche 4 pour être utilisable.
Peter Green
5

Nat est un processus multicouche. Elle implique au moins les couches 3 (IP) et 4 (TCP, UDP, etc.). Dans certains cas, cela peut également impliquer la couche 7 (application).

Un NAT un à un doit au minimum modifier les adresses IP (couche 3), les sommes de contrôle IP (couche 3) et les sommes de contrôle TCP / UDP (couche 4).

Un NAT à un à plusieurs a besoin au minimum de modifier les adresses IP (couche 3), les sommes de contrôle IP (couche 3), les ports TCP / UDP (couche 4) et les sommes de contrôle TCP / UDP (couche 4).

Un tel NAT minimal cassera beaucoup de choses (par exemple ftp en mode actif). La plupart des NAT iront donc au-delà des bases et effectueront également la traduction et le suivi d'au moins certaines adresses IP dans les données d'application (couche 7).

Peter Green
la source
0

Réfléchissez à la façon dont cela doit être cohérent entre les paquets du même appareil ... au moins pendant les sessions. Vous pourriez donc faire valoir que vous devriez le placer au niveau 5 ou même plus. Ce n'est pas parce qu'il descend pour modifier les en-têtes IP qu'il ne doit pas être écarté de la considération des couches supérieures. Les couches inférieures peuvent ne rien savoir des couches supérieures, mais les couches supérieures peuvent connaître et manipuler les couches inférieures. En effet, la couche 6 semble appropriée. De wikipedia:

Les entités de couche application peuvent utiliser une syntaxe et une sémantique différentes si le service de présentation fournit une grande correspondance entre elles.

Le mappage entre les adresses, même si les adresses sont au niveau 3 au lieu du niveau 7, semble une chose très à faire au niveau de la présentation.

Joel Coehoorn
la source
Aucun système d'exploitation n'a implémenté des couches distinctes 5 à 7. Autrement dit, les couches 5 à 7 sont implémentées comme une seule couche d'application.
Ron Maupin