Tunel de VPN IPsec con IPs dinamicas en ambos lados

Tabla de Contenidos
          Introduccion
          Requisitos Previos
               Requerimientos
               Componentes Usados
          Informacion General
          Configuracion
               Resolucion en tiempo-real para Tuneles IPsec
               Actualización Túnel Destino con Embedded Event Manager (EEM)
          Verificar
          Solucion de Problemas
          Informacion Relacionada 

Introduccion

 

Este documento describe como configurar un tunel LAN-to-LAN entre dos Routers Cisco cuando ambos poseen IPs dinamicas pero cuentan con Dynamic Domain Name System (DDNS) configurado.

 

Aportado por Gustavo Medina, Wen Zhang, and Oleg Tipisov, Ingenieros de Cisco TAC.

 

Requisitos Previos

 

Requerimientos

 

Cisco recomienda tener conociemiento de los siguientes temas:

 

 

Consejo: Referirse a la siguiente seccion: Configuring VPN de la Guia de Configuracion para Cisco 3900 Series, 2900 Series, and 1900 Series y al siguiente artciculo Configuring a Virtual Tunnel Interface with IP Security para mas informacion.

Componentes Usados

 

La informacion de este documento esta basada en Routers Cisco 2911 Integrated Services con version 15.2(4)M6a.

 

La informacion en este documento fue creada con equipos en un ambiente de laboratorio especifico. Todos los dispositivos utilizados contaban con la configuracion por defecto. Si su red esta en produccion asefurese de entender el impacto potencial de los comandos a usar.

Informacion General

 

Cuando un tunel LAN-to-LAN tiene que establecerse, la dirección IP de ambos extremos IPSec debe ser conocida. Si una de las direcciones IP no se conoce por ser dinámica, obtenida a través de DHCP por ejemplo, entonces una alternativa es usar una entrada de crypto map dinámica. Esto funciona bien pero el túnel sólo puede ser iniciado por el extremo que tiene la dirección IP dinámica ya que el otro extremo no sabe de la IP dinamica obtenida por el otro dispositivo.
 
Para obtener más información acerca de tuneles con IP dinámica a IP estática, consulte 
Configuring Router-to-Router Dynamic-to-Static IPSec with NAT.

 

 

Configuracion

 

Resolucion en tiempo-real para Tuneles IPsec

 

Cisco IOS® introdujo una nueva funcionalidad en la versión 12.3 (4) T que permite especificar el Fully Quealified Domain Name (FQDN) del discositivo en el que va a terminar el tunel IPsec. Cuando hay tráfico que coincide con una lista de acceso que define el trafico a ser encitoado, el IOS resuelve el FQDN y obtiene la dirección IP del otro extremo. A continuación, intenta levantar el túnel.

 

118048-technote-ipsec-01.gif

Nota: Hay una limitación de esta funcionalidad: La resolución de nombres DNS para tuneles IPsec sólo funcionan si se utilizan como iniciador. El primer paquete que se debe encriptar dará lugar a una búsqueda de DNS; después de que la búsqueda de DNS se ha completado, los paquetes siguientes disparan Internet Key Exchange (IKE). Resolución en tiempo real no funciona en el respodispositivo que responde a la conexion del tunel.

 

Para hacer frente a la limitación y poder iniciar el túnel de cada sitio, podemos crear una entrada de crypto map dinámica en ambos Routers para que pueda mapear las conexiones entrantes IKE a esta entrada. Esto es necesario ya que la entrada estática con la función de resolución en tiempo real no funciona cuando actúa como un responder.

 

Router A

 

crypto isakmp policy 10
 encr aes
 authentication pre-share
 group 2
!
ip access-list extended crypto-ACL
 permit ip 192.168.10.0 0.0.0.255 192.168.20.0 0.0.0.255
!
crypto isakmp key cisco123 address 0.0.0.0 0.0.0.0
!
crypto ipsec transform-set myset esp-aes esp-sha-hmac
!
crypto dynamic-map dyn 10
 set transform-set myset
!
crypto map mymap 10 ipsec-isakmp
  match address 140
  set peer example-b.cisco.com dynamic
  set transform-set myset
crypto map mymap 65535 ipsec-isakmp dynamic dyn
!
interface fastethernet0/0
  ip address dhcp
  crypto map secure_b

 

Router B

 

crypto isakmp policy 10
 encr aes
 authentication pre-share
 group 2
!
ip access-list extended crypto-ACL
 permit ip 192.168.20.0 0.0.0.255 192.168.10.0 0.0.0.255
!
crypto isakmp key cisco123 address 0.0.0.0 0.0.0.0
!
crypto ipsec transform-set myset esp-aes esp-sha-hmac
!
crypto dynamic-map dyn 10
 set transform-set myset
!
crypto map mymap 10 ipsec-isakmp
  match address 140
  set peer example-a.cisco.com dynamic 
  set transform-set myset
crypto map mymap 65535 ipsec-isakmp dynamic dyn
!
interface fastethernet0/0
  ip address dhcp
  crypto map secure_b

 

Note: Ya que no se sabe qué dirección IP en nombre de DNS va a utilizar, es necesario utilizar un Pre-Shared-Key comodín: 0.0.0.0 0.0.0.0

 

Actualización Túnel Destino con Embedded Event Manager (EEM)

 

También se puede usar VTI con el fin de lograr esto. La configuración básica se muestra aquí:

 

Router A

 

crypto isakmp policy 10
 encryption aes
 authentication pre-share
 group 2

crypto isakmp key cisco123 address 0.0.0.0 0.0.0.0 no-xauth 

crypto ipsec transform-set ESP-AES-SHA esp-aes esp-sha-hmac
!
crypto ipsec profile ipsec-profile
 set transform-set ESP-AES-SHA
!
interface Tunnel1
 ip address 172.16.12.1 255.255.255.0
 tunnel source fastethernet0/0
 tunnel destination example-b.cisco.com
 tunnel mode ipsec ipv4
 tunnel protection ipsec profile ipsec-profile
 

 

Router B

 

crypto isakmp policy 10
 encryption aes
 authentication pre-share
 group 2

crypto isakmp key cisco123 address 0.0.0.0 0.0.0.0 no-xauth 

crypto ipsec transform-set ESP-AES-SHA esp-aes esp-sha-hmac
!
crypto ipsec profile ipsec-profile
 set transform-set ESP-AES-SHA
!
interface Tunnel1
 ip address 172.16.12.2 255.255.255.0
 tunnel source fastethernet0/0
 tunnel destination example-a.cisco.com
 tunnel mode ipsec ipv4
 tunnel protection ipsec profile ipsec-profile

 


Una vez que la configuración anterior está en su lugar con un FQDN como el destino del túnel, el comando show run muestra la dirección IP en lugar del nombre. Esto es porque la resolución ocurre sólo una vez:

 

RouterA(config)#do show run int tunn 1
Building configuration...

Current configuration : 130 bytes
!
interface Tunnel1
 ip address 172.16.12.1 255.255.255.250
 tunnel source fastethernet0/0
 tunnel destination 209.165.201.1
 tunnel mode ipsec ipv4
 tunnel protection ipsec profile ipsec-profile
end

 

RouterB(config)#do show run int tunn 1
Building configuration...

Current configuration : 130 bytes
!
interface Tunnel1
 ip address 172.16.12.2 255.255.255.250
 tunnel source fastethernet0/0
 tunnel destination 209.165.200.225
 tunnel mode ipsec ipv4
 tunnel protection ipsec profile ipsec-profile
end

 

Una solución para esto es configurar un applet con el fin de resolver el destino del túnel cada minuto:

 

Router A

 

event manager applet change-tunnel-dest
 event timer cron name TAC cron-entry "* * * * *"
 action 1.0 cli command "enable"
 action 1.1 cli command "configure terminal"
 action 1.2 cli command "interface tunnel1"
 action 1.3 cli command "tunnel destination example-b.cisco.com"

 

Router B

 

event manager applet change-tunnel-dest
 event timer cron name TAC cron-entry "* * * * *"
 action 1.0 cli command "enable"
 action 1.1 cli command "configure terminal"
 action 1.2 cli command "interface tunnel1"
 action 1.3 cli command "tunnel destination example-a.cisco.com" 

 

Verificar

 

Utilice esta sección con el fin de confirmar que la configuración funciona correctamente.

 

RouterA(config)#do show ip int brie
Interface           IP-Address         OK? Method     Status  Protocol
FastEthernet0/0     209.165.200.225    YES NVRAM      up      up
FastEthernet0/1     192.168.10.1       YES NVRAM      up      up
Tunnel1             172.16.12.1        YES manual     up      up


RouterB(config)#do show ip int brie
Interface           IP-Address          OK?   Method   Status  Protocol
FastEthernet0/0     209.165.201.1       YES   TFTP      up     up
FastEthernet0/1     192.168.20.1        YES   manual    up     up
Tunnel1             172.16.12.2         YES   manual    up     up

 

RouterA(config)#do show cry isa sa
dst             src             state          conn-id slot status
209.165.200.225 209.165.201.1   QM_IDLE              2    0 ACTIVE

RouterB(config)#do show cry isa sa
dst             src             state          conn-id slot status
209.165.200.225 209.165.201.1   QM_IDLE           1002    0 ACTIVE

 

RouterA(config)#do show cry ipsec sa

interface: Tunnel1
    Crypto map tag: Tunnel1-head-0, local addr 209.165.200.225

   protected vrf: (none)
   local  ident (addr/mask/prot/port): (0.0.0.0/0.0.0.0/0/0)
   remote ident (addr/mask/prot/port): (0.0.0.0/0.0.0.0/0/0)
   current_peer 209.165.201.1 port 500
     PERMIT, flags={origin_is_acl,}
    #pkts encaps: 10, #pkts encrypt: 10, #pkts digest: 10
    #pkts decaps: 10, #pkts decrypt: 10, #pkts verify: 10
    #pkts compressed: 0, #pkts decompressed: 0
    #pkts not compressed: 0, #pkts compr. failed: 0
    #pkts not decompressed: 0, #pkts decompress failed: 0
    #send errors 0, #recv errors 0

     local crypto endpt.: 209.165.200.225, remote crypto endpt.: 209.165.201.1
     path mtu 1500, ip mtu 1500, ip mtu idb FastEthernet0/0
     current outbound spi: 0x8F1592D2(2400555730)

     inbound esp sas:
      spi: 0xF7B373C0(4155732928)
        transform: esp-3des esp-sha-hmac ,
        in use settings ={Tunnel, }
        conn id: 2002, flow_id: AIM-VPN/BPII-PLUS:2, crypto map: Tunnel1-head-0
        sa timing: remaining key lifetime (k/sec): (4501866/3033)
        IV size: 8 bytes
        replay detection support: Y
        Status: ACTIVE

     inbound ah sas:

     inbound pcp sas:

     outbound esp sas:
      spi: 0x8F1592D2(2400555730)
        transform: esp-3des esp-sha-hmac ,
        in use settings ={Tunnel, }
        conn id: 2001, flow_id: AIM-VPN/BPII-PLUS:1, crypto map: Tunnel1-head-0
        sa timing: remaining key lifetime (k/sec): (4501866/3032)
        IV size: 8 bytes
        replay detection support: Y
        Status: ACTIVE

     outbound ah sas:

     outbound pcp sas:




RouterB(config)#do show cry ipsec sa

interface: Tunnel1
    Crypto map tag: Tunnel1-head-0, local addr 209.165.201.1

   protected vrf: (none)
   local  ident (addr/mask/prot/port): (0.0.0.0/0.0.0.0/0/0)
   remote ident (addr/mask/prot/port): (0.0.0.0/0.0.0.0/0/0)
   current_peer 209.165.200.225 port 500
     PERMIT, flags={origin_is_acl,}
    #pkts encaps: 10, #pkts encrypt: 10, #pkts digest: 10
    #pkts decaps: 10, #pkts decrypt: 10, #pkts verify: 10
    #pkts compressed: 0, #pkts decompressed: 0
    #pkts not compressed: 0, #pkts compr. failed: 0
    #pkts not decompressed: 0, #pkts decompress failed: 0
    #send errors 0, #recv errors 0

     local crypto endpt.: 209.165.201.1, remote crypto endpt.: 209.165.200.225
     path mtu 1500, ip mtu 1500, ip mtu idb FastEthernet0/0
     current outbound spi: 0xF7B373C0(4155732928)
     PFS (Y/N): N, DH group: none

     inbound esp sas:
      spi: 0x8F1592D2(2400555730)
        transform: esp-3des esp-sha-hmac ,
        in use settings ={Tunnel, }
        conn id: 2003, flow_id: NETGX:3, sibling_flags 80000046, crypto map: Tunnel1-head-0
        sa timing: remaining key lifetime (k/sec): (4424128/3016)
        IV size: 8 bytes
        replay detection support: Y
        Status: ACTIVE

     inbound ah sas:

     inbound pcp sas:

     outbound esp sas:
      spi: 0xF7B373C0(4155732928)
        transform: esp-3des esp-sha-hmac ,
        in use settings ={Tunnel, }
        conn id: 2004, flow_id: NETGX:4, sibling_flags 80000046, crypto map: Tunnel1-head-0
        sa timing: remaining key lifetime (k/sec): (4424128/3016)
        IV size: 8 bytes
        replay detection support: Y
        Status: ACTIVE

     outbound ah sas:

     outbound pcp sas:

 

Después de cambiar el registro DNS para b.cisco.com en el servidor DNS de 209.165.201.1 a 209.165.202.129, EEM hará que Router A se de cuenta y el túnel restablecerá con la dirección correcta IP nueva.

 

RouterB(config)#do show ip int brie
Interface           IP-Address          OK?   Method   Status  Protocol
FastEthernet0/0     209.165.202.129     YES   TFTP      up     up
FastEthernet0/1     192.168.20.1        YES   manual    up     up
Tunnel1             172.16.12.2         YES   manual    up     up
RouterA(config-if)#do show run int tunn1
Building configuration...

Current configuration : 192 bytes
!
interface Tunnel1
 ip address 172.16.12.1 255.255.255.252
 tunnel source fastethernet0/0
 tunnel destination 209.165.202.129
 tunnel mode ipsec ipv4
 tunnel protection ipsec profile ipsec-profile
end

 

Router1841A#show cry isa sa
dst             src             state          conn-id slot status
209.165.200.225 209.165.202.129 QM_IDLE              3    0 ACTIVE

 

Solucion de Problemas

 

Referisrse al articulo IOS IPSec and IKE debugs - IKEv1 Main Mode Troubleshooting para resolucion de problemas comunes de IKE/IPsec.

 

Informacion Relacionada 

 

Historial de versiones
Revisión n.º
1 de 1
Última actualización:
‎08-27-2014 06:31 AM
Actualizado por:
 
Etiquetas (1)
Comentarios
New Member

¡Gracias! 

¡Esto está perfecto! Había estado buscando una explicación de este tipo para el uso de dominios como peer, pero pensaba que era necesario un IOS más alto para ejecutarlo. 

Una pregunta, ¿Es posible realizar algo como esto con un ASA5550? Imagino que no debe haber problemas. 

Gracias, de antemano. 

Cisco Employee

Hola Hernan,

 

Que bueno que el documento fue de tu agrado. Con respecto a tu pregunta; desafortunadamente el ASA no tiene la capacidad de hacer resolucion de dominios en tiempo real para VPN peers.

El siguiente es un enhancement request  para esta funcionalidad en ASAs:

https://tools.cisco.com/bugsearch/bug/CSCsc74898/?reffering_site=dumpcr

 

Saludos,

Gustavo Medina

 

* Si tienes alguna pregunta o deseas saber mas acerca de WebVPN, hasta el 3 de octubre estaremos discutiendo este tema en la seccion Pregunta al Experto:

https://supportforums.cisco.com/es/event/12308696

 

 

New Member

Muchas gracias, 

Estaré revisando el foro.

Gracias de nuevo. 

New Member

Excelente documento.

 

Estas configuraciones no se encuentran tan fácil, me ayudó bastante.

 

Gracias por compartir su conocimiento.