Por que é uma má ideia usar várias camadas NAT ou é?

17

A rede de computadores de uma organização tem um NAT com intervalo de endereços IP 192.168 / 16. Há um departamento com um servidor que tem um endereço IP 192.168.x.y e este servidor lida com hosts desse 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 um roteamento fácil.

Eu sinto que múltiplas camadas de NAT podem causar perdas de desempenho. Você poderia, por favor, me ajudar a comparar as duas estratégias de design?

Atualização:

@Jon Mais algumas informações

Em uma discussão com um amigo, percebemos que a sub-rede causaria o seguinte problema. As solicitações 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 a PCs em outros departamentos, o que, de qualquer forma, não pode ser feito se eles estiverem por trás de diferentes NATs. Com um sniffer de pacotes, vimos que há um grande número de solicitações de ARP, pois a maioria dos computadores no departamento tem o Compartilhamento de Arquivos no Windows ativado.

Como resolver este problema?

Além disso, se dois computadores estiverem atrás de diferentes NATs, não há como eles se conectarem uns aos outros.

    
por Rohit Banga 10.03.2010 / 16:57

7 respostas

5

O único problema real em fazer o NAT de várias camadas é que ele torna a topologia de sua rede confusa. Se você usar várias camadas de NAT, você descartará o roteamento simétrico entre todos os hosts da organização e também encontrará o potencial de sobreposição de espaços de endereço privados dentro de sua rede. Imagine se você usasse um intervalo de endereços em sua camada n + 1 NAT que estava sendo usada na camada n NAT. Essas redes nunca seriam capazes de rotear umas as outras, mas os hosts na camada n + 1 poderiam ter o mesmo endereço da camada n, tornando confusa a identidade do servidor.

Se eu estivesse descrevendo a topologia de uma rede grande, usaria apenas 10. * ou 172.16-24. * endereços 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 *) com o entendimento de que eles são responsáveis pela rede por trás de seu host NAT. Eu também estaria mais inclinado a criar mais sub-redes do que permitir que qualquer uma dessas redes duplas de NATs ficasse muito grande.

    
por 14.03.2010 / 07:28
8

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

  1. Latência devido ao trabalho extra que está sendo feito em uma vida útil dos pacotes (embora seja improvável que isso seja significativo na maioria dos casos)

  2. Sabendo de onde vem tudo. Se você estiver tentando rastrear de onde certas solicitações vieram (talvez seu firewall de saída tenha registrado o que parece ser uma máquina comprometida tentando transmitir spams ou procurar outros destinos de infecção), o NAT torna esses diagnósticos muito mais difíceis.

  3. Encaminhamento de porta de conexão de entrada, se você precisar de conexões de entrada, é mais faf para configurar e manter.

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

    • a máquina 1 fala com um servidor da web externo usando a porta 1024 à medida que 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 ou outro servidor da web 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"
    • outras conversas de máquina fazem três conexões com servidores externos. Bem, a caixa NAT traduz isso para "eu nas portas 10002, 10003 e 10004"
    • como os pacotes retornam em forma de máquinas externas, a caixa NAT sabe que as coisas destinadas a si mesmas na porta 10000 devem ir para a máquina 1 na porta 1024 e assim por diante para as outras conexões ativas.

    Tudo isso é bom e elegante 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 aqueles que implementam o protocolo bittorrent podem criar muitos conexões simultâneas). Existem apenas 65536 portas no protocolo IP, menos as 1024 que estão reservadas. Embora 60 mil possam parecer muito, pode ser consumido rapidamente, então a caixa NAT precisa decidir quais mapeamentos antigos podem ser removidos, o que geralmente não é tão simples quanto "soltar o mais antigo". Isso pode resultar em erros estranhos (conexões aleatórias caindo por razões difíceis de diagnosticar) ou a máquina simplesmente não sendo capaz de fazer novas conexões por um tempo.

  5. carregue na (s) caixa (s) NAT. Se você estiver usando caixas de baixa potência (roteadores de suporte NAT, por exemplo, em vez de um PC cheio com uma CPU robusta) para fazer o NAT, o trabalho de tradução extra (comparado a simplesmente encaminhar pacotes conforme tabela básica de roteamento ) poderia atrasar as transferências através deles. Para o acesso à Internet, isso provavelmente não será um problema (sua 'conexão de rede será o gargalo), mas como você está digitando NAT entre os segmentos da rede local, ela pode se tornar bastante perceptível.

por 11.03.2010 / 16:56
6

A perda / velocidade de desempenho está muito abaixo da qualidade do roteador que você usa.

Quanto à boa / má idéia, eu 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 por portas padrão, você pode ir para o dispositivo roteador / nat e definir uma regra para permitir o que você deseja (1). No entanto, se você estiver fazendo muitas 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 tem um servidor da Web e você deseja compartilhá-lo com outras pessoas - você definiria uma regra no roteador para a porta 80 da máquina e, em seguida, qualquer máquina da rede externa (ou dentro se nat-loopback estiver habilitado) pode simplesmente ir para link e pode acessar.

(2) Se, no entanto, cada máquina tiver um servidor da web ligado, ou se você estiver usando muitos serviços, você terá um pesadelo configurando todas as regras (mas não é impossível) .

Quanto ao seu cenário - Se um departamento estiver usando 192.168.xx e outro 192.168.yx, eu passaria pelos dispositivos e se não houver sobreposições, pode ser simplesmente possível alterar a sub-rede de / 24 para / 16 (ou o contrário), substitua os roteadores por switches / ou similares e não tenha perda de 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 há 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, onde cada máquina tem a capacidade de acessar todas as máquinas. Nat funciona bem, mas é usado principalmente para redes que não precisam de roteamento, pois você geralmente precisa configurar manualmente as regras / rotas recebidas.

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

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

Espero que isso ajude, se você quiser saber mais alguma coisa, fique à vontade para perguntar.

    
por 10.03.2010 / 18:51
5

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

    
por 11.03.2010 / 13:04
4

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

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

    
por 11.03.2010 / 15:51
2

Atualize sua rede e seus clientes para o IPV6, sem precisar usar o NAT novamente.

    
por 18.03.2010 / 19:15
1

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

Os roteadores quebram domínios de broadcast - os roteadores não encaminham pacotes de arp, eles ficam dentro de uma sub-rede *. Seu compartilhamento de arquivos do Windows (sério?) Tráfego de transmissão Netbios não vai deixar a 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 pelo nome do host.

Com o NAT:

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

Como foi discutido ad naseum, o NAT é, em geral, uma coisa ruim, pois quebra a funcionalidade da rede, só usamos porque precisamos. Roll on IPv6.

* É claro que os forwarders / relays / helpers de transmissão existem

    
por 18.03.2010 / 13:02