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. La configuración de ambas conexiones 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 puerta de enlace de VPN basada en rutas con una conexión VPN configurada para "selectores de tráfico basados en directivas", 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 puerta de enlace debe ser /27 o un prefijo más corto, como /26 o /25, o recibe 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 configuración solo se aplica 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 y los datos fluyen a través de la ruta de acceso VPN de sitio a sitio solo si se produce un error en el circuito ExpressRoute. Para evitar el enrutamiento asimétrico, configure la red local para que prefiera el circuito ExpressRoute a través de la VPN de sitio a sitio estableciendo una preferencia local más alta para las rutas recibidas a través de 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, configure 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 que algunos sitios se conecten directamente a Azure a través de una VPN de sitio a sitio, mientras que otros 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 tiene una red virtual existente o necesita 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 a través de 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.
Si ya tiene una red virtual con una conexión VPN de sitio a sitio o ExpressRoute existente, y el prefijo de subred de puerta de enlace es /28 o más (/29, /30, etc.), debe eliminar la puerta de enlace existente. Los pasos para configurar conexiones coexistentes para una red virtual existente le guían a través de la eliminación de la puerta de enlace y, a continuación, la creación de nuevas conexiones VPN de sitio a sitio y ExpressRoute.
Al eliminar y volver a crear la puerta de enlace, se produce un tiempo de inactividad para las conexiones entre locales. Sin embargo, las máquinas virtuales y los servicios pueden conectarse a través de Internet mientras configura la puerta de enlace si están configuradas para hacerlo.
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 a través de la creación de una red virtual y la configuración de conexiones VPN de sitio a sitio y ExpressRoute coexistentes. Los cmdlets usados en esta configuración pueden diferir de los cmdlets con los que está familiarizado, por lo que debe asegurarse de usar los cmdlets especificados.
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"
Defina variables y cree 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 obtener más información sobre cómo crear subredes, consulte Creación de una subred.Importante
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
Cree la puerta de enlace de VPN de sitio a sitio. Para obtener más información sobre la configuración de VPN Gateway, consulte Configuración de una red virtual con una conexión de sitio a sitio. GatewaySku es compatible con VpnGw1, VpnGw2, VpnGw3, standardy HighPerformance puertas de enlace de VPN. 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 BGP. Puede especificar el ASN (número de AS) para la red virtual agregando la marca
-Asn
en el comando siguiente. No especifica el parámetroAsn
el valor predeterminado del número de AS para 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 la 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 el enrutamiento estático, configure las rutas estáticas de la siguiente manera:
$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 BGP y desea habilitar el enrutamiento dinámico, debe conocer la dirección IP de emparejamiento BGP y el número 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 se conecta a un circuito ExpressRoute existente, omita los pasos 8 y 9 y vaya al paso 10. Configure los circuitos ExpressRoute. Para obtener más información sobre cómo configurar circuitos ExpressRoute, consulte crear un circuito ExpressRoute.
Configure el emparejamiento privado de Azure a través del circuito ExpressRoute. Para más información sobre cómo configurar el emparejamiento privado de Azure a través del circuito ExpressRoute, consulte 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. Después de completar este paso, la conexión entre la red local y Azure se establece 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