Introducción
Este documento describe cómo configurar elip nat outside source list
comando y lo que sucede con el paquete IP durante el proceso NAT.
Prerequisites
Requirements
No hay requisitos específicos para este documento.
Componentes Utilizados
La información de este documento se basa en los routers de Cisco que ejecutan la versión de software del IOS® de Cisco.
La información que contiene este documento se creó a partir de los dispositivos en un ambiente de laboratorio específico. Todos los dispositivos que se utilizan en este documento se pusieron en funcionamiento con una configuración verificada (predeterminada). Si tiene una red en vivo, asegúrese de entender el posible impacto de cualquier comando.
Antecedentes
Puede utilizar este comando para traducir la dirección de origen de los paquetes IP que viajan desde el exterior hacia el interior de la red. Esta acción traduce la dirección de destino de los paquetes IP que viajan en la dirección opuesta, desde el interior al exterior de la red. Este comando es útil en tales situaciones como redes superpuestas, donde las direcciones de la red interna se superponen con las direcciones que están fuera de la red. Consideremos el diagrama de la red como un ejemplo.
Convenciones
Para obtener más información sobre las convenciones del documento, consulte Convenciones de Consejos Técnicos de Cisco.
Configurar
En esta sección encontrará la información para configurar las funciones descritas en este documento.
Nota: Para obtener información adicional sobre los comandos utilizados en este documento, utilice la Command Lookup Tool (sólo clientes registrados).
Diagrama de la red
En este documento, se utiliza esta configuración de red:
Diagrama de la red
Cuando un ping se origina desde la interfaz Loopback0 del Router R1 (172.16.88.1) a la interfaz Loopback0 del Router R2 (172.31.1.1), ocurre la siguiente secuencia de eventos:
- Reenvío de paquetes: el router R1 reenvía los paquetes al router NAT porque está configurado con una ruta predeterminada. En la interfaz exterior del router NAT, el paquete tiene una dirección de origen (SA) de 172.16.88.1 y una dirección de destino (DA) de 172.31.1.1.
- Traducción NAT: Dado que la SA está permitida por access-list 1, que es utilizada por el comando ip nat outside source list, se traduce a una dirección del conjunto NAT "NET". En este caso, la dirección se traduce a 172.31.16.10, que es la primera dirección disponible en el conjunto NAT.
- Ruteo a Destino: Después de la traducción, el router NAT busca el destino en su tabla de ruteo y rutea el paquete. El router R2 recibe el paquete en su interfaz de entrada con una SA de 172.31.16.10 y una DA de 172.31.1.1. El router R2 responde enviando una respuesta de eco ICMP (Internet Control Message Protocol) a 172.31.16.10. Si el Router R2 no tiene una ruta a 172.31.16.10, descarta el paquete.
- Manejo de Respuesta: En este caso, el Router R2 tiene una ruta predeterminada, por lo que envía el paquete de respuesta al Router NAT, usando una SA de 172.31.1.1 y una DA de 172.31.16.10. El router NAT recibe el paquete en su interfaz interna y verifica una ruta a la dirección 172.31.16.10. Si no tiene una ruta, responde con una respuesta de ICMP inalcanzable.
- Translation and Routing Back: En este caso, el router NAT tiene una ruta a 172.31.16.10 debido a la opción add-route del comando ip nat outside source, que agrega una ruta de host basada en la traducción entre la dirección global externa y la dirección local externa. El router NAT traduce el paquete de vuelta a la dirección de origen original (172.16.88.1) y enruta el paquete fuera de su interfaz externa de vuelta al router R1.
Configuraciones
Router 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. |
Router NAT-Router |
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. |
Router 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. |
Verificación
Esta sección proporciona información que puede utilizar para confirmar que su configuración funciona correctamente.
Algunos comandos show son compatibles con la herramienta Output Interpreter Tool (sólo clientes registrados), que le permite ver un análisis de los resultados de los show
comandos.
El comando show ip nat translations se puede utilizar para verificar las entradas de traducción, como se muestra en este resultado:
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#
El resultado muestra que la dirección global externa 172.16.88.1, que es la dirección en la interfaz Loopback0 del router R1, se traduce a la dirección local externa 172.31.16.10.
Puede utilizar el comando show ip route para verificar las entradas de la tabla de ruteo, como se muestra:
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#
El resultado muestra una ruta /32 para la dirección local externa 172.31.16.10, que es creada gracias a la opción agregar ruta del comando ip nat outside source. Esta ruta se utiliza para rutear y traducir los paquetes que viajan del interior al exterior de la red.
Troubleshoot
En esta sección encontrará información que puede utilizar para solucionar problemas de configuración.
Este resultado es el resultado de ejecutar los comandos debug ip packet y debug ip nat en el router NAT-Router, mientras se hace ping desde la dirección de interfaz loopback0 del router R1 (172.16.88.1) a la dirección de interfaz loopback0 del router 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]
El procedimiento anterior se repite para cada paquete recibido en la interfaz exterior.
Summary
La diferencia principal entre utilizar el comando ip nat outside source list (NAT dinámico) en lugar del comando ip nat outside source static (NAT estático) es que no hay entradas en la tabla de traducción hasta que el router (configurado para NAT) verifique el criterio de traducción del paquete. En el ejemplo anterior, el paquete con SA 172.16.88.1 (que entra en la interfaz externa del router NAT) satisface la lista de acceso 1, los criterios utilizados por el comando ip nat outside source list. Por esta razón, los paquetes deben originarse en la red externa antes de que los paquetes de la red interna puedan comunicarse con la interfaz loopback0 del Router R1.
Hay dos puntos importantes a tener en cuenta en este ejemplo:
1. Cuando el paquete viaja de afuera hacia adentro, la traducción ocurre primero, y luego se verifica la tabla de ruteo para el destino. Cuando el paquete viaja de adentro hacia afuera, primero se verifica la tabla de ruteo para el destino y luego se produce la traducción.
2. Es importante tener en cuenta qué parte del paquete IP se traduce cuando se utiliza cada uno de los comandos anteriores. La siguiente tabla proporciona una guía:
Comando |
Acción |
ip nat outside source list |
- traduce la fuente de los paquetes del IP que están viajando de afuera hacia adentro
- traslada el destino de los paquetes IP que están viajando del interior al exterior
|
ip nat inside source list |
- traduce el origen de los paquetes de IP que están viajando desde adentro hacia afuera
- traduce el destino de los paquetes IP que viajan de afuera hacia adentro
|
Lo que indican estas pautas es que hay más de una manera de traducir un paquete. Dependiendo de sus necesidades específicas, puede determinar cómo definir las interfaces NAT (internas o externas) y qué rutas contiene la tabla de ruteo antes o después de la traducción. Tenga en cuenta que la porción del paquete que se traduce depende de la dirección que el paquete está viajando y de cómo configuró NAT.
Información Relacionada