Introducción
Este documento describe una configuración que utiliza el comando ip nat outside source static y los resultados de los paquetes IP del proceso NAT.
Prerequisites
Requirements
Cisco le recomienda que tenga conocimiento acerca de este tema:
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
Este documento proporciona un ejemplo de configuración con el uso del comando ip nat outside source static e incluye una descripción breve de lo que sucede con el paquete IP durante el proceso NAT. Considere la topología de red de este documento como ejemplo.
Configurar
Diagrama de la red
Este documento utiliza esta configuración de red:
Diagrama de la red
Cuando emite un ping originado en la interfaz Loopback1 del Router R1 destinado a la interfaz Loopback0 del Router R2, esto es lo que sucede:
- En la interfaz externa (Gi0/0) del router NAT, el paquete ping aparece con una dirección de origen (SA) de 172.16.89.32 y una dirección de destino (DA) de 172.31.1.1.
- NAT traduce la SA a la dirección local externa 172.31.16.5 (correspondiente al comando ip nat outside source static configurado en el router NAT).
- El router NAT luego verifica su tabla de ruteo para una ruta a 172.31.1.1.
- Si la ruta no existe, el router NAT descarta el paquete. Sin embargo, en este caso, el router NAT tiene una ruta a 172.31.1.1 a través de la ruta estática configurada a la subred 172.31.1.0/24. Envía el paquete al destino.
- El router R2 recibe el paquete en su interfaz de entrada (Gi0/0), ahora con una SA de 172.31.16.5 y una DA de 172.31.1.1.
- Para responder, R2 envía una respuesta de eco ICMP (Internet Control Message Protocol) a 172.31.16.5 (la dirección NATted).
- Si R2 no tiene una ruta, descarta el paquete. Sin embargo, en este caso, tiene una ruta predeterminada hacia el router NAT.
- Por lo tanto, envía un paquete de respuesta al router NAT, con una SA de 172.31.1.1 y una DA de 172.31.16.5.
- El router NAT ve el paquete y verifica una ruta a la dirección 172.31.16.5.
- Si no posee una, responde con una respuesta “ICMP inalcanzable”.
- En este caso, tiene una ruta estática configurada a la subred 172.31.16.0/24 que apunta a R1.
- Vuelve a traducir el paquete a la dirección 172.16.89.32 y lo reenvía fuera de su interfaz externa (Gi0/0).
Configuraciones
En este documento, se utilizan estas configuraciones:
Router R1 |
hostname R1
!
!--- Output suppressed.
!
interface Loopback1
ip address 172.16.89.32 255.255.255.0
!
interface GigabitEthernet0/0
ip address 172.16.191.254 255.255.255.252
duplex auto
speed auto
!
interface GigabitEthernet0/1
no ip address
shutdown
! !--- 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 command defines GigabitEthernet0/1 as a NAT inside interface and GigabitEthernet0/0 as a NAT outside interface.
!--- Output suppressed.
!
no ip http server
no ip http secure-server
ip nat outside source static 172.16.89.32 172.31.16.5
ip route 172.31.1.0 255.255.255.0 172.31.192.201
ip route 172.31.16.0 255.255.255.0 172.16.191.254
!
!--- Outside local address is defined as 172.31.16.5.
!--- Static routes for reaching the loopback interfaces on R2 and subnet 172.31.16.0 towards R1. |
Nota: Tenga en cuenta que en este escenario en particular, no se necesita una ruta estática que apunte a Loopback1 en R1. Esto se debe a que cuando la respuesta ICMP ingresa al router NAT, primero se verifica la tabla de ruteo para el destino y luego se realiza la traducción de direcciones.
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
Utilice el comando show ip nat translations para verificar las entradas de traducción, como muestra este resultado:
NAT-Router#show ip nat translations
Pro Inside global Inside local Outside local Outside global
--- --- --- 172.31.16.5 172.16.89.32
icmp 172.31.1.1:21 172.31.1.1:21 172.31.16.5:21 172.16.89.32:21
NAT-Router#
Resolución de problemas
Este ejemplo utiliza depuración de traducción NAT y depuración de paquetes IP para demostrar el proceso NAT.
Precaución: debido a que los comandos debug generan una cantidad significativa de salida, utilícelos solamente cuando el tráfico en la red IP es bajo para que otra actividad en el sistema no se vea afectada negativamente.
Nota: Estas salidas de depuración se tomaron de los routers que ejecutan el software Cisco IOS. La recopilación de estos resultados de depuración puede variar en función de la plataforma utilizada.
Nota: Consulte Información Importante sobre Comandos Debug antes de utilizar los comandos debug.
Esta salida es el resultado del uso de los comandos debug ip packet y debug ip nat simultáneamente en el router NAT, mientras se hace ping desde la dirección de interfaz R1 loopback1 (172.16.89.32) a la dirección de interfaz R2 loopback0 (172.31.1.1).
Este resultado muestra el primer paquete que llega a la interfaz externa del router NAT. La dirección de origen de 172.16.89.32 se traduce a 172.31.16.5. El paquete ICMP se reenvía hacia el destino fuera de la interfaz GigabitEthernet0/1.
*Sep 19 15:34:39.925: NAT: s=172.16.89.32->172.31.16.5, d=172.31.1.1 [100]
*Sep 19 15:34:39.925: IP: s=172.31.16.5 (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
*Sep 19 15:34:39.926: IP: s=172.31.16.5 (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
*Sep 19 15:34:39.926: IP: s=172.31.16.5 (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
*Sep 19 15:34:39.927: IP: s=172.31.16.5 (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
*Sep 19 15:34:39.927: IP: s=172.31.16.5 (GigabitEthernet0/0), d=172.31.1.1 (GigabitEthernet0/1), g=172.31.192.201, len 100, forward
*Sep 19 15:34:39.928: IP: s=172.31.16.5 (GigabitEthernet0/0), d=172.31.1.1 (GigabitEthernet0/1), len 100, sending full packet
Este resultado muestra el paquete de retorno originado de 172.31.1.1 con una dirección de destino de 172.31.16.5, que se traduce a 172.16.89.32. El paquete ICMP resultante se reenvía fuera de la interfaz GigabitEthernet0/0 (router NAT).
*Sep 19 15:34:39.930: NAT*: i: icmp (172.31.1.1, 20) -> (172.31.16.5, 20) [100]
*Sep 19 15:34:39.930: NAT*: s=172.31.1.1, d=172.31.16.5->172.16.89.32 [100]
Continúa el intercambio de los paquetes ICMP. El proceso NAT para este resultado debug es el mismo que para el resultado anterior.
*Sep 19 15:34:39.932: NAT*: o: icmp (172.16.89.32, 20) -> (172.31.1.1, 20) [101]
*Sep 19 15:34:39.932: NAT*: s=172.16.89.32->172.31.16.5, d=172.31.1.1 [101]
*Sep 19 15:34:39.933: NAT*: i: icmp (172.31.1.1, 20) -> (172.31.16.5, 20) [101]
*Sep 19 15:34:39.933: NAT*: s=172.31.1.1, d=172.31.16.5->172.16.89.32 [101]
*Sep 19 15:34:39.935: NAT*: o: icmp (172.16.89.32, 20) -> (172.31.1.1, 20) [102]
*Sep 19 15:34:39.935: NAT*: s=172.16.89.32->172.31.16.5, d=172.31.1.1 [102]
*Sep 19 15:34:39.936: NAT*: i: icmp (172.31.1.1, 20) -> (172.31.16.5, 20) [102]
*Sep 19 15:34:39.936: NAT*: s=172.31.1.1, d=172.31.16.5->172.16.89.32 [102]
*Sep 19 15:34:39.938: NAT*: o: icmp (172.16.89.32, 20) -> (172.31.1.1, 20) [103]
*Sep 19 15:34:39.938: NAT*: s=172.16.89.32->172.31.16.5, d=172.31.1.1 [103]
*Sep 19 15:34:39.939: NAT*: i: icmp (172.31.1.1, 20) -> (172.31.16.5, 20) [103]
*Sep 19 15:34:39.939: NAT*: s=172.31.1.1, d=172.31.16.5->172.16.89.32 [103]
*Sep 19 15:34:39.940: NAT*: o: icmp (172.16.89.32, 20) -> (172.31.1.1, 20) [104]
*Sep 19 15:34:39.940: NAT*: s=172.16.89.32->172.31.16.5, d=172.31.1.1 [104]
*Sep 19 15:34:39.942: NAT*: i: icmp (172.31.1.1, 20) -> (172.31.16.5, 20) [104]
*Sep 19 15:34:39.942: NAT*: s=172.31.1.1, d=172.31.16.5->172.16.89.32 [104]
Summary
Cuando el paquete viaja del exterior al interior, primero se produce la traducción, y luego se verifica la tabla de ruteo para el destino.
Cuando el paquete viaja desde el interior hacia el exterior, la tabla de ruteo se verifica primero para el destino y luego se produce la traducción.
Consulte Secuencia de Funcionamiento NAT para más obtener información.
Tome nota de la parte del paquete IP que se traduce cuando se utiliza con cada uno de los comandos anteriores. Esta tabla contiene la siguiente directriz:
Comando |
Acción |
ip nat outside source static |
- Traduce el origen de los paquetes IP que viajan desde el exterior hacia el interior.
- Traduce el destino de los paquetes IP que viajan desde el interior hacia el exterior.
|
ip nat inside source static |
- Traduce el origen de los paquetes IP que viajen desde el interior hacia el exterior.
- Traduce el destino de los paquetes IP que viajan desde el exterior hacia el interior.
|
Estas guía indican que hay más de una manera de traducir un paquete. Según sus necesidades específicas, determine 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 hacia la que viaje el paquete, y de cómo usted configure la NAT.
Información Relacionada