IP : Servicios de direccionamiento IP

Orden de funcionamiento de NAT

19 Mayo 2008 - Traducción manual
Otras Versiones: PDFpdf | Traducción Automática (13 Septiembre 2013) | Inglés (30 Septiembre 2008) | Comentarios

Contenidos

Introducción
Requisitos previos
     Requisitos
     Componentes utilizados
     Convenciones
Descripción general de NAT
Configuración y resultado de NAT
Discusiones relacionadas de la comunidad de soporte de Cisco
Información relacionada

Introducción

Este documento muestra que el orden en el que se procesan las transacciones mediante Traducción de direcciones de red (NAT) está basado en si un paquete va de la red interna a la red externa o de la red externa a la red interna.

Requisitos previos

Requisitos

Quienes lean este documento deben tener conocimiento del siguiente tema:

  • Traducción de direcciones de red (NAT). Para obtener más información acerca de NAT, consulte Cómo funciona NAT.

Componentes utilizados

Este documento no tiene restricciones específicas en cuanto a versiones específicas de software y hardware.

Nota: La información que contiene este documento se basa en la versión 12.2(27) del software IOS® de Cisco

Convenciones

Para obtener más información sobre las convenciones del documento, consulte las Convenciones de consejos técnicos de Cisco.

Descripción general de NAT

En la tabla siguiente, cuando NAT traduce de global a local, o de local a global, la traducción es diferente en cada flujo.

De afuera hacia adentro

De afuera hacia adentro

  • Si IPSec, verificar la lista de acceso de entrada

  • cifrado – para CET (Tecnología de cifrado de Cisco) o IPSec

  • verificar lista de acceso de entrada

  • verificar los límites de velocidad de entrada

  • contabilidad de entrada

  • ruteo de política

  • ruteo

  • redirección al caché de la Web

  • NAT de adentro hacia afuera (traducción de local a global)

  • crypto (mapa de control y marca para el cifrado)

  • verificar lista de acceso de salida

  • inspección (Control de acceso basado en contexto (CBAC))

  • Intercepción TCP

  • cifrado

  • Cola

  • Si IPSec, verificar la lista de acceso de entrada

  • descifrado - para CET o IPSec

  • verificar lista de acceso de entrada

  • verificar los límites de velocidad de entrada

  • contabilidad de entrada

  • NAT de afuera hacia adentro (traducción de global a local)

  • ruteo de política

  • ruteo

  • redirección al caché de la Web

  • crypto (mapa de control y marca para el cifrado)

  • verificar lista de accesos de salida

  • inspección CBAC

  • Intercepción TCP

  • cifrado

  • Cola

Configuración y resultado de NAT

El ejemplo siguiente demuestra cómo la orden de operaciones puede efectuar NAT. En este caso, sólo se muestran NAT y el ruteo.

5a-1.gif

En el ejemplo anterior, el router-A se configura para traducir la dirección local interna 171.68.200.48 a 172.16.47.150, como se muestra en la configuración a continuación.

!
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 crea un traducción NAT estática   
!--- de entre 171.68.200.48 y 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 la interfaz interna 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 la interfaz externa 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 la ruta predeterminada 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

La tabla de traducción indica que existe la traducción deseada.

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

La siguiente salida corresponde a un router-A con debug ip packet detail y debug ip nat habilitados, y un ping emitido desde el dispositivo 171.68.200.48 destinado para 172.16.47.142.

Nota: Los comandos de depuración generan una cantidad significativa de salida. Utilícelos sólo cuando el tráfico en la red IP sea bajo, de modo de no causar un efecto adverso en otra actividad del sistema. Antes de ejecutar los comandos debug, por favor, consulte Información importante sobre los comandos de depuración.

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

Al no existir mensajes NAT de depuración en la salida anterior, se sabe que no se está utilizando la traducción estática existente y que el router no tiene una ruta para la dirección de destino (172.16.47.142) en su tabla de ruteo. El resultado del paquete no enrutable es un mensaje ICMP fuera de alcance, que se envía al dispositivo interno.

Sin embargo, el router-A tiene una ruta predeterminada de 172.16.47.145, entonces, ¿por qué la ruta es considerada no enrutable?

El router-A tiene configurado no ip classless, lo que significa que si un paquete destinado para una dirección de red "principal" (en este caso, 172.16.0.0) para la que existen subredes en la tabla de ruteo, el router se basará en la ruta predeterminada. En otras palabras, la ejecución del comando no ip classless desactiva la capacidad del router de buscar la ruta con la coincidencia más larga de bits. Para cambiar este comportamiento, debe configurar ip classlessen el router-A. El comando ip classless está habilitado en los routers de Cisco de manera predeterminada con la versión 11.3 de IOS y anteriores.

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      ---                ---

Si se repite la misma prueba de ping antes mencionada, se observa que el paquete se traduce y el ping es correcto.


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#
*Mar 28 03:34:28: IP: tableid=0, s=171.68.200.48 (Serial0), d=172.16.47.142 
(Serial1), enrutado a través de RIB
*Mar 28 03:34:28: NAT: s=171.68.200.48->172.16.47.150, d=172.16.47.142 [160]
*Mar 28 03:34:28: IP: s=172.16.47.150 (Serial0), d=172.16.47.142 (Serial1),
 g=172.16.47.145, len 100, reenviar
*Mar 28 03:34:28: Tipo de ICMP=8, código=0
*Mar 28 03:34:28: NAT*: s=172.16.47.142, d=172.16.47.150->171.68.200.48 [160]
*Mar 28 03:34:28: IP: tableid=0, s=172.16.47.142 (Serial1), d=171.68.200.48 
(Serial0), enrutado a través de 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, reenviar
*Mar 28 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

El ejemplo anterior muestra que cuando un paquete viaja de adentro hacia afuera, un router NAT verifica su tabla de ruteo para obtener una ruta a la dirección externa, antes de continuar traduciendo el paquete. Por lo tanto, es importante que el router NAT tenga una ruta válida para la red externa. La ruta a la red de destino se conocerá a través de una interfaz definida como NAT externa en la configuración del router.

Es importante tener en cuenta que los paquetes de devolución se traducen antes de enrutarse. Por lo tanto, el router NAT debe tener una ruta válida para la dirección local interna en su tabla de ruteo


Discusiones relacionadas de la comunidad de soporte de Cisco

La Comunidad de Soporte de Cisco es un foro donde usted puede preguntar y responder, ofrecer sugerencias y colaborar con colegas.


Document ID: 6209