​Introdu​cción.

​​En la Parte 1​ de esta serie de artículos repasamos algunos de los modelos de interconexión Site-to-Site disponibles entre una Virtual Network en Azure y las​​​ instalaciones físicas en un centro de datos. Además, adelantamos el escenario de configuración que tomaremos como referencia. En este artículo vamos a describir con detalle las actividades requeridas para la implementación de los recursos que componen este modelo del lado de Azure. 

Ambiente de R​​efe​renc​ia.​​

Repasamos el ambiente esperado luego de la implementación, según la Figura 1. Una vez más, los valores indicados son de referencia, y su utilización se irá definiendo a lo largo de las instrucciones. Vamos a describ​ir de manera general el diagrama:
  • En las instalaciones físicas se cuenta con dos dispositivos VPN independientes, para garantizar la redundancia de las comunicaciones. Estos dispositivos serán representados en Azure como Local Network Gateways. Cada uno de ellos cuenta con una dirección IP pública accesible a través de la internet, así como una dirección IP denomin​ada BGP Peer Address, necesaria para la configuración del protocolo de enrutamiento BGP.
  • En la infraestructura de Azure se definirá una Virtual Network Gateway en modo Active-Active, con el protocolo de enrutamiento BGP habilitado. En esta configuración, la Virtual Netwrok Gateway cuenta con dos instancias operativas, por lo que requerirá de dos direcciones IP públicas, así como las direcciones BGP Peer Address correspondientes para la configuración del protocolo de enrutamiento BGP.
  • Por último, en este modelo de alta disponibilidad se definen conexiones lógicas que activan los túneles VPN para la configuración redundante entre las comunicaciones de los dispositivos. Como veremos más adelante, si bien en el diagrama vemos cuatro (4) túneles, en Azure están representados por dos conexiones, dado que una conexión en Azure se define como el vínculo entre una Virtual Network Gateway y una Local Network Gateway.

Fig01.png  

Figura 1. Ambiente de Referencia.

Requisitos. ​​

Para utilizar los cmdlets de PowerShell que se proporcionan en este artículo, es necesario contar con el nuevo módulo Az de Azure PowerShell. Para obtener instrucciones sobre la instalación del módulo Az, puede consultar el siguiente enlace: Instalación del módulo Azure PowerShell. Una vez instalado el módulo Az de Azure PowerShell debe establecer una conexión autenticada con un usuario que tenga derechos administrativos en la suscripción, suficientes para la creación de los recursos que se describen en esta documentación. Para ello puede utilizar el cmdlet Connect-AzAccount y a continuación introducir las credenciales cuando se le solicite. Para mayor información sobre cómo iniciar sesión en Azure con PowerShell, puede consultar el siguiente enlace: Inicio de Sesión con Azure PowerShell.

​Descripción General de las Actividades.​​

​A continuación, se describen de manera general las actividades involucradas:

  • Paso 1.- Definición de Parámetros Comunes: En este paso vamos a definir los parámetros iniciales para la configuración, estableciendo valores de ejemplo, específicamente para la Virtual Network.
  • Paso 2.- ​Creación de Direcciones IP Públicas: El modo Active-Active de la Virtual Network Gateway requiere de dos direcciones IP Públicas - una para cada instancia activa.
  • Paso 3.- Creación de la Virtual Network Gateway: Satisfechos los requisitos iniciales, en este paso creamos el recurso para la Virtual Network Gateway.
  • Paso 4.- Creación de las Local Network Gateways: Estos son los recursos en Azure que representan a los dispositivos VPN en las instalaciones físicas.
  • Paso 5.- Creación de las Conexiones: Acá establecemos el vínculo lógico entre la Virtual Network Gateway y las Local Network Gateways creadas en el paso anterior.

​​Paso ​1.- Definición de Parámetros Comunes. 

Reso​​urce Group. ​

P​ara efectos de este documento, asumimos que el grupo de recursos o Resource Group ya se encuentra creado en Azure, y que todos los demás recursos que crearemos para esta implementación se agruparán dentro de esta unidad de administración. 

Virtual Netw​​ork. 

De igual manera, también asumimos que la red virtual o Virtual Network ya se encuentra definida en Azure. Acá es importante destacar la importancia del espacio de direcciones que maneja la Virtual Network, así como las subredes o Subnets definidas bajo el paraguas de estos espacios de direcciones, ya que estos serán advertidos por la Virtual Network Gateway hacia las instalaciones físicas una vez establecida la conexión Site-to-Site. Es de suma importancia la subnet denominada GatewaySubnet, ya que dentro de esta se van a crear automáticamente y de manera transparente para nosotros los recursos de comunicación para las instancias y otros componentes necesarios para la operación de la Virtual Network. Por ejemplo, si habilitamos el protocolo de enrutamiento, como efectivamente vamos a hacer, las direcciones BGP Peer que utilizaremos para configurar el protocolo del lado de las instalaciones físicas se obtienen del rango de direcciones correspondiente a la GatewaySubnet. Los valores que se muestran en la siguiente tabla son de referencia.

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

​​​​PowerS​​​hell

#region: Datos Generales:

​​$ResourceGroup " AZ_Infraestructura_RG"    #Nombre del Resource Group
$Location" eastus"                         #Nombre de la Localidad​
$VNetName "VNet-Infra"                     #Nombre de la Virtual Network
$GWsubnetName "GatewaySubnet"              #Nombre de la Gateway Subnet

#endregion

​​Paso 2.- Creación de Direcciones IPs Públicas.​ 

El modo de operación escogido para la creación de la Virtual Network Gateway es Active-Active. En este modo, existen dos instancias de la Virtual Network Gateway operando de manera simultánea, con conexiones redundantes hacia las instalaciones físicas. Cada una de estas instancias debe ser accesible a través de la red pública sobre la cual se realiza la interconexión. De allí que el primer paso en esta implementación consiste en la creación de dos direcciones IP públicas, que serán utilizadas posteriormente para la creación de la Virtual Network Gateway. En el diagrama de la Figura 1, se indican como IP01 y IP02. Estas direcciones IP se crean en modo dinámico por requerimien​tos de la configuración de la Virtual Network Gateway. Esto es un punto importante a tomar en cuenta, ya que los valores de las direcciones deben ser configurados en los dispositivos VPN en las instalaciones físicas. Si por alguna razón se necesita recrear la Virtual Network Gateway, al colocarla en operación los valores de las direcciones IP cambiarán, lo que requerirá realizar los ajustes correspondientes del lado de las instalaciones físicas. En la siguiente sección se indicarán los valores de los parámetros de configuración utilizados para crear las direcciones IP, así como el código en PowerShell para la creación de estos recursos. Las direcciones IP creadas se almacenaran en variables de objet​o para su posterior utilización en la creación de la Virtual Network Gateway. 

​​Powershell. ​

#region: Creación de Direcciones IP Públicas:

#Definición de Nombres de Direcciones IP Públicas:

$VNGIP01Name "VNGIP01"         #Nombre Dirección IP Pública 01
​​​$VNGIP02Name = "VNGIP02​"​         #Nombre Dirección IP Pública 02

#Dirección IP Pública 01:

$VNGPublicIP01 = New-AzPublicIpAddress -Name $VNGIP01Name     ` 
​​-ResourceGroupName $ResourceGroup `
​​​​​-Location $Location `
​​​​​-AllocationMethod Dynamic​
​​​​​
​​#Dirección IP Pública 02:

​​​​​​​​$VNGPublicIP02 = New-AzPublicIpAddress -Name $VNGIP02Name     ` 
​​-ResourceGroupName $ResourceGroup `
​​​​​-Location $Location `
​​​​​-AllocationMethod Dynamic​​
​​​​​​​​​
​​​#endregion​​

Paso 3.- Creación de la Virtual Network Gateway. ​​

En esta actividad se crea la Virtual Network Gateway en modo de operación Active-Active, y habilitando el protocolo de enrutamiento BGP. Esta operación puede tardar al menos 45 minutos en completarse. A continuación, se describen algunos de los parámetros de configuración requeridos para la creación del recurso1.

Propiedad Parámetro​ Descripción
Tipo de Gateway -GatewayType El tipo de gateway indica si se va a trabajar bajo el modelo de VPN, transmitiendo datos cifrados sobre la red pública, o través de un enlace dedicado. Los valores en cada caso son VPN y ExpressRoute. Para nuestro escenario, aplica el primer valor.
Tipo de VPN -VPNType El tipo de VPN indica si el enrutamiento se realizará con base a listas de acceso o será generado automáticamente. El primer caso corresponde a un valor Policy-Based y el segundo a Route-Based. En la gran mayoría de los casos el tipo de VPN corresponde a Route-Based, y esto es mandatorio cuando se utiliza el protocolo de enrutamiento BGP. En contadas excepciones se utiliza el tipo Policy-Based, como por ejemplo cuando el dispositivo en las instalaciones físicas no soporta Route-Based.
SKU -GatewaySku Del SKU seleccionado depende el desempeño y las características de la Virtual Network Gateway, como por ejemplo el número máximo de túneles que se pueden configurar y el máximo ancho de banda disponible. Para nuestro escenario, podemos escoger cualquier SKU entre VpnGw1, VpnGw2 o VpnGw3, ya que el Basic no soporta las características de alta disponibilidad que vamos a configurar.
Autonomous System Number (ASN) -ASN Este es un número especial que se utiliza en conjunto con BGP para identificar a un área de administración específica que agrupa dispositivos bajo una política de enrutamiento única.

​Un punto importante a esta altura es que para este escenario consideramos la instalación del protocolo de enrutamiento BGP. Así, por cada dirección IP Pública se va agenerar una dirección IP BGP Peer Address, que necesitaremos para completar la configuración del lado de los dispositivos VPN en las instalaciones físicas. Estas direcciones IP BGP Peer Address son asignadas del pool de direcciones correspondientes al espacio de direcciones de la Gateway Subnet configurada en la​ Virtual Network. A continuación se muestran los comandos PowerShell para la creación de la Virtual Network Gateway junto con los comandos para obtener los valores de las IPs Públicas y su correspondiente BGP IP Address que deben ser documentadas como ya comentamos.

PowerShell. ​

#region: Creación de la Virtual Network Gateway:

​$VNGName "VPN-Gateway"     #Nombre de la Virtual Network Gateway
$VNGType "VPN"                 #Tipo de Gateway de la Virtual Network Gateway
$VNGVPNType "RouteBased"   #Tipo de VPN de la Virtual Network Gateway 
$SKU "VpnGw1"                  #SKU de la Virtual Network Gateway 
$ASN "65515"                   #Autonomous System Number (ASN)

​​#Información de la Virtual Network:
​​​
$VNetInfo Get-AzVirtualNetwork -Name $VNetName     `
​​​​​     ​​​​-ResourceGroupName $ResourceGroup
#Vector de almacenamiento de Configuraciones IP Públicas de la Virtual Network Gateway:    
​​
$VNGIPConfigs = @()                                        

#Información de la GatewaySubnet:
​​
​$GWSubnetInfo Get-AzVirtualNetworkSubnetConfig -Name $GWSubnetName     `
​​​​​​​​​​-VirtualNetwork $VNetInfo

​#Almacenamiento de las Configuraciones IP Públicas de la Virtual Network Gateway:
​​​​
$VNGIPConfigs += New-AzVirtualNetworkGatewayIpConfig -Name "VNGPIPConfig01"  `
-Subnet $GWSubnetInfo   `
-PublicIpAddress $VNGPublicIP01
    
​​​$VNGIPConfigs += New-AzVirtualNetworkGatewayIpConfig -Name "VNGPIPConfig02"  `
-Subnet $GWSubnetInfo  `
-PublicIpAddress $VNGPublicIP02     
​​​#Creación de la Virtual Network Gateway:

​​​​​New-AzVirtualNetworkGateway -Name $VNGName `
-ResourceGroupName $ResourceGroup `
-Location $Location `
​​-IpConfigurations $VNGIPConfigs `
-GatewayType $VNGType `​
-VpnType $VNGVPNType `
-GatewaySku $SKU `
-Asn $ASN `
-EnableBGP $true -EnableActiveActiveFeature Out-Null

#endregion

#region: Obtener las direcciones IP Públicas y direcciones BGP Peer Addresses:
​​
#Información de la Virtual Network Gateway:

$VNGInfo = Get-AzVirtualNetworkGateway -Name $VNGName  `
-ResourceGroupName $ResourceGroup

#Información de las direcciones IP Públicas:

​​​$VNGIP01Name "VNGIP01"         #Nombre Dirección IP Pública 01
​​​​$VNGIP02Name = "VNGIP02​"​         #Nombre Dirección IP Pública 02​

$VNGPublicIP01 = Get-AzPublicIPAddress -Name $VNGIP01Name  `
-ResourceGroupName $ResourceGroup 
​​​​​​​$VNGPublicIP02 = Get-AzPublicIPAddress -Name $VNGIP02Name `
-ResourceGroupName $ResourceGroup 
​​#Información de las direcciones BGP Peer:​

$BGPPeerIPs = ($VNGInfo.BgpSettings).BgpPeeringAddress
$BGPPeerIPs = $BGPPeerIPs.Split(",")​

#Datos de direcciones:    

Write-Host "Dirección Ip Pública 01: " $VNGPublicIP01.IpAddress
Write-Host "BGP Peer IP Address 01 : " $BGPPeerIPs[0]

Write-Host "Dirección Ip Pública 02: " $VNGPublicIP02.IpAddress
​​Write-Host "BGP Peer IP Address 02 : " $BGPPeerIPs[1]​

​#endregion

​P​a​​​so 4.​- Creación de las Local Network Gateways. ​​

Recordemos que una Local Network Gateway es la representación del dispositivo VPN en las instalaciones físicas. Su información debe ser definida en Azure de manera tal que se pueda establecer el vínculo lógico (conexión) entre ésta y la Virtual Network Gateway recién creada. Si estamos trabajando con el protocolo de enrutamiento BGP, a este nivel también debemos configurarlo, pero esta vez indicando el Autonomous System Number reservado para las instalaciones físicas, el cual debe ser diferente al que ya hemos definido en Azure para la Virtual Network Gateway. Además, al configurar este recurso en Azure debemos especificar los espacios de direcciones que estamos publicando a través del dispositivo VPN de las instalaciones físicas. Una vez más, si estamos utilizando BGP, sólo será necesario indicar el espacio de direcciones correspondiente a la dirección BGP Peer del dispositivo VPN. Recordemos entonces que en el modelo de interconexión que estamos implementando, consideramos dos dispositivos VPN en las instalaciones físicas, por lo que en este caso vamos a necesitar crear dos (2) Local Network Gateways. Los valores de las direcciones IP BGP Peer de los dispositivos VPN deben ser obtenidos directamente en los equipos por lo que va a ser necesario consultar la documentación específica al fabri​cante y la configuración aplicada. En la parte 3 de esta serie de artículos, ejemplificaremos un escenario de este tipo.
 

PowerS​hell. 

#region: Creación de las Local Network Gateway:

#Información de las Local Network Gateways:
 
​$LNGName01 "LNG-01"           #Nombre de la Local Network Gateway 01 
$LNGName02 "LNG-02"           #Nombre de la Local Network Gateway 02
LNGIP01 "200.51.X.Z"         #IP Pública de la Local Network Gateway 01
LNGIP02 "138.36.X.Z"         #IP Pública de la Local Network Gateway 02
LNGPref01 "172.21.C.0/24"    #Espacio de Direcciones Local Network Gateway 01
LNGPref02 "172.21.D.0/24"    #Espacio de Direcciones Local Network Gateway 02
LNGBGPIP01 "172.21.C.D"      #BGP Peer Address de la Local Network Gateway 01
LNGBGPIP01 "172.21.G.H"      #BGP Peer Address de la Local Network Gateway 02
LNGASN "64999"               #Autonomous System Number

​​#Creación Local Network Gateway 01 ​​:​

​New-AzLocalNetworkGateway -Name $LNGName01 `
-ResourceGroupName $ResourceGroup `
-Location $Location `
-GatewayIpAddress $LNGIP01 `
-AddressPrefix $LNGPref01 `
-Asn $LNGASN `
-BgpPeeringAddress $LNGBGPIP01 Out-Null

​#Creación Local Network Gateway 02:

​​​N​​ew-AzLocalNetworkGateway -Name $LNGName02 `
-ResourceGroupName $ResourceGroup `
-Location $Location `
-GatewayIpAddress $LNGIP02 `
-AddressPrefix $LNGPref02 `
-Asn $LNGASN `
-BgpPeeringAddress $LNGBGPIP02 Out-Null
​​
#endregion

Paso 5.- Creación de las Conexiones. ​

El último paso en la configuración inicial de los recursos para la interconexión Site es la vinculación de la Virtual Netwrok Gateway con las Local Network Gateways para lo cual definimos las Conexiones. Reforzando una vez más el concepto, la conexión define un vínculo entre dos elementos, pero en este caso uno de esos elementos – la Virtual Network Gateway – está compuesto de dos instancias debido a que está trabajando en modo Active-Active. De esta manera, al crear una ​Conexión entre un Virtual Network y una Local Network, estamos estableciendo dos (2) enlaces – uno para cada instancia de la Virtual Network Gateway. En resumen, vamos a crear dos (2) Conexiones: una hacia cada Local Network Gateway desde la Virtual Network Gateway, lo que se va a traducir en cuatro (4) túneles a la hora de configurar los dispositivos VPN locales. Otra consideración importante en relación a las conexiones es la Clave Compartida que se debe configurar tanto en su definición en Azure como en el dispositivo VPN local y que deben coincidir y mantenerse seguras para poder establecer la comunicación. 

​PowerShell.

#region: Creación de las Conexiones:

​​​​#Información de las Conexiones:

$ConnName01 "VNG-to-LNG01"   #Nombre de la Conexión hacia la Local Network 01
$ConnName02 "VNG-to-LNG02"   #Nombre de la Conexión hacia la Local Network 02
$SharedKeyConn01 ="GenKey01"  #Clave Compartida Conexión 01
$SharedKeyConn02 ="GenKey02"  #Clave Compartida Conexión 02 

#Información de la Virtual Network Gateway: ​​

​$VNGInfo Get-AzVirtualNetworkGateway -Name $VNGName `
​​​​​​​​​​​​​​​​-​ResourceGroupName $ResourceGroup

#Información de la Local Network Gateway 01:

​$​​LNGName01 "LNG-01"                #Nombre de la Local Network Gateway 01
$LNGInfo01 Get-AzLocalNetworkGateway -Name $LNGWName01 `
​​​​​​​​​-ResourceGroupName $ResourceGroup

​#Información de la Local Network Gateway 02:

​​​$LNGName02 "LNG-02"                #Nombre de la Local Network Gateway 02

$LNGInfo02 Get-AzLocalNetworkGateway -Name $LNGWName02 `

-ResourceGroupName $ResourceGroup

​#Creación Conexión Virtual Network Gateway hacia Local Network Gateway 01

​​​New-AzVirtualNetworkGatewayConnection -Name $ConnName01 `
-ResourceGroupName $ResourceGroup `
-VirtualNetworkGateway1 $VNGInfo `
-LocalNetworkGateway2 $LNGInfo01 `
-Location $Location `
-ConnectionType IPsec `
-SharedKey $SharedKeyConn01 `
-EnableBGP $True Out-Null

​#Creación Conexión Virtual Network Gateway hacia Local Network Gateway 02

​​New-AzVirtualNetworkGatewayConnection -Name $ConnName02 `
-ResourceGroupName $ResourceGroup `
-VirtualNetworkGateway1 $VNGInfo `
-LocalNetworkGateway2 $LNGInfo02 `
-Location $Location `
-ConnectionTypeIPsec `
-SharedKey $SharedKeyConn02 `
-EnableBGP $True Out-Null
 #endregion

Próximos Pasos.​​ 

Enhorabuena, hemos implementado nuestra plataforma de recursos requeridos en Azure para la interconexión Site-to-Site. Pero aún no hemos terminado, puesto que nos falta realizar/verificar la configuración de los dispositivos VPN en las instalaciones físicas, y luego verificar las conexiones para asegurarnos ​que todo está funcionando como esperamos. En la Parte 3​Parte 4 de esta serie de artículos vamos a explorar esas actividades.


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. 

___________________________________________________________________________________________________________________________________________________