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.

Diagram showing a virtual network linked to an ExpressRoute circuit.

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 in this article
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 in the portal

Conectar uma rede virtual na mesma assinatura a um circuito

Você pode vincular um gateway de rede virtual a um circuito do ExpressRoute usando o cmdlet a seguir. Verifique se o gateway de rede virtual foi criado e se está pronto para vinculação antes de executar o cmdlet:

$circuit = Get-AzExpressRouteCircuit -Name "MyCircuit" -ResourceGroupName "MyRG"
$gw = Get-AzVirtualNetworkGateway -Name "ExpressRouteGw" -ResourceGroupName "MyRG"
$connection = New-AzVirtualNetworkGatewayConnection -Name "ERConnection" -ResourceGroupName "MyRG" -Location "East US" -VirtualNetworkGateway1 $gw -PeerId $circuit.Id -ConnectionType ExpressRoute

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.

Cross-subscription connectivity

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. 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 para cenários limitados com conexões associadas a circuitos do ExpressRoute Direct de 100 Gb. Para habilitar, siga as diretrizes abaixo:

  1. Conclua este Formulário da Microsoft para solicitar a inscrição da sua assinatura.
  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 para cenários de GA limitados pode levar mais de duas 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

Todas as conexões configuradas para o FastPath na assinatura de destino serão inscritas na versão prévia selecionada. Não aconselhamos habilitar essas versões prévias em assinaturas de produção. Se você já tiver o FastPath configurado e quiser se inscrever na versão prévia do recurso, você precisará fazer o seguinte:

  1. Inscreva-se na versão prévia do recurso 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 as versões prévias dos recursos, 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 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.