Por que é uma má idéia usar várias camadas NAT ou não é?


19

A rede de computadores de uma organização possui um NAT com intervalo de endereços IP 192.168 / 16. Há um departamento com um servidor que possui um endereço IP 192.168.xy e esse servidor manipula hosts deste departamento com outro NAT com o intervalo de endereços IP 172.16 / 16.

Assim, existem 2 camadas de NAT. Por que eles não têm sub-redes? Isso permitiria roteamento fácil.

Sinto que várias camadas de NAT podem causar perdas de desempenho. Você poderia me ajudar a comparar as duas estratégias de design.

Atualizar:

@Jon Mais algumas informações

Conversando com um amigo, percebemos que a sub-rede causaria o seguinte problema. As solicitações de ARP de um computador inundariam toda a rede da organização. Se o roteador não encaminhar essas solicitações, os PCs de um departamento não poderão se conectar aos PCs de outros departamentos, o que de qualquer forma não poderá ser feito se estiverem por trás de NATs diferentes. Com um sniffer de pacotes, vimos que há um grande número de solicitações de ARP, pois a maioria dos computadores do departamento tem o Compartilhamento de Arquivos no Windows ativado.

Como resolver este problema?

Além disso, se dois computadores estiverem com NATs diferentes, não haverá como eles se conectarem.


Altere sua pergunta para: "Por que é uma má idéia usar várias camadas NAT?"

2
Outra tarefa de lição de casa ...
Jon Rhoades

1
NÃO. é um problema prático. Eu sempre menciono trabalhos de casa.
precisa

3
@ Jon (e seus promotores), não há problemas em fazer perguntas de lição de casa aqui. É um tópico que foi discutido dezenas de vezes no meta.stackoverflow.com - embora, pessoalmente, eu não veja nada na pergunta que aponte para HW.
Mark Henderson

@ Farseeker - toda a questão é abstrata. Ele não parece estar em posição de mudar nada, ele quer que "comparemos as duas estratégias de design" sem um objetivo claro - apenas cheira a lição de casa e não a um problema do mundo real. É claro que estou mais do que feliz em aceitar que estou errado e alguém tem essa configuração maluca - nesse caso, pergunte a eles por que eles devem ter um bom motivo.
Jon Rhoades

Respostas:


6

O único problema real ao executar o NAT de várias camadas é que isso torna sua topologia de rede confusa. Se você usa várias camadas de NAT, elimina o roteamento simétrico entre todos os hosts da organização e também encontra o potencial de sobreposição de espaços de endereços privados na sua rede. Imagine se você usou um intervalo de endereços em sua camada NAT n + 1 que estava sendo usada na camada n NAT. Essas redes nunca poderiam rotear entre si, mas os hosts na camada n + 1 poderiam ter o mesmo endereço que a camada n, tornando confusa a identidade do servidor.

Se eu estivesse apresentando a topologia de uma rede grande, usaria apenas endereços 10. * ou 172.16-24. * Para hosts em qualquer uma de nossas sub-redes. Então, se algum departamento ou indivíduo quisesse duplicar o NAT, eles poderiam (usando a rede 192.168. *) Entendendo que são responsáveis ​​pela rede por trás do host NAT. Eu também estaria mais inclinado a criar mais sub-redes do que permitir que qualquer uma dessas redes duplas de NAT ficasse muito grande.


9

Os problemas com o NAT de vários níveis são essencialmente os mesmos que para o NAT de camada única, mas compostos. Tal como:

  1. Latência devido ao trabalho extra realizado durante a vida útil de pacotes (embora seja improvável que seja significativo na maioria dos casos)

  2. Saber de onde vem qualquer coisa. Se você estiver tentando rastrear de onde vieram determinadas solicitações (talvez o firewall de saída tenha registrado o que parece ser uma máquina comprometida tentando vomitar spam ou procurar outros alvos de infecção), o NAT torna esses diagnósticos muito mais difíceis.

  3. O encaminhamento de porta de conexão de entrada, se você precisar de conexões de entrada, é mais fácil de configurar e manter.

  4. Número limitado de portas. O NAT funciona traduzindo os endereços de origem para si mesmo em portas diferentes, por exemplo:

    • a máquina 1 conversa com um servidor da web externo usando a porta 1024, pois sua origem é traduzida para o endereço da caixa NAT na porta 10000, por exemplo.
    • a mesma máquina faz duas solicitações para esse servidor, ou para outro, simultaneamente (não incomum) usando a porta de origem 1025 (duas conexões simultâneas precisam ter portas de origem diferentes). A caixa NAT traduz isso para "eu na porta de origem 10001"
    • outra máquina fala faz três conexões com servidores externos. Tudo bem, a caixa NAT os converte em "eu nas portas 10002, 10003 e 10004"
    • Quando os pacotes retornam às máquinas externas, a caixa NAT sabe que o material destinado a si próprio na porta 10000 deve realmente ir para a máquina 1 na porta 1024 e assim por diante para as outras conexões ativas.

    Tudo fica bem até que você tenha muitas conexões de saída - ou seja, uma rede grande ou uma rede menor com máquinas que fazem muitas conexões (aplicativos P2P como os que implementam o protocolo bittorrent podem criar muitas conexões simultâneas). Existem apenas 65536 portas no protocolo IP, menos as 1024 reservadas. Embora 60.000 possam parecer muito, ele pode ser consumido rapidamente, mas a caixa NAT precisa decidir quais mapeamentos antigos podem ser removidos, o que geralmente não é tão simples quanto "largar o mais antigo". Isso pode resultar em erros estranhos (queda de conexões aleatórias por razões difíceis de diagnosticar) ou a máquina simplesmente não consegue fazer novas conexões por um tempo.

  5. carregar nas caixas NAT. Se você estiver usando pequenas caixas de baixo consumo de energia (roteadores compatíveis com NAT, por exemplo, em vez de um PC completo com uma CPU robusta) para executar seu trabalho de tradução extra ao NAT (em comparação a simplesmente encaminhar pacotes de acordo com uma tabela de roteamento básica) ) poderia diminuir as transferências através deles. Para o acesso à Internet, é provável que isso não seja um problema (sua conexão de rede será o gargalo), mas como você está NATing entre os segmentos de rede local, isso pode se tornar bastante perceptível.


ponto 4 esse problema deve ser o mesmo para qualquer número de camadas de NAT ou não!
precisa

É verdade que o ponto 4 é o mesmo problema no NAT de nível único e no NAT de vários níveis, mas o NAT multinível agrava o problema de descobrir quais conexões estão mortas (o host externo pode não conhecer tanto contexto quanto o interno) e faz diagnósticos mais difícil se as limitações do mapeamento de portas se tornarem um problema. Também pode tornar a alocação de largura de banda justa e outros formatos de tráfego mais confusos para implementar e monitorar (embora existam maneiras de contornar isso, simplificar sua topologia de rede geralmente é a melhor opção).
precisa

6

A perda / velocidade de desempenho depende muito da qualidade do roteador usado.

Quanto à boa / má ideia, sou contra quando é possível simplesmente usar o roteamento; no entanto, isso realmente depende do ambiente e do que você está tentando realizar.

Se as máquinas precisarem executar apenas algumas coisas que são compartilhadas em portas padrão, você poderá acessar o dispositivo roteador / nat nat e definir uma regra para permitir o que deseja (1). No entanto, se você realizar várias tarefas de dispositivo para dispositivo, será muito mais fácil ter uma rota adequada, com cada máquina tendo seu próprio IP exclusivo (2).

(1) Por exemplo, um para muitos - uma máquina possui um servidor da Web e você deseja compartilhá-lo com outras - você definiria uma regra no roteador para a porta 80 da máquina e, em seguida, qualquer máquina da rede externa (ou interna) se o nat-loopback estiver ativado) pode simplesmente ir para http: //router.ip e acessar.

(2) Se, no entanto, todas as máquinas tiverem um servidor da Web ou você estiver usando muitos serviços, terá um pesadelo ao configurar todas as regras (mas não é impossível).

Quanto ao seu cenário - se um departamento estiver usando 192.168.xx e o outro 192.168.yx, eu examinaria os dispositivos e, se não houver sobreposições, talvez seja possível alterar a sub-rede de / 24 para / 16 (ou ao contrário), substitua os roteadores por switches / ou similares e não perca serviços.

É realmente difícil ajudar sem saber mais sobre sua rede, não há nada de "errado" com o NAT duplo, desde que esteja configurado corretamente. No entanto, a menos que você realmente precise, ou haja uma boa razão para isso, eu gostaria de migrar para longe, se puder (opinião pessoal)


@iamrohitbanga - Em resposta às suas perguntas (muito para comentários).

A comparação é difícil - o roteamento funciona bem para redes privadas, nas quais todas as máquinas podem acessar todas as máquinas. O Nat funciona bem, mas é usado principalmente para redes que não precisam de roteamento, pois geralmente é necessário configurar manualmente as regras / rotas de entrada.

Por exemplo, se você tiver uma conexão com a Internet e desativar o NAT, configure manualmente as rotas ou o modo de ponte - sua máquina estará diretamente na Internet - todas as portas estarão acessíveis e qualquer máquina poderá fazer o que quiser.

Se você tem um roteador por outro lado com NAT, ele pega o IP externo e fornece "Nat-ed?" (não tenho certeza da terminologia ...) internet - todas as máquinas internas têm um IP não acessível pela internet, mas você pode configurar regras manuais - por exemplo, porta 80 para uma máquina ... Funciona muito bem para conexões de saída (firewall regras permitem), mas pode ser um pesadelo para configurar regras de entrada se você hospedar muitos serviços ... e se você fizer algo que exija portas dinâmicas (ftp, Windows AD etc.), pode ser um pesadelo.

Espero que isso ajude, se você quiser saber mais alguma coisa, não hesite em perguntar.


você poderia comparar as duas estratégias. a rede é usada para fornecer acesso à Internet para os hosts.
precisa

@iamrohitbanga - atualizando resposta
William Hilsum

5

O principal problema do NAT (em geral e com várias camadas especificamente) é que pode ser extremamente difícil solucionar problemas.


4

O maior problema com o NAT é quando há um software de rede desatualizado fazendo a tradução, o que prejudica muitos aplicativos (FTP, VoIP etc.). Os firewalls / gateways modernos têm traduções (ajustes nos termos da Cisco), o que facilita muito.

Não entendo por que sua empresa usa NAT entre as sub-redes privadas. Por que não apenas encaminhá-lo?


2

Basta atualizar sua rede e clientes para o IPV6, para que você não precise usar o NAT novamente.


1

Para responder à nova segunda parte da sua pergunta ...

Os roteadores quebram domínios de broadcast - os roteadores não encaminham pacotes arp, permanecem dentro de uma sub-rede *. O compartilhamento de arquivos do Windows (sério?) O tráfego de transmissão do Netbios não sai da sub-rede.

Com sub-redes:

Se você precisar acessar um compartilhamento do Windows de fora de uma sub-rede, poderá acessá-lo diretamente usando seu endereço IP ou se tiver um servidor DNS ou WINS configurado por nome de host.

Com NAT:

Se o seu NAT for do tipo PAT e, portanto, não for um mapeamento individual, você precisará configurar o encaminhamento de porta para que isso funcione - isso seria ruim.

Como foi discutido ad naseum, o NAT geralmente é uma coisa ruim, pois quebra a funcionalidade da rede, que usamos apenas porque precisamos. Role no IPv6.

* É claro que existem encaminhadores / relés / auxiliares de transmissão

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.