Mi máquina está conectada en un lan local. para conectarse a internet el tráfico pasa por el servidor proxy. Entiendo que el servidor proxy es que envía la solicitud en nombre del remitente de la solicitud original. Entonces, cuando el servidor responde, envía la respuesta al proxy pensando que es el cliente. El proxy luego reenvía la respuesta a mi máquina.
Tome el caso de la traducción de direcciones de red . Su solicitud pasa por el enrutador nat. El enrutador nat le proporciona una dirección IP pública y almacena esta asignación en su tabla. La respuesta (del servidor) se envía a esta dirección pública asignada. Lo que el enrutador nat resuelve en su dirección IP local de la tabla y reenvía la respuesta a su máquina.
Mi pregunta es ¿por qué se requiere nat cuando el proxy en sí mismo puede mediar el tráfico y proporcionarle acceso a Internet?
fuente
Respuestas:
MadHatter ha escrito una excelente explicación de las diferencias entre los proxies y NAT.
Para obtener más detalles técnicos, le sugiero que lea sobre el modelo OSI y el modelo TCP / IP. Nat opera en la versión 3 posterior del modelo OSI (la capa de red, IP en este caso) y los servidores proxy generalmente operan en la capa 7 (la capa de aplicación, HTTP o lo que sea que esté representando).
NAT y los servidores proxy también están tratando de resolver problemas ligeramente diferentes. NAT está ocultando una cantidad de IP privadas detrás de una cantidad menor de IP públicas para aliviar la escasez de direcciones IP, mientras que los servidores proxy están creando un "punto de estrangulamiento" de la red por razones de seguridad, auditoría o rendimiento.
fuente
Me parece que has entendido los fundamentos aquí bastante bien, y la respuesta corta es que si estás usando un proxy con una dirección pública, no necesitas NAT - para los protocolos que son mediados por el proxy .
Sin embargo, hay más protocolos en el cielo y la tierra de los que se sueñan en su filosofía ; no todos son proxables, y los proxies no existen incluso para todos los que lo son, por lo que NAT es una alternativa útil para ellos.
Editar : Un proxy es un dispositivo informático que funciona a nivel de aplicación. Un proxy HTTP recibe solicitudes HTTP para un sitio remoto y, como usted señaló, se dirige a ese sitio y realiza la solicitud, y devuelve la respuesta al cliente solicitante. Pero tiene que entender HTTP a un nivel detallado para hacer esto.
Del mismo modo, puede escribir un proxy FTP, pero tendría que comprender los detalles de MKD, DELE, LIST y otros comandos del protocolo ftp, para poder representar correctamente las solicitudes del cliente. Cualquier proxy que quiera trabajar de manera transparente generalmente tiene que entender íntimamente las partes internas del protocolo para poder proxy ese protocolo.
SOCKS es, en cierta medida, una excepción a esta regla, pero eso se debe a que el protocolo SOCKS establece una interfaz más general para la representación, que requiere que cada cliente sea SOCKSified y, por lo tanto, capaz de realizar las solicitudes correctas del proxy SOCKS para establecer el tipo de representación que requiere cada uno, que no es exactamente transparente.
fuente