Partilhar via


Conectar redes virtuais entre locatários a um hub WAN Virtual

Este artigo ajuda você a usar a WAN Virtual do Azure para conectar uma rede virtual a um hub virtual em um locatário diferente. Essa arquitetura é útil se você tiver cargas de trabalho de cliente que devem estar conectadas para serem a mesma rede, mas estão em locatários diferentes. Por exemplo, conforme mostrado no diagrama a seguir, você pode conectar uma rede virtual que não seja da Contoso (o locatário remoto) a um hub virtual da Contoso (o locatário pai).

Diagrama que mostra uma configuração de roteamento com um locatário pai e um locatário remoto.

Neste artigo, você aprenderá a:

  • Adicione outro locatário como Colaborador em sua assinatura do Azure.
  • Conecte uma rede virtual entre locatários a um hub virtual.

As etapas para essa configuração usam uma combinação do portal do Azure e do PowerShell. No entanto, o recurso em si está disponível apenas no PowerShell e na CLI do Azure.

Observação

Só pode gerir ligações de rede virtual entre inquilinos através do PowerShell ou do Azure CLI instalado no seu computador local. Como o Portal do Azure não suporta operações entre inquilinos, não é possível gerir ligações de rede virtual entre inquilinos através do portal do Azure ou do CloudShell do portal do Azure (PowerShell e CLI).

Antes de começar

Pré-requisitos

Para usar as etapas neste artigo, você deve ter a seguinte configuração já configurada em seu ambiente:

  • Uma WAN virtual e um hub virtual na sua subscrição principal
  • Uma rede virtual configurada em uma assinatura em um locatário (remoto) diferente

Certifique-se de que o espaço de endereço de rede virtual no locatário remoto não se sobreponha a nenhum outro espaço de endereço em qualquer outra rede virtual já conectada ao hub virtual pai.

Trabalhando com o Azure PowerShell

Este artigo usa cmdlets do PowerShell. Para executar os cmdlets, você pode usar o Azure Cloud Shell. O Cloud Shell é um shell interativo gratuito que você pode usar para executar as etapas neste artigo. Tem ferramentas comuns do Azure pré-instaladas e configuradas para utilização com a sua conta.

Para abrir o Cloud Shell, basta selecionar Abrir Cloudshell no canto superior direito de um bloco de código. Você também pode abrir o Cloud Shell numa guia separada no navegador, acessando https://shell.azure.com/powershell. Selecione Copiar para copiar os blocos de código, cole-os no Cloud Shell e selecione a tecla Enter para executá-los.

Atribuir permissões

  1. Na assinatura da rede virtual no locatário remoto, adicione a atribuição de função de Colaborador ao administrador (o usuário que administra o hub virtual). As permissões de colaborador permitirão que o administrador modifique e acesse as redes virtuais no locatário remoto.

    Você pode usar o PowerShell ou o portal do Azure para atribuir essa função. Consulte os seguintes artigos para obter as etapas:

  2. Execute o comando a seguir para adicionar a assinatura de locatário remoto e a assinatura de locatário pai à sessão atual do PowerShell. Se você estiver conectado ao pai, precisará executar o comando apenas para o locatário remoto.

    Connect-AzAccount -SubscriptionId "[subscription ID]" -TenantId "[tenant ID]"
    
  3. Verifique se a atribuição de função foi bem-sucedida. Entre no Azure PowerShell usando as credenciais pai e execute o seguinte comando:

    Get-AzSubscription
    

    Se as permissões tiverem sido propagadas com êxito para o pai e tiverem sido adicionadas à sessão, as assinaturas de propriedade do pai e do locatário remoto aparecerão na saída do comando.

Conectar uma rede virtual a um hub

Nas etapas a seguir, você usará comandos para alternar entre o contexto das duas assinaturas ao vincular a rede virtual ao hub virtual. Substitua os valores de exemplo para refletir seu próprio ambiente.

  1. Certifique-se de que está no contexto da sua conta remota:

    Select-AzSubscription -SubscriptionId "[remote ID]"
    
  2. Crie uma variável local para armazenar os metadados da rede virtual que você deseja conectar ao hub:

    $remote = Get-AzVirtualNetwork -Name "[vnet name]" -ResourceGroupName "[resource group name]"
    
  3. Conecte-se à conta principal:

    Connect-AzAccount -TenantID "[parent tenant ID]"
    
  4. Selecione a assinatura pai:

    Select-AzSubscription -SubscriptionId "[parent ID]"
    
  5. Conecte a rede virtual ao hub:

    New-AzVirtualHubVnetConnection -ResourceGroupName "[parent resource group name]" -VirtualHubName "[virtual hub name]" -Name "[name of connection]" -RemoteVirtualNetwork $remote
    

Você pode exibir a nova conexão no PowerShell ou no portal do Azure:

  • No console do PowerShell, os metadados da conexão recém-formada aparecerão se a conexão tiver sido formada com êxito.
  • No portal do Azure, vá para o hub virtual e selecione Conexões deRede Virtual de>. Em seguida, você pode visualizar o ponteiro para a conexão. Para ver o recurso real, você precisará das permissões adequadas.

Cenário: Adicionar rotas estáticas a uma conexão de hub de rede virtual

Nas etapas a seguir, você usará comandos para adicionar uma rota estática à tabela de rotas padrão do hub virtual e uma conexão de rede virtual para apontar para um endereço IP de próximo salto (ou seja, um dispositivo NVA). Substitua os valores de exemplo para refletir seu próprio ambiente.

Observação

  • Antes de executar os comandos, verifique se você tem acesso e está autorizado à assinatura remota.
  • O prefixo de destino pode ser um CIDR ou vários. Para um único CIDR, use este formato: @("10.19.2.0/24"). Para vários CIDRs, use este formato: @("10.19.2.0/24", "10.40.0.0/16").
  1. Certifique-se de que está no contexto da sua conta de encarregado de educação:

    Select-AzSubscription -SubscriptionId "[parent ID]" 
    
  2. Adicione uma rota na tabela de rotas padrão do hub virtual sem um endereço IP específico.

    1. Obtenha os detalhes da conexão:

      $hubVnetConnection = Get-AzVirtualHubVnetConnection -Name "[HubconnectionName]" -ParentResourceName "[Hub Name]" -ResourceGroupName "[resource group name]"
      
    2. Adicione uma rota estática à tabela de rotas do hub virtual com a Conexão de Rede Virtual do próximo salto. As rotas existentes na tabela de rotas são preservadas com o seguinte script de exemplo.

      $routeTable = Get-AzVHubRouteTable -ResourceGroupName "[Resource group name]" -VirtualHubName "[Virtual hub name]" -Name "defaultRouteTable"
      $Route2 = New-AzVHubRoute -Name "[Route Name]" -Destination “[@("Destination prefix")]” -DestinationType "CIDR" -NextHop $hubVnetConnection.Id -NextHopType "ResourceId"
      $routeTable.Routes.add($Route2)
      
    3. Verifique se a tabela de rotas tem as novas rotas:

      $routeTable.Routes
      
    4. Atualize a tabela de rotas padrão atual do hub:

     Update-AzVHubRouteTable -ResourceGroupName "[resource group name]"-VirtualHubName [“Hub Name”] -Name "defaultRouteTable" -Route @($routeTable.Routes)
    
    1. Atualize a rota na conexão de rede virtual para especificar o próximo salto como um endereço IP. Este script de exemplo adiciona uma nova rota à conexão VNET (preservando quaisquer rotas existentes).

      Observação

      O nome da rota deve ser o mesmo que você usou quando adicionou uma rota estática anteriormente. Caso contrário, você criará duas rotas na tabela de roteamento: uma sem um endereço IP e outra com um endereço IP.

        $newroute = New-AzStaticRoute -Name "[Route Name]"  -AddressPrefix "[@("Destination prefix")]" -NextHopIpAddress "[Destination NVA IP address]"
    
        $hubVNetConnection.RoutingConfiguration.VnetRoutes.StaticRoutes.add($newroute)
    
        Update-AzVirtualHubVnetConnection -ResourceGroupName $rgname -VirtualHubName "[Hub Name]" -Name "[Virtual hub connection name]" -RoutingConfiguration $hubVNetConnection.RoutingConfiguration
    
    1. Verifique se a rota estática está estabelecida para um endereço IP de próximo salto.

      Get-AzVirtualHubVnetConnection -ResourceGroupName "[Resource group]" -VirtualHubName "[virtual hub name]" -Name "[Virtual hub connection name]"
      

Solucionar problemas

  • Verifique se os metadados em (da $remote) correspondem às informações do portal do Azure.
  • Verifique as permissões usando as configurações do IAM do grupo de recursos de locatário remoto ou usando comandos do Azure PowerShell (Get-AzSubscription).
  • Certifique-se de que as aspas estão incluídas em torno dos nomes de grupos de recursos ou quaisquer outras variáveis específicas do ambiente (por exemplo, "VirtualHub1" ou "VirtualNetwork1").
  • Se utilizar o SDK de Rede do Azure ou uma solicitação de API Rest direta, é necessário que o token de autorização do Locatário "Hub" primário seja passado no cabeçalho "Autorização" e um token de autorização adicional para o segundo Locatário "VNet" seja passado no cabeçalho especial "x-ms-authorization-auxiliary".

Próximos passos