Guia de início rápido: criar uma topologia de rede de malha com o Gerenciador de Rede Virtual do Azure usando o Azure PowerShell

Comece a usar o Azure Virtual Network Manager usando o Azure PowerShell para gerenciar a conectividade para suas redes virtuais.

Neste início rápido, você implanta três redes virtuais e usa o Azure Virtual Network Manager para criar uma topologia de rede mesh. Em seguida, verifique se a configuração de conectividade foi aplicada.

Diagrama de recursos implantados para uma topologia de rede virtual de malha com o gerenciador de rede virtual do Azure.

Importante

O Azure Virtual Network Manager está geralmente disponível para o Virtual Network Manager e configurações de conectividade hub-and-spoke. As configurações de conectividade de malha permanecem em visualização pública.

As configurações de segurança com regras de administração de segurança estão geralmente disponíveis nas seguintes regiões:

  • Austrália Central
  • Austrália Central 2
  • Leste da Austrália
  • Austrália Sudeste
  • Sul do Brasil
  • Brasil Sudeste
  • Canadá Central
  • Leste do Canadá
  • Ásia Leste
  • Norte da Europa
  • França Central
  • Sul de França
  • Norte da Alemanha
  • Alemanha Centro-Oeste
  • Índia Central
  • Índia do Sul
  • Oeste da Índia
  • Israel Central
  • Norte da Itália
  • Leste do Japão
  • Oeste do Japão
  • Jio, Oeste da Índia
  • Coreia do Sul Central
  • Sul da Coreia do Sul
  • Leste da Noruega
  • Oeste da Noruega
  • Polónia Central
  • Catar Central
  • Norte da África do Sul
  • Oeste da África do Sul
  • Suécia Central
  • Sul da Suécia
  • Norte da Suíça
  • Oeste da Suíça
  • E.A.U. Central
  • Norte dos E.A.U.
  • Sul do Reino Unido
  • Oeste do Reino Unido
  • E.U.A. Central
  • E.U.A Leste
  • Norte dos EUA
  • E.U.A. Oeste
  • E.U.A. Oeste 2
  • Oeste dos EUA 3
  • E.U.A. Centro-Oeste

Todas as outras regiões permanecem em pré-visualização pública.

Esta versão de pré-visualização é disponibiliza sem um contrato de nível de serviço e não é recomendada para cargas de trabalho de produção. Algumas funcionalidades poderão não ser suportadas ou poderão ter capacidades limitadas. Para obter mais informações, veja Termos Suplementares de Utilização para Pré-visualizações do Microsoft Azure.

Pré-requisitos

  • Uma conta do Azure com uma subscrição ativa. Crie uma conta gratuitamente.
  • Execute este início rápido usando o PowerShell localmente, não por meio do Azure Cloud Shell. Atualmente, a versão do Az.Network no Azure Cloud Shell não oferece suporte aos cmdlets do Azure Virtual Network Manager.
  • Para modificar grupos dinâmicos de rede, você deve ter acesso somente por meio da atribuição de função RBAC do Azure. Não há suporte para autorização clássica de administrador/herdado.

Inicie sessão na sua conta do Azure e selecione a sua subscrição

Para iniciar a configuração, inicie sessão na sua conta do Azure:

Connect-AzAccount

Em seguida, conecte-se à sua assinatura:

Set-AzContext -Subscription <subscription name or id>

Instalar o módulo do Azure PowerShell

Instale o módulo Az.Network Azure PowerShell mais recente usando este comando:

 Install-Module -Name Az.Network -RequiredVersion 5.3.0

Criar um grupo de recursos

Antes de criar uma instância do Azure Virtual Network Manager, você precisa criar um grupo de recursos para hospedá-la. Crie um grupo de recursos usando New-AzResourceGroup. Este exemplo cria um grupo de recursos chamado vnm-learn-eastus-001ResourceGroup no local Leste dos EUA:


$location = "East US"
$rg = @{
    Name = 'rg-learn-eastus-001'
    Location = $location
}
New-AzResourceGroup @rg

Definir o âmbito e o tipo de acesso

Defina o escopo e o tipo de acesso para a instância do Azure Virtual Network Manager usando New-AzNetworkManagerScope. Este exemplo define um escopo com uma única assinatura e define o tipo de acesso como Conectividade. Substitua <subscription_id> pela ID da assinatura que você deseja gerenciar por meio do Gerenciador de Rede Virtual do Azure.


Import-Module -Name Az.Network -RequiredVersion "5.3.0"

[System.Collections.Generic.List[string]]$subGroup = @()  
$subGroup.Add("/subscriptions/<subscription_id>")

[System.Collections.Generic.List[String]]$access = @()  
$access.Add("Connectivity"); 

$scope = New-AzNetworkManagerScope -Subscription $subGroup

Criar uma instância do Virtual Network Manager

Crie uma instância do Virtual Network Manager usando New-AzNetworkManager. Este exemplo cria uma instância chamada vnm-learn-eastus-001 no local Leste dos EUA:

$avnm = @{
    Name = 'vnm-learn-eastus-001'
    ResourceGroupName = $rg.Name
    NetworkManagerScope = $scope
    NetworkManagerScopeAccess = $access
    Location = $location
}
$networkmanager = New-AzNetworkManager @avnm

Criar três redes virtuais

Crie três redes virtuais usando New-AzVirtualNetwork. Este exemplo cria redes virtuais denominadas vnet-learn-prod-eastus-001, vnet-learn-prod-eastus-002 e vnet-learn-test-eastus-003 no local Leste dos EUA. Se você já tiver redes virtuais com as quais deseja criar uma rede mesh, pule para a próxima seção.

$vnet001 = @{
    Name = 'vnet-learn-prod-eastus-001'
    ResourceGroupName = $rg.Name
    Location = $location
    AddressPrefix = '10.0.0.0/16'    
}

$vnet_learn_prod_eastus_001 = New-AzVirtualNetwork @vnet001

$vnet002 = @{
    Name = 'vnet-learn-prod-eastus-002'
    ResourceGroupName = $rg.Name
    Location = $location
    AddressPrefix = '10.1.0.0/16'    
}
$vnet_learn_prod_eastus_002 = New-AzVirtualNetwork @vnet002

$vnet003 = @{
    Name = 'vnet-learn-test-eastus-003'
    ResourceGroupName = $rg.Name
    Location = $location
    AddressPrefix = '10.2.0.0/16'    
}
$vnet_learn_test_eastus_003 = New-AzVirtualNetwork @vnet003

Adicionar uma sub-rede a cada rede virtual

Para concluir a configuração das redes virtuais, crie uma configuração de sub-rede chamada default com um prefixo de endereço de sub-rede / 24 usando Add-AzVirtualNetworkSubnetConfig. Em seguida, use Set-AzVirtualNetwork para aplicar a configuração de sub-rede à rede virtual.

$subnet_vnet001 = @{
    Name = 'default'
    VirtualNetwork = $vnet_learn_prod_eastus_001
    AddressPrefix = '10.0.0.0/24'
}
$subnetConfig_vnet001 = Add-AzVirtualNetworkSubnetConfig @subnet_vnet001
$vnet_learn_prod_eastus_001 | Set-AzVirtualNetwork

$subnet_vnet002 = @{
    Name = 'default'
    VirtualNetwork = $vnet_learn_prod_eastus_002
    AddressPrefix = '10.1.0.0/24'
}
$subnetConfig_vnet002 = Add-AzVirtualNetworkSubnetConfig @subnet_vnet002
$vnet_learn_prod_eastus_002 | Set-AzVirtualNetwork

$subnet_vnet003 = @{
    Name = 'default'
    VirtualNetwork = $vnet_learn_test_eastus_003
    AddressPrefix = '10.2.0.0/24'
}
$subnetConfig_vnet003 = Add-AzVirtualNetworkSubnetConfig @subnet_vnet003
$vnet_learn_test_eastus_003 | Set-AzVirtualNetwork

Criar um grupo de rede

Virtual Network Manager aplica configurações a grupos de redes virtuais, colocando-os em grupos de rede. Crie um grupo de rede usando New-AzNetworkManagerGroup. Este exemplo cria um grupo de rede chamado ng-learn-prod-eastus-001 no local Leste dos EUA:

$ng = @{
        Name = 'ng-learn-prod-eastus-001'
        ResourceGroupName = $rg.Name
        NetworkManagerName = $networkManager.Name
    }
    $ng = New-AzNetworkManagerGroup @ng

Definir associação para uma configuração de malha

Depois de criar seu grupo de rede, você define sua associação adicionando redes virtuais. Você pode adicionar essas redes manualmente ou usando a Política do Azure.

Adicionar associação manualmente

Nesta tarefa, você adiciona os membros estáticos vnet-learn-prod-eastus-001 e vnet-learn-prod-eastus-002 ao grupo de rede ng-learn-prod-eastus-001 usando New-AzNetworkManagerStaticMember.

Os membros estáticos devem ter um nome exclusivo com escopo para o grupo de rede. Recomendamos que você use um hash consistente do ID da rede virtual. Essa abordagem usa a implementação do uniqueString() modelo do Azure Resource Manager.

    function Get-UniqueString ([string]$id, $length=13)
    {
    $hashArray = (new-object System.Security.Cryptography.SHA512Managed).ComputeHash($id.ToCharArray())
    -join ($hashArray[1..$length] | ForEach-Object { [char]($_ % 26 + [byte][char]'a') })
    }
$sm_vnet001 = @{
        Name = Get-UniqueString $vnet_learn_prod_eastus_001.Id
        ResourceGroupName = $rg.Name
        NetworkGroupName = $ng.Name
        NetworkManagerName = $networkManager.Name
        ResourceId = $vnet_learn_prod_eastus_001.Id
    }
    $sm_vnet001 = New-AzNetworkManagerStaticMember @sm_vnet001
$sm_vnet002 = @{
        Name = Get-UniqueString $vnet_learn_prod_eastus_002.Id
        ResourceGroupName = $rg.Name
        NetworkGroupName = $ng.Name
        NetworkManagerName = $networkManager.Name
        ResourceId = $vnet_learn_prod_eastus_002.Id
    }
    $sm_vnet002 = New-AzNetworkManagerStaticMember @sm_vnet002

Criar uma configuração de conectividade

Nesta tarefa, você cria uma configuração de conectividade com o grupo de rede ng-learn-prod-eastus-001 usando New-AzNetworkManagerConnectivityConfiguration e New-AzNetworkManagerConnectivityGroupItem:

  1. Crie um item de grupo de conectividade:

    $gi = @{
        NetworkGroupId = $ng.Id
    }
    $groupItem = New-AzNetworkManagerConnectivityGroupItem @gi
    
  2. Crie um grupo de configuração e adicione um item de grupo de conectividade a ele:

    [System.Collections.Generic.List[Microsoft.Azure.Commands.Network.Models.NetworkManager.PSNetworkManagerConnectivityGroupItem]]$configGroup = @()
    $configGroup.Add($groupItem)
    
  3. Crie a configuração de conectividade com o grupo de configuração:

    $config = @{
        Name = 'cc-learn-prod-eastus-001'
        ResourceGroupName = $rg.Name
        NetworkManagerName = $networkManager.Name
        ConnectivityTopology = 'Mesh'
        AppliesToGroup = $configGroup
    }
    $connectivityconfig = New-AzNetworkManagerConnectivityConfiguration @config
        ```                        
    
    

Confirmar implantação

Confirme a configuração nas regiões de destino usando Deploy-AzNetworkManagerCommito . Esta etapa aciona sua configuração para começar a ter efeito.

[System.Collections.Generic.List[string]]$configIds = @()  
$configIds.add($connectivityconfig.id) 
[System.Collections.Generic.List[string]]$target = @()   
$target.Add("westus")     

$deployment = @{
    Name = $networkManager.Name
    ResourceGroupName = $rg.Name
    ConfigurationId = $configIds
    TargetLocation = $target
    CommitType = 'Connectivity'
}
Deploy-AzNetworkManagerCommit @deployment 

Clean up resources (Limpar recursos)

Se você não precisar mais da instância do Gerenciador de Rede Virtual do Azure, verifique se todos os pontos a seguir são verdadeiros antes de excluir o recurso:

  • Não há implantações de configurações em nenhuma região.
  • Todas as configurações foram excluídas.
  • Todos os grupos de rede foram excluídos.

Para excluir o recurso:

  1. Remova a implantação de conectividade implantando uma configuração vazia via Deploy-AzNetworkManagerCommit:

    [System.Collections.Generic.List[string]]$configIds = @()
    [System.Collections.Generic.List[string]]$target = @()   
    $target.Add("westus")     
    $removedeployment = @{
        Name = 'vnm-learn-eastus-001'
        ResourceGroupName = $rg.Name
        ConfigurationId = $configIds
        Target = $target
        CommitType = 'Connectivity'
    }
    Deploy-AzNetworkManagerCommit @removedeployment
    
  2. Remova a configuração de conectividade usando Remove-AzNetworkManagerConnectivityConfiguration:

    
    Remove-AzNetworkManagerConnectivityConfiguration -Name $connectivityconfig.Name -ResourceGroupName $rg.Name -NetworkManagerName $networkManager.Name
    
    
  3. Remova os recursos da política usando Remove-AzPolicy*:

    
    Remove-AzPolicyAssignment -Name $policyAssignment.Name
    Remove-AzPolicyAssignment -Name $policyDefinition.Name
    
    
  4. Remova o grupo de rede usando Remove-AzNetworkManagerGroup:

    Remove-AzNetworkManagerGroup -Name $ng.Name -ResourceGroupName $rg.Name -NetworkManagerName $networkManager.Name
    
  5. Exclua a instância do Virtual Network Manager usando Remove-AzNetworkManager:

    Remove-AzNetworkManager -name $networkManager.Name -ResourceGroupName $rg.Name
    
  6. Se você não precisar mais do recurso que criou, exclua o grupo de recursos usando Remove-AzResourceGroup:

    Remove-AzResourceGroup -Name $rg.Name -Force
    

Próximos passos

Agora que você criou uma instância do Gerenciador de Rede Virtual do Azure, saiba como bloquear o tráfego de rede usando uma configuração de administrador de segurança: