En algunos casos, es posible que sea necesario configurar comandos NAT (Traducción de dirección de red) estáticos y dinámicos en un router Cisco. Este documento explica cómo hacer esto y proporciona un caso hipotético a modo de ejemplo.
El conocimiento de conceptos y operaciones básicos de NAT es útil.
La información que contiene este documento se basa en las siguientes versiones de software y hardware.
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If your network is live, make sure that you understand the potential impact of any command.
For more information on document conventions, refer to the Cisco Technical Tips Conventions.
Con la NAT dinámica, las traducciones no existen en la tabla NAT hasta que el router recibe tráfico que requiere traducción. Las traducciones dinámicas tienen un periodo de agotamiento del tiempo de espera, después del cual son borradas de la tabla de traducción.
Con la NAT estática, existen traducciones en la tabla de traducción de la NAT tan pronto como se configuran el o los comandos NAT y continúan en la tabla de traducción hasta que se borran el o los comandos estáticos NAT.
El siguiente diagrama de red es un ejemplo:
Estos comandos están configurados en el router NAT como se muestra anteriormente:
Router NAT |
version 12.3
ip nat pool test 172.16.131.2 172.16.131.10 netmask 255.255.255.0
!--- Refer to ip nat pool for more details on the command.
.
ip nat inside source list 7 pool test
!--- Refer to ip nat inside source for more details on the command.
ip nat inside source static 10.10.10.1 172.16.131.1
interface e 0
ip address 10.10.10.254 255.255.255.0
ip nat inside
interface s 0
ip address 172.16.130.2 255.255.255.0
ip nat outside
ip route 192.168.1.0 255.255.255.0 172.16.130.1
access-list 7 permit 10.10.10.0 0.0.0.255 |
La configuración en el dispositivo OutsideA es:
Router OutsideA |
version 12.3
hostname outsideA
!
!
!
interface Serial1/0
ip address 172.16.130.1 255.255.255.0
serial restart-delay 0
clockrate 64000
!
interface FastEthernet2/0
ip address 192.168.1.1 255.255.255.0
speed auto
half-duplex
ip route 172.16.131.0 255.255.255.0 172.16.130.2 |
La configuración en el dispositivo InsideA es:
Router InsideA |
version 12.3
!
interface Ethernet1/0
ip address 10.10.10.1 255.255.255.0
half-duplex
!
ip route 0.0.0.0 0.0.0.0 10.10.10.254
!
! |
Con el comando show ip nat translations, puede ver el contenido de la tabla de traducción:
NATrouter#show ip nat translations
Pro Inside global Inside local Outside local Outside global
--- 172.16.131.1 10.10.10.1 --- ---
Observe que sólo la traducción estática aparece en la tabla de traducción. Esta entrada traduce la dirección interna global nuevamente a la dirección interna local, lo que significa que los dispositivos de la nube externa pueden enviar paquetes a la dirección global 172.16.131.1 y alcanzan el dispositivo en la nube externa, que posee la dirección local 10.10.10.1.
Lo mismo se muestra a continuación:
outsideA#ping 172.16.131.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.131.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 32/32/32 ms
NATrouter#debug ip nat
18:12:06: NAT*: s=172.16.130.1, d=172.16.131.1->10.10.10.1 [1005]
18:12:06: NAT: s=10.10.10.1->172.16.131.1, d=172.16.130.1 [1005]
18:12:06: NAT*: s=172.16.130.1, d=172.16.131.1->10.10.10.1 [1006]
18:12:06: NAT*: s=10.10.10.1->172.16.131.1, d=172.16.130.1 [1006]
18:12:06: NAT*: s=172.16.130.1, d=172.16.131.1->10.10.10.1 [1007]
18:12:06: NAT*: s=10.10.10.1->172.16.131.1, d=172.16.130.1 [1007]
18:12:06: NAT*: s=172.16.130.1, d=172.16.131.1->10.10.10.1 [1008]
18:12:06: NAT*: s=10.10.10.1->172.16.131.1, d=172.16.130.1 [1008]
18:12:06: NAT*: s=172.16.130.1, d=172.16.131.1->10.10.10.1 [1009]
18:12:06: NAT*: s=10.10.10.1->172.16.131.1, d=172.16.130.1 [1009]
No se genera ni se ingresa ninguna otra traducción en la tabla de traducción hasta que el router recibe un paquete en su interfaz interna con una dirección de origen permitida por la lista de control de acceso (ACL) 7.
Sin embargo, como todavía no se han ingresado traducciones dinámicas, los dispositivos externos no pueden comunicarse con los internos (excepto 10.10.10.1), ni siquiera si envían paquetes a una dirección global (172.16.131.2 a través de 172.16.131.10). Cuando el router recibe un paquete destinado a una de estas direcciones globales, verifica la tabla de traducción para una traducción existente. Si no hay ninguna, intenta rutear el paquete. Este comportamiento de NAT se explica con más detalles en Configuración de muestra utilizando el comando ip nat outside source list y Configuración de muestra utilizando el comando ip nat outside source static.
En la topología anterior, si la comunicación entre los dispositivos internos y externos de la red sólo se origina por los dispositivos internos, la traducción dinámica funciona bien. Pero, ¿qué sucede si se agrega un servidor de correo electrónico a la red interna que necesita recibir paquetes originados por el exterior? Ahora, debe configurar una entrada estática NAT para que los servidores de correo electrónico externos puedan comunicarse con el servidor de correo electrónico interno. Si en el ejemplo anterior el servidor de correo electrónico es el dispositivo con la dirección local 10.10.10.1, ya tiene una traducción estática.
Sin embargo, en casos donde no tiene direcciones globales para reservar y necesita configurar estadísticamente un solo dispositivo para NAT, puede utilizar una configuración como la que figura a continuación.
Router NAT |
ip nat inside source list 7 interface serial 0 overload
ip nat inside source static tcp 10.10.10.1 25 172.16.130.2 25
!--- Refer to ip nat inside source for more details on the command.
interface e 0
ip address 10.10.10.254 255.255.255.0
ip nat inside
!--- For more details the ip nat inside|outside command, !--- please refer to ip nat inside .
interface s 0
ip address 172.16.130.2 255.255.255.0
ip nat outside
access-list 7 permit 10.10.10.0 0.0.0.255
ip route 0.0.0.0 0.0.0.0 172.16.130.1 |
En el ejemplo anterior, se configuró NAT para que realice un sobrecarga en la dirección IP del Serial 0. Esto significa que más de una dirección local interna se puede traducir dinámicamente a la misma dirección global, en este caso, la dirección asignada al Serial 0. Además, NAT se configura estáticamente de modo que los paquetes que se originan en la dirección local 10.10.10.1 con el puerto TCP 25 (SMTP) se traduzcan al puerto TCP 25 de la dirección IP de Serial 0. Dado que se trata de una entrada NAT estática, los servidores de correo electrónico del exterior pueden originar paquetes SMTP (puerto TCP 25) en la dirección global 172.16.131.254.
Nota: Aunque es posible utilizar la misma dirección global para la NAT dinámica y estática, siempre que sea posible es mejor utilizar diferentes direcciones globales.
La tabla de traducción NAT tiene la siguiente entrada:
NATRouter#show ip nat translations
Pro Inside global Inside local Outside local Outside global
tcp 172.16.130.2:25 10.10.10.1:25 --- ---
La salida debug ip nat muestra la traducción NAT cuando el dispositivo outsideA accede a InsideA:
04:21:16: NAT: s=192.168.1.3, d=172.16.130.2->10.10.10.1 [9919]
04:21:16: NAT: s=10.10.10.1->172.16.130.2, d=192.168.1.3 [0]
04:21:16: NAT*: s=192.168.1.3, d=172.16.130.2->10.10.10.1 [9922]
04:21:16: NAT*: s=192.168.1.3, d=172.16.130.2->10.10.10.1 [9923]
04:21:16: NAT*: s=10.10.10.1->172.16.130.2, d=192.168.1.3 [1]
04:21:16: NAT*: s=10.10.10.1->172.16.130.2, d=192.168.1.3 [2]
04:21:16: NAT*: s=10.10.10.1->172.16.130.2, d=192.168.1.3 [3]
04:21:16: NAT*: s=192.168.1.3, d=172.16.130.2->10.10.10.1 [9927]
04:21:16: NAT*: s=10.10.10.1->172.16.130.2, d=192.168.1.3 [4]
04:21:16: NAT: s=10.10.10.1->172.16.130.2, d=192.168.1.3 [5]
04:21:16: NAT*: s=192.168.1.3, d=172.16.130.2->10.10.10.1 [9931]
04:21:17: NAT*: s=192.168.1.3, d=172.16.130.2->10.10.10.1 [9934]
04:21:17: NAT: s=192.168.1.3, d=172.16.130.2->10.10.10.1 [9935]
04:21:17: NAT*: s=10.10.10.1->172.16.130.2, d=192.168.1.3 [6]
En síntesis, NAT dinámico requiere paquetes para ser conmutados a través del router NAT con el propósito de generar traducciones NAT en la tabla de traducción. Si utiliza el comando ip nat inside, estos paquetes deben originarse desde el interior. Si usa el comando ip nat outside, estos paquetes deben originarse en el exterior.
La NAT estática no requiere la conmutación de los paquetes por el router y las traducciones se ingresan de manera estática a la tabla de traducción.