IP : Conversão de endereços de rede (NAT)

Utilizando NAT em redes sobrepostas

19 Setembro 2015 - Tradução por Computador
Outras Versões: Versão em PDFpdf | Inglês (22 Agosto 2015) | Feedback


Índice


Introdução

Este documento demonstra como você pode usar a Conversão de endereço de rede (NAT) para sobrepor redes. As redes sobrepostas resultam quando você atribui um endereço IP a um dispositivo em sua rede que já está legalmente ocupado e atribuído a um dispositivo diferente na Internet ou rede externa. As redes sobreposta igualmente resultarem quando duas empresas, ambos de quem endereços IP do RFC 1918 do uso em suas redes, fusão.leavingcisco.com Essas duas redes precisam se comunicar, de preferência sem ter que endereçar novamente todos os seus dispositivos.

Pré-requisitos

Requisitos

Uma compreensão básica do endereçamento de IP, do Roteamento IP, e do Domain Name System (DNS) é útil para compreender os índices deste documento.

Componentes Utilizados

O apoio para o NAT começou na versão de software 11.2 do � do Cisco IOS. Para obter mais informações sobre do suporte a plataforma veja perguntas mais frequentes de NAT.

Convenções

Para obter mais informações sobre convenções de documento, consulte as Convenções de dicas técnicas Cisco.

Configurar

Nesta seção, você encontrará informações para configurar os recursos descritos neste documento.

Nota: Para localizar informações adicionais sobre os comandos usados neste documento, utilize a Ferramenta Command Lookup (somente clientes registrados).

Diagrama de Rede

Este documento utiliza a instalação de rede mostrada no diagrama abaixo.

Observe que o dispositivo interno tem o mesmo endereço IP que o dispositivo externo com o qual deseja se comunicar.

3a.gif

Configurações

O roteador A é configurado para o NAT, tais que traduz o dispositivo interno a um endereço do pool “loop de teste” e o dispositivo exterior a um endereço do pool “teste-dns.” Uma explicação de como esta configuração ajuda com sobreposição segue a tabela de configurações abaixo.

Roteador A
!
version 11.2
no service udp-small-servers
no service tcp-small-servers
!
hostname Router-A
!
!
ip domain-name cisco.com
ip name-server 171.69.2.132
!
interface Loopback0
 ip address 1.1.1.1 255.0.0.0
!
interface Ethernet0
 ip address 135.135.1.2 255.255.255.0
 shutdown
!
interface Serial0
 ip address 171.68.200.49 255.255.255.0
 ip nat inside
 no ip mroute-cache
 no ip route-cache
 no fair-queue
!
interface Serial1
 ip address 172.16.47.146 255.255.255.240
 ip nat outside
 no ip mroute-cache
 no ip route-cache
!
ip nat pool test-loop 172.16.47.161 172.16.47.165 prefix-length 28
ip nat pool test-dns 172.16.47.177 172.16.47.180 prefix-length 28
ip nat inside source list 7 pool test-loop
ip nat outside source list 7 pool test-dns
ip classless
ip route 0.0.0.0 0.0.0.0 172.16.47.145
access-list 7 permit 171.68.200.0 0.0.0.255
!
!
line con 0
 exec-timeout 0 0
line aux 0
line vty 0 4
 login
!
end

Para que a configuração acima ajude com sobreposição quando o dispositivo interno se comunica com o dispositivo exterior, deve usar o Domain Name do dispositivo exterior.

O dispositivo interno não pode usar o endereço IP de Um ou Mais Servidores Cisco ICM NT do dispositivo exterior porque é o mesmo que o endereço atribuído a se (o dispositivo interno). Consequentemente, o dispositivo interno enviará uma pergunta DNS para o Domain Name do dispositivo exterior. O endereço IP de Um ou Mais Servidores Cisco ICM NT do dispositivo interno será a fonte desta pergunta, e esse endereço será traduzido a um endereço do pool do “loop de teste” porque o comando ip nat inside source list é configurado.

O servidor DNS responde ao endereço que veio do pool “loop de teste” com o endereço IP de Um ou Mais Servidores Cisco ICM NT associado com o Domain Name do dispositivo exterior no payload do pacote. O endereço de destino do pacote de resposta é traduzido de volta ao endereço de dispositivo interno, e o endereço no payload do pacote de resposta é traduzido então a um endereço do pool “teste-dns” devido ao comando ip nat outside source list. Consequentemente o dispositivo interno aprende que o endereço IP de Um ou Mais Servidores Cisco ICM NT para o dispositivo exterior é um dos endereços do pool “teste-dns”, e usará este endereço ao comunicar-se com o dispositivo exterior. O roteador que executa o NAT toma das traduções neste momento.

Este processo pode ser considerado em detalhe na seção da pesquisa de defeitos. Os dispositivos que usam endereços de sobreposição podem comunicar-se um com o otro sem o uso do DNS, mas neste caso, o NAT estático teria que ser configurado. Um exemplo de como este pôde ser feito segue.

Roteador A
!
version 11.2
no service udp-small-servers
no service tcp-small-servers
!
hostname Router-A
!
!

ip domain-name cisco.com
ip name-server 171.69.2.132
!
interface Loopback0
 ip address 1.1.1.1 255.0.0.0
!
interface Ethernet0
 ip address 135.135.1.2 255.255.255.0
 shutdown
!
interface Serial0
 ip address 171.68.200.49 255.255.255.0
 ip nat inside
 no ip mroute-cache
 no ip route-cache
 no fair-queue
!
interface Serial1
 ip address 172.16.47.146 255.255.255.240
 ip nat outside
 no ip mroute-cache
 no ip route-cache
!
ip nat pool test-loop 172.16.47.161 172.16.47.165 prefix-length 28
ip nat inside source list 7 pool test-loop
ip nat outside source static 171.68.200.48 172.16.47.177
ip classless
ip route 0.0.0.0 0.0.0.0 172.16.47.145
ip route 172.16.47.160 255.255.255.240 Serial0

!--- This line is necessary to make NAT work for return traffic.
!--- The router needs to have a route for the pool to the inside 
!--- NAT interface so it knows that a translation is needed.

access-list 7 permit 171.68.200.0 0.0.0.255
!
!
line con 0
 exec-timeout 0 0
line aux 0
line vty 0 4
 login
!
end

Com a configuração acima, quando o dispositivo interno quer se comunicar com o dispositivo exterior pode agora usar o endereço IP 172.16.47.177, e o DNS em não necessário. Como mostrado acima, a tradução do endereço de dispositivo interno é feita ainda dinamicamente, assim que significa que o roteador deve obter pacotes do dispositivo interno antes que uma tradução esteja criada. Por este motivo, o dispositivo interno deve iniciar todas as conexões para que o dispositivo interno e o dispositivo exterior comunique-se. Se se exigiu que as conexões do novato do dispositivo exterior ao dispositivo interno, a seguir o endereço para o dispositivo interno deve igualmente estaticamente ser configurado.

Verificar

No momento, não há procedimento de verificação disponível para esta configuração.

Troubleshooting

Esta seção fornece informações que podem ser usadas para o troubleshooting da sua configuração.

O processo por que o dispositivo interno usou o DNS para se comunicar como descrito acima com o dispositivo exterior, pode ser visto em detalhe com o seguinte processo de Troubleshooting.

Atualmente, não há conversões na tabela de conversões que possam ser vistas com o comando show ip nat translations. Os exemplos abaixo usam os comandos debug ip packet e debug ip nat pelo contrário.

Nota: Os comandos debug geram uma quantidade significativa de saída. Use-o somente quando o tráfego na rede IP for baixo, para que outra atividade no sistema não seja afetada de forma prejudicial.

Router-A# show ip nat translations
Router-A# show debug
Generic IP:
  IP packet debugging is on (detailed)
  IP NAT debugging is on

Quando o dispositivo interno envia sua consulta DNS para o servidor DNS, que reside fora do domínio NAT, o endereço de origem da consulta DNS (o endereço do dispositivo interno) é convertido devido aos comandos ip nat inside. Isso pode ser visto na saída de depuração abaixo.

NAT: s=171.68.200.48->172.16.47.161, d=171.69.2.132 [0]
IP: s=172.16.47.161 (Serial0), d=171.69.2.132 (Serial1), g=172.16.47.145, len 66, forward
    UDP src=6988, dst=53

Quando o servidor DNS envia uma resposta DNS, o payload da resposta DNS é traduzido, devido aos comandos ip nat outside.

Nota: O NAT não olha o payload da resposta DNS a menos que a tradução ocorrer no cabeçalho IP do pacote de resposta. Consulte o comando ip nat outside source list 7 pool na configuração do roteador a seguir.

A primeira mensagem de NAT na saída de depuração abaixo mostra que o roteador reconhece a resposta DNS e converte o endereço IP dentro do payload para 172.16.47.177. A segunda mensagem de NAT mostra o roteador convertendo o destino da resposta de DNS para poder encaminhar uma resposta de retorno para o dispositivo de entrada que executou a consulta de DNS inicial. A parte de destino do encabeçamento, o endereço global interno, é traduzida ao endereço local interno.

O payload da resposta do DNS foi traduzido.

NAT: DNS resource record 171.68.200.48 -> 172.16.47.177

A porção de destino do cabeçalho de IP no pacote de resposta DNS é traduzida:

NAT: s=171.69.2.132, d=172.16.47.161->171.68.200.48 [65371]
IP: s=171.69.2.132 (Serial1), d=171.68.200.48 (Serial0), g=171.68.200.48, len 315, forward
    UDP src=53, dst=6988

Deixe-nos olhar uma outra pergunta e uma resposta DNS:

NAT: s=171.68.200.48->172.16.47.161, d=171.69.2.132 [0]
IP: s=172.16.47.161 (Serial0), d=171.69.2.132 (Serial1), g=172.16.47.145, len 66, forward
    UDP src=7419, dst=53
NAT: DNS resource record 171.68.200.48 -> 172.16.47.177
NAT: s=171.69.2.132, d=172.16.47.161->171.68.200.48 [65388]
IP: s=171.69.2.132 (Serial1), d=171.68.200.48 (Serial0), g=171.68.200.48, len 315, forward
    UDP src=53, dst=7419

Agora que o payload do DNS foi convertido, a tabela de conversão tem uma entrada para os endereços externos local e global do dispositivo externo. Com essas entradas na tabela, podemos traduzir completamente o cabeçalho dos pacotes ICMP trocados entre o dispositivo interno e o dispositivo externo. Vamos observar essa intercâmbio na saída de depuração a seguir.

A seguinte saída mostra o endereço de origem (endereço do dispositivo interno) que está sendo traduzido.

NAT: s=171.68.200.48->172.16.47.161, d=172.16.47.177 [406]

Aqui, o endereço de destino (o endereço local exterior do dispositivo exterior) é traduzido.

NAT: s=172.16.47.161, d=172.16.47.177->171.68.200.48 [406]

Após a tradução, o pacote IP olha como este:

IP: s=172.16.47.161 (Serial0), d=171.68.200.48 (Serial1), g=172.16.47.145, len 100, forward
    ICMP type=8, code=0

A seguinte saída mostra o endereço de origem (endereço do dispositivo de saída) que está sendo traduzido no pacote de informação de retorno.

NAT*: s=171.68.200.48->172.16.47.177, d=172.16.47.161 [16259]

Agora o endereço de destino (dentro do endereço global do dispositivo) do pacote de retorno é traduzido.

NAT*: s=172.16.47.177, d=172.16.47.161->171.68.200.48 [16259]

Após a tradução, o pacote de informação de retorno olha como este:

IP: s=172.16.47.177 (Serial1), d=171.68.200.48 (Serial0), g=171.68.200.48, len 100, forward
    ICMP type=0, code=0

A troca de pacotes entre o dispositivo interno e o dispositivo externo continua.

NAT: s=171.68.200.48->172.16.47.161, d=172.16.47.177 [407]
NAT: s=172.16.47.161, d=172.16.47.177->171.68.200.48 [407]
IP: s=172.16.47.161 (Serial0), d=171.68.200.48 (Serial1), g=172.16.47.145, len 100, forward
    ICMP type=8, code=0
NAT*: s=171.68.200.48->172.16.47.177, d=172.16.47.161 [16262]
NAT*: s=172.16.47.177, d=172.16.47.161->171.68.200.48 [16262]
IP: s=172.16.47.177 (Serial1), d=171.68.200.48 (Serial0), g=171.68.200.48, len 100, forward
    ICMP type=0, code=0
NAT: s=171.68.200.48->172.16.47.161, d=172.16.47.177 [408]
NAT: s=172.16.47.161, d=172.16.47.177->171.68.200.48 [408]
IP: s=172.16.47.161 (Serial0), d=171.68.200.48 (Serial1), g=172.16.47.145, len 100, forward
    ICMP type=8, code=0
NAT*: s=171.68.200.48->172.16.47.177, d=172.16.47.161 [16267]
NAT*: s=172.16.47.177, d=172.16.47.161->171.68.200.48 [16267]
IP: s=172.16.47.177 (Serial1), d=171.68.200.48 (Serial0), g=171.68.200.48, len 100, forward
    ICMP type=0, code=0
NAT: s=171.68.200.48->172.16.47.161, d=172.16.47.177 [409]
NAT: s=172.16.47.161, d=172.16.47.177->171.68.200.48 [409]
IP: s=172.16.47.161 (Serial0), d=171.68.200.48 (Serial1), g=172.16.47.145, len 100, forward
    ICMP type=8, code=0
NAT*: s=171.68.200.48->172.16.47.177, d=172.16.47.161 [16273]
NAT*: s=172.16.47.177, d=172.16.47.161->171.68.200.48 [16273]
IP: s=172.16.47.177 (Serial1), d=171.68.200.48 (Serial0), g=171.68.200.48, len 100, forward
    ICMP type=0, code=0
NAT: s=171.68.200.48->172.16.47.161, d=172.16.47.177 [410]
NAT: s=172.16.47.161, d=172.16.47.177->171.68.200.48 [410]
IP: s=172.16.47.161 (Serial0), d=171.68.200.48 (Serial1), g=172.16.47.145, len 100, forward
    ICMP type=8, code=0
NAT*: s=171.68.200.48->172.16.47.177, d=172.16.47.161 [16277]
NAT*: s=172.16.47.177, d=172.16.47.161->171.68.200.48 [16277]
IP: s=172.16.47.177 (Serial1), d=171.68.200.48 (Serial0), g=171.68.200.48, len 100, forward
    ICMP type=0, code=0

Após a conclusão da troca de pacotes entre a parte externa e interna, podemos observar a tabela de conversões, que possui três entradas. A primeira entrada foi criada quando o dispositivo interno enviou uma consulta DNS. A segunda entrada foi criada quando o payload da resposta de DNS foi convertido. A terceira entrada foi criada quando o sibilo foi trocado entre o dispositivo interno e o dispositivo exterior. A terceira entrada é um resumo das duas primeiras entradas e é usada para conversões mais eficientes.

Router-A# show ip nat translations
Pro Inside global      Inside local       Outside local      Outside global
--- 172.16.47.161      171.68.200.48      ---                ---
--- ---                ---                172.16.47.177      171.68.200.48
--- 172.16.47.161      171.68.200.48      172.16.47.177      171.68.200.48

É importante notar quando você está tentando estabelecer uma Conectividade entre duas redes sobreposta executando o NAT dinâmico em um único roteador Cisco, você deve usar o DNS para criar uma parte externa local à tradução do Outside Global. Se você não usa o DNS, a Conectividade pode ser estabelecida com NAT estático, mas é mais difícil controlar.

Discussões relacionadas da comunidade de suporte da Cisco

A Comunidade de Suporte da Cisco é um fórum onde você pode perguntar e responder, oferecer sugestões e colaborar com colegas.


Informações Relacionadas


Document ID: 13774