Por que o nat é necessário quando o proxy é suficiente? [fechadas]

8

Minha máquina está conectada em uma LAN local. para se conectar à internet, o tráfego passa pelo servidor proxy. meu entendimento do servidor proxy é que ele envia a solicitação em nome do remetente da solicitação original. Portanto, quando o servidor responde, ele envia a resposta ao proxy, pensando que é o cliente. O proxy encaminha a resposta para minha máquina.
Veja o caso da tradução de endereços de rede . Sua solicitação passa pelo roteador nat. O roteador nat fornece um endereço IP público e armazena esse mapeamento em sua tabela. A resposta (do servidor) é enviada para este endereço público atribuído. O qual o roteador nat resolve para o seu endereço IP local da tabela e encaminha a resposta para sua máquina.
Minha pergunta: por que o nat é necessário quando o próprio proxy é capaz de mediar o tráfego e fornecer acesso à internet?

Ashwin
fonte
1
Um esclarecimento - o roteador NAT não fornece um endereço IP público. Simplesmente reescreve seus pacotes como se fossem provenientes de seu próprio IP público, em vez do IP do seu cliente. Em seguida, os pacotes de resposta são enviados de volta para o IP externo ao NAT, que reescreve os pacotes novamente com o IP do seu cliente e encaminha o pacote.
EEAA

Respostas:

5

MadHatter escreveu uma excelente explicação para os leigos sobre as diferenças entre proxies e NAT.

Para mais detalhes técnicos, sugiro que você leia o modelo OSI e o modelo TCP / IP. Nat opera mais tarde no 3 do modelo OSI (a camada de rede, IP neste caso) e os proxies geralmente operam na camada 7 (a camada de aplicativos, HTTP ou o que você estiver usando como proxy).

NAT e proxies também estão tentando resolver problemas ligeiramente diferentes. O NAT está ocultando vários IPs privados por trás de um número menor de IPs públicos para aliviar a falta de endereços IP, enquanto os proxies estão criando um "ponto de estrangulamento" da rede por motivos de segurança, auditoria ou desempenho.

dwurf
fonte
Sempre me disseram que o NAT funciona nas camadas 3 e 4
codiviador
@codeaviator um comentário justo - eu adiar para os peritos em networkengineering.stackexchange.com :)
dwurf
15

Parece-me que você compreendeu bem os fundamentos aqui, e a resposta curta é que, se você estiver usando um proxy com um endereço público, não precisará do NAT - para os protocolos mediados pelo proxy .

No entanto, existem mais protocolos no céu e na terra do que se sonha em sua filosofia ; nem todos eles são proxiable, e proxies não existem mesmo para todos, portanto o NAT é um substituto útil para eles.

Editar : um proxy é um dispositivo de computação que funciona em um nível de aplicativo. Um proxy HTTP recebe solicitações HTTP para um site remoto e, como você apontou, ele é direcionado para o próprio site, faz a solicitação e passa a resposta de volta ao cliente solicitante. Mas ele precisa entender o HTTP em um nível detalhado para fazer isso.

Da mesma forma, você pode escrever um proxy FTP, mas ele precisa entender os detalhes dos comandos MKD, DELE, LIST e outros comandos de protocolo ftp, a fim de proxy corretamente as solicitações do cliente. Qualquer proxy que queira trabalhar de forma transparente geralmente precisa entender intimamente as partes internas do protocolo para fazer a proxy desse protocolo.

O SOCKS é, em certa medida, uma exceção a essa regra, mas isso ocorre porque o protocolo SOCKS cria uma interface mais geral para proxy, exigindo que cada cliente seja SOCKSified e, portanto, capaz de fazer as solicitações corretas do proxy SOCKS para definir o tipo de proxy que cada um exige, o que não é exatamente transparente.

Chapeleiro Louco
fonte
O que você quer dizer com "Protocolos que não são proxiable"?
suraj
@ MadHatter: O que você quer dizer com não proxiable? Não é suficiente ter os proxies ip como gateway padrão?
Ashwin
Para destacar outro aspecto: Para o usuário não técnico, o NAT deve funcionar imediatamente (de forma transparente) enquanto o proxy deve ser "instalado" no lado do cliente.
Ninguém
@ Ninguém - não realmente. Proxies transparentes são bastante onipresentes e requerem configuração zero no cliente.
EEAA
2
@ Ninguém - sua compreensão está errada. NAT e proxies (transparentes ou não) são tecnologias completamente diferentes.
EEAA