Creación de una red virtual con una conexión VPN de sitio a sitio mediante la CLI

Este artículo muestra cómo utilizar la CLI de Azure para crear una conexión de puerta de enlace VPN de sitio a sitio desde la red local a la red virtual. Los pasos descritos en este artículo se aplican al modelo de implementación de Resource Manager. También se puede crear esta configuración con una herramienta o modelo de implementación distintos, mediante la selección de una opción diferente en la lista siguiente:

Site-to-site VPN Gateway cross-premises connection diagram for CLI article.

Se utiliza una conexión de puerta de enlace VPN de sitio a sitio para conectar su red local a una red virtual de Azure a través de un túnel VPN de IPsec/IKE (IKEv1 o IKEv2). Este tipo de conexión requiere un dispositivo VPN local que tenga una dirección IP pública asignada. Para más información acerca de las puertas de enlace VPN, consulte Acerca de VPN Gateway.

Antes de empezar

Antes de comenzar con la configuración, compruebe que se cumplen los criterios siguientes:

  • Asegúrese de tener un dispositivo VPN compatible y alguien que pueda configurarlo. Para más información acerca de los dispositivos VPN compatibles y su configuración, consulte Acerca de los dispositivos VPN.
  • Compruebe que tiene una dirección IPv4 pública externa para el dispositivo VPN.
  • Si no está familiarizado con los intervalos de direcciones IP ubicados en la red local, necesita trabajar con alguien que pueda proporcionarle estos detalles. Al crear esta configuración, debe especificar los prefijos del intervalo de direcciones IP al que Azure enrutará la ubicación local. Ninguna de las subredes de la red local puede superponerse con las subredes de la red virtual a la que desea conectarse.
  • En este artículo se necesita la versión 2.0 o posterior de la CLI de Azure. Si usa Azure Cloud Shell, ya está instalada la versión más reciente.

Valores de ejemplo

Puede usar los siguientes valores para crear un entorno de prueba o hacer referencia a ellos para comprender mejor los ejemplos de este artículo:

#Example values

VnetName                = VNet1 
ResourceGroup           = TestRG1 
Location                = eastus 
AddressSpace            = 10.1.0.0/16 
SubnetName              = Frontend
Subnet                  = 10.1.0.0/24 
GatewaySubnet           = 10.1.255.0/27 
LocalNetworkGatewayName = Site1
LNG Public IP           = <On-premises VPN device IP address>
LocalAddrPrefix1        = 10.0.0.0/24
LocalAddrPrefix2        = 20.0.0.0/24   
GatewayName             = VNet1GW 
PublicIP                = VNet1GWIP 
GatewayType             = Vpn 
ConnectionName          = VNet1toSite2

1. su suscripción

Si decide ejecutar la CLI de forma local, conéctese a su suscripción. Si está usando Azure Cloud Shell en el explorador, no necesitará conectarse a su suscripción. Se conectará automáticamente en Azure Cloud Shell. Sin embargo, es posible que quiera comprobar si está usando la suscripción correcta después de conectarse.

Inicie sesión en la suscripción de Azure con el comando az login y siga las instrucciones que aparecen en pantalla. Para más información sobre el inicio de sesión, consulte Introducción a la CLI de Azure.

az login

Si tiene más de una suscripción de Azure, enumere las suscripciones de la cuenta.

az account list --all

Especifique la suscripción que desea usar.

az account set --subscription <replace_with_your_subscription_id>

2. Crear un grupo de recursos

En el ejemplo siguiente se crea un grupo de recursos con el nombre 'TestRG1' en la ubicación 'eastus'. Si ya tiene un grupo de recursos en la región que desea crear la red virtual, puede utilizarlo.

az group create --name TestRG --location eastus

3. Creación de una red virtual

Si aún no tiene una red virtual, créela con el comando az network vnet create. Al crear una red virtual, compruebe que los espacios de direcciones especificados no se superponen con los espacios de direcciones que existen en la red local.

Nota:

Para que esta red virtual se conecte a una ubicación local, debe coordinarse con el administrador de la red local para delimitar un intervalo de direcciones IP que pueda usar específicamente para esta red virtual. Si existe un intervalo de direcciones duplicado en ambos lados de la conexión VPN, el tráfico no se enrutará como cabría esperar. Además, si desea conectar esta red virtual a otra red virtual, el espacio de direcciones no se puede superponer con otra red virtual. Por consiguiente, tenga cuidado al planear la configuración de red.

En el siguiente ejemplo se crea una red virtual denominada “VNet1” y una subred llamada “Subnet1”.

az network vnet create --name VNet1 --resource-group TestRG1 --address-prefix 10.1.0.0/16 --location eastus --subnet-name Subnet1 --subnet-prefix 10.1.0.0/24

4. Creación de la subred de la puerta de enlace

La puerta de enlace de red virtual usa una subred concreta llamada la subred de la puerta de enlace. Esta subred forma parte del intervalo de direcciones IP de red virtual que se especifican al configurar una red virtual. Contiene las direcciones IP que usan los recursos y servicios de puerta de enlace de la red virtual. La subred debe llamarse "GatewaySubnet" para que Azure implemente los recursos de la puerta de enlace. No se puede especificar otra subred en la que implementar los recursos de la puerta de enlace. Si no dispone de una subred llamada "GatewaySubnet", al crear la puerta de enlace de VPN, se producirá un error.

Al crear la subred de puerta de enlace, especifique el número de direcciones IP que contiene la subred. El número de direcciones IP que se necesitan depende de la configuración de puerta de enlace de VPN que se desea crear. Algunas configuraciones requieren más direcciones IP que otras. Es aconsejable crear una subred de puerta de enlace que use /27 o /28.

Si ve un error en el que se indica que el espacio de direcciones se solapa con una subred o que la subred no se encuentra dentro del espacio de direcciones de la red virtual, compruebe el intervalo de direcciones de la red virtual. Es posible que no tenga suficientes direcciones IP disponibles en el intervalo de direcciones que creó para la red virtual. Por ejemplo, si la subred predeterminada engloba todo el intervalo de direcciones, no quedan direcciones IP para crear más subredes. Puede ajustar las subredes en el espacio de direcciones existente para liberar direcciones IP o especificar un intervalo de direcciones adicionales y crear en él la subred de la puerta de enlace.

Use el comando az network vnet subnet create para la subred de la puerta de enlace.

az network vnet subnet create --address-prefix 10.1.255.0/27 --name GatewaySubnet --resource-group TestRG1 --vnet-name VNet1

Importante

Cuando trabajes con subredes de la puerta de enlace, evita asociar un grupo de seguridad de red (NSG) a la subred de la puerta de enlace. La asociación de un grupo de seguridad de red a esta subred puede causar que la puerta de enlace de la red virtual (VPN, puerta de enlace de ExpressRoute) deje de funcionar como cabría esperar. Para más información acerca de los grupos de seguridad de red, consulte ¿Qué es un grupo de seguridad de red?

5. Creación de la puerta de enlace de red local

La puerta de enlace de red local suele hacer referencia a la ubicación local. Asigne al sitio un nombre al que Azure pueda hacer referencia y, luego, especifique la dirección IP del dispositivo VPN local con la que creará una conexión. Especifique también los prefijos de dirección IP que se enrutarán a través de la puerta de enlace VPN al dispositivo VPN. Los prefijos de dirección que especifique son los prefijos que se encuentran en la red local. Puede actualizar fácilmente estos prefijos si cambia su red local.

Use los valores siguientes:

  • --gateway-ip-address es la dirección IP del dispositivo VPN local.
  • --local-address-prefixes son los espacios de direcciones locales.

Use el comando az network local-gateway create para agregar una puerta de enlace de red local con varios prefijos de direcciones:

az network local-gateway create --gateway-ip-address 23.99.221.164 --name Site2 --resource-group TestRG1 --local-address-prefixes 10.0.0.0/24 20.0.0.0/24

6. Solicitud de una dirección IP pública

Una puerta de enlace VPN tiene que tener una dirección IP pública. Primero se solicita el recurso de la dirección IP y, después, se hace referencia a él al crear la puerta de enlace de red virtual. La dirección IP se asigna dinámicamente al recurso cuando se crea la puerta de enlace VPN. La única vez que la dirección IP pública cambia es cuando la puerta de enlace se elimina y se vuelve a crear. No cambia cuando se cambia el tamaño, se restablece o se realizan actualizaciones u otras operaciones de mantenimiento interno de una puerta de enlace VPN.

Use el comando az network public-ip create para solicitar una dirección IP pública.

az network public-ip create --name VNet1GWIP --resource-group TestRG1 --allocation-method Static --sku Standard

7. Creación de la puerta de enlace VPN

Cree la puerta de enlace VPN de la red virtual. La creación de una puerta de enlace suele tardar 45 minutos o más, según la SKU de la puerta de enlace seleccionada.

Use los valores siguientes:

  • El valor ---gateway-type para una configuración de sitio a sitio es Vpn. El tipo de puerta de enlace siempre es específico de la configuración que se vaya a implementar. Para más información, consulte Tipos de puerta de enlace.
  • El tipo --vpn es RouteBased (denominado puerta de enlace dinámica en alguna documentación).
  • Seleccione la SKU de la puerta de enlace que desea utilizar. Hay limitaciones de configuración para determinadas SKU. Consulte SKU de puertas de enlace para más información.

Cree la puerta de enlace VPN con el comando az network vnet-gateway create. Si este comando se ejecuta con el parámetro '--no-wait', no se verán los comentarios o resultados. Este parámetro permite que la puerta de enlace se cree en segundo plano. La creación de una puerta de enlace tarda 45 minutos o más.

az network vnet-gateway create --name VNet1GW --public-ip-address VNet1GWIP --resource-group TestRG1 --vnet VNet1 --gateway-type Vpn --vpn-type RouteBased --sku VpnGw1 --no-wait 

8. Configurar el dispositivo VPN

Las conexiones de sitio a sitio a una red local requieren un dispositivo VPN. En este paso, se configura el dispositivo VPN. Al configurar el dispositivo VPN, necesita lo siguiente:

  • Una clave compartida. Se trata de la misma clave compartida que se especifica al crear la conexión VPN de sitio a sitio. En estos ejemplos se utiliza una clave compartida básica. Se recomienda que genere y utilice una clave más compleja.

  • La dirección IP pública de la puerta de enlace de red virtual. Puede ver la dirección IP pública mediante Azure Portal, PowerShell o la CLI. Para buscar la dirección IP pública de la puerta de enlace de red virtual, use el comando az network public-ip list. Para facilitar la lectura, la salida muestra la lista de direcciones IP públicas en formato de tabla.

    az network public-ip list --resource-group TestRG1 --output table
    

Para descargar el script de configuración de dispositivos VPN:

En función del dispositivo VPN que tenga, es posible que pueda descargar un script de configuración del mismo. Para más información, consulte Descarga de scripts de configuración de dispositivos VPN para conexiones VPN S2S.

En los siguientes vínculos encontrará más información acerca de la configuración:

9. Creación de la conexión VPN

Creación de la conexión VPN de sitio a sitio entre la puerta de enlace de la red virtual y el dispositivo VPN local. Preste especial atención al valor de la clave compartida, que debe coincidir con el valor de la clave compartida configurada para el dispositivo VPN.

Cree la conexión mediante el comando az network vpn-connection create.

az network vpn-connection create --name VNet1toSite2 --resource-group TestRG1 --vnet-gateway1 VNet1GW -l eastus --shared-key abc123 --local-gateway2 Site2

Pasado un momento, se establecerá la conexión.

10. Comprobación de la conexión VPN

Puede comprobar que la conexión se realizó correctamente mediante el comando az network vpn-connection show. En el ejemplo, "-Name" hace referencia al nombre de la conexión que quiere probar. Mientras la conexión aún se está estableciendo, su estado de conexión muestra "Conectando". Una vez establecida la conexión, el estado cambia a "Conectado". Modifica el siguiente ejemplo con los valores para tu entorno.

az network vpn-connection show --name <connection-name> --resource-group <resource-group-name>

Si desea usar otro método para comprobar la conexión, consulte Comprobación de una conexión de VPN Gateway.

Para conectarse a una máquina virtual

Puedes conectarte a una máquina virtual que esté implementada en la red virtual mediante la creación de una conexión de Escritorio remoto a la máquina virtual. La mejor manera de comprobar inicialmente que puede conectarse a la máquina virtual es hacerlo mediante su dirección IP privada, en lugar del nombre de equipo. Con este método prueba si puede conectarse, no si la resolución de nombres está configurada correctamente.

  1. Busque la dirección IP privada. Para buscar la dirección IP privada de una máquina virtual, examina las propiedades en Azure Portal o usa PowerShell.

    • Azure Portal: Ubica la máquina virtual en Azure Portal. Vea las propiedades de la máquina virtual. Se enumera la dirección IP privada.

    • PowerShell: Utiliza el ejemplo para ver una lista de las máquinas virtuales y las direcciones IP privadas de los grupos de recursos. No es preciso modificar el ejemplo para usarlo.

      $VMs = Get-AzVM
      $Nics = Get-AzNetworkInterface | Where-Object VirtualMachine -ne $null
      
      foreach ($Nic in $Nics) {
      $VM = $VMs | Where-Object -Property Id -eq $Nic.VirtualMachine.Id
      $Prv = $Nic.IpConfigurations | Select-Object -ExpandProperty PrivateIpAddress
      $Alloc = $Nic.IpConfigurations | Select-Object -ExpandProperty PrivateIpAllocationMethod
      Write-Output "$($VM.Name): $Prv,$Alloc"
      }
      
  2. Comprueba que está conectado a la red virtual.

  3. Abre Conexión a Escritorio remoto, para lo que debes escribir RDP o Conexión a Escritorio remoto en el cuadro de búsqueda de la barra de tareas. Luego, selecciona Conexión a Escritorio remoto. También puedes abrir Conexión a Escritorio remoto con el comando mstsc de PowerShell.

  4. En Conexión a Escritorio remoto, escriba la dirección IP privada de la máquina virtual. Puedes seleccionar Mostrar opciones para ajustar parámetros adicionales y, después, conectarte.

Si tienes problemas para conectarte a una máquina virtual a través de tu conexión VPN, comprueba los siguientes puntos:

  • Compruebe que la conexión VPN se ha establecido correctamente.
  • Compruebe que se conecta a la dirección IP privada de la máquina virtual.
  • Si puedes conectarte a la máquina virtual mediante la dirección IP privada, pero no el nombre del equipo, comprueba que has configurado el DNS correctamente. Para más información acerca de cómo funciona la resolución de nombres para las máquinas virtuales, consulta Resolución de nombres para las máquinas virtuales e instancias de rol.

Para más información acerca de las conexiones RDP, consulte Solución de problemas de conexiones del Escritorio remoto a una máquina virtual de Azure.

Tareas comunes

Esta sección contiene comandos comunes que son útiles al trabajar con configuraciones de sitio a sitio. Para obtener la lista completa de los comandos de red de la CLI, consulte Azure CLI - Networking (CLI de Azure - Redes).

Para ver las puertas de enlace de la red local

Para ver una lista de las puertas de enlace de red local, use el comando az network local-gateway list.

az network local-gateway list --resource-group TestRG1

Para modificar los prefijos de dirección IP de la puerta de enlace de red local (sin conexión de puerta de enlace)

Si no dispone de una conexión de puerta de enlace y desea agregar o quitar prefijos de direcciones IP, utilice el mismo comando que se usa para crear la puerta de enlace de red local, az network local-gateway create. Este comando también se puede usar para actualizar la dirección IP de la puerta de enlace del dispositivo VPN. Para sobrescribir la configuración actual, utilice el nombre existente de la puerta de enlace de red local. Si usa otro nombre, creará una nueva puerta de enlace de red local, en lugar de sobrescribir la existente.

Cada vez que se realiza un cambio, debe especificarse toda la lista de prefijos, no solo los prefijos que se desea cambiar. Especifique solo los prefijos que desea conservar. En este caso, 10.0.0.0/24 y 20.0.0.0/24

az network local-gateway create --gateway-ip-address 23.99.221.164 --name Site2 -g TestRG1 --local-address-prefixes 10.0.0.0/24 20.0.0.0/24

Para modificar los prefijos de dirección IP de la puerta de enlace de red local (conexión de puerta de enlace existente)

Si tiene una conexión de puerta de enlace y desea agregar o quitar prefijos de direcciones IP, estos se pueden actualizar mediante az network local-gateway update. Esto tendrá como resultado un tiempo de inactividad para la conexión VPN. Al modificar los prefijos de direcciones IP, no preciso eliminar la puerta de enlace VPN.

Cada vez que se realiza un cambio, debe especificarse toda la lista de prefijos, no solo los prefijos que se desea cambiar. En este ejemplo, 10.0.0.0/24 y 20.0.0.0/24 ya están presentes. Agregamos los prefijos 30.0.0.0/24 y 40.0.0.0/24, y especificamos los cuatro prefijos al actualizar.

az network local-gateway update --local-address-prefixes 10.0.0.0/24 20.0.0.0/24 30.0.0.0/24 40.0.0.0/24 --name VNet1toSite2 -g TestRG1

Para modificar la puerta de enlace de red local "gatewayIpAddress"

Si el dispositivo VPN al que desea conectarse ha cambiado su dirección IP pública, debe modificar la puerta de enlace de red local para reflejar ese cambio. La dirección IP de puerta de enlace se puede cambiar sin quitar una conexión de puerta de enlace VPN existente (si tiene una). Para modificar la dirección IP de puerta de enlace, reemplace los valores "Site2" y "TestRG1" por los suyos propios mediante el comando az network local-gateway update.

az network local-gateway update --gateway-ip-address 23.99.222.170 --name Site2 --resource-group TestRG1

Compruebe que la dirección IP sea correcta en la salida:

"gatewayIpAddress": "23.99.222.170",

Para comprobar los valores de la clave compartida

Compruebe que el valor de la clave compartida es el mismo valor que utilizó para la configuración del dispositivo VPN. Si no es así, ejecute de nuevo la conexión con el valor del dispositivo, o actualice el dispositivo con el valor devuelto. Los valores deben coincidir. Para ver la clave compartida, use az network vpn-connection-list.

az network vpn-connection shared-key show --connection-name VNet1toSite2 --resource-group TestRG1

Para ver la dirección IP pública de la puerta de enlace de VPN

Para buscar la dirección IP pública de la puerta de enlace de red virtual, use el comando az network public-ip list. Para facilitar la lectura, la salida de este ejemplo tiene el formato preciso para mostrar la lista de direcciones IP públicas en formato de tabla.

az network public-ip list --resource-group TestRG1 --output table

Pasos siguientes