O que essas três opções em uma configuração NAT do roteador Cisco significam?

10

Em uma configuração PAT estática padrão, em que uma combinação IP: Porta é sempre mapeada para outra combinação IP: Porta, há três combinações possíveis de interno / externo / origem / destino que podem ser configuradas.

Por exemplo, este é um exemplo de configuração:

ip nat inside source static tcp 10.0.20.13 8080 2.2.2.33 80
       ^^^^^^^^^^^^^

Nos termos do leigo, essa configuração permite que qualquer host externo inicie uma conexão TCP com o IP 2.2.2.33 pela porta 80. Quando esse pacote atinge o roteador, o endereço IP de destino e a porta ( 2.2.2.33:80) são traduzidos 10.0.20.13:8080.

O inverso também aconteceria, se o host interno 10.0.20.13 enviar um pacote TCP com uma porta de origem 8080, pois esse pacote cruza o roteador, o IP e Port ( 10.0.20.13:8080) de origem são traduzidos 2.2.2.33:80. (normalmente seria um pacote de resposta , em vez de um iniciado pelo host interno)


Aqui estão todas as três opções de configuração para a parte marcada acima:

Router(config)#ip nat inside ?
  destination  Destination address translation
  source       Source address translation

Router(config)#ip nat outside ?
  source  Source address translation

Com efeito, você pode configurar:

  • ip nat dentro da fonte estática tcp {IP} {Port} {IP} {Port}
  • ip nat dentro do destino tcp estático {IP} {Port} {IP} {Port}
  • ipc fora da fonte estática tcp {IP} {Port} {IP} {Port}

Como essas opções são diferentes e quando alguém usaria cada uma das três opções? Por favor, use os termos do leigo, como eu fiz acima, para descrever como cada um manipularia os pacotes que vinham através do dispositivo.

Além disso, alguém pode me dizer por que não há opção de destino externo ?

Eddie
fonte
2
@Eddie, ao invés de todos nós regurgitar manuais do usuário, dê uma olhada neste cisco.com/c/en/us/support/docs/ip/... ou este groupstudy.com/archives/ccielab/200702/msg01284.html e veja se isso ajuda você. Depois disso, se você ainda tiver perguntas específicas, teremos prazer em ajudar.
Ron Trunk
Alguma resposta o ajudou? Nesse caso, você deve aceitar a resposta para que a pergunta não apareça para sempre, procurando uma resposta. Como alternativa, você pode fornecer e aceitar sua própria resposta.
Ron Maupin

Respostas:

7

Pense nisso com muito cuidado.

Origem interna significa que você deseja converter o endereço de origem do tráfego originado dentro da sua rede. Esse é o arranjo típico de "rede doméstica", que permite o uso de endereços particulares na Internet pública. Obviamente, esse não é o único uso para esta versão.

Destino interno significa que você deseja que o tráfego originado de um endereço externo para um protocolo e porta de transporte de destino específico vá para um endereço interno específico. É isso que os usuários domésticos fazem para permitir que algo como um servidor Web com um endereço privado seja acessado da Internet pública. Obviamente, esse não é o único uso para esta versão.

A fonte externa converte o tráfego originado de fora para parecer com um endereço interno. Pode ser útil nos casos em que empresas com faixas de endereços IP sobrepostas se fundem e precisam começar a conectar as redes. Você pode converter os endereços de origem do tráfego originário de fora, que normalmente teriam endereços de origem externos que conflitam com endereços internos, para endereços de endereços de origem em um intervalo de endereços interno disponível.

O destino externo não faz muito sentido, pois é o inverso do encaminhamento de porta. Isso limitaria qualquer tráfego originado do interior, destinado a um protocolo e porta de transporte externo específicos, a um único endereço externo.

Ron Maupin
fonte
Sua descrição para inside destinationparece corresponder à minha "explicação do leigo" para inside source. Exceto, meu exemplo alterou o número da porta de destino do tráfego de entrada de 80para 8080. Sua descrição parece indicar que a porta # não muda? De qualquer maneira, essa não pode ser a única diferença entre inside destinatione inside sourcepode?
Eddie
A diferença é a fonte do tráfego. O inside sourcefluxo de tráfego se origina por dentro e o inside destinationfluxo de tráfego por fora. Se o tráfego originado inside sourceprecisar de uma resposta, um inside destinationprocesso de tipo temporário acontece para a resposta. O número da porta pode ser alterado conforme o tráfego viaja de um lado para o outro, mas nem todos os roteadores (especialmente os domésticos) suportam isso.
Ron Maupin
4

Devemos começar do básico, então vamos revisar a terminologia NAT. O NAT converte endereços IP em pacotes IP, certo? O que isso significa? Que, basicamente, cria miragens - sim, ilusões de ótica, você sabe. Por exemplo, em uma configuração NAT típica, quando hosts LAN endereçados a particulares acessam a Internet usando o endereço IP público da interface do roteador externo, esses hosts aparecem para servidores da Internet como tendo esse IP público (ou IPs de um pool de IPs públicos). O NAT não cria novos hosts físicos, é claro - mas cria novas entidades virtuais - neste exemplo, os hosts da LAN se vêem como, digamos, 192.168.1.x, mas os servidores da Internet os veem como 203.0.113.x - um conjunto de hosts físicos, mas dois conjuntos de endereços IP. Dois conjuntos distintos de hosts (lógicos). Ilusão de óptica. E a terminologia é esta:

  • dentro de endereços IP locais - "reais" dos hosts internos, conforme atribuídos às suas interfaces e como eles se vêem
  • global dentro - endereços IP "miragem" como visto pelo mundo exterior
  • fora do global - endereços IP "reais" dos hosts externos, como eles próprios vêem e pela Internet (quase) inteira
  • endereços IP externos locais - "miragem", como vemos hosts externos (se pedimos que o NAT traduza correspondentemente)

E como você pode ver, somos obrigados a fazer uma distinção entre nossa rede e a Internet ou outra rede externa. Fazemos isso marcando as interfaces IP do roteador como ip nat inside ou ip nat outside , concorda?

Agora vamos lembrar como o NAT geralmente é implementado: ele mantém tabelas especiais que contêm entradas sobre traduções. E o ponto importante é que essas entradas podem ser criadas estaticamente ou dinamicamente . Para entradas criadas dinamicamente, a direção do tráfego é importante - o tráfego é iniciado de dentro para fora ou vice-versa? Para entradas estáticas, não é assim - elas são simétricas . As instruções de configuração NAT que contêm a palavra-chave estática criam entradas estáticas imediatamente após colocá-las na configuração em execução; aqueles com a palavra-chave dinâmica observam o tráfego interessante e criam entradas de tradução dinamicamente, que acabarão atingindo o tempo limite.

Já podemos especular sobre sua última pergunta: por que não há opção de destino externo ? O IP nat dentro da fonte estática cria uma entrada estática NAT que se traduz exatamente como você descreveu, mas isso inclui não apenas o tráfego iniciado por um lado específico - as entradas NAT estáticas são simétricas. Portanto, o IP nat estático de destino externo criaria uma entrada estática para traduzir os endereços IP de destino do tráfego que entra na sua rede a partir dos endereços IP externos E de origem para o tráfego que sai de dentro - mas é exatamente isso que o IP nat estático de origemcomando faz! Portanto, é simplesmente redundante ter esse comando. A única diferença é que você trocaria a fonte com o ip de destino ao usar uma ou outra forma de basicamente o mesmo comando.

Em relação à sua primeira declaração, "existem três combinações possíveis de dentro / fora / origem / destino que podem ser configuradas" - isso não é bem assim. O ponto é que, de um modo geral, as instruções de configuração do NAT não são "fórmulas matemáticas" e devem ser consideradas totalmente, e não como construídas logicamente a partir de palavras-chave independentes. Portanto, cada "combinação" apresenta uma solução para uma tarefa específica, por exemplo, a lista de destinos IP nat dentro do IP é usada para configurar o balanceamento de carga TCP do servidor que usa algoritmo específico e não funciona com o UDP. Além disso, (nos IOS modernos), não há ip nat dentro do comando estático de destino - você realmente tentou com a opção estática ?

Você pode ver alguns cenários específicos do uso da NAT, incluindo exemplos de configuração neste documento da Cisco: http://www.cisco.com/c/en/us/td/docs/ios-xml/ios/ipaddr_nat/configuration/12-2sx /nat-12-2sx-book/iadnat-addr-consv.html

Por fim, gostaria de mencionar que às vezes o NAT não é o que você deseja, por exemplo, veja minha resposta para essa "pergunta canônica": /server/55611/loopback-to-forwarded-public- Endereço IP da rede local hairpin-nat / 733532 # 733532

PS Devo entrar em mais detalhes?

Sergio
fonte