¿Por qué se requiere nat cuando el proxy es suficiente? [cerrado]

8

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?

Ashwin
fuente
1
Una aclaración: el enrutador NAT no le proporciona una dirección IP pública. Simplemente reescribe sus paquetes como si vinieran de su propia IP pública en lugar de la IP de su cliente. Luego, los paquetes de respuesta se envían de vuelta a la IP externa, la NAT, que luego vuelve a escribir los paquetes nuevamente con la IP de su cliente y reenvía el paquete.
EEAA

Respuestas:

5

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.

dwurf
fuente
Siempre me han dicho que NAT funciona en las capas 3 y 4
codeaviator
@codeaviator un comentario justo - Me remito a los expertos en networkengineering.stackexchange.com :)
dwurf
15

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.

MadHatter
fuente
¿Qué quiere decir con "Protocolos que no son proxables"?
suraj
@MadHatter: ¿Qué quieres decir con no proxy? ¿No es suficiente tener los proxies ip como puerta de enlace predeterminada?
Ashwin
Para plantear otro aspecto: para el usuario no técnico, el NAT debería funcionar de forma inmediata (transparente) mientras el proxy debe "instalarse" en el lado del cliente.
Nadie
@ Nadie, en realidad no. Los servidores proxy transparentes son bastante ubicuos y requieren una configuración cero en el cliente.
EEAA
2
@ Nadie: tu comprensión es incorrecta. NAT y proxies (sean transparentes o no) son tecnologías completamente diferentes.
EEAA