​​Introducción.

En esta entrega vamos a repasar los pasos para la conexión Site-to-Site, esta vez desde el extremo de los dispositivos VPN en las instalaciones físicas. Esta configuración puede ser particular, dependiendo del fabricante del dispositivo VPN que se está utilizando, así que acá vamos a enumerar las actividades generales que se deben llevar a cabo, sin entrar en el detalle de los comandos o interfaces a utilizar. Aun así, vamos a presentar ejemplos de cómo se podría ver el resultado en un archivo de configuración, lo que no quiere decir que sea lo mismo en cada caso.

Compatibilidad de Dispositivos VPN.

Por supuesto, para poder establecer una conexión Site-to-Site, se requiere de al menos un dispositivo VPN del lado del centro de datos, así que Microsoft ha validado, en conjunto con los principales fabricantes, un conjunto de dispositivos VPN estándar recome​ndados. Incluso, se han desarrollado guías de configuración para cada familia de dispositivos y scripts de configuración para algunas de ellas, que facilitan aún más su implementación. En el siguiente enlace, podemos encontrar la documentación asociada y la lista de dispositivos validados:

Acerca de los dispositivos VPN y los parámetros de IPsec/IKE para conexiones VPN Gateway Sitio-a-Sitio

Ahora bien, el hecho que un dispositivo VPN no aparezca en la lista del enlace anterior, no quiere decir que no pueda ser configurado en este escenario. La recomendación en cualquier caso siempre es consultar directamente la documentación del fabricante para obtener información más detallada acerca de su operación y configuración.

Ambiente de Referencia.

Una vez más, mostramos el ambiente esperado luego de la implementación, según la Figura 1. Como siempre, los valores indicados son de referencia, y su utilización se irá definiendo a lo largo de las instrucciones. En este punto ya tenemos configurados todos los recursos necesarios del lado de Azure, actividades que llevamos a cabo en las Partes 1 y 2 de esta serie de artículos. Es decir, que vamos por la mitad, ya que nos falta configurar el extremo de las instalaciones físicas, y luego verificar y monitorear las conexiones.

Fig01.png
Figura 1. Ambiente Esperado.

Actividades Generales.

A continuación, las actividades generales que vamos a repasar en este artículo:

  • Paso 1.- Establecer los Túneles VPN: Acá estableceremos los túneles IPSec/IKE v2 entre los dispositivos VPN en las instalaciones físicas y la Virtual Network Gateway en Azure.
  • Paso 2.- Agregar Espacio de Direcciones de la Virtual Network en Azure: Identificaremos los espacios de direcciones de la Virtual Network de Azure hacia la cual queremos establecer la conexión Site-to-Site, y donde se encuentra definida la Virtual Netwrok Gateway. Esto dentro de cada dispositivo VPN.
  • Paso 3.- Creación de Interfaces Loopback: Estas interfaces se utilizan para establecer la dirección BGP Peer Address del dispositivo VPN.
  • Paso 4.- Configuración del Protocolo de Enrutamiento BGP: Acá terminamos de configurar los parámetros que habilitan el protocolo de enrutamiento BGP.
  • Paso 5.- Configuración de Políticas: Por último, permitimos el tránsito de datos BGP entre las instalaciones físicas y la Virtual Network en Azure.

Paso 1.- Establecer Túneles VPN.

Lo primero que debemos identificar en el dispositivo VPN es la interfaz pública. En el diagrama de la Figura 1, estas direcciones están denotadas como IP03 e IP04. A continuación, debemos estar claros que por cada dispositivo VPN hay que crear dos túneles, puesto que hay dos instancias de la Virtual Network Gateway, ya que la configuramos en modo Active-Active. Así que en total vamos a crear cuatro (4) túneles. No confundir entonces esto con las conexiones que creamos en Azure. Recordemos que el recurso Conexión en Azure es el enlace lógico entre una Virtual Network Gateway y una Local Network Gateway.

Así, podemos resumir en la siguiente tabla, y utilizando los valores de ejemplo del ambiente de referencia, los cuatro (4) túneles que debemos crear.

Equipo

Túnel

Interfaz On-Premise

IP Pública VNG Azure

Dispositivo VPN 01

Tunnel01

200.51.X.Z

52.170.X.Y

 

Tunnel02

40.114.X.Y

​​

Dispositivo VPN 02​

Tunnel03

138.36.X.Z

52.170.X.Y

 

Tunnel04

40.114.X.Y


Los parámetros que generalmente se solicitan para la creación de los túneles son los siguientes:

  • Nombre del Túnel: Nombre descriptivo para el túnel VPN.
  • Remote Gateway: Esta es la dirección IP Pública de la instancia de la Virtual Network Gateway definida en Microsoft Azure.
  • Local Interface: Corresponde a la Interfaz Pública del dispositivo VPN que conecta hacia la Virtual Network Gateway definida en Microsoft Azure.
  • Preshared Key: Esta clave debe ser la misma en ambos extremos del túnel y se utiliza para cifrar la información de autenticación. Como recordarán, esta clave la utilizamos cuando definimos la Conexión en Azure, así que debemos utilizar la clave compartida que establecimos cuando creamos la Conexión para la Local Network Gateway que representa el dispositivo VPN que estamos configurando. Normalmente acá es donde se especifica también la versión IKE v2 para el intercambio de claves.

Otros parámetros que se solicitan son los algoritmos de cifrado. En la siguiente tabla se muestran cuales son los que soporta Azure para la fecha de elaboración de este documento.

IPSec/IKEv2

Opciones

IKEv2 Encryption

AES256, AES192, AES128, DES3, DES

IKEv2 Integrity

SHA384, DHS256, SHA1, MD5


Este es un ejemplo de cómo se vería la configuración del túnel Tunnel01 en un equipo Fortinet.

config system interface 
<...> 
edit "port30"        
set vdom "root"        
set ip 200.51.X.Z 255.255.255.0        
set allowaccess ping        
set type physical        
set alias "ISP01"        
set estimated-upstream-bandwidth 102400        
set estimated-downstream-bandwidth 102400        
set role wan
next
<...>
end

​​​config vpn ipsec phase1-interface
<...> 
edit "Tunnel01"
set interface "port30"
set ike-version 2
set keylife 28800
set peertype any
set proposal aes256-sha256
set dpd on-idle
set dhgrp 2
set nattraversal disable
set remote-gw 52.170.X.Y
set psksecret ENC ztVlLHVZR1/HENlpCNmPXH…
next
<...>
end

Paso 2.- Agregar Espacio de Direcciones de la Virtual Network en Azure.

Se debe configurar una entrada por cada espacio de direcciones de la Virtual Network declarada en Microsoft Azure – junto con su correspondiente espacio de direcciones. Para el ambiente de referencia, los datos de la Virtual Network Gateway que utilizamos son los siguientes:

Nombre Virtual ​Network​

VNet-Infra

 

Subnets

GatewaySubnet

10.224.128.0/27

Espacio de Direcciones

10.224.128.0/24

 

 

Subnet-Prod

192.168.100.0/24

 

192.168.0.0/16

 

 

Subnet-Dev

192.168.200.128/24


A continuación, un ejemplo de la porción del archivo de configuración de un equipo Fortinet​ con la configuración descrita:

config firewall address 
<...> 
edit "VNet-Infra 01"
set uuid …      
set subnet 10.224.128.0 255.255.255.0 
next 
edit "VNet-Infra 02" 
set uuid …      
set subnet 192.168.0.0 255.255.0.0 
next 
<...>
end


​Recordemos que esta configuración la tenemos que hacer en cada dispositivo VPN.

Paso 3.- Creación de Interfaces Loopback.

Si recordamos en la Parte 2, en el Paso 4.- Creación de las Local Network Gateways, el proceso nos solicitaba que se introdujera el valor de la dirección BGP Peer Address, para que en efecto se pudiera habilitar el protocolo de enrutamiento BGP. Una manera de hacer esto es definiendo una interfaz de loopback en el dispositivo VPN y colocando una dirección IP que representará a la dirección BGP Peer Address que nos solicita. En la Figura 1, estas direcciones están identificadas como BGPIP03 y BGPIP04. Las direcciones escogidas quedan a nuestro criterio, por supuesto evitando que se solapen con el resto de las subnets definidas en el dispositivo VPN. Como veremos más adelante, habilitaremos políticas que permitirán el intercambio de rutas entre esta interfaz loopback, y la interfaz que utilizamos para crear el túnel VPN en el Paso 1.

En resumen, debemos defini​r una interfaz loopback en cada dispositivo VPN y colocarle una dirección IP que representará su dirección BGP Peer Address. Un ejemplo de cómo se vería esta configuración en un equipo Fortinet se muestra a continuación:

Dispositivo VPN 01:

config system interface
<...> 
edit "Loopback-VPN01"
set ip 172.21.C.0 255.255.255.255
set allowaccess ping
set type loopback
set role lan
next 
<...> 
end

Dispositivo VPN 02:

config system interface
<...> 
edit "Loopback-VPN02"
set ip 172.21.D.0 255.255.255.255
set allowaccess ping
set type loopback
set role lan
next 
​<...> 
end

Paso 4.- Configuración del Protocolo de Enrutamiento BGP.

A continuación, se configuran los parámetros necesarios para la habilitación del protocolo BGP en cada uno de los dispositivos VPN.

  • Autonomous System Number: Recordemos que este es el número que se utiliza en conjunto con el protocolo BGP para identificar un área de administración específica que agrupa dispositivos bajo una política de enrutamiento única. Ya en la Parte 2​ de esta serie de artículos habíamos identificado los ASN cuando configuramos la Virtual Network. En la Figura 1 vemos que el ASN correspondiente para nuestro ambiente de referencia en las instalaciones físicas es el 64999 y para los recursos en Azure indicamos el ASN 65515.
  • BGP Peer Address. En esta configuración debemos indicar las BGP Peer Address que obtenemos al configurar el protocolo BGP en la Virtual Network Gateway en Azure. En la Parte 2​, Paso 3.- Creación de la Virtual Network Gateway, vimos como obtener estos valores, que como recordarán son asignados del espacio de direcciones de la GatewaySubnet dedinida en la Virtual Network Gateway. En la Figura 1 están identificadas como BGPIP01 y BGPIP02.

​Dispositivo VPN 01 y VPN 02:

config router bgp
<...>
set as 64999
set router-id …
config neighbor
<...>
edit 10.224.128.A 
set ebgp-enforce-multihop enable 
set remote-as 65515 
set update-source “Loopback-VPN01”            
next 
edit 10.224.128.B 
set ebgp-enforce-multihop enable 
set remote-as 65515 
set update-source “Loopback-VPN01” 
next
<...>
end
<...>
end

Paso 5.- Configuración de Políticas.

El siguiente paso consiste en configurar las políticas que permitan el tráfico de datos BGP entre los túneles VPN definidos en el Paso 1 y las interfaces loopback de cada dispositivo VPN. Para ello lo recomendable es crear un alias que incluya los nombres de los túneles. ​En el caso de Fortinet, así se vería en el archivo de configuración, recordando que los túneles 1 y 2 los definimos en el primer dispositivo y los túneles 3 y 4 en el segundo:

Dispositivo VPN 01:

config system zone
<...> 
edit "Conn_VPN_Azure_01" 
set interface "Tunnel01" "Tunnel02"
next
<...>
end

 

Dispositivo VPN 02:

config system zone
<...> 
edit "Conn_VPN_Azure_02" 
se​t interface "Tunnel03" "Tunnel04"
next
<...>
end

Con esta nomenclatura, entonces podemos configurar más fácilmente las políticas necesarias en cada dispositivo VPN. Estas políticas deben configurarse en ambos sentidos, es decir, de entrada y salida al dispositivo VPN. En el equipo Fortinet se vería de la siguiente manera:

Dispositivo VPN 01:

config firewall policy
<...>
edit … 
<...>
set uuid …
set srcintf "Conn_VPN_Azure_01"
set dstintf “Loopback-VPN01”
set srcaddr "all"       
set dstaddr "all"       
set action accept       
set schedule "always"       
set service "BGP"
<...>            
​next       
edit …             
<...>       
set uuid …       
set srcintf “Loopback-VPN01”
set dstintf "Conn_VPN_Azure_01"
set srcaddr "all"
set dstaddr "all"
set action accept
set schedule "always"
set service "BGP" 
<...>
next 
<...> 
end

Dispositivo VPN 02:

config firewall policy
<...>
edit … 
<...>
set uuid …
set srcintf "Conn_VPN_Azure_02"
set dstintf “Loopback-VPN02”
set srcaddr "all"       
set dstaddr "all"       
set action accept       
set schedule "always"       
set service "BGP"
<...>            
​next       
edit …             
<...>       
set uuid …       
set srcintf “Loopback-VPN02”
set dstintf "Conn_VPN_Azure_02"
set srcaddr "all"
set dstaddr "all"
set action accept
set schedule "always"
set service "BGP" 
<...>
next 
<...> 
end

Próximos Pasos.

Hasta aquí ya hemos realizado todas las actividades requeridas para configurar la conexión Site-to-Site de acuerdo al ambiente de referencia que utilizamos como ejemplo. Recordemos que las configuraciones que mostramos acá son las que generalmente se requieren en un dispositivo VPN en las instalaciones físicas, pero que es posible se necesite realizar configuraciones adicionales o específicas al dispositivo con el que se esté trabajando.

En la última parte de esta serie de artículos (Parte 4), vamos a ver cómo verificamos que nuestra conexión Site-to-Site está funciona​ndo como esperamos.​


Espero que esta serie de artículos les sea de utilidad. Si quieres aprender más sobre Infraestructura como Servicio (IaaS) en Microsoft Azure o estás interesado en desarrollos y/o implementaciones en cualquier de sus ofertas de servicios por favor visita nuestros web sites para obtener información de nuestro portafolio de servicios y de nuestras propuestas de capacitación.