A solicitud de mi compañero Jonathan Montero les voy a mostrar como realizar una VPN IPSec entre dos Routers con Cisco IOS en un ambiente en donde tengamos NAT y necesitémos usar Port Forwarding. Les invito a leer y practicar con la guia practica que publique hace unos dias atras llamada «Site to Site IPSec VPN entre dos Routers Cisco» antes de empezar a trabajar con esta ya que la parte de IPSec no la voy a detallar. A continuación el escenario:

Antes de mostrarles la configuración inicial de cada equipo vamos a suponer algunas cosas sobre el escenario anterior. Los routers llamados Internet_Access no soportan IPSec (Estamos suponiendo que son Routers facilitados por el ISP) y por lo tanto necesitamos hacer el IPSec desde los Routers llamados Central_Office y Branch_Office, los cuales tienen cada uno su respectiva red local.
A continuación la configuración inicial de cada equipo:
Central_Office:

  interface fastethernet0/0
   ip address 10.0.0.2 255.255.255.0
   duplex auto
   speed auto

  interface fastethernet0/1
   ip address 192.168.1.1 255.255.255.0
   duplex auto
   speed auto

  ip route 0.0.0.0 0.0.0.0 10.0.0.1

Internet_Access1:

  interface fastethernet0/0
   ip address 200.192.1.2 255.255.255.252
   duplex auto
   speed auto

  interface fastethernet0/1
   ip address 10.0.1.1 255.255.255.0
   duplex auto
   speed auto

  ip route 0.0.0.0 0.0.0.0 200.192.1.1

Branch_Office:

   interface fastethernet0/0
    ip address 10.0.2.2 255.255.255.0
    duplex auto
    speed auto

   interface fastethernet0/1
    ip address 192.168.2.1 255.255.255.0
    duplex auto
    speed auto

  ip route 0.0.0.0 0.0.0.0 10.0.2.1

Internet_Access2:

   interface fastethernet0/0
    ip address 200.192.2.2 255.255.255.252
    duplex auto
    speed auto

   interface fastethernet0/1
    ip address 10.0.2.1 255.255.255.0
    duplex auto
    speed auto

  ip route 0.0.0.0 0.0.0.0 200.192.2.1

Nat Overload:
Suponiendo que nuestro provedor de servicios nos asigne solamente 1 dirección IP Publica (Como nuestro caso) para salir a Internet vamos a configurar un Nat Overload en Internet_Access1 para que las redes 192.168.1.0/24 y 10.0.1.0/24 desde Central_Office puedan salir a Internet utilizando una sola IP y llegar a hacia la IP Publica 200.192.2.2 de Internet_Access2 ubicado en nuestro Branch_Office:
1) Creamos un access-list que permita la redes que vamos a incluir en el Nat:
      InternetAccess1(config)# access-list 10 permit 192.168.1.0 0.0.0.255
      InternetAccess1e(config)# access-list 10 permit 10.0.1.0 0.0.0.255
2) Configuramos un Nat Overload:
      InternetAccess1(config)# ip nat inside source list 10 interface fastethernet0/0 overload
3) Aplicamos Nat a la interfaz que va hacia internet (outside):
      InternetAccess1(config)# interface fast0/0
      InternetAccess1(config-if)# ip nat outside
4) Aplicamos Nat a la interfaz que va a la Red Interna (inside):
     InternetAccess1(config)#  interface fast0/1
     InternetAccess1(config-if)# ip nat inside
Luego configuramos el Nat en InternetAccess2 para el Branch Office:
1) Creamos un access-list que permita la redes que vamos a incluir en el Nat:
      InternetAccess2(config)# access-list 10 permit 192.168.2.0 0.0.0.255
      InternetAccess2(config)# access-list 10 permit 10.0.2.0 0.0.0.255
2) Configuramos un Nat Overload:
      InternetAccess2(config)# ip nat inside source list 10 interface fastethernet0/0 overload
3) Aplicamos Nat a la interfaz que va hacia internet (outside):
      InternetAccess2(config)# interface fast0/0
      InternetAccess2(config-if)# ip nat outside
4) Aplicamos Nat a la interfaz que va a la Red Interna (inside):
     InternetAccess2(config)# interface fast0/1
     InternetAccess2(config-if)# ip nat inside
Port Forwarding:

Luego procedemos a configurar el Port Forwarding para redireccionar los puertos de IPSec desde los routers InternetAccess hacia los Routers de las Oficinas Central_Office y Branch_Office, empezando con InternetAccess1:
InternetAccess1(config)# ip nat inside source static esp 10.0.1.2 interface FastEthernet0/0
InternetAccess1(config)# ip nat inside source static udp 10.0.1.2 500 interface FastEthernet0/0 500
InternetAccess1(config)# ip nat inside source static udp 10.0.1.2 4500 interface FastEthernet0/0 4500
Luego con InternetAccess2:
InternetAccess2(config)# ip nat inside source static esp 10.0.2.2 interface FastEthernet0/0
InternetAccess2(config)# ip nat inside source static udp 10.0.2.2 500 interface FastEthernet0/0 500
InternetAccess2(config)# ip nat inside source static udp 10.0.2.2 4500 interface FastEthernet0/0 4500
En las configuraciones anteriores podemos observar como redireccionamos las peticiones desde los puertos y protocolos especificados hacia el Router de cada Oficina utilizando un Port Forwarding con NAT, los puertos que redireccioné son los siguientes:

  • Internet Key Exchange (IKE) –  UDP 500
  • Encapsulating Security Payload (ESP)
  • IPsec NAT-T – UDP 4500
IPSec Tunnel VPN:

Luego procedemos a configurar el Tunnel en cada localidad:
Central_Office:

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

crypto isakmp key cisco123 address 200.192.2.2
crypto ipsec transform-set MyTransform1 esp-aes esp-sha-hmac

crypto map MyCrypto1 10 ipsec-isakmp
 set peer 200.192.2.2
 set transform-set MyTransform1
 match address 100

interface fastethernet0/0
ip address 10.0.1.2 255.255.255.0
duplex auto
speed auto
crypto map MyCrypto1   

Branch_Office:

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

crypto isakmp key cisco123 address 200.192.1.2
crypto ipsec transform-set MyTransform1 esp-aes esp-sha-hmac

crypto map MyCrypto1 10 ipsec-isakmp
 set peer 200.192.1.2
 set transform-set MyTransform1
 match address 100

interface fastethernet0/0
ip address 10.0.2.2 255.255.255.0
duplex auto
speed auto
crypto map MyCrypto1  
Prueba de Conectividad:

Finalmente deberiamos tener comunicación entre las dos localidades. Realizamos un ping desde el Central_Office especificando como source la interfaz local y se establecerá el tunnel:
Central_Office# ping 192.168.2.1 source fastethernet0/1
Con el comando «show crypto isakmp sa» verificamos el estado del Tunnel. Cualquier duda o inconveniente estamos a las ordenes!