Configuración de conexiones ExpressRoute y de sitio a sitio coexistentes con PowerShell
En este artículo se le ayuda a configurar conexiones ExpressRoute y VPN de sitio a sitio que coexisten. Tener la posibilidad de configurar VPN de sitio a sitio y ExpressRoute tiene varias ventajas. Puede configurar una VPN de sitio a sitio como una ruta de acceso seguro de conmutación por error para ExpressRoute, o bien usar las VPN de sitio a sitio para conectarse a sitios que no están conectados mediante ExpressRoute. En este artículo se tratan los pasos para configurar ambos escenarios. Este artículo se aplica al modelo de implementación de Resource Manager.
La configuración de las conexiones coexistentes de VPN de sitio a sitio y ExpressRoute tiene varias ventajas:
- Puede configurar una VPN de sitio a sitio como una ruta de conmutación por error segura para ExpressRoute.
- Si lo desea, también puede usar redes VPN de sitio a sitio para conectarse a los sitios que no están conectados mediante ExpressRoute.
En este artículo, se explican los pasos para configurar ambos escenarios. Este artículo se aplica al modelo de implementación de Resource Manager y utiliza PowerShell. También puede configurar estos escenarios con Azure Portal, aunque la documentación aún no está disponible. Puede configurar cualquier puerta de enlace en primer lugar. Normalmente, no se experimenta ningún tiempo de inactividad cuando se agrega una nueva puerta de enlace o una conexión de puerta de enlace.
Nota:
Si desea crear una VPN de sitio a sitio a través de un circuito ExpressRoute, consulte Emparejamiento de VPN de sitio a sitio de Microsoft.
Límites y limitaciones
- Solo se admite la VPN Gateway basada en rutas. Debe usar una VPN Gateway basada en rutas. También puede usar una VPN Gateway basada en rutas con una conexión VPN configurada para "selectores de tráfico basados en directivas", tal y como se describe en Conexión a varios dispositivos VPN basados en directivas.
- Las configuraciones coexistentes de ExpressRoute-VPN Gateway no se admiten con la dirección IP pública de SKU básica.
- Si desea usar el proceso de enrutamiento de tránsito entre ExpressRoute y VPN, el ASN de Azure VPN Gateway se debe establecer en 65515 y debe usarse el servicio Azure Route Server. Azure VPN Gateway admite el protocolo de enrutamiento de BGP. Para que ExpressRoute y la VPN de Azure funcionen juntos, debe mantener el número de sistema autónomo de la puerta de enlace de VPN de Azure en su valor predeterminado, 65515. Si previamente ha seleccionado un ASN que no sea 65515 y cambia el valor a 65515, debe restablecer la puerta de enlace de VPN para que la configuración surta efecto.
- La subred de la puerta de enlace debe ser /27 o un prefijo más corto, como /26, /25. De lo contrario, recibirá un mensaje de error al agregar la puerta de enlace de red virtual de ExpressRoute.
Diseños de configuración
Configure una VPN de sitio a sitio como una ruta de acceso de conmutación por error para ExpressRoute
Puede configurar una conexión VPN de sitio a sitio como una copia de seguridad para la conexión de ExpressRoute. Esta conexión se aplica únicamente a las redes virtuales vinculadas a la ruta de acceso de emparejamiento privado de Azure. No hay ninguna solución de conmutación por error basada en VPN para servicios que sea accesible mediante el emparejamiento de Microsoft Azure. El circuito ExpressRoute siempre es el vínculo principal. Los datos fluyen a través de la ruta de acceso de la VPN de sitio a sitio solo si se produce un error en el circuito ExpressRoute. Para evitar el enrutamiento asimétrico, la configuración de red local también debería preferir el circuito ExpressRoute a través de la VPN de sitio a sitio. Si prefiere utilizar la ruta de ExpressRoute, dé mayor preferencia local a las rutas que reciben ExpressRoute.
Nota
Si tiene habilitado el emparejamiento de Microsoft para ExpressRoute, puede recibir la dirección IP pública de la puerta de enlace de VPN de Azure en la conexión de ExpressRoute. Para configurar la conexión VPN de sitio a sitio como copia de seguridad, debe configurar la red local para que la conexión VPN se enrute a Internet.
Si bien se prefiere la ruta del circuito ExpressRoute a la VPN de sitio a sitio cuando ambas rutas son las mismas, Azure utiliza la coincidencia de prefijo más larga para elegir la ruta hacia el destino del paquete.
Configuración de una VPN de sitio a sitio para conectarse a sitios no conectados mediante ExpressRoute
Puede configurar la red para sitios que se conectan directamente a Azure mediante una VPN de sitio a sitio y otros que se conectan a través de ExpressRoute.
Selección de los pasos a seguir
Hay dos conjuntos diferentes de procedimientos que puede elegir. El procedimiento de configuración que seleccione depende de si ya tiene una red virtual existente a la que quiere conectarse o si desea crear una nueva.
No tengo una red virtual y necesito crear una.
Si aún no tiene una red virtual, este procedimiento le guía en la creación de una nueva red virtual mediante el modelo de implementación de Resource Manager y la creación de nuevas conexiones VPN de sitio a sitio y ExpressRoute.
Ya tengo una red virtual del modelo de implementación de Resource Manager.
Puede que ya tenga una red virtual con una conexión VPN de sitio a sitio o una conexión ExpressRoute existentes. En este escenario, si la máscara de subred de la puerta de enlace es /28 o superior (/29, /30, etc.), deberá eliminar la puerta de enlace existente. Los pasos para configurar conexiones coexistentes para una red virtual existente le guían en la eliminación de la puerta de enlace y la creación de nuevas conexiones VPN de sitio a sitio y ExpressRoute.
Si elimina y crea de nuevo la puerta de enlace, experimentará un tiempo de inactividad en las conexiones entre locales. Sin embargo, las máquinas virtuales y los servicios pueden conectarse a través de Internet mientras se configura la puerta de enlace, si están configurados para ello.
Antes de empezar
En los pasos y ejemplos de este artículo se usan módulos de Az de Azure PowerShell. Para instalar módulos de Az localmente en el equipo, consulte Instalación de Azure PowerShell. Para obtener más información sobre el nuevo módulo Az, consulte Presentación del nuevo módulo Az de Azure PowerShell. Los cmdlets de PowerShell se actualizan con frecuencia. Si no está ejecutando la última versión, los valores especificados en las instrucciones pueden dar lugar a errores. Para buscar las versiones instaladas de PowerShell en el sistema, use el cmdlet Get-Module -ListAvailable Az
.
Puede usar Azure Cloud Shell para ejecutar la mayoría de los cmdlets de PowerShell y comandos de la CLI, en lugar de instalar Azure PowerShell o la CLI de forma local. Azure Cloud Shell es un shell interactivo gratuito que tiene herramientas comunes de Azure preinstaladas y se configura para usar con la cuenta. Para ejecutar cualquier código contenido en este artículo en Azure Cloud Shell, abra una sesión de Cloud Shell, utilice el botón Copiar en un bloque de código para copiar el código y péguelo en la sesión de Cloud Shell con Ctrl+Mayús+V en Windows y Linux, o Cmd+Mayús+V en macOS. El texto pegado no se ejecuta automáticamente, así que presione Entrar para ejecutarlo.
Hay unas cuantas maneras de iniciar Cloud Shell:
Este procedimiento le guía en la creación de una red virtual y conexiones de sitio a sitio y ExpressRoute que coexisten. Los cmdlets que se usan en esta configuración pueden ser ligeramente diferentes de aquellos con los que podría estar familiarizado. Asegúrese de usar los cmdlets especificados en estas instrucciones.
Inicie sesión y seleccione su suscripción.
Si está usando Azure Cloud Shell, iniciará sesión automáticamente en su cuenta de Azure después de hacer clic en "Probar". Para iniciar sesión de forma local, abra la consola de PowerShell con privilegios elevados y ejecute el cmdlet para conectarse.
Connect-AzAccount
Si tiene más de una suscripción, obtenga una lista de las suscripciones de Azure.
Get-AzSubscription
Especifique la suscripción que desea usar.
Select-AzSubscription -SubscriptionName "Name of subscription"
Definir variables y crear un grupo de recursos.
$location = "Central US" $resgrp = New-AzResourceGroup -Name "ErVpnCoex" -Location $location $VNetASN = 65515
Cree una red virtual que incluya la
GatewaySubnet
. Para más información acerca de cómo crear una red virtual en Azure, consulte Create a virtual network (Creación de una red virtual). Para más información acerca de cómo crear subredes, consulte Incorporación de una subredImportante
La subred de puerta de enlace debe ser /27 o un prefijo más corto, por ejemplo, /26 o /25.
Crear una nueva red virtual.
$vnet = New-AzVirtualNetwork -Name "CoexVnet" -ResourceGroupName $resgrp.ResourceGroupName -Location $location -AddressPrefix "10.200.0.0/16"
Agregue dos subredes denominadas App y GatewaySubnet.
Add-AzVirtualNetworkSubnetConfig -Name "App" -VirtualNetwork $vnet -AddressPrefix "10.200.1.0/24" Add-AzVirtualNetworkSubnetConfig -Name "GatewaySubnet" -VirtualNetwork $vnet -AddressPrefix "10.200.255.0/24"
Guarde la configuración de red virtual.
$vnet = Set-AzVirtualNetwork -VirtualNetwork $vnet
A continuación, cree la puerta de enlace de la VPN de sitio a sitio. Para más información sobre la configuración de VPN Gateway, consulte Creación de una red virtual con una conexión de sitio a sitio mediante PowerShell. GatewaySku solamente es compatible con las puertas de enlace de VPN VpnGw1, VpnGw2, VpnGw3, Standard y HighPerformance. Las configuraciones de la coexistencia de ExpressRoute-VPN Gateway no se admiten en la SKU de nivel Básico. El valor de VpnType debe ser RouteBased.
$gwSubnet = Get-AzVirtualNetworkSubnetConfig -Name "GatewaySubnet" -VirtualNetwork $vnet $gwIP = New-AzPublicIpAddress -Name "VPNGatewayIP" -ResourceGroupName $resgrp.ResourceGroupName -Location $location -AllocationMethod Dynamic $gwConfig = New-AzVirtualNetworkGatewayIpConfig -Name "VPNGatewayIpConfig" -SubnetId $gwSubnet.Id -PublicIpAddressId $gwIP.Id New-AzVirtualNetworkGateway -Name "VPNGateway" -ResourceGroupName $resgrp.ResourceGroupName -Location $location -IpConfigurations $gwConfig -GatewayType "Vpn" -VpnType "RouteBased" -GatewaySku "VpnGw1"
Azure VPN Gateway admite el protocolo de enrutamiento de BGP. Para especificar el ASN (número AS) de la red virtual, agregue la marca
-Asn
al siguiente comando. No se especifican los valores predeterminados del parámetroAsn
para el número AS en 65515.$azureVpn = New-AzVirtualNetworkGateway -Name "VPNGateway" -ResourceGroupName $resgrp.ResourceGroupName -Location $location -IpConfigurations $gwConfig -GatewayType "Vpn" -VpnType "RouteBased" -GatewaySku "VpnGw1"
Nota:
Para las puertas de enlace coexistentes, debe usar el ASN predeterminado: 65515. Para obtener más información, consulte límites y limitaciones.
Puede encontrar la IP de emparejamiento de BGP y el número AS que Azure utiliza para la puerta de enlace VPN ejecutando
$azureVpn.BgpSettings.BgpPeeringAddress
y$azureVpn.BgpSettings.Asn
. Para más información, consulte Configuración de BGP para Azure VPN Gateway.Cree una entidad de puerta de enlace de VPN de sitio local. Este comando no configura la puerta de enlace de VPN local. En su lugar, permite proporcionar la configuración de puerta de enlace local, como la dirección IP pública y el espacio de direcciones local, para que la puerta de enlace de VPN de Azure pueda conectarse a ella.
Si el dispositivo VPN local solo admite enrutamiento estático, las rutas estáticas se pueden configurar como se indica a continuación:
$MyLocalNetworkAddress = @("10.100.0.0/16","10.101.0.0/16","10.102.0.0/16") $localVpn = New-AzLocalNetworkGateway -Name "LocalVPNGateway" -ResourceGroupName $resgrp.ResourceGroupName -Location $location -GatewayIpAddress *<Public IP>* -AddressPrefix $MyLocalNetworkAddress
Si el dispositivo VPN local admite el BGP y desea habilitar el enrutamiento dinámico, es preciso que conozca la IP de emparejamiento BGP y el número de AS del dispositivo VPN local.
$localVPNPublicIP = "<Public IP>" $localBGPPeeringIP = "<Private IP for the BGP session>" $localBGPASN = "<ASN>" $localAddressPrefix = $localBGPPeeringIP + "/32" $localVpn = New-AzLocalNetworkGateway -Name "LocalVPNGateway" -ResourceGroupName $resgrp.ResourceGroupName -Location $location -GatewayIpAddress $localVPNPublicIP -AddressPrefix $localAddressPrefix -BgpPeeringAddress $localBGPPeeringIP -Asn $localBGPASN
Configure el dispositivo VPN local para que se conecte a la nueva puerta de enlace de VPN de Azure. Para obtener más información sobre la configuración del dispositivo VPN, vea Configuración de dispositivos VPN.
Vincule la puerta de enlace de VPN sitio a sitio en Azure a la puerta de enlace local.
$azureVpn = Get-AzVirtualNetworkGateway -Name "VPNGateway" -ResourceGroupName $resgrp.ResourceGroupName New-AzVirtualNetworkGatewayConnection -Name "VPNConnection" -ResourceGroupName $resgrp.ResourceGroupName -Location $location -VirtualNetworkGateway1 $azureVpn -LocalNetworkGateway2 $localVpn -ConnectionType IPsec -SharedKey <yourkey>
Si está conectado a un circuito ExpressRoute existente, omita los pasos 8 y 9 y pase directamente al paso 10. Configure los circuitos ExpressRoute. Para más información acerca de cómo configurar los circuitos ExpressRoute, consulte Creación de un circuito ExpressRoute.
Configure el emparejamiento privado de Azure a través del circuito ExpressRoute. Para obtener más información sobre cómo configurar el emparejamiento privado de Azure en el circuito ExpressRoute, vea Configuración del emparejamiento.
Cree una puerta de enlace de ExpressRoute. Para más información sobre la configuración de la puerta de enlace de ExpressRoute, consulte Adición de una puerta de enlace de VPN a una red virtual de Resource Manager para una configuración de ExpressRoute. El valor de GatewaySKU debe ser Standard, HighPerformance o UltraPerformance.
$gwSubnet = Get-AzVirtualNetworkSubnetConfig -Name "GatewaySubnet" -VirtualNetwork $vnet $gwIP = New-AzPublicIpAddress -Name "ERGatewayIP" -ResourceGroupName $resgrp.ResourceGroupName -Location $location -AllocationMethod Dynamic $gwConfig = New-AzVirtualNetworkGatewayIpConfig -Name "ERGatewayIpConfig" -SubnetId $gwSubnet.Id -PublicIpAddressId $gwIP.Id $gw = New-AzVirtualNetworkGateway -Name "ERGateway" -ResourceGroupName $resgrp.ResourceGroupName -Location $location -IpConfigurations $gwConfig -GatewayType "ExpressRoute" -GatewaySku Standard
Vincule la puerta de enlace de ExpressRoute al circuito ExpressRoute. Una vez completado este paso, se ha establecido la conexión entre su red local y Azure a través de ExpressRoute. Para más información sobre la operación de vinculación, consulte Vinculación de redes virtuales a circuitos ExpressRoute.
$ckt = Get-AzExpressRouteCircuit -Name "YourCircuit" -ResourceGroupName "YourCircuitResourceGroup" New-AzVirtualNetworkGatewayConnection -Name "ERConnection" -ResourceGroupName $resgrp.ResourceGroupName -Location $location -VirtualNetworkGateway1 $gw -PeerId $ckt.Id -ConnectionType ExpressRoute
Incorporación de la configuración de punto a sitio a la puerta de enlace de VPN
Para agregar una configuración de punto a sitio a la puerta de enlace de VPN en una configuración de coexistencia, puede seguir estos pasos. Para cargar el certificado raíz VPN, debe instalar PowerShell localmente en el equipo, o utilizar Azure Portal.
Agregue el grupo de direcciones de clientes de VPN.
$azureVpn = Get-AzVirtualNetworkGateway -Name "VPNGateway" -ResourceGroupName $resgrp.ResourceGroupName Set-AzVirtualNetworkGateway -VirtualNetworkGateway $azureVpn -VpnClientAddressPool "10.251.251.0/24"
En Azure, cargue el certificado raíz de VPN de la puerta de enlace de VPN. En este ejemplo, se supone que el certificado raíz se almacena en la máquina local donde se ejecutan los siguientes cmdlets de PowerShell y que el usuario está ejecutando PowerShell localmente. También puede cargar el certificado con Azure Portal.
$p2sCertFullName = "RootErVpnCoexP2S.cer" $p2sCertMatchName = "RootErVpnCoexP2S" $p2sCertToUpload=get-childitem Cert:\CurrentUser\My | Where-Object {$_.Subject -match $p2sCertMatchName} if ($p2sCertToUpload.count -eq 1){write-host "cert found"} else {write-host "cert not found" exit} $p2sCertData = [System.Convert]::ToBase64String($p2sCertToUpload.RawData) Add-AzVpnClientRootCertificate -VpnClientRootCertificateName $p2sCertFullName -VirtualNetworkGatewayname $azureVpn.Name -ResourceGroupName $resgrp.ResourceGroupName -PublicCertData $p2sCertData
Para más información sobre la VPN de punto a sitio, consulte Configuración de una conexión punto a sitio a una red virtual mediante PowerShell.
Habilitación del enrutamiento de tránsito entre ExpressRoute y VPN de Azure
Si desea habilitar la conectividad entre una de las redes locales que está conectada a ExpressRoute y otra de la red local que está conectada a una conexión VPN de sitio a sitio, debe configurar Azure Route Server.
Pasos siguientes
Para obtener más información acerca de ExpressRoute, consulte P+F de ExpressRoute.