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?
la source
Réponses:
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
la source
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.
la source