Pourquoi nat est-il requis lorsque le proxy est suffisant? [fermé]

8

Ma machine est connectée dans un réseau local. pour se connecter à Internet, le trafic passe par un serveur proxy. ma compréhension du serveur proxy est qu'il envoie la demande au nom de l'expéditeur de la demande d'origine. Ainsi, lorsque le serveur répond, il envoie la réponse au proxy en pensant qu'il s'agit du client. Le proxy transmet ensuite la réponse à ma machine.
Prenons le cas de la traduction d'adresses réseau . Votre demande passe par le routeur nat. Le routeur nat vous fournit alors une adresse IP publique et stocke ce mappage dans sa table. La réponse (du serveur) est envoyée à cette adresse publique attribuée. Que le routeur nat résout à votre adresse IP locale à partir du tableau et transmet la réponse à votre machine.
Ma question est pourquoi nat est requis lorsque le proxy lui-même est capable de gérer le trafic et de vous donner accès à Internet?

Ashwin
la source
1
Une précision - le routeur NAT ne vous fournit pas d' adresse IP publique. Il réécrit simplement vos paquets comme s'ils provenaient de sa propre IP publique au lieu de celle de votre client. Ensuite, les paquets de réponse sont renvoyés à l'IP externe le NAT, qui réécrit ensuite les paquets avec l'IP de votre client et transfère le paquet.
EEAA

Réponses:

5

MadHatter a écrit une excellente explication profane des différences entre les proxys et NAT.

Pour plus de détails techniques, je vous suggère de lire sur le modèle OSI et le modèle TCP / IP. Nat fonctionne à la dernière version 3 du modèle OSI (la couche réseau, IP dans ce cas) et les mandataires fonctionnent généralement à la couche 7 (la couche Application, HTTP ou tout ce que vous mandatez).

NAT et les proxys tentent également de résoudre des problèmes légèrement différents. NAT cache un certain nombre d'adresses IP privées derrière un plus petit nombre d'adresses IP publiques pour réduire la pénurie d'adresses IP, tandis que les mandataires créent un «point d'étranglement» réseau pour des raisons de sécurité, d'audit ou de performances

dwurf
la source
On m'a toujours dit que le NAT fonctionne dans les couches 3 et 4
codiviateur
@codeaviator un commentaire juste - je m'en remets aux experts de networkengineering.stackexchange.com :)
dwurf
15

Il me semble que vous avez bien compris les principes fondamentaux ici, et la réponse courte est que si vous utilisez un proxy avec une adresse publique, vous n'avez pas besoin de NAT - pour les protocoles qui sont médiés par le proxy .

Cependant, il y a plus de protocoles dans le ciel et la terre que ce dont on rêve dans votre philosophie ; tous ne sont pas proxiables, et les procurations n'existent pas même pour tous ceux qui le sont, donc le NAT est une solution de rechange pratique pour ceux-ci.

Modifier : un proxy est un appareil informatique qui fonctionne au niveau d'une application. Un proxy HTTP reçoit des demandes HTTP pour un site distant et, comme vous l'avez souligné, il part sur ce site lui-même et fait la demande, puis transmet la réponse au client demandeur. Mais il doit comprendre HTTP à un niveau détaillé pour ce faire.

De même, vous pourriez écrire un proxy FTP, mais il devrait comprendre les détails des commandes de protocole ftp MKD, DELE, et similaires, afin de proxy correctement les demandes du client. Tout proxy qui veut travailler de manière transparente doit généralement comprendre intimement les éléments internes du protocole afin de proxy ce protocole.

SOCKS est dans une certaine mesure une exception à cette règle, mais c'est parce que le protocole SOCKS met en place une interface plus générale pour le proxy, exigeant que chaque client soit SOCKSified, et donc capable de faire les bonnes demandes du proxy SOCKS afin de définir le type de mandataire dont chacun a besoin, ce qui n'est pas exactement transparent.

Chapelier Fou
la source
Qu'entendez-vous par «protocoles qui ne sont pas procurables»?
suraj
@MadHatter: Que voulez-vous dire par non proxy? N'est-ce pas suffisant d'avoir l'IP proxy comme passerelle par défaut?
Ashwin
Pour soulever un autre aspect: Pour l'utilisateur non technique, le NAT doit fonctionner hors de la boîte (de manière transparente) tandis que le proxy doit être "installé" côté client.
Personne le
@Personne - pas vraiment. Les proxys transparents sont assez omniprésents et ne nécessitent aucune configuration sur le client.
EEAA
2
@Personne - votre compréhension est fausse. Le NAT et les proxys (qu'ils soient transparents ou non) sont des technologies complètement différentes.
EEAA