Compartir vía


Conexión de una red virtual a un circuito ExpressRoute mediante Azure PowerShell

Este artículo lo ayudará a vincular redes virtuales a circuitos ExpressRoute de Azure a través del modelo de implementación de Resource Manager y PowerShell. Las redes virtuales pueden estar en la misma suscripción o formar parte de otra suscripción. En este tutorial también se muestra cómo actualizar el vínculo de una red virtual.

Diagrama que muestra una red virtual vinculada a un circuito ExpressRoute.

Requisitos previos

  • Revise los requisitos previos, los requisitos de enrutamiento y los flujos de trabajo antes de comenzar la configuración.

  • Tiene que tener un circuito ExpressRoute activo.

    • Siga las instrucciones para crear un circuito ExpressRoute y habilite el circuito mediante el proveedor de conectividad.
    • Asegúrese de que dispone de un emparejamiento privado de Azure configurado para el circuito. Consulte el artículo de configuración del enrutamiento para obtener instrucciones sobre el enrutamiento.
    • Asegúrese de que el emparejamiento privado de Azure se configure y establezca el emparejamiento BGP entre la red y Microsoft para la conectividad de un extremo a otro.
    • Asegúrese de que ha creado y aprovisionado totalmente una red virtual y una puerta de enlace de red virtual. Siga las instrucciones para crear una puerta de enlace de red virtual en ExpressRoute. Una puerta de enlace de red virtual para ExpressRoute usa el GatewayType ExpressRoute, no VPN.
  • Es posible vincular hasta 10 redes virtuales a un circuito ExpressRoute estándar. Todas las redes virtuales deben pertenecer a la misma región geopolítica al utilizar un circuito de ExpressRoute estándar.

  • Una única red virtual se puede vincular a 16 circuitos ExpressRoute como máximo. Use los pasos de este artículo para crear un nuevo objeto de conexión para cada circuito ExpressRoute al que quiere conectarse. Los circuitos ExpressRoute pueden estar en la misma suscripción, en suscripciones diferentes o en una combinación de ambas.

  • Si habilita el complemento prémium de ExpressRoute, puede vincular redes virtuales fuera de la región geopolítica del circuito ExpressRoute. El complemento premium también permite conectar más de 10 redes virtuales al circuito ExpressRoute en función del ancho de banda elegido. Consulte las preguntas más frecuentes para obtener más detalles sobre el complemento premium.

  • Para crear la conexión desde el circuito de ExpressRoute a la puerta de enlace de red virtual de ExpressRoute de destino, el número de espacios de direcciones anunciados desde las redes virtuales locales o emparejadas debe ser igual o menor que 200. Una vez creada correctamente la conexión, puede agregar hasta un máximo de 1000 espacios de direcciones adicionales a las redes virtuales locales o emparejadas.

  • Revise las instrucciones para la conectividad entre redes virtuales mediante ExpressRoute.

Trabajo con Azure PowerShell

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:

Opción Vínculo
Haga clic en Probarlo en la esquina superior derecha de un bloque de código. Cloud Shell en este artículo
Abra Cloud Shell en el explorador. https://shell.azure.com/powershell
Haga clic en el botón Cloud Shell en el menú de la parte superior derecha de Azure Portal. Cloud Shell en el portal

Conexión de una red virtual

Máxima resistencia (Recomendado): proporciona el nivel más alto de resistencia a la red virtual. Proporciona dos conexiones redundantes desde la puerta de enlace de red virtual a dos circuitos ExpressRoute diferentes en diferentes ubicaciones de ExpressRoute.

Clonación del script

Para crear conexiones de resistencia máximas, clone el script de instalación desde GitHub.

# Clone the setup script from GitHub.
git clone https://github.com/Azure-Samples/azure-docs-powershell-samples/ 
# Change to the directory where the script is located.
CD azure-docs-powershell-samples/expressroute/

Ejecute el script New-AzHighAvailabilityVirtualNetworkGatewayConnections.ps1 para crear conexiones de alta disponibilidad. En el ejemplo siguiente se muestra cómo crear dos conexiones nuevas a dos circuitos ExpressRoute.

$SubscriptionId = Get-AzureSubscription -SubscriptionName "<SubscriptionName>"
$circuit1 = Get-AzExpressRouteCircuit -Name "MyCircuit1" -ResourceGroupName "MyRG"
$circuit2 = Get-AzExpressRouteCircuit -Name "MyCircuit2" -ResourceGroupName "MyRG"
$gw = Get-AzVirtualNetworkGateway -Name "ExpressRouteGw" -ResourceGroupName "MyRG"

highAvailabilitySetup/New-AzHighAvailabilityVirtualNetworkGatewayConnections.ps1 -SubscriptionId $SubscriptionId -ResourceGroupName "MyRG" -Location "West EU" -Name1 "ERConnection1" -Name2 "ERConnection2" -Peer1 $circuit1.Peerings[0] -Peer2 $circuit2.Peerings[0] -RoutingWeight1 10 -RoutingWeight2 10 -VirtualNetworkGateway1 $gw

Si desea crear una nueva conexión y usar una existente, puede usar el ejemplo siguiente. En este ejemplo se crea una nueva conexión a un segundo circuito ExpressRoute y se usa una conexión existente al primer circuito ExpressRoute.

$SubscriptionId = Get-AzureSubscription -SubscriptionName "<SubscriptionName>"
$circuit1 = Get-AzExpressRouteCircuit -Name "MyCircuit1" -ResourceGroupName "MyRG"
$gw = Get-AzVirtualNetworkGateway -Name "ExpressRouteGw" -ResourceGroupName "MyRG"
$connection = Get-AzVirtualNetworkGatewayConnection -Name "ERConnection1" -ResourceGroupName "MyRG"

highAvailabilitySetup/New-AzHighAvailabilityVirtualNetworkGatewayConnections.ps1 -SubscriptionId $SubscriptionId -ResourceGroupName "MyRG" -Location "West EU" -Name2 "ERConnection2" -Peer2 $circuit1.Peerings[0] -RoutingWeight2 10 -VirtualNetworkGateway1 $gw -ExistingVirtualNetworkGatewayConnection $connection

Conexión de una red virtual en una suscripción diferente a un circuito

Puede compartir un circuito ExpressRoute entre varias suscripciones. En la ilustración siguiente se muestra un sencillo esquema de cómo funciona el uso compartido de circuitos ExpressRoute entre varias suscripciones.

Nota:

No se admite la conexión de redes virtuales entre nubes soberanas de Azure y la nube pública de Azure. Solo puede vincular redes virtuales de distintas suscripciones de la misma nube.

Cada una de las nubes más pequeñas dentro de la nube de gran tamaño se usa para representar las suscripciones que pertenecen a diferentes departamentos dentro de una organización. Cada departamento de la organización usa su propia suscripción para implementar sus servicios, pero puede compartir un único circuito ExpressRoute para volver a conectarse a la red local. Un solo departamento (en este ejemplo: TI) puede ser el propietario de ExpressRoute. Otras suscripciones dentro de la organización pueden usar el circuito ExpressRoute.

Nota

Los cargos de conectividad y ancho de banda de un circuito ExpressRoute recaerán en el propietario de la suscripción. Todas las redes virtuales comparten el mismo ancho de banda.

Conectividad entre suscripciones

Administración: los propietarios de circuito y los usuarios de circuito

El "propietario del circuito" es un usuario avanzado autorizado del recurso de circuito ExpressRoute. Puede crear autorizaciones que los "propietarios del circuito", a su vez, pueden canjear. Los usuarios del circuito son propietarios de puertas de enlace de red virtual que no están en la misma suscripción que el circuito ExpressRoute. Los usuarios del circuito pueden canjear autorizaciones (una autorización por red virtual).

El propietario del circuito tiene la capacidad de modificar y revocar las autorizaciones en cualquier momento. La revocación de una autorización dará como resultado la eliminación de todas las conexiones de vínculos de la suscripción cuyo acceso se haya revocado.

Nota:

El propietario del circuito no es un rol RBAC integrado ni está definido en el recurso de ExpressRoute. La definición del propietario del circuito es cualquier rol con el siguiente acceso:

  • Microsoft.Network/expressRouteCircuits/authorizations/write
  • Microsoft.Network/expressRouteCircuits/authorizations/read
  • Microsoft.Network/expressRouteCircuits/authorizations/delete

Se incluyen los roles integrados, como Colaborador, Propietario y Colaborador de red. Descripción detallada de los distintos roles integrados.

Operaciones del propietario del circuito

Creación de una autorización

El propietario del circuito crea una autorización, que crea una clave de autorización que puede usar un usuario del circuito para conectar sus puertas de enlace de red virtual al circuito ExpressRoute. Una autorización solo es válida para una conexión.

El fragmento de código del cmdlet siguiente muestra cómo crear una autorización:

$circuit = Get-AzExpressRouteCircuit -Name "MyCircuit" -ResourceGroupName "MyRG"
Add-AzExpressRouteCircuitAuthorization -ExpressRouteCircuit $circuit -Name "MyAuthorization1"
Set-AzExpressRouteCircuit -ExpressRouteCircuit $circuit

$circuit = Get-AzExpressRouteCircuit -Name "MyCircuit" -ResourceGroupName "MyRG"
$auth1 = Get-AzExpressRouteCircuitAuthorization -ExpressRouteCircuit $circuit -Name "MyAuthorization1"

La respuesta a los comandos anteriores contiene la clave y el estado de la autorización:

Name                   : MyAuthorization1
Id                     : /subscriptions/&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&/resourceGroups/ERCrossSubTestRG/providers/Microsoft.Network/expressRouteCircuits/CrossSubTest/authorizations/MyAuthorization1
Etag                   : &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 
AuthorizationKey       : ####################################
AuthorizationUseStatus : Available
ProvisioningState      : Succeeded

Revisión de autorizaciones

El propietario del circuito puede revisar todas las autorizaciones emitidas en un circuito concreto ejecutando el siguiente cmdlet:

$circuit = Get-AzExpressRouteCircuit -Name "MyCircuit" -ResourceGroupName "MyRG"
$authorizations = Get-AzExpressRouteCircuitAuthorization -ExpressRouteCircuit $circuit

Adición de autorizaciones

El propietario del circuito puede agregar las autorizaciones mediante el siguiente cmdlet:

$circuit = Get-AzExpressRouteCircuit -Name "MyCircuit" -ResourceGroupName "MyRG"
Add-AzExpressRouteCircuitAuthorization -ExpressRouteCircuit $circuit -Name "MyAuthorization2"
Set-AzExpressRouteCircuit -ExpressRouteCircuit $circuit

$circuit = Get-AzExpressRouteCircuit -Name "MyCircuit" -ResourceGroupName "MyRG"
$authorizations = Get-AzExpressRouteCircuitAuthorization -ExpressRouteCircuit $circuit

Eliminación de autorizaciones

El propietario del circuito puede revocar o eliminar las autorizaciones al usuario ejecutando el siguiente cmdlet:

Remove-AzExpressRouteCircuitAuthorization -Name "MyAuthorization2" -ExpressRouteCircuit $circuit
Set-AzExpressRouteCircuit -ExpressRouteCircuit $circuit

Operaciones del usuario del circuito

El usuario del circuito necesita el Id. de mismo nivel y una clave de autorización del propietario del circuito. la clave de autorización es un GUID.

El id. de mismo nivel se puede comprobar con el siguiente comando:

Get-AzExpressRouteCircuit -Name "MyCircuit" -ResourceGroupName "MyRG"

Canje de una autorización de conexión

El usuario del circuito puede ejecutar el siguiente cmdlet para canjear una autorización de vínculo:

$id = "/subscriptions/********************************/resourceGroups/ERCrossSubTestRG/providers/Microsoft.Network/expressRouteCircuits/MyCircuit"    
$gw = Get-AzVirtualNetworkGateway -Name "ExpressRouteGw" -ResourceGroupName "MyRG"
$connection = New-AzVirtualNetworkGatewayConnection -Name "ERConnection" -ResourceGroupName "RemoteResourceGroup" -Location "East US" -VirtualNetworkGateway1 $gw -PeerId $id -ConnectionType ExpressRoute -AuthorizationKey "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"

Liberación de una autorización de conexión

Puede liberar una autorización eliminando la conexión que vincula el circuito ExpressRoute a la red virtual.

Modificación de una conexión de red virtual

Puede actualizar ciertas propiedades de una conexión de red virtual.

Actualización del peso de la conexión

La red virtual puede estar conectada a varios circuitos ExpressRoute. Es posible que reciba el mismo prefijo de más de un circuito ExpressRoute. Para elegir la conexión por la que enviar el tráfico destinado a este prefijo, puede cambiar el valor de RoutingWeight de una conexión. El tráfico se envía por la conexión con el valor más alto de RoutingWeight.

$connection = Get-AzVirtualNetworkGatewayConnection -Name "MyVirtualNetworkConnection" -ResourceGroupName "MyRG"
$connection.RoutingWeight = 100
Set-AzVirtualNetworkGatewayConnection -VirtualNetworkGatewayConnection $connection

El intervalo de RoutingWeight abarca de 0 a 32 000. El valor predeterminado es 0.

Configuración de FastPath de ExpressRoute

Puede habilitar FastPath de ExpressRoute si la puerta de enlace de red virtual es Ultra Performance o ErGw3AZ. FastPath mejora el rendimiento de la ruta de acceso a los datos, como con paquetes y conexiones por segundo entre la red local y la red virtual.

Configuración de FastPath en una conexión nueva

$circuit = Get-AzExpressRouteCircuit -Name "MyCircuit" -ResourceGroupName "MyRG" 
$gw = Get-AzVirtualNetworkGateway -Name "MyGateway" -ResourceGroupName "MyRG" 
$connection = New-AzVirtualNetworkGatewayConnection -Name "MyConnection" -ResourceGroupName "MyRG" -ExpressRouteGatewayBypass -VirtualNetworkGateway1 $gw -PeerId $circuit.Id -ConnectionType ExpressRoute -Location "MyLocation" 

Actualización de una conexión existente para habilitar FastPath

$connection = Get-AzVirtualNetworkGatewayConnection -Name "MyConnection" -ResourceGroupName "MyRG" 
$connection.ExpressRouteGatewayBypass = $True
Set-AzVirtualNetworkGatewayConnection -VirtualNetworkGatewayConnection $connection

Con el emparejamiento de red virtual y la compatibilidad con UDR, FastPath enviará tráfico directamente a las máquinas virtuales implementadas en redes virtuales de "radio" (conectadas mediante el emparejamiento de redes virtuales) y respetará las UDR configuradas en GatewaySubnet. Esta funcionalidad ya está disponible con carácter general (GA).

Con FastPath y Private Link, el tráfico de vínculo privado enviado por ExpressRoute omite la puerta de enlace de red virtual de ExpressRoute en la ruta de acceso de datos. Con ambas características habilitadas, FastPath enviará directamente el tráfico a un punto de conexión privado implementado en una red virtual de "radio".

Estos escenarios están disponibles con carácter general para escenarios limitados con conexiones asociadas a circuitos de ExpressRoute Direct de 10 Gbps y 100 Gbps. Para habilitar, siga las instrucciones que aparecen a continuación:

  1. Complete este formulario de Microsoft para solicitar que inscriba su suscripción. Las solicitudes pueden tardar hasta 4 semanas en completarse. Téngalo en cuenta al planificar las implementaciones.
  2. Una vez que reciba una confirmación del paso 1, ejecute el siguiente comando de Azure PowerShell en la suscripción de Azure de destino.
$connection = Get-AzVirtualNetworkGatewayConnection -ResourceGroupName <resource-group> -ResourceName <connection-name>
$connection.ExpressRouteGatewayBypass = $true
$connection.EnablePrivateLinkFastPath = $true
Set-AzVirtualNetworkGatewayConnection -VirtualNetworkGatewayConnection $connection

Nota:

Puede usar Connection Monitor para comprobar que el tráfico llega al destino mediante FastPath.

Nota:

La habilitación de la compatibilidad de FastPath a Private Link para escenarios limitados de disponibilidad general puede tardar hasta cuatro semanas en completarse. Planee las implementaciones con antelación.

La compatibilidad de FastPath con el emparejamiento de red virtual y UDR solo está disponible para las conexiones de ExpressRoute Direct.

Nota:

Si ya tiene FastPath configurado y desea inscribirse en la característica con disponibilidad general, debe hacer lo siguiente:

  1. Inscríbase en una de las características de FastPath con el comando de Azure PowerShell.
  2. Deshabilite y vuelva a habilitar FastPath en la conexión de destino.
  3. Para cambiar entre características con disponibilidad general, registre la suscripción con el comando de PowerShell de vista previa de destino y, después, deshabilite y vuelva a habilitar FastPath en la conexión.

Limpieza de recursos

Si ya no necesita la conexión a ExpressRoute, desde la suscripción en que se encuentra la puerta de enlace, use el comando Remove-AzVirtualNetworkGatewayConnection para quitar el vínculo entre la pasarela y el circuito.

Remove-AzVirtualNetworkGatewayConnection "MyConnection" -ResourceGroupName "MyRG"

Pasos siguientes

En este tutorial ha aprendido a conectar una red virtual a un circuito de la misma suscripción y de otra. Para más información acerca de las puertas de enlace de ExpressRoute, consulte Acerca de las puertas de enlace de red virtual de ExpressRoute.

Para información sobre cómo configurar filtros de ruta para el emparejamiento de Microsoft mediante PowerShell, pase al siguiente tutorial.