Introdução
Este documento descreve como configurar o comandoip nat outside source list
e o que acontece ao pacote IP durante o processo NAT.
Pré-requisitos
Requisitos
Não existem requisitos específicos para este documento.
Componentes Utilizados
As informações neste documento são baseadas nos Cisco Routers que executam a versão do software Cisco IOS®.
As informações neste documento foram criadas a partir de dispositivos em um ambiente de laboratório específico. Todos os dispositivos utilizados neste documento foram iniciados com uma configuração (padrão) inicial. Se a rede estiver ativa, certifique-se de que você entenda o impacto potencial de qualquer comando.
Informações de Apoio
É possível usar este comando para traduzir o endereço de origem dos pacotes IP que viajam fora da rede para dentro da rede. Esta ação converte o endereço de destino dos pacotes IP que trafegam na direção oposta, de dentro para fora da rede. Este comando é útil em situações tais como redes sobrepostas, onde os endereços dentro da rede sobrepõe os endereços fora dela. Vamos considerar o diagrama da rede como um exemplo.
Conventions
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.
Observação: para encontrar informações adicionais sobre os comandos usados neste documento, use a ferramenta Command Lookup Tool (somente clientes registrados).
Diagrama de Rede
Este documento utiliza a seguinte configuração de rede:
Diagrama de Rede
Quando um ping é originado da interface Loopback0 do roteador R1 (172.16.88.1) para a interface Loopback0 do roteador R2 (172.31.1.1), a próxima sequência de eventos ocorre:
- Encaminhamento de pacotes: o roteador R1 encaminha os pacotes para o roteador NAT porque está configurado com uma rota padrão. Na interface externa do roteador NAT, o pacote tem um endereço de origem (SA) de 172.16.88.1 e um endereço de destino (DA) de 172.31.1.1.
- Conversão de NAT: como a SA é permitida pela lista de acesso 1, que é usada pelo comando ip nat outside source list, ela é convertida em um endereço do pool de NAT "NET". Nesse caso, o endereço é convertido em 172.31.16.10, que é o primeiro endereço disponível no pool NAT.
- Roteamento para o destino: após a conversão, o NAT-Roteador procura o destino em sua tabela de roteamento e roteia o pacote. O roteador R2 recebe o pacote em sua interface de entrada com um SA de 172.31.16.10 e um DA de 172.31.1.1. O roteador R2 responde enviando uma resposta de eco do Internet Control Message Protocol (ICMP) para 172.31.16.10. Se o Roteador R2 não tiver uma rota para 172.31.16.10, ele descartará o pacote.
- Tratamento de Resposta: Nesse caso, o Roteador R2 tem uma rota padrão e, portanto, envia o pacote de resposta ao Roteador NAT, usando um SA de 172.31.1.1 e um DA de 172.31.16.10. O roteador NAT recebe o pacote em sua interface interna e verifica se há uma rota para o endereço 172.31.16.10. Se não tiver uma rota, ele responderá com uma resposta de ICMP inalcançável.
- Conversão e Roteamento de Volta: Nesse caso, o NAT-Router tem uma rota para 172.31.16.10 devido à opção add-route do comando ip nat outside source, que adiciona uma rota de host com base na conversão entre o endereço global externo e o endereço local externo. O NAT-Router converte o pacote de volta ao endereço origem original (172.16.88.1) e roteia o pacote de sua interface externa de volta ao Roteador R1.
Configurações
Roteador R1 |
hostname R1
!
!--- Output suppressed.
!
interface Loopback0
ip address 172.16.88.1 255.255.255.0
!
!--- Output suppressed.
!
interface GigabitEthernet0/0
ip address 172.16.191.254 255.255.255.252
duplex auto
speed auto
!
!--- Output suppressed.
ip route 0.0.0.0 0.0.0.0 172.16.191.253
!--- Default route to forward packets to NAT-Router.
!--- Output suppressed. |
Roteador NAT-Roteador |
hostname NAT-Router
!
!--- Output suppressed.
!
interface GigabitEthernet0/0
ip address 172.16.191.253 255.255.255.252
ip nat outside
ip virtual-reassembly in
duplex auto
speed auto
!
interface GigabitEthernet0/1
ip address 172.31.192.202 255.255.255.0
ip nat inside
ip virtual-reassembly in
duplex auto
speed auto
!
ip nat pool NET 172.31.16.10 172.31.16.254 netmask 255.255.255.0
!--- NAT pool defining Outside Local addresses to be used for translation.
!
ip nat outside source list 1 pool NET add-route
!
!--- Configures translation for Outside Global addresses !--- with the NAT pool.
!
ip route 172.16.88.0 255.255.255.0 172.16.191.254
ip route 172.31.1.0 255.255.255.0 172.31.192.201
!
!--- Static routes for reaching the loopback interfaces on R1 and R2.
!
access-list 1 permit 172.16.88.0 0.0.0.255
!
!--- Access-list defining Outside Global addresses to be translated.
!--- Output suppressed. |
Roteador R2 |
hostname R2
!
!--- Output suppressed.
interface Loopback0
ip address 172.31.1.1 255.255.255.0
!
!
interface GigabitEthernet0/0
ip address 172.31.192.201 255.255.255.0
duplex auto
speed auto
!
!--- Output suppressed.
ip route 0.0.0.0 0.0.0.0 172.31.192.202
!--- Default route to forward packets to NAT-Router.
!--- Output suppressed. |
Verificar
Esta seção fornece informações para confirmar se a sua configuração funciona corretamente.
Determinados comandos show são suportados pela Output Interpreter Tool (somente clientes registrados), que permite que você exiba uma análise da saída do show
comando.
O comando show ip nat translations pode ser usado para verificar as entradas de conversão, como mostrado nesta saída:
NAT-Router#show ip nat translations
Pro Inside global Inside local Outside local Outside global
--- --- --- 172.31.16.10 172.16.88.1
icmp 172.31.1.1:0 172.31.1.1:0 172.31.16.10:0 172.16.88.1:0
NAT-Router#
A saída mostra que o endereço Global Externo 172.16.88.1, que é o endereço na interface Loopback0 do roteador R1, é convertido no endereço Local Externo 172.31.16.10.
Você pode usar o comando show ip route para verificar as entradas da tabela de roteamento, conforme mostrado:
NAT-Router#show ip route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
a - application route
+ - replicated route, % - next hop override, p - overrides from PfR
Gateway of last resort is not set
172.16.0.0/16 is variably subnetted, 3 subnets, 3 masks
S 172.16.88.0/24 [1/0] via 172.16.191.254
C 172.16.191.252/30 is directly connected, GigabitEthernet0/0
L 172.16.191.253/32 is directly connected, GigabitEthernet0/0
172.31.0.0/16 is variably subnetted, 4 subnets, 2 masks
S 172.31.1.0/24 [1/0] via 172.31.192.201
S 172.31.16.10/32 [1/0] via 172.16.88.1
C 172.31.192.0/24 is directly connected, GigabitEthernet0/1
L 172.31.192.202/32 is directly connected, GigabitEthernet0/1
NAT-Router#
A saída mostra uma rota /32 para o endereço local externo 172.31.16.10, que é criado devido à opção add-route do comando ip nat outside source. Essa rota é usada para encaminhar e converter pacotes que trafegam de dentro para fora da rede.
Troubleshooting
Esta seção fornece informações que podem ser usadas para o troubleshooting da sua configuração.
Esta saída é o resultado da execução dos comandos debug ip packet e debug ip nat no roteador NAT-Router, ao fazer ping do endereço da interface loopback0 do roteador R1 (172.16.88.1) para o endereço da interface loopback0 do roteador R2 (172.31.1.1):
!--- The source address in the first packet arriving on the outside interface is first translated.
*Oct 4 20:26:48.839: NAT: s=172.16.88.1->172.31.16.10, d=172.31.1.1 [0]
!--- The ICMP echo request packet with the translated source address is routed and forwarded on the inside interface.
*Oct 4 20:26:48.839: IP: s=172.31.16.10 (GigabitEthernet0/0), d=172.31.1.1 (GigabitEthernet0/1), len 100, output feature, NAT Inside(8), rtype 1, forus FALSE, sendself FALSE, mtu 0, fwdchk FALSE
*Oct 4 20:26:48.839: IP: s=172.31.16.10 (GigabitEthernet0/0), d=172.31.1.1 (GigabitEthernet0/1), len 100, output feature, Common Flow Table(29), rtype 1, forus FALSE, sendself FALSE, mtu 0, fwdchk FALSE
*Oct 4 20:26:48.839: IP: s=172.31.16.10 (GigabitEthernet0/0), d=172.31.1.1 (GigabitEthernet0/1), len 100, output feature, Stateful Inspection(30), rtype 1, forus FALSE, sendself FALSE, mtu 0, fwdchk FALSE
*Oct 4 20:26:48.839: IP: s=172.31.16.10 (GigabitEthernet0/0), d=172.31.1.1 (GigabitEthernet0/1), len 100, output feature, NAT ALG proxy(63), rtype 1, forus FALSE, sendself FALSE, mtu 0, fwdchk FALSE
*Oct 4 20:26:48.839: IP: s=172.31.16.10 (GigabitEthernet0/0), d=172.31.1.1 (GigabitEthernet0/1), g=172.31.192.201, len 100, forward
*Oct 4 20:26:48.839: IP: s=172.31.16.10 (GigabitEthernet0/0), d=172.31.1.1 (GigabitEthernet0/1), len 100, sending full packet
!--- The ICMP echo reply packet arriving on the inside interface, is first routed based on the destination address.
Oct 4 20:26:48.841: IP: s=172.31.1.1 (GigabitEthernet0/1), d=172.31.16.10, len 100, input feature, Common Flow Table(5), rtype 0, forus FALSE, sendself FALSE, mtu 0, fwdchk FALSE
*Oct 4 20:26:48.841: IP: s=172.31.1.1 (GigabitEthernet0/1), d=172.31.16.10, len 100, input feature, Stateful Inspection(8), rtype 0, forus FALSE, sendself FALSE, mtu 0, fwdchk FALSE
*Oct 4 20:26:48.841: IP: s=172.31.1.1 (GigabitEthernet0/1), d=172.31.16.10, len 100, input feature, Virtual Fragment Reassembly(39), rtype 0, forus FALSE, sendself FALSE, mtu 0, fwdchk FALSE
*Oct 4 20:26:48.841: IP: s=172.31.1.1 (GigabitEthernet0/1), d=172.31.16.10, len 100, input feature, Virtual Fragment Reassembly After IPSec Decryption(57), rtype 0, forus FALSE, sendself FALSE, mtu 0, fwdchk FALSE
*Oct 4 20:26:48.841: IP: s=172.31.1.1 (GigabitEthernet0/1), d=172.31.16.10, len 100, input feature, MCI Check(109), rtype 0, forus FALSE, sendself FALSE, mtu 0, fwdchk FALSE
!--- The destination address in the packet is then translated.
*Oct 4 20:26:48.841: NAT: s=172.31.1.1, d=172.31.16.10->172.16.88.1 [0]
!--- The ICMP echo reply packet with the translated destination address is forwarded on the outside interface.
*Oct 4 20:26:48.841: IP: s=172.31.1.1 (GigabitEthernet0/1), d=172.16.88.1 (GigabitEthernet0/0), len 100, output feature, Post-routing NAT Outside(26), rtype 1, forus FALSE, sendself FALSE, mtu 0, fwdchk FALSE
*Oct 4 20:26:48.841: IP: s=172.31.1.1 (GigabitEthernet0/1), d=172.16.88.1 (GigabitEthernet0/0), len 100, output feature, Common Flow Table(29), rtype 1, forus FALSE, sendself FALSE, mtu 0, fwdchk FALSE
*Oct 4 20:26:48.841: IP: s=172.31.1.1 (GigabitEthernet0/1), d=172.16.88.1 (GigabitEthernet0/0), len 100, output feature, Stateful Inspection(30), rtype 1, forus FALSE, sendself FALSE, mtu 0, fwdchk FALSE
*Oct 4 20:26:48.841: IP: s=172.31.1.1 (GigabitEthernet0/1), d=172.16.88.1 (GigabitEthernet0/0), len 100, output feature, NAT ALG proxy(63), rtype 1, forus FALSE, sendself FALSE, mtu 0, fwdchk FALSE
*Oct 4 20:26:48.841: IP: s=172.31.1.1 (GigabitEthernet0/1), d=172.16.88.1 (GigabitEthernet0/0), g=172.16.191.254, len 100, forward
*Oct 4 20:26:48.843: IP: s=172.31.1.1 (GigabitEthernet0/1), d=172.16.88.1 (GigabitEthernet0/0), len 100, sending full packet
*Oct 4 20:26:48.845: NAT*: s=172.16.88.1->172.31.16.10, d=172.31.1.1 [1]
*Oct 4 20:26:48.846: NAT*: s=172.31.1.1, d=172.31.16.10->172.16.88.1 [1]
*Oct 4 20:26:48.848: NAT*: s=172.16.88.1->172.31.16.10, d=172.31.1.1 [2]
*Oct 4 20:26:48.849: NAT*: s=172.31.1.1, d=172.31.16.10->172.16.88.1 [2]
*Oct 4 20:26:48.851: NAT*: s=172.16.88.1->172.31.16.10, d=172.31.1.1 [3]
*Oct 4 20:26:48.852: NAT*: s=172.31.1.1, d=172.31.16.10->172.16.88.1 [3]
*Oct 4 20:26:48.854: NAT*: s=172.16.88.1->172.31.16.10, d=172.31.1.1 [4]
*Oct 4 20:26:48.855: NAT*: s=172.31.1.1, d=172.31.16.10->172.16.88.1 [4]
O procedimento anterior é repetido para cada pacote recebido na interface externa.
Summary
A principal diferença entre o uso do comando ip nat outside source list (NAT dinâmico) em vez do comando ip nat outside source static (NAT estático) é que não há entradas na tabela de conversões até que o roteador (configurado para NAT) verifique os critérios de conversão do pacote. No exemplo anterior, o pacote com SA 172.16.88.1 (que entra na interface externa do roteador NAT) satisfaz a lista de acesso 1, os critérios usados pelo comando ip nat outside source list. Por esse motivo, os pacotes devem se originar da rede externa antes que os pacotes da rede interna possam se comunicar com a interface loopback0 do Roteador R1.
Duas coisas importantes devem ser observadas neste exemplo:
1. Quando o pacote trafega de fora para dentro, a conversão ocorre primeiro e, em seguida, a tabela de roteamento é verificada quanto ao destino. Quando o pacote trafega de dentro para fora, a tabela de roteamento é verificada primeiro quanto ao destino e, em seguida, ocorre a conversão.
2. É importante observar que parte do pacote IP é convertida ao usar cada um dos comandos anteriores. A próxima tabela fornece uma diretriz:
Comando |
Ação |
ip nat outside source list |
- traduz a origem dos pacotes IP que estão viajando de fora para dentro
- converte o destino dos pacotes IP que estão trafegando de dentro para fora
|
ip nat inside source list |
- traduz a origem de pacotes IP que estão trafegando de dentro para fora
- converte o destino dos pacotes IP que estão trafegando de fora para dentro
|
O que essas diretrizes indicam é que há mais de uma maneira de converter um pacote. Dependendo de suas necessidades específicas, você pode determinar como definir as interfaces NAT (internas ou externas) e quais rotas a tabela de roteamento contém antes ou depois da conversão. Tenha em mente que a parte do pacote que é traduzida depende da direção em que o pacote está viajando e de como você configurou o NAT.
Informações Relacionadas