Compartilhar via


Conectar redes virtuais entre locatários a um hub de 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 será útil se você tiver cargas de trabalho de cliente que devem ser conectadas para serem da mesma rede, mas estiverem em locatários diferentes. Por exemplo, conforme mostrado no diagrama a seguir, você pode conectar uma rede virtual não Contoso (o locatário remoto) a um hub virtual 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á como:

  • Adicione outro locatário como um 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 só está disponível no PowerShell e na CLI do Azure.

Observação

Você pode gerenciar conexões de rede virtual entre locatários somente por meio do PowerShell ou do CLI do Azure instalado em sua máquina local. Como o Portal do Azure não oferece suporte a operações entre locatários, você não pode gerencia conexões de rede virtual entre locatários por meio do portal do Azure ou do CloudShell do portal do Azure (PowerShell e CLI).

Antes de começar

Pré-requisitos

Para usar as etapas descritas neste artigo, você precisará ter a seguinte configuração já definida no ambiente:

  • Uma WAN virtual e um hub virtual em sua assinatura pai
  • Uma rede virtual configurada em uma assinatura em um locatário diferente (remoto)

Verifique se o espaço do endereço de rede virtual no locatário remoto não se sobrepõe a nenhum outro espaço de endereço em nenhuma 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 e grátis que pode ser usado para executar as etapas deste artigo. Ele tem ferramentas do Azure instaladas e configuradas para usar com sua conta.

Para abrir o Cloud Shell, basta selecionar Abrir Cloud Shell no canto superior direito de um bloco de código. Você também pode abrir o Cloud Shell em uma guia separada do navegador indo até 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 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. Confira os seguintes artigos para obter as etapas:

  2. Execute o seguinte comando 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, você precisará executar o comando somente 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 foram propagadas com êxito para o pai e adicionadas à sessão, as assinaturas pertencentes ao locatário pai e ao locatário remoto aparecerão na saída do comando.

Conectar uma rede virtual a um hub

Nas etapas a seguir, você usará os 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. Verifique se você está no contexto de 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. Conectar à conta dos pais:

    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-criada aparecerão se a conexão tiver sido criada com êxito.
  • No portal do Azure, acesse o hub virtual e selecione Conectividade>Conexões de Rede Virtual. Em seguida, você pode exibir 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 do hub de rede virtual

Nas etapas a seguir, você usará os comandos para adicionar uma rota estática à tabela de rotas padrão do hub virtual e à conexão de rede virtual para apontar para um endereço IP do 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 para a 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. Verifique se você está no contexto de sua conta pai:

    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. Obter 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 uma Conexão de Rede Virtual de próximo salto. As rotas existentes na tabela de rotas são preservadas com a amostra de script a seguir.

      $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 contém 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. Esse amostra de script adiciona uma nova rota à conexão da VNET (preservando todas as rotas existentes).

      Observação

      O nome da rota deve ser o mesmo usado quando você adicionou uma rota estática anteriormente. Caso contrário, duas rotas serão criadas 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 do próximo salto.

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

Solucionar problemas

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

Próximas etapas