Creación de una red virtual con una conexión VPN de sitio a sitio mediante PowerShell
Este artículo muestra cómo usar PowerShell 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:
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.
Azure PowerShell
En este artículo se usan cmdlets de PowerShell. Para ejecutar los cmdlets, puede usar Azure Cloud Shell. Cloud Shell es un servicio de shell interactivo gratuito que se puede usar para ejecutar los pasos de este artículo. Tiene las herramientas comunes de Azure preinstaladas y configuradas para usarlas en la cuenta.
Para abrir Cloud Shell, seleccione Abrir Cloud Shell en la esquina superior derecha de un bloque de código. También puede abrir Cloud Shell en una pestaña independiente desde https://shell.azure.com/powershell. Seleccione Copiar para copiar los bloques de código, péguelos en Cloud Shell y, a continuación, seleccione la tecla Entrar para ejecutarlos.
También puede instalar y ejecutar los cmdlets de Azure PowerShell localmente en el equipo. Los cmdlets de PowerShell se actualizan con frecuencia. Si no ha instalado la última versión, los valores especificados en las instrucciones pueden dar lugar a errores. Para buscar las versiones de Azure PowerShell instaladas en el equipo, use el cmdlet Get-Module -ListAvailable Az
. Para instalar la actualización, vea Instalación del módulo de Azure PowerShell.
Valores de ejemplo
Los ejemplos de este artículo utilizan los valores siguientes. Puede usar estos 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 = East US
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>
Local Address Prefixes = 10.0.0.0/24, 20.0.0.0/24
Gateway Name = VNet1GW
PublicIP = VNet1GWPIP
Gateway IP Config = gwipconfig1
VPNType = RouteBased
GatewayType = Vpn
ConnectionName = VNet1toSite1
1. Creación de una red virtual y una puerta de enlace
Si no tiene una red virtual, créela. 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 duplicados en ambos lados de la conexión VPN, el tráfico no enruta la manera en que podría esperar que lo haga. 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.
Acerca de la subred de 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.
Importante
No se admiten grupos de seguridad de red (NSG) en la subred de puerta de enlace. La asociación de grupos de seguridad de red a esta subred podría causar que la puerta de enlace de la red virtual (puertas de enlace de ExpressRoute y VPN) dejase 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?
Creación de una red virtual y una puerta de enlace
Este ejemplo crea una red virtual y una subred de la puerta de enlace. Si ya tiene una red virtual que necesite agregar a una subred de puerta de enlace, consulte Para agregar una subred de puerta de enlace a una red virtual que ya ha creado.
Cree un grupo de recursos:
New-AzResourceGroup -Name TestRG1 -Location 'East US'
Cree la red virtual.
Establezca las variables.
$subnet1 = New-AzVirtualNetworkSubnetConfig -Name 'GatewaySubnet' -AddressPrefix 10.1.255.0/27 $subnet2 = New-AzVirtualNetworkSubnetConfig -Name 'Frontend' -AddressPrefix 10.1.0.0/24
Cree la red virtual.
New-AzVirtualNetwork -Name VNet1 -ResourceGroupName TestRG1 ` -Location 'East US' -AddressPrefix 10.1.0.0/16 -Subnet $subnet1, $subnet2
Para agregar una subred de puerta de enlace a una red virtual que ya ha creado
Use los pasos de esta sección si ya tiene una red virtual, aunque deberá agregar una subred de puerta de enlace.
Establezca las variables.
$vnet = Get-AzVirtualNetwork -ResourceGroupName TestRG1 -Name VNet1
Cree la subred de la puerta de enlace.
Add-AzVirtualNetworkSubnetConfig -Name 'GatewaySubnet' -AddressPrefix 10.1.255.0/27 -VirtualNetwork $vnet
Establezca la configuración.
Set-AzVirtualNetwork -VirtualNetwork $vnet
2. Creación de la puerta de enlace de red local
La puerta de enlace de red local (LNG) suele hacer referencia a la ubicación local. No es lo mismo que una puerta de enlace de red. 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.
Seleccione uno de los ejemplos siguientes. Los valores usados en los ejemplos son:
- GatewayIPAddress es la dirección IP del dispositivo VPN local.
- AddressPrefix es el espacio de direcciones local.
Ejemplo de prefijo de dirección único
New-AzLocalNetworkGateway -Name Site1 -ResourceGroupName TestRG1 `
-Location 'East US' -GatewayIpAddress '23.99.221.164' -AddressPrefix '10.0.0.0/24'
Ejemplo de prefijo de varias direcciones
New-AzLocalNetworkGateway -Name Site1 -ResourceGroupName TestRG1 `
-Location 'East US' -GatewayIpAddress '23.99.221.164' -AddressPrefix @('20.0.0.0/24','10.0.0.0/24')
3. 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.
Solicite una dirección IP pública para la puerta de enlace VPN de la red virtual.
$gwpip= New-AzPublicIpAddress -Name VNet1GWPIP -ResourceGroupName TestRG1 -Location 'East US' -AllocationMethod Static -Sku Standard
4. Creación de la configuración de direccionamiento IP de la puerta de enlace
La configuración de puerta de enlace define la subred ("GatewaySubnet") y la dirección IP pública que se van a usar. Use el ejemplo siguiente para crear la configuración de la puerta de enlace:
$vnet = Get-AzVirtualNetwork -Name VNet1 -ResourceGroupName TestRG1
$subnet = Get-AzVirtualNetworkSubnetConfig -Name 'GatewaySubnet' -VirtualNetwork $vnet
$gwipconfig = New-AzVirtualNetworkGatewayIpConfig -Name gwipconfig1 -SubnetId $subnet.Id -PublicIpAddressId $gwpip.Id
5. 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. Los valores siguientes se usan en el ejemplo:
- El valor -GatewayType 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. Por ejemplo, otras configuraciones de puerta de enlace podrían requerir -GatewayType ExpressRoute.
- El valor de -VpnType puede ser RouteBased (la llamada puerta de enlace dinámica en algunos documentos) o PolicyBased (la llamada puerta de enlace estática en algunos documentos). Para más información sobre los tipos de Puertas de enlace de VPN, consulte Información acerca de VPN Gateway.
- 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. Si se produce un error al crear la puerta de enlace VPN con respecto a - GatewaySku, compruebe que tiene instalada la versión más reciente de los cmdlets de PowerShell.
New-AzVirtualNetworkGateway -Name VNet1GW -ResourceGroupName TestRG1 `
-Location 'East US' -IpConfigurations $gwipconfig -GatewayType Vpn `
-VpnType RouteBased -GatewaySku VpnGw2
6. 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. Para configurar el dispositivo VPN, necesita los elementos siguientes:
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 con PowerShell, utilice el siguiente ejemplo. En este ejemplo, VNet1GWPIP es el nombre del recurso de dirección IP pública que creó en un paso anterior.
Get-AzPublicIpAddress -Name VNet1GWPIP -ResourceGroupName TestRG1
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.
Los siguientes vínculos le ofrecen más información de configuración:
Para obtener más información sobre los dispositivos VPN compatibles, consulte Acerca de los dispositivos VPN.
Antes de configurar el dispositivo VPN, compruebe que no haya problemas conocidos de compatibilidad para el dispositivo.
Para obtener vínculos a los valores de configuración del dispositivo, consulte Dispositivos VPN validados. Proporcionamos los vínculos de configuración del dispositivo en la medida de lo posible, pero siempre es mejor comprobar con el fabricante del dispositivo la información de configuración más reciente.
La lista muestra las versiones que hemos probado. Si la versión del sistema operativo del dispositivo VPN no aparece en la lista, podría ser compatible. Consulte con el fabricante del dispositivo.
Para obtener información básica sobre la configuración del dispositivo VPN, vea Información general sobre las configuraciones de dispositivo VPN asociado.
Para obtener información sobre cómo modificar los ejemplos de configuración de dispositivo, consulte Edición de ejemplos.
Para conocer los requisitos criptográficos, consulte About cryptographic requirements and Azure VPN gateways (Acerca de los requisitos criptográficos y la puertas de enlace de VPN de Azure).
Para obtener más información sobre los parámetros que necesita para completar la configuración, consulte Parámetros de IPsec/IKE predeterminados. La información incluye la versión de IKE, el grupo Diffie-Hellman (DH), el método de autenticación, los algoritmos de cifrado y hash, la duración de la asociación de seguridad (SA), la confidencialidad directa total (PFS) y la detección de elementos del mismo nivel inactivos (DPD).
Para conocer los pasos de la configuración de la directiva de protocolo de seguridad de Internet/intercambio de claves por red, consulte Configure custom IPsec/IKE connection policies for S2S VPN and VNet-to-VNet (Configuración personalizada de la directiva de protocolo de seguridad de Internet/intercambio de políticas de conexiones por red para conexiones VPN de sitio a sitio y entre redes virtuales).
Para conectar con varios dispositivos VPN basados en directivas, consulte Conexión de una puerta de enlace de VPN a varios dispositivos VPN locales basados en directivas.
7. Creación de la conexión VPN
Ahora va a crear la conexión VPN de sitio a sitio entre la puerta de enlace de red virtual y el dispositivo VPN. Asegúrese de reemplazar los valores por los suyos. La clave compartida debe coincidir con el valor usado para la configuración del dispositivo VPN. Tenga en cuenta que el valor de '-ConnectionType' para la configuración sitio a sitio es IPsec.
Establezca las variables.
$gateway1 = Get-AzVirtualNetworkGateway -Name VNet1GW -ResourceGroupName TestRG1 $local = Get-AzLocalNetworkGateway -Name Site1 -ResourceGroupName TestRG1
Cree la conexión.
New-AzVirtualNetworkGatewayConnection -Name VNet1toSite1 -ResourceGroupName TestRG1 ` -Location 'East US' -VirtualNetworkGateway1 $gateway1 -LocalNetworkGateway2 $local ` -ConnectionType IPsec -SharedKey 'abc123'
Pasado un momento, se establecerá la conexión.
8. Comprobación de la conexión VPN
Hay varias maneras diferentes de comprobar la conexión VPN.
Puede comprobar que la conexión se realizó correctamente mediante el uso del cmdlet "Get-AzVirtualNetworkGatewayConnection", con o sin "-Debug".
Puede usar el siguiente ejemplo de cmdlet, configurando los valores para que coincidan con los tuyos. Cuando se le pida, seleccione "A" para ejecutar "todo". En el ejemplo, " -Name" hace referencia al nombre de la conexión que desea probar.
Get-AzVirtualNetworkGatewayConnection -Name VNet1toSite1 -ResourceGroupName TestRG1
Cuando el cmdlet haya finalizado, consulte los valores. En el ejemplo siguiente, el estado de conexión aparece como "Conectado" y pueden verse los bytes de entrada y salida.
"connectionStatus": "Connected", "ingressBytesTransferred": 33509044, "egressBytesTransferred": 4142431
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.
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" }
Comprueba que está conectado a la red virtual.
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.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.
Para modificar los prefijos de dirección IP de una puerta de enlace de red local
Si cambian los prefijos de las direcciones IP que desea enrutar a una ubicación local, puede modificar la puerta de enlace de red local. Al usar estos ejemplos, modifique los valores para que coincidan con su entorno.
Para agregar prefijos de dirección adicionales:
Establezca la variable para LocalNetworkGateway.
$local = Get-AzLocalNetworkGateway -Name Site1 -ResourceGroupName TestRG1
Modifique los prefijos. Los valores especificados sobrescriben los valores anteriores.
Set-AzLocalNetworkGateway -LocalNetworkGateway $local ` -AddressPrefix @('10.101.0.0/24','10.101.1.0/24','10.101.2.0/24')
Para quitar prefijos de dirección:
Omita los prefijos que ya no necesite. En este ejemplo, ya no necesitamos el prefijo 10.101.2.0/24 (del ejemplo anterior), por lo que se actualizará la puerta de enlace de red local y se excluirá ese prefijo.
Establezca la variable para LocalNetworkGateway.
$local = Get-AzLocalNetworkGateway -Name Site1 -ResourceGroupName TestRG1
Establezca la puerta de enlace con los prefijos actualizados.
Set-AzLocalNetworkGateway -LocalNetworkGateway $local ` -AddressPrefix @('10.101.0.0/24','10.101.1.0/24')
Para modificar la dirección IP de una puerta de enlace de red local
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. Al modificar este valor, también puede modificar al mismo tiempo los prefijos de dirección. Asegúrese de usar el nombre existente de la puerta de enlace de la red local para sobrescribir la configuración actual. Si usa otro nombre, creará una nueva puerta de enlace de red local, en lugar de sobrescribir la existente.
New-AzLocalNetworkGateway -Name Site1 `
-Location "East US" -AddressPrefix @('10.101.0.0/24','10.101.1.0/24') `
-GatewayIpAddress "5.4.3.2" -ResourceGroupName TestRG1
Para eliminar una conexión de puerta de enlace
Si no conoce el nombre de la conexión, puede encontrarlo mediante el cmdlet "Get-AzVirtualNetworkGatewayConnection".
Remove-AzVirtualNetworkGatewayConnection -Name VNet1toSite1 `
-ResourceGroupName TestRG1
Pasos siguientes
- Una vez completada la conexión, puede agregar máquinas virtuales a las redes virtuales. Consulte Virtual Machines para más información.
- Para más información acerca de BGP, consulte Información general de BGP y Configuración de BGP.
- Para información acerca de cómo crear una conexión VPN de sitio a sitio mediante una plantilla de Azure Resource Manager, consulte Creación de una conexión VPN de sitio a sitio.
- Para obtener información acerca de cómo crear una conexión VPN entre redes virtuales mediante una plantilla de Azure Resource Manager, consulte Deploy HBase geo replication (Implementación de replicación geográfica de HBase).