IP : Serviços de endereçamento IP

Ordem de Operação do NAT

22 Maio 2008 - Tradução Manual
Outras Versões: Versão em PDFpdf | Tradução por Computador (13 Setembro 2013) | Inglês (30 Setembro 2008) | Feedback


Índice

Introdução
Pré-requisitos
     Requisitos
     Componentes Utilizados
     Convenções
Visão geral do NAT
Configuração de NAT e Saída
Discussões relacionadas da comunidade de suporte da Cisco

Introdução

Este documento ilustra que a ordem na qual as transações são processadas, utilizando a NAT (Network Address Translation), é baseada em se um pacote está saindo de uma rede interna para uma rede externa, ou da rede externa para a rede interna.

Pré-requisitos

Requisitos

Os leitores deste documento devem ter conhecimento sobre os seguintes tópicos:

  • NAT (Network Address Translation). Para obter mais informações sobre NAT, consulte Como o NAT funciona.

Componentes Utilizados

Este documento não está restrito às versões específicas de software e de hardware.

Observação: As informações deste documento são baseadas na Versão de Software, Cisco IOS® Software Release 12.2(27)

Convenções

Para obter mais informações sobre convenções de documentos, consulte Convenções e Dicas Técnicas da Cisco.

Visão geral do NAT

Na tabela abaixo, quando o NAT realiza o global para o local, ou o local para o global, a tradução será diferente em cada fluxo.

De Dentro para Fora

De Fora para Dentro

  • Se for IPSec, então verifique a decriptografia da lista de acesso de entrada

  • - para CET (Tecnologia de Criptografia Cisco) ou IPSec

  • verifique a lista de acesso de entrada

  • verifique os limites da taxa de entrada

  • contabilidade de entrada

  • Roteamento Baseado em Política

  • roteamento

  • redirecionar para o cache de web

  • NAT de dentro para fora (tradução de local para global)

  • crypto (verificar mapa e marca para criptografia)

  • verificar a lista de acesso de saída

  • inspecionar (Controle de Acesso Baseado em Contexto (CBAC))

  • interceptação de TCP

  • criptografia

  • Enfileiramento

  • Se for IPSec, então verificar a decriptografia da lista de acesso de entrada

  • decriptografia – para CET ou IPSec

  • verifique a lista de acesso de entrada

  • verifique os limites da taxa de entrada

  • contabilidade de entrada

  • NAT de fora para dentro (tradução de global para local)

  • Roteamento Baseado em Política

  • roteamento

  • redirecionar para o cache de web

  • crypto (verificar mapa e marca para criptografia)

  • verificar a lista de acesso de saída

  • inspecionar CBAC

  • interceptação de TCP

  • criptografia

  • Enfileiramento

Configuração de NAT e Saída

Os exemplos seguintes demonstram como a ordem das operações pode efetuar NAT. Neste caso, apenas o NAT e o roteamento são exibidos.

5a-1.gif

No exemplo acima, o Roteador-A está configurado para traduzir o endereço local interno 171.68.200.48 como 172.16.47.150, conforme mostrado na configuração abaixo.

!
version 11.2
no service udp-small-servers
no service tcp-small-servers
!
hostname Router-A
!
enable password ww
!
ip nat inside source static 171.68.200.48 172.16.47.150
            
               !--- Este comando cria uma tradução de NAT estática
!--- entre 171.68.200.48 e 172.16.47.150 
            
ip domain-name cisco.com
ip name-server 171.69.2.132
!
interface Ethernet0
 no ip address
 shutdown
!
interface Serial0
 ip address 172.16.47.161 255.255.255.240
 ip nat inside
            
               !--- Configura Serial0 como a interface interna de NAT
            
 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
            
               !--- Configura Serial1 como a interface externa de NAT
            
 no ip mroute-cache
 no ip route-cache
!
no ip classless
ip route 0.0.0.0 0.0.0.0 172.16.47.145
            
               !--- Configura uma rota padrão para 172.16.47.145
            

ip route 171.68.200.0 255.255.255.0 172.16.47.162
!
!
line con 0
 exec-timeout 0 0
line aux 0
line vty 0 4
 password ww
 login
!
end

A tabela de tradução indica que as traduções pretendidas existem.

Router-A#show ip nat translation
Pro Inside global      Inside local       Outside local      Outside global
--- 172.16.47.150      171.68.200.48      ---                ---

A seguinte saída foi retirada do Roteador-A com debug ip packet detail e debug ip nat habilitado, e um ping executado do dispositivo 171.68.200.48 destinado para 172.16.47.142.

Observação: Os comandos de depuração geram uma quantidade significativa de saídas. Utilize-as somente quando o tráfego na rede IP for baixo, para que outra atividade no sistema não seja afetada de forma prejudicial. Antes de emitir comandos debug, consulte Informações Importantes sobre Comandos de Depuração.

IP: s=171.68.200.48 (Serial0), d=172.16.47.142, len 100, unroutable
    ICMP type=8, code=0
IP: s=172.16.47.161 (local), d=171.68.200.48 (Serial0), len 56, sending
    ICMP type=3, code=1
IP: s=171.68.200.48 (Serial0), d=172.16.47.142, len 100, unroutable
    ICMP type=8, code=0
IP: s=171.68.200.48 (Serial0), d=172.16.47.142, len 100, unroutable
    ICMP type=8, code=0
IP: s=172.16.47.161 (local), d=171.68.200.48 (Serial0), len 56, sending
    ICMP type=3, code=1
IP: s=171.68.200.48 (Serial0), d=172.16.47.142, len 100, unroutable
    ICMP type=8, code=0
IP: s=171.68.200.48 (Serial0), d=172.16.47.142, len 100, unroutable
    ICMP type=8, code=0
IP: s=172.16.47.161 (local), d=171.68.200.48 (Serial0), len 56, sending
    ICMP type=3, code=1

Uma vez que não haja mensagens de depuração de NAT na saída acima, você saberá que a tradução estática existente não está sendo utilizada e que o roteador não tem uma rota para o endereço de destino (172.16.47.142) nesta tabela de roteamento. O resultado do pacote não-roteável é uma mensagem inalcançável ICMP, que é enviada para o dispositivo interno.

Entretanto, o Roteador-A tem uma rota padrão de 172.16.47.145, portanto, por que a rota é considerada não roteável?

O Roteador-A configurou no ip classless, o que significa que se um pacote destinado para um endereço de rede "principal" (neste caso, 172.16.0.0) para o qual sub-redes existem na tabela de roteamento, o roteador não depende da rota padrão. Em outras palavras, emitindo o comando no ip classless desliga-se a capacidade do roteador de procurar a rota com a correspondência de bit mais longa. Para alterar esse comportamento, você deve configurar ip classless no Roteador-A O comando ip classless está habilitado por padrão nos roteadores da Cisco na Versão IOS 11.3 e superiores.

Router-A#configure terminal
Enter configuration commands, one per line.  End with CTRL/Z.
Router-A(config)#ip classless
Router-A(config)#end

Router-A#show ip nat translation
%SYS-5-CONFIG_I: Configured from console by console nat tr
Pro Inside global      Inside local       Outside local      Outside global
--- 172.16.47.150      171.68.200.48      ---                ---

Repetindo o mesmo teste ping anterior, vemos que o pacote é traduzido e o ping é efetuado com êxito.


Ping Response on device 171.68.200.48

D:\>ping 172.16.47.142
Pinging 172.16.47.142 with 32 bytes of data:

Reply from 172.16.47.142: bytes=32 time=10ms TTL=255
Reply from 172.16.47.142: bytes=32 time<10ms TTL=255
Reply from 172.16.47.142: bytes=32 time<10ms TTL=255
Reply from 172.16.47.142: bytes=32 time<10ms TTL=255

Ping statistics for 172.16.47.142:
    Packets: Sent = 4, Received = 4, Lost = 0 (0%)
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum =  10ms, Average =  2ms

Debug messages on Router A indicating that the packets generated by device
171.68.200.48 are getting translated by NAT.

Router-A#
*28 de mar 03:34:28: IP: tableid=0, s=171.68.200.48 (Serial0), d=172.16.47.142
(Serial1), roteado por RIB
            *28 de mar 03:34:28: NAT: s=171.68.200.48->172.16.47.150, d=172.16.47.142 [160]
            *28 de mar 03:34:28: IP: s=172.16.47.150 (Serial0), d=172.16.47.142 (Serial1),
 g=172.16.47.145, len 100, encaminhar
            *28 de mar 03:34:28: Tipo de ICMP=8, código=0
            *28 de mar 03:34:28: NAT*: s=172.16.47.142, d=172.16.47.150->171.68.200.48 [160]
            *28 de mar 03:34:28: IP: tableid=0, s=172.16.47.142 (Serial1), d=171.68.200.48
(Serial0), roteado por RIB
            *28 de mar 03:34:28: IP: s=172.16.47.142 (Serial1), d=171.68.200.48 (Serial0),
g=172.16.47.162, len 100, encaminhar
            *28 de mar 03:34:28: Tipo de ICMP=0, código=0
*Mar 28 03:34:28: NAT*: s=171.68.200.48->172.16.47.150, d=172.16.47.142 [161]
*Mar 28 03:34:28: NAT*: s=172.16.47.142, d=172.16.47.150->171.68.200.48 [161]
*Mar 28 03:34:28: IP: tableid=0, s=172.16.47.142 (Serial1), d=171.68.200.48
(Serial0), routed via RIB
*Mar 28 03:34:28: IP: s=172.16.47.142 (Serial1), d=171.68.200.48 (Serial0),
g=172.16.47.162, len 100, forward
*Mar 28 03:34:28: ICMP type=0, code=0
*Mar 28 03:34:28: NAT*: s=171.68.200.48->172.16.47.150, d=172.16.47.142 [162]
*Mar 28 03:34:28: NAT*: s=172.16.47.142, d=172.16.47.150->171.68.200.48 [162]
*Mar 28 03:34:28: IP: tableid=0, s=172.16.47.142 (Serial1), d=171.68.200.48
(Serial0), routed via RIB
*Mar 28 03:34:28: IP: s=172.16.47.142 (Serial1), d=171.68.200.48 (Serial0),
g=172.16.47.162, len 100, forward
*Mar 28 03:34:28: ICMP type=0, code=0
*Mar 28 03:34:28: NAT*: s=171.68.200.48->172.16.47.150, d=172.16.47.142 [163]
*Mar 28 03:34:28: NAT*: s=172.16.47.142, d=172.16.47.150->171.68.200.48 [163]
*Mar 28 03:34:28: IP: tableid=0, s=172.16.47.142 (Serial1), d=171.68.200.48
(Serial0), routed via RIB
*Mar 28 03:34:28: IP: s=172.16.47.142 (Serial1), d=171.68.200.48 (Serial0),
g=172.16.47.162, len 100, forward
*Mar 28 03:34:28: ICMP type=0, code=0
*Mar 28 03:34:28: NAT*: s=171.68.200.48->172.16.47.150, d=172.16.47.142 [164]
*Mar 28 03:34:28: NAT*: s=172.16.47.142, d=172.16.47.150->171.68.200.48 [164]
*Mar 28 03:34:28: IP: tableid=0, s=172.16.47.142 (Serial1), d=171.68.200.48
(Serial0), routed via RIB
*Mar 28 03:34:28: IP: s=172.16.47.142 (Serial1), d=171.68.200.48 (Serial0),
g=172.16.47.162, len 100, forward
*Mar 28 03:34:28: ICMP type=0, code=0

Router-A#undebug all
All possible debugging has been turned off

O exemplo acima mostra que quando um pacote está atravessando de dentro para fora, um roteador NAT verifica a sua tabela de roteamento em relação a uma rota para o endereço externo antes de continuar com a tradução do pacote. Portanto, é importante que o roteador NAT tenha uma rota válida para a rede externa. A rota para a rede de destino deve ser conhecida por uma interface que é definida como NAT externo na configuração do roteador.

É importante observar que o pacotes de informação de retorno são traduzidos antes de serem roteados. Por isso, o roteador NAT também deve ter uma rota válida para o endereço local interno em sua tabela de roteamento.


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.


Document ID: 6209