Contenido

Introducción

Este documento explica cómo utilizar la Traducción de direcciones de red (NAT) para redes que se superponen. Las redes superpuestas se producen cuando asigna una dirección IP a un dispositivo de su red que ya posee legalmente y la asigna a un dispositivo diferente en Internet o la red externa. También se superponen redes cuando dos compañías, que utilizan direcciones IP RFC 1918 en sus redes, se fusionan. leavingcisco.com Estas dos redes necesitan comunicarse, preferentemente sin tener que redirigir todos los dispositivos.

Prerequisites

Requirements

Para comprender el contenido de este documento, es útil disponer de un conocimiento básico del direccionamiento IP, el routing IP y el sistema de nombres de dominio (DNS).

Componentes Utilizados

El soporte para NAT comenzó en la versión 11.2 del software Cisco IOS®. Para obtener más información sobre el soporte de la plataforma, consulte Preguntas frecuentes sobre NAT.

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 encontrar información adicional sobre los comandos usados en este documento, utilice la Command Lookup Tool (sólo clientes registrados) .

Diagrama de la red

Este documento utiliza la instalación de red que se muestra en el siguiente diagrama.

Observe que el dispositivo interno tiene la misma dirección IP que el dispositivo externo con el que desea comunicarse.

3a.gif

Configuraciones

El router A está configurado para NAT, de modo que traduce el dispositivo interno a una dirección del conjunto "test-loop" y el dispositivo externo a una dirección del conjunto "test-dns". Una explicación de cómo esta configuración ayuda con la superposición sigue la tabla de configuración siguiente.

Router A
!
version 11.2
no service udp-small-servers
no service tcp-small-servers
!
hostname Router-A
!
!
ip domain-name cisco.com
ip name-server 171.69.2.132
!
interface Loopback0
 ip address 1.1.1.1 255.0.0.0
!
interface Ethernet0
 ip address 135.135.1.2 255.255.255.0
 shutdown
!
interface Serial0
 ip address 171.68.200.49 255.255.255.0
 ip nat inside
 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
 no ip mroute-cache
 no ip route-cache
!
ip nat pool test-loop 172.16.47.161 172.16.47.165 prefix-length 28
ip nat pool test-dns 172.16.47.177 172.16.47.180 prefix-length 28
ip nat inside source list 7 pool test-loop
ip nat outside source list 7 pool test-dns
ip classless
ip route 0.0.0.0 0.0.0.0 172.16.47.145
access-list 7 permit 171.68.200.0 0.0.0.255
!
!
line con 0
 exec-timeout 0 0
line aux 0
line vty 0 4
 login
!
end

Para que la configuración anterior ayude con la superposición cuando el dispositivo interno se comunica con el dispositivo externo, debe utilizar el nombre de dominio del dispositivo externo.

El dispositivo interno no puede utilizar la dirección IP del dispositivo externo porque es la misma que la dirección asignada a sí mismo (el dispositivo interno). Por lo tanto, el dispositivo interno enviará una consulta DNS para el nombre de dominio del dispositivo externo. La dirección IP del dispositivo interno será el origen de esta consulta, y esa dirección será traducida a una dirección del conjunto "test-loop" porque el comando ip nat inside source list está configurado.

El servidor DNS responde a la dirección que vino del conjunto "test-loop" con la dirección IP asociada con el nombre de dominio del dispositivo externo en la carga útil del paquete. La dirección de destino del paquete de respuesta se traduce nuevamente a la dirección del dispositivo interno, y la dirección en la carga útil del paquete de respuesta se traduce luego a una dirección del conjunto "test-dns" debido al comando ip nat outside source list. Por lo tanto, el dispositivo interno aprende que la dirección IP para el dispositivo externo es una de las direcciones del grupo de "test-dns", y usará esta dirección cuando se comunique con el dispositivo externo. El router que ejecuta NAT se encarga de las traducciones en este punto.

Este proceso se puede ver en detalle en la sección Solución de problemas. Los dispositivos que utilizan direcciones superpuestas pueden comunicarse entre sí sin el uso de DNS, pero en este caso, se tendría que configurar NAT estática. A continuación se muestra un ejemplo de cómo se podría hacer esto.

Router A
!
version 11.2
no service udp-small-servers
no service tcp-small-servers
!
hostname Router-A
!
!

ip domain-name cisco.com
ip name-server 171.69.2.132
!
interface Loopback0
 ip address 1.1.1.1 255.0.0.0
!
interface Ethernet0
 ip address 135.135.1.2 255.255.255.0
 shutdown
!
interface Serial0
 ip address 171.68.200.49 255.255.255.0
 ip nat inside
 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
 no ip mroute-cache
 no ip route-cache
!
ip nat pool test-loop 172.16.47.161 172.16.47.165 prefix-length 28
ip nat inside source list 7 pool test-loop
ip nat outside source static 171.68.200.48 172.16.47.177
ip classless
ip route 0.0.0.0 0.0.0.0 172.16.47.145
ip route 172.16.47.160 255.255.255.240 Serial0

!--- This line is necessary to make NAT work for return traffic. !--- The router needs to have a route for the pool to the inside !--- NAT interface so it knows that a translation is needed.

access-list 7 permit 171.68.200.0 0.0.0.255
!
!
line con 0
 exec-timeout 0 0
line aux 0
line vty 0 4
 login
!
end

Con la configuración anterior, cuando el dispositivo interno desea comunicarse con el dispositivo externo ahora puede utilizar la dirección IP 172.16.47.177, y DNS no es necesario. Como se muestra anteriormente, la traducción de la dirección del dispositivo interno todavía se realiza de forma dinámica, lo que significa que el router debe obtener paquetes del dispositivo interno antes de crear una traducción. Por esta razón, el dispositivo interno debe iniciar todas las conexiones para que el dispositivo interno y el dispositivo externo se comuniquen. Si se requería que el dispositivo externo iniciara conexiones con el dispositivo interno, entonces la dirección del dispositivo interno también se debía configurar estáticamente.

Verificación

Actualmente, no hay un procedimiento de verificación disponible para esta configuración.

Troubleshoot

En esta sección encontrará información que puede utilizar para solucionar problemas de configuración.

El proceso por el cual el dispositivo interno utilizó DNS para comunicarse con el dispositivo externo, como se describe anteriormente, se puede ver en detalle con el siguiente proceso de resolución de problemas.

En este momento no existen traducciones en la tabla de traducción que puedan verse con el comando show ip nat translations. Los ejemplos siguientes utilizan los comandos debug ip packet y debug ip nat en su lugar.

Nota: Los comandos debug generan una cantidad significativa de resultados. Utilícelo sólo cuando el tráfico en la red del IP es lento, de manera que otra actividad del sistema no se vea afectada negativamente.

Router-A# show ip nat translations
Router-A# show debug
Generic IP:
  IP packet debugging is on (detailed)
  IP NAT debugging is on

Cuando el dispositivo interno envía su consulta DNS al servidor DNS, que se encuentra fuera del dominio NAT, la dirección de origen de la consulta DNS (la dirección del dispositivo interno) se traduce debido a los comando ip nat inside. Esto puede verse en la siguiente salida de depuración.

NAT: s=171.68.200.48->172.16.47.161, d=171.69.2.132 [0]
IP: s=172.16.47.161 (Serial0), d=171.69.2.132 (Serial1), g=172.16.47.145, len 66, forward
    UDP src=6988, dst=53

Cuando el servidor DNS envía una respuesta DNS, la carga útil de la respuesta DNS se traduce debido a los comandos ip nat outside.

Nota: NAT no mira la carga útil de la respuesta DNS a menos que la traducción ocurra en el encabezado IP del paquete de respuesta. Vea el comando ip nat outside source list 7 en la configuración del router descrita anteriormente.

El primer mensaje NAT en la salida de depuración siguiente, muestra que el router reconoce la respuesta DNS y traduce la dirección de IP dentro de la carga útil a 172.16.47.177. El segundo mensaje de NAT muestra al router traduciendo el destino de la respuesta de DNS para poder reenviar una respuesta al dispositivo interno que realizó la consulta de DNS inicial. La parte de destino del encabezado, la dirección global interna, se traduce a la dirección local interna.

Se traduce la carga útil de la respuesta DNS:

NAT: DNS resource record 171.68.200.48 -> 172.16.47.177

La porción de destino del encabezado de IP del paquete de respuesta DNS se traduce:

NAT: s=171.69.2.132, d=172.16.47.161->171.68.200.48 [65371]
IP: s=171.69.2.132 (Serial1), d=171.68.200.48 (Serial0), g=171.68.200.48, len 315, forward
    UDP src=53, dst=6988

Veamos otra consulta DNS y respondamos:

NAT: s=171.68.200.48->172.16.47.161, d=171.69.2.132 [0]
IP: s=172.16.47.161 (Serial0), d=171.69.2.132 (Serial1), g=172.16.47.145, len 66, forward
    UDP src=7419, dst=53
NAT: DNS resource record 171.68.200.48 -> 172.16.47.177
NAT: s=171.69.2.132, d=172.16.47.161->171.68.200.48 [65388]
IP: s=171.69.2.132 (Serial1), d=171.68.200.48 (Serial0), g=171.68.200.48, len 315, forward
    UDP src=53, dst=7419

Ahora que se convirtió la carga útil del DNS, nuestra tabla de conversión tiene una entrada para las direcciones externas locales y globales del dispositivo externo. Con estas entradas en la tabla, ahora podemos traducir completamente el encabezado de los paquetes ICMP intercambiados entre los dispositivos interior y exterior. Veamos este intercambio en el resultado de depuración siguiente.

El siguiente resultado muestra la dirección de origen (dirección interna del dispositivo) que se está traduciendo.

NAT: s=171.68.200.48->172.16.47.161, d=172.16.47.177 [406]

Aquí se traduce la dirección de destino (dirección local externa del dispositivo externo).

NAT: s=172.16.47.161, d=172.16.47.177->171.68.200.48 [406]

Después de la traducción, el paquete IP tiene el siguiente aspecto:

IP: s=172.16.47.161 (Serial0), d=171.68.200.48 (Serial1), g=172.16.47.145, len 100, forward
    ICMP type=8, code=0

El siguiente resultado muestra cómo la dirección de origen (dirección del dispositivo externo) se traduce en el paquete de retorno.

NAT*: s=171.68.200.48->172.16.47.177, d=172.16.47.161 [16259]

Ahora se traduce la dirección de destino (dentro de la dirección global del dispositivo) del paquete de retorno.

NAT*: s=172.16.47.177, d=172.16.47.161->171.68.200.48 [16259]

Después de la traducción, el paquete de retorno tiene el siguiente aspecto:

IP: s=172.16.47.177 (Serial1), d=171.68.200.48 (Serial0), g=171.68.200.48, len 100, forward
    ICMP type=0, code=0

El intercambio de paquetes continúa entre el dispositivo interno y el externo.

NAT: s=171.68.200.48->172.16.47.161, d=172.16.47.177 [407]
NAT: s=172.16.47.161, d=172.16.47.177->171.68.200.48 [407]
IP: s=172.16.47.161 (Serial0), d=171.68.200.48 (Serial1), g=172.16.47.145, len 100, forward
    ICMP type=8, code=0
NAT*: s=171.68.200.48->172.16.47.177, d=172.16.47.161 [16262]
NAT*: s=172.16.47.177, d=172.16.47.161->171.68.200.48 [16262]
IP: s=172.16.47.177 (Serial1), d=171.68.200.48 (Serial0), g=171.68.200.48, len 100, forward
    ICMP type=0, code=0
NAT: s=171.68.200.48->172.16.47.161, d=172.16.47.177 [408]
NAT: s=172.16.47.161, d=172.16.47.177->171.68.200.48 [408]
IP: s=172.16.47.161 (Serial0), d=171.68.200.48 (Serial1), g=172.16.47.145, len 100, forward
    ICMP type=8, code=0
NAT*: s=171.68.200.48->172.16.47.177, d=172.16.47.161 [16267]
NAT*: s=172.16.47.177, d=172.16.47.161->171.68.200.48 [16267]
IP: s=172.16.47.177 (Serial1), d=171.68.200.48 (Serial0), g=171.68.200.48, len 100, forward
    ICMP type=0, code=0
NAT: s=171.68.200.48->172.16.47.161, d=172.16.47.177 [409]
NAT: s=172.16.47.161, d=172.16.47.177->171.68.200.48 [409]
IP: s=172.16.47.161 (Serial0), d=171.68.200.48 (Serial1), g=172.16.47.145, len 100, forward
    ICMP type=8, code=0
NAT*: s=171.68.200.48->172.16.47.177, d=172.16.47.161 [16273]
NAT*: s=172.16.47.177, d=172.16.47.161->171.68.200.48 [16273]
IP: s=172.16.47.177 (Serial1), d=171.68.200.48 (Serial0), g=171.68.200.48, len 100, forward
    ICMP type=0, code=0
NAT: s=171.68.200.48->172.16.47.161, d=172.16.47.177 [410]
NAT: s=172.16.47.161, d=172.16.47.177->171.68.200.48 [410]
IP: s=172.16.47.161 (Serial0), d=171.68.200.48 (Serial1), g=172.16.47.145, len 100, forward
    ICMP type=8, code=0
NAT*: s=171.68.200.48->172.16.47.177, d=172.16.47.161 [16277]
NAT*: s=172.16.47.177, d=172.16.47.161->171.68.200.48 [16277]
IP: s=172.16.47.177 (Serial1), d=171.68.200.48 (Serial0), g=171.68.200.48, len 100, forward
    ICMP type=0, code=0

Una vez que se completa el intercambio de paquetes entre el dispositivo externo y el interno, podemos ver que la tabla de traducción tiene tres entradas. La primera entrada se creó cuando el dispositivo interno envió una consulta DNS. La segunda entrada se creó cuando la carga útil de la respuesta del DNS se tradujo. La tercera entrada se creó cuando se intercambió el ping entre el dispositivo interno y el dispositivo externo. La tercera entrada es un resumen de las dos primeras entradas y se utiliza para traducciones más efectivas.

Router-A# show ip nat translations
Pro Inside global      Inside local       Outside local      Outside global
--- 172.16.47.161      171.68.200.48      ---                ---
--- ---                ---                172.16.47.177      171.68.200.48
--- 172.16.47.161      171.68.200.48      172.16.47.177      171.68.200.48

Es importante tener en cuenta que cuando intenta establecer la conectividad entre dos redes superpuestas ejecutando NAT dinámica en un único router de Cisco, debe utilizar DNS para crear una traducción global externa local a externa. Si no utiliza DNS, la conectividad se puede establecer con NAT estática, pero es más difícil de administrar.

Información Relacionada