Una de las estrategias disponibles para la utilización de las nubes publicas para nuestro negocio, es diversificar nuestra capacidad entre diferentes proveedores (evitando el vendor lock-in, ganando resiliencia, independizando circuitos e infraestructuras subyacentes…).
Para ello, una de las primeras soluciones que debemos tener implementada y resuelta es la conectividad entre nuestros inquilinos para poder interconectar nuestras cargas.
En este post, veremos cómo conectar nuestras nubes cifrando nuestro tráfico a través de VPN Site to Site IKEv2.
Criterio de aceptación: desde una máquina virtual en AWS, conectarnos al servidor web de otra vm desplegada en Azure.
Esquema del laboratorio:
PASO 1: CONFIGURACIÓN DE AZURE
1.1. Creamos un grupo de recursos.
1.2. Creamos la red vnet-vpn y sus subredes
- Nombre red: vnet-01
- Espacio direccionamiento: 172.100.0.0/16
- Subred para los servidores -> ServerSubnet: 172.100.2.0/24
- Subnet para el Gateaway -> GatewaySubnet: 172.100.1.0/27 (debe tener ese nombre y la notación CIDR se recomienda en /27 para este tipo de subnet ).
1.3. Creamos la VPN Gateway
Utilizaremos os recursos creados anteriormente. El grupo de recursos, la vnet-01 y GatewaySubnet y crearemos una nueva IP pública (pip-vpn) para la terminación en Azure de nuestro túnel.
PASO 2: CONFIGURACIÓN DE AWS
2.1. Creamos nuestra VPC
- Nombre: vpc-vpn
- Espacio direcciones: 10.10.0.0/16
- Subred: 10.10.1.0/24
2.2. Creamos una subnet dentro del VPC
2.3. Creamos nuestra Customer Gateway (nombre: cgw) apuntando a la IP pública del extremo de Azure. (pip-vpn)
2.4. Creamos nuestra Virtual Private Gateway (nombre: vgGateway) y la asociamos al VPC (vpc-vpn)
2.5. Creamos la conexión VPN site-to-site.
- Fijamos, como prefijo de IP estática la subred de los servidores en Azure. 172.100.1.0/24
Después de la creación del túnel, debe quedarnos así:
2.6. Descargamos el fichero de configuración desde el botón de la parte superior.
NOTA: el formato de descarga debe ser de proveedor Genérico, Azure no tiene como tal una defición de fabricante.
- El fichero descargado (.txt) contiene información de 2 túneles, debemos anotarnos la IP y la PSK del IPSec Tunnel #1. Estos datos los introduciremos en Azure a continuación.
- Nota: contiene información de 2 túneles ya que AWS ofrece la posibilidad de tener disponibilidad activo/activo pero nosotros sólo estableceremos un túnel en esta prueba de concepto.
PASO 3: TERMINAMOS LA CONFIGURACIÓN DE AZURE
3.1 Creamos una Local Network Gateway. Apuntará al extremo de AWS y será la IP que tenemos en el fichero de AWS de referencia a Virtual Private Gateway. Añadiremos el espacio de direcciones de la subred de AWS donde se alojará el servidor: en nuestro caso 10.10.0.0/16.
3.2. Por último, creamos la conexión entre ambos extremos.
Tras unos minutos, la conexión entre extremos debería establecerse. (Status=Connected)
En AWS veríamos el Túnel 1 levantado. (Notar que el Túnel 2 no lo hemos configurado)
Adicionalmente, en AWS, debemos configurar la propagación de rutas. Debería mostrarse como a continuación:
Deberíamos poder ver desde la vm en Azure, como en las rutas Estáticas consta el camino para legar a AWS.
PASO 4: PROBEMOS!!
- En AWS, crearemos primero que nada un Gateway de Internet, sólo para poder conectarnos a la vm y lanzar el testeo a través del túnel.
- Lanzaremos un instancia EC2 con Linux, asociada al VPC creado anteriormente y le daremos una IP Pública.
- En el extremo de Azure, se ha creado un máquina virtual (vm-iis01) con un servidor web escuchando en el puerto 80 que muestra como página por defecto, el hostname, es decir, vm-iis01. Se ha seguido este artículo con powershell para la creación.
- Una vez ambas máquina creadas y en ejecución, probaremos a pingear a la vm en Azure y con curl a acceder al servidor web.
……y…funciona!!
Esperamos que os haya resultado útil y os animamos a compartir vuestras opiniones.
Importante: si no es necesario su uso, recordar borrar todos los recursos de ambos directorios creados con anterioridad.