WINDOWS AZURE - CONECTAR MAQUINA LOCAL CON VM DE AZURE

Hasta ahora en la serie de entregas que he hecho con Azure he mostrado el proceso de creación de máquinas tanto Linux como Windows y también mostré cómo crear sitios web allí. De igual manera creé una BD SQL en Azure.

Pues bien, ahora voy a mostrar los pasos requeridos para conectar una máquina local (On Premise como se usa la expresión en Inglés) con una de Azure.

Existen varias alternativas para lograr esta conectividad, la primera de ellas es crear una conexión VPN (Virtual Private Network) site-to-site entre los servicios o VMs de Azure y las máquinas locales, para ello es necesario tener dispositivos que permitan construir una VPN, como por ejemplo un firewall.

Al construir una VPN hay una serie de requerimientos que se encuentran documentados en http://msdn.microsoft.com/en-us/library/windowsazure/jj156075.aspx y al final de este ejercicio se tendrá una conexión como la que se ve en la siguiente imagen:

En esta imagen se están conectando las VMs que se encuentran en Azure –en diferentes subredes- con las máquinas locales de la compañía Contoso y que tienen diferentes funciones como servidores web y de base de datos.

La segunda alternativa es conectar las máquinas locales con las de Azure usando los servicios denominados Windows Azure Connect, -muy útiles si no dispongo de un firewall- los cuales usan el protocolo IPsec.

Esta es la opción que vamos a discutir en este post.

La conexión entre máquinas de Azure y locales es totalmente encriptada y segura.

Los pasos requeridos para usar Windows Azure Connect básicamente son tres:

 

  1. Activar los roles de Windows Azure para Windows Azure Connect obteniendo un token de activación y asegurándose de que el token esté incluido en la configuración de dichos roles. (Si voy a escribir una aplicación que interconecte VMs locales con VMs en Azure)
  2. Instalar el software de conectividad o endpoint en las VMs o máquinas físicas que quiero conectar contra Azure
  3. Crear uno o más grupos de endpoints. Al crear estos grupos se especifican las conexiones entre los roles de Azure y las máquinas locales

 En este ejercicio vamos a conectar una máquina local virtual Windows Server 2012 que tengo corriendo en Hyper-V contra una máquina Windows Server 2012 de Azure.

Bien empecemos de una vez con el primer paso, que consiste en activar los roles y obteniendo el token de conexión:

Debemos ingresar al portal de Azure con nuestro usuario y contraseña:

Las opciones de networking se encuentran en el portal anterior de Azure, por lo tanto es necesario ir a dicho portal. Para ello basta con hacer clic en el nombre de usuario, en este ejemplo es michellca@hotmail.com por lo tanto hago clic en el nombre de usuario, el cual aparece en la parte superior derecha del portal

Selecciono la opción Previous portal

Se me abre una ventana nueva en mi explorador que me muestra el portal anterior de Azure.

 

Aquí debemos seleccionar la opción Virtual Network, que se encuentra en la parte inferior del portal

 

 

Una vez allí, debajo de Connect me muestra el tipo de suscripción que tengo, en mi caso es Windows Azure MSDN – Visual Studio Ultimate. Si hago clic sobre esta suscripción puedo ver otros detalles de la misma:

 

De igual manera se me activa una serie de opciones en la parte superior del portal, que son las que voy a usar para realizar las tareas de conectividad de mi VM local con la VM de Azure.

 

Si voy a escribir una aplicación en la que requiera interconectar mi VM On Premise o local con la de Azure, debo obtener el token que me establece dicha conectividad, para ello debo hacer clic sobre el botón Get Activation Token:

 

 

Este token se puede copiar al portpapeles o clipboard y usar en el código de la aplicación. Para mayor información visiten http://msdn.microsoft.com/en-us/library/windowsazure/gg433071.aspx

 

Pero como aquí somos IT Pros vamos a proseguir con el paso 2, que consiste en instalar el software de conectividad o local endpoint para lograr nuestro cometido de conectar las 2 VMs entre sí, es decir la local con la de Azure.

 

Mi máquina local se denomina AZURE2012, lo que debo hacer es desde esa máquina ingresar al portal https://manage.windowsazure.com con mi usuario y contraseña.

 

Luego ingreso al portal anterior a la sección Virtual Network y selecciono mi suscripción:

 

Selecciono Install Local Endpoint

Aquí se genera una URL que debo abrir en otra ventana del explorador para empezar la instalación del software de conectividad en mi máquina local. Este software no se puede descargar para una posterior instalación debido a que depende del token y cada token es único para cada suscripción.

Hago clic en el botón “Copy Link to Clipboard” y me sale una advertencia como la siguiente:

Presiono Yes y luego pego el contenido del portapapeles en una nueva ventana del navegador (sólo se soporta Internet Explorer)

 

Presiono Save para guardar el software localmente

Ahora presiono Run para ejecutar el software

Selecciono el idioma y presiono Next, en mi caso lo voy a dejar en Inglés

 

 Marco I accept the terms of use y presiono Next

Espero que finalice el proceso de instalación del software

Presiono Finish una vez termine el proceso.

Este mismo proceso lo debo ejecutar en la máquina de Azure, que para mi ejercicio se denomina SRV2012-01, siguiendo los mismos pasos que acabo de describir.

Una vez haya instalado el software de conectividad tanto en la máquina local como en la virtual, debo ir al portal previo de Azure para continuar con el proceso

Aquí puedo crear grupos de máquinas, por ejemplo en esta imagen se ve que ya tengo creado un grupo denominado Servers-Cloud. También se ven las dos máquinas a las que les instalé el software de conectividad, es decir AZURE2012 y SRV2012-01.

Para efectos de organización voy a crear un nuevo grupo denominado CLOUD-01 y voy a agregar estas 2 máquinas a dicho grupo.

Selecciono Create Group

Debo completar los campos correspondientes al nombre del grupo y las máquinas que van a hacer parte de dicho grupo

Una vez complete los datos, la ventana se debería ver de la siguiente manera:

Usando el botón Add agregué mis 2 máquinas. Observen que marqué la opción Allow connections between endpoints in group y agregué el grupo Servers-Cloud para conectarme hacia dicho grupo.

En otras palabras voy a conectarme desde las máquinas AZURE2012 y SRV2012-01 hacia las máquinas que se encuentran en el grupo Servers-Cloud

 

 

El mensaje que se ve arriba se verá una vez se haya creado el grupo

En resumen, tengo dos grupos de máquinas que están conectados entre sí y a su vez las máquinas del grupo CLOUD-01 se ven entre sí, es decir AZURE2012 que es mi máquina virtual local y SRV2012-01 que es la máquina de Azure:

 

Para verificar conectividad entre las máquinas puedo hacer ping entre las máquinas.

Por ejemplo, ingreso a AZURE2012 y hago un ping a SRV2012-01:

 

 

Se obtiene respuesta gracias a que el software de conectividad se encuentra instalado en ambas máquinas y a que en las propiedades del grupo se habilitó conectividad entre las dos máquinas.

Ahora hagamos ping en sentido contrario, es decir desde la máquina de Azure SRV2012-01 hacia AZURE2012 para ver la respuesta:

 

Analizando lo que se ve, en primera instancia observamos que por defecto se hace ping a direcciones del tipo IPv6.

También se observa que los tiempos de respuesta son más altos que los tiempos habituales de una red local, por ejemplo vemos que el primer ping de AZURE2012 hacia SRV2012-01 tardó 2015 ms y luego el tiempo bajó.

La razón por la cual los tiempos no son iguales a los de la una red local obedece a que obviamente estamos conectando una máquina local con una máquina de Azure y además a través de un protocolo seguro como IPsec, pero también la demora es ocasionada porque se usa un servicio de relay para tener conectividad entre las máquinas.

También es importante tener en cuenta las consideraciones asociadas a las reglas de firewall en las máquinas, para ello pueden consultar el siguiente link http://msdn.microsoft.com/en-us/library/windowsazure/gg433061.aspx

Por ejemplo, si quiero conectarme desde mi máquina local AZURE2012 hacia la máquina de Azure SRV2012-01 por Terminal Services puedo usar el cliente de Terminal Services (Remote Desktop Connection) hacia la IPv6 de la máquina destino, es decir 2a01:111:f102:102:50da:12ad:45f2:4447

 

Observen que se solicita usuario y contraseña

 

Bueno, como lo ven puedo usar los servicios denominados Windows Azure Connect para conectar On Premise o locales con máquinas de Azure. En este blog conecté mi máquina local AZURE2012 hacia la máquina SRV2012-01 que se encuentra en Azure.

 

Los servicios de conectividad entre las máquinas se realizaron a través de IPv6. Lo más importante que no necesité usar un dispositivo físico para crear VPNs como un firewall, lo cual me puede ahorrar costos pero por otra parte los tiempos de respuesta de conectividad entre las 2 máquinas pueden llegar a ser más altos debido a que esta conectividad usa un servicio de relay para lograr la conectividad.

¡Espero les sea de utilidad! Nos vemos en la próxima entrega.