Conectar uma rede virtual a um circuito de ExpressRoute utilizando o Azure PowerShell

Este artigo ajuda a vincular as VNets (redes virtuais) aos circuitos do Azure ExpressRoute usando o modelo de implantação do Resource Manager e PowerShell. As redes virtuais podem estar na mesma assinatura ou fazer parte de outra assinatura. Este tutorial mostra como atualizar um link de rede virtual.

Diagrama mostrando uma rede virtual vinculada a um circuito do ExpressRoute.

Pré-requisitos

  • Analise os pré-requisitos, os requisitos de roteamento e os fluxos de trabalho antes de começar a configuração.

  • Você deve ter um circuito do ExpressRoute ativo.

    • Siga as instruções para criar um circuito do ExpressRoute e para que o circuito seja habilitado pelo provedor de conectividade.
    • Verifique se o emparelhamento privado do Azure está configurado para seu circuito. Veja o artigo Configurar roteamento para obter instruções sobre roteamento.
    • Verifique se o emparelhamento privado do Azure está configurado e estabelece o emparelhamento via protocolo BGP entre a rede e a Microsoft a fim de proporcionar conectividade de ponta a ponta.
    • Verifique se tem uma rede virtual e um gateway de rede virtual criados e totalmente provisionados. Siga as instruções para criar um gateway de rede virtual para ExpressRoute. Um gateway de rede virtual do ExpressRoute usa o GatewayType ExpressRoute, não a VPN.
  • Você pode vincular até 10 redes virtuais a um circuito de ExpressRoute padrão. Todas as redes virtuais deverão estar na mesma região geopolítica ao usar um circuito de ExpressRoute padrão.

  • Uma rede virtual individual pode ser vinculada a até 16 circuitos do ExpressRoute. Siga as etapas neste artigo para criar um objeto de conexão para cada circuito do ExpressRoute ao qual você está se conectando. Os circuitos de ExpressRoute podem estar na mesma assinatura, assinaturas diferentes ou uma mistura de ambos.

  • Se habilitar o complemento premium do ExpressRoute, você poderá vincular redes virtuais fora da região geopolítica do circuito do ExpressRoute. O complemento premium permite que você conecte mais de dez redes virtuais ao circuito do ExpressRoute, dependendo da largura de banda escolhida. Confira as perguntas frequentes para obter mais detalhes sobre o complemento premium.

  • Para criar a conexão do circuito do ExpressRoute com o gateway de rede virtual do ExpressRoute de destino, o número de espaços de endereço anunciados das redes virtuais locais ou emparelhadas precisa ser igual ou menor que 200. Depois que a conexão for criada com sucesso, você poderá adicionar mais espaços de endereço, até 1.000, às redes virtuais locais ou emparelhadas.

  • Examine as diretrizes de conectividade entre redes virtuais no ExpressRoute.

Trabalhando com o Azure PowerShell

As etapas e os exemplos deste artigo usam os módulos AZ do Azure PowerShell. Para instalar os módulos AZ localmente no computador, confira Instalar o Azure PowerShell. Para saber mais sobre o novo módulo AZ, confira Apresentando o novo módulo AZ do Azure PowerShell. Os cmdlets do PowerShell são atualizados com frequência. Se você não estiver executando a versão mais recente, os valores especificados nas instruções poderão falhar. Para localizar as versões instaladas do PowerShell no sistema, use o cmdlet Get-Module -ListAvailable Az.

Você pode usar o Azure Cloud Shell para executar a maioria dos cmdlets do PowerShell e dos comandos da CLI, em vez de instalar o Azure PowerShell ou a CLI localmente. O Azure Cloud Shell é um shell interativo gratuito que tem ferramentas comuns do Azure pré-instaladas e configuradas para uso com a conta. Para executar qualquer código contido neste artigo no Azure Cloud Shell, abra uma sessão do Cloud Shell, use o botão Copiar em um bloco de códigos para copiar o código e colá-lo na sessão do Cloud Shell com Ctrl+Shift+V no Windows e no Linux ou Cmd+Shift+V no macOS. O texto colado não é executado automaticamente, pressione Enter para executar o código.

Há algumas maneiras de inicializar o Cloud Shell:

Opção Link
Clique em Experimente no canto superior direito de um bloco de código. Cloud Shell neste artigo
Abra o Cloud Shell em seu navegador. https://shell.azure.com/powershell
Clique no botão Cloud Shell no menu no canto superior direito do portal do Azure. Cloud Shell no portal

Conectar uma rede virtual

Resiliência máxima (recomendado): fornece o nível mais alto de resiliência para sua rede virtual. Ele fornece duas conexões redundantes do gateway de rede virtual para dois circuitos diferentes do ExpressRoute em diferentes locais do ExpressRoute.

Clonar o script

Para criar conexões de resiliência máxima, clone o script de instalação do 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/

Execute o script New-AzHighAvailabilityVirtualNetworkGatewayConnections.ps1 para criar conexões de alta disponibilidade. O exemplo a seguir mostra como criar duas novas conexões com dois circuitos do 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

Se você quiser criar uma nova conexão e usar uma existente, poderá usar o exemplo a seguir. Este exemplo cria uma nova conexão com um segundo circuito do ExpressRoute e usa uma conexão existente com o primeiro circuito do 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

Conectar uma rede virtual em uma assinatura diferente a um circuito

Você pode compartilhar um circuito do ExpressRoute entre várias assinaturas. A figura a seguir mostra um esquema simples de como funciona o compartilhamento de circuitos do ExpressRoute entre várias assinaturas.

Observação

Não há suporte para a conexão de redes virtuais entre nuvens soberanas do Azure e a nuvem pública do Azure. Você só pode vincular redes virtuais de assinaturas diferentes na mesma nuvem.

Cada uma das nuvens menores dentro da nuvem grande é usada para representar assinaturas pertencentes a diferentes departamentos dentro de uma organização. Cada um dos departamentos dentro da organização usa a própria assinatura para implantar os serviços deles, mas podem compartilhar um circuito do ExpressRoute para se conectar de volta à sua rede local. Um único departamento (neste exemplo: TI) pode ter o circuito do ExpressRoute. Outras assinaturas dentro da organização podem usar o circuito do ExpressRoute.

Observação

As cobranças por conectividade e largura de banda pelo circuito ExpressRoute serão aplicadas ao proprietário da assinatura. Todas as redes virtuais compartilham a mesma largura de banda.

Conectividade entre assinaturas

Administração – proprietários e usuários do circuito

O “proprietário do circuito” é um usuário avançado autorizado do recurso de circuito do ExpressRoute. O proprietário do circuito pode criar autorizações que podem ser resgatadas pelos ‘usuários do circuito’. Os usuários do circuito são proprietários de gateways de rede virtual que não estão na mesma assinatura que o circuito do ExpressRoute. Usuários do circuito podem resgatar autorizações (uma autorização por rede virtual).

O proprietário do circuito tem a capacidade de modificar e revogar autorizações a qualquer momento. Revogar uma autorização faz com que todas as conexões de links sejam excluídas da assinatura cujo acesso foi revogado.

Observação

O proprietário do circuito não é uma função RBAC interna ou definida no recurso do ExpressRoute. A definição de proprietário do circuito é toda função com o seguinte acesso:

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

Isso inclui as funções internas, como Colaborador, Proprietário e Colaborador de rede. Descrição detalhada para as diferentes funções internas.

Operações do proprietário do circuito

Criar uma autorização

O proprietário do circuito cria uma autorização, que, por sua vez, cria uma chave de autorização que pode ser usada por um usuário do circuito para conectar os respectivos gateways de rede virtual ao circuito do ExpressRoute. Uma autorização é válida apenas para uma conexão.

O seguinte snippet de cmdlet mostra como criar uma autorização:

$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"

A resposta aos comandos anteriores contém a chave de autorização e o status:

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

Examinar autorizações

O proprietário do circuito pode examinar todas as autorizações emitidas em um circuito específico executando o seguinte cmdlet:

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

Adicionar autorizações

O proprietário do circuito pode adicionar autorizações usando o cmdlet a seguir.

$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

Excluir autorizações

O proprietário do circuito pode revogar/excluir autorizações usando o seguinte cmdlet:

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

Operações do usuário do circuito

O usuário do circuito precisa da ID do par e de uma chave de autorização do proprietário do circuito. A chave de autorização é um GUID.

É possível verificar a ID de Par com o seguinte comando:

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

Resgatar uma autorização de conexão

O usuário de circuito pode executar o seguinte cmdlet para resgatar uma autorização 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 "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"

Liberar uma autorização de conexão

É possível liberar uma autorização excluindo a conexão que vincula o circuito do ExpressRoute à rede virtual.

Modificar uma conexão de rede virtual

Você pode atualizar determinadas propriedades de uma conexão de rede virtual.

Atualizar o peso da conexão

Sua rede virtual pode ser conectada a vários circuitos do ExpressRoute. Você pode receber o mesmo prefixo de mais de um circuito do ExpressRoute. Para escolher à qual conexão enviar o tráfego destinado a esse prefixo, você pode alterar RoutingWeight de uma conexão. O tráfego é enviado na conexão com o RoutingWeight mais alto.

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

O intervalo de RoutingWeight é de 0 a 32.000. O valor padrão é 0.

Configurar o ExpressRoute FastPath

Você poderá habilitar o ExpressRoute FastPath se o gateway de rede virtual for de Ultradesempenho ou ErGw3AZ. O FastPath aprimora o desempenho do caminho de dados, como pacotes por segundo e conexões por segundo entre sua rede local e sua rede virtual.

Configurar o FastPath em uma nova conexão

$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" 

Como atualizar uma conexão existente para habilitar o FastPath

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

Com o emparelhamento de rede virtual e o suporte a UDRs, o FastPath enviará o tráfego diretamente para as VMs implantadas em Redes Virtuais "spoke" (conectadas por meio do emparelhamento de rede virtual) e honrará quaisquer UDRs configuradas na GatewaySubnet. Essa funcionalidade já está em GA (disponibilidade geral).

Com o FastPath e o Link Privado, o tráfego do Link Privado enviado pelo ExpressRoute ignora o gateway de rede virtual do ExpressRoute no caminho dos dados. Com esses dois recursos habilitados, o FastPath enviará o tráfego diretamente para um ponto de extremidade privado implantado em uma Rede Virtual "spoke".

Esses cenários estão em disponibilidade geral em cenários limitados com conexões associadas a circuitos do ExpressRoute Direct de 10 Gb e 100 Gbps. Para habilitar, siga as diretrizes abaixo:

  1. Conclua este Formulário da Microsoft para solicitar a inscrição da sua assinatura. As solicitações podem levar até quatro semanas para serem concluídas, portanto, planeje as implantações adequadamente.
  2. Depois de receber uma confirmação da Etapa 1, execute o seguinte comando do Azure PowerShell na assinatura de destino do Azure.
$connection = Get-AzVirtualNetworkGatewayConnection -ResourceGroupName <resource-group> -ResourceName <connection-name>
$connection.ExpressRouteGatewayBypass = $true
$connection.EnablePrivateLinkFastPath = $true
Set-AzVirtualNetworkGatewayConnection -VirtualNetworkGatewayConnection $connection

Observação

Você pode usar Monitor da Conexão para verificar se o tráfego está atingindo o destino usando FastPath.

Observação

A conclusão da habilitação do suporte ao Link Privado do FastPath em cenários de GA limitados pode levar mais de quatro semanas. Planeje suas implantações com antecedência.

O suporte do FastPath para emparelhamento de rede virtual e UDRs está disponível somente para conexões do ExpressRoute Direct.

Observação

Se você já tem o FastPath configurado e quer se inscrever nos recursos limitados da GA, faça o seguinte:

  1. Inscreva-se em um dos recursos do FastPath com os comandos do Azure PowerShell.
  2. Desabilite e, em seguida, habilite novamente o FastPath na conexão de destino.
  3. Para alternar entre os recursos de GA limitados, registre a assinatura com o comando do PowerShell de versão prévia de destino e desabilite e habilite novamente o FastPath na conexão.

Limpar os recursos

Se você não precisar mais da conexão do ExpressRoute, na assinatura em que o gateway está localizado, use o comando Remove-AzVirtualNetworkGatewayConnection para remover o vínculo entre o gateway e o circuito.

Remove-AzVirtualNetworkGatewayConnection "MyConnection" -ResourceGroupName "MyRG"

Próximas etapas

Neste tutorial, você aprendeu a conectar uma rede virtual a um circuito na mesma assinatura e em uma assinatura diferente. Para obter mais informações sobre gateways de ExpressRoute, consulte: Gateways de rede virtual do ExpressRoute.

Para saber como configurar filtros de rota para emparelhamento da Microsoft usando o PowerShell, avance para o próximo tutorial.