Compartilhar via


Início Rápido: crie uma topologia de rede em malha com o Gerenciador de Rede Virtual do Azure usando o Azure PowerShell

Introdução ao Gerenciador de Rede Virtual do Azure usando o Azure PowerShell para gerenciar a conectividade das suas redes virtuais.

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

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

Pré-requisitos

  • Uma conta do Azure com uma assinatura ativa. Crie uma conta gratuitamente.
  • Realizar este guia de início rápido usando o PowerShell localmente, não através do Azure Cloud Shell. Atualmente, a versão do Az.Network no Azure Cloud Shell não dá suporte aos cmdlets do Gerenciador de Rede Virtual do Azure.
  • Para modificar os grupos de rede dinâmicos, 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/herdada.

Entre na sua conta do Azure e selecione sua assinatura

Para iniciar sua configuração, entrar na sua conta do Azure:

Connect-AzAccount

Em seguida, conecte-se à sua assinatura:

Set-AzContext -Subscription <subscription name or id>

Instalar módulo do Azure PowerShell

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

 Install-Module -Name Az.Network -RequiredVersion 5.3.0

Criar um grupo de recursos

Nesta tarefa, crie um grupo de recursos para hospedar uma instância do gerenciador de rede. Criar um grupo de recursos usando New-AzResourceGroup. Esse exemplo cria um grupo de recursos chamado resource-group na região Oeste dos EUA 2 :

# Create a resource group
$location = "westus2"
$rg = @{
    Name = 'resource-group'
    Location = $location
}
New-AzResourceGroup @rg

Definir o escopo e o tipo de acesso

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

$subID= "<subscription_id>"

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

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

$scope = New-AzNetworkManagerScope -Subscription $subGroup

Crie uma instância do Gerenciador de Rede Virtual

Nesta tarefa, crie uma instância do Gerenciador de Rede Virtual usando New-AzNetworkManager. Esse exemplo cria uma instância chamada network-manager na região (Estados Unidos) Oeste dos EUA 2 :

$avnm = @{
    Name = 'network-manager'
    ResourceGroupName = $rg.Name
    NetworkManagerScope = $scope
    NetworkManagerScopeAccess = $access
    Location = $location
}
$networkmanager = New-AzNetworkManager @avnm

Criar três redes virtuais

Nesta tarefa, crie três redes virtuais usando New-AzVirtualNetwork. Esse exemplo cria redes virtuais chamadas vnet-00, vnet-01, and vnet-02 na região (Estados Unidos) Oeste dos EUA 2. Se você já possui redes virtuais com as quais deseja criar uma rede em malha, pode pular para a próxima seção.

$vnet_00 = @{
    Name = 'vnet-00'
    ResourceGroupName = $rg.Name
    Location = $location
    AddressPrefix = '10.0.0.0/16'    
}

$vnet_00 = New-AzVirtualNetwork @vnet_00

$vnet_01 = @{
    Name = 'vnet-01'
    ResourceGroupName = $rg.Name
    Location = $location
    AddressPrefix = '10.1.0.0/16'    
}
$vnet_01 = New-AzVirtualNetwork @vnet_01

$vnet_02 = @{
    Name = 'vnet-02'
    ResourceGroupName = $rg.Name
    Location = $location
    AddressPrefix = '10.2.0.0/16'    
}
$vnet_02 = New-AzVirtualNetwork @vnet_02

Adicionar uma sub-rede à rede virtual

Nesta tarefa, crie uma configuração de sub-rede nomeada padrão com um prefixo de endereço de sub-rede /24 usando Add-AzVirtualNetworkSubnetConfig. Em seguida, use Set-AzVirtualNetwork para aplicar a configuração da sub-rede na rede virtual.

$subnet_vnet_00 = @{
    Name = 'default'
    VirtualNetwork = $vnet_00
    AddressPrefix = '10.0.0.0/24'
}
$subnetConfig_vnet_00 = Add-AzVirtualNetworkSubnetConfig @subnet_vnet_00
$vnet_00 | Set-AzVirtualNetwork

$subnet_vnet_01 = @{
    Name = 'default'
    VirtualNetwork = $vnet_01
    AddressPrefix = '10.1.0.0/24'
}
$subnetConfig_vnet_01 = Add-AzVirtualNetworkSubnetConfig @subnet_vnet_01
$vnet_01 | Set-AzVirtualNetwork

$subnet_vnet_02 = @{
    Name = 'default'
    VirtualNetwork = $vnet_02
    AddressPrefix = '10.2.0.0/24'
}
$subnetConfig_vnet_02 = Add-AzVirtualNetworkSubnetConfig @subnet_vnet_02
$vnet_02 | Set-AzVirtualNetwork

Criar um grupo de rede

O Gerenciador de Rede Virtual aplica configurações a grupos de redes virtuais, colocando-as em grupos de rede. Criar um grupo de rede usando New-AzNetworkManagerGroup. Esse exemplo cria um grupo de rede chamado network-group na região (Estados Unidos) Oeste dos EUA 2:

$ng = @{
        Name = 'network-group'
        ResourceGroupName = $rg.Name
        NetworkManagerName = $networkManager.Name
    }
    $ng = New-AzNetworkManagerGroup @ng

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

Nessa tarefa, você adiciona os membros vnet-00 and vnet-01 ao grupo de rede network-group 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 da ID da rede virtual. Essa abordagem usa a implementação uniqueString() do 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_vnet_00 = @{
        Name = Get-UniqueString $vnet_00.Id
        ResourceGroupName = $rg.Name
        NetworkGroupName = $ng.Name
        NetworkManagerName = $networkManager.Name
        ResourceId = $vnet_00.Id
    }
    $sm_vnet_00 = New-AzNetworkManagerStaticMember @sm_vnet_00
$sm_vnet_01 = @{
        Name = Get-UniqueString $vnet_01.Id
        ResourceGroupName = $rg.Name
        NetworkGroupName = $ng.Name
        NetworkManagerName = $networkManager.Name
        ResourceId = $vnet_01.Id
    }
    $sm_vnet_01 = New-AzNetworkManagerStaticMember @sm_vnet_01

Criar uma configuração de conectividade

Nessa tarefa, você cria uma configuração de conectividade com o grupo de rede network-group usando New-AzNetworkManagerConnectivityConfiguration e New-AzNetworkManagerConnectivityGroupItem:

  1. Criar um item do grupo de conectividade:

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

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

    $config = @{
        Name = 'connectivity-configuration'
        ResourceGroupName = $rg.Name
        NetworkManagerName = $networkManager.Name
        ConnectivityTopology = 'Mesh'
        AppliesToGroup = $configGroup
    }
    $connectivityconfig = New-AzNetworkManagerConnectivityConfiguration @config
        ```                        
    
    

Confirmar implantação

Confirme a configuração para as regiões de destino usando Deploy-AzNetworkManagerCommit. Essa etapa dispara sua configuração para começar a entrar em vigor.

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

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

Limpar os recursos

Se você não precisar mais da instância do Gerenciador de Rede Virtual do Azure e seus recursos, siga estas etapas para excluí-los excluindo o grupo de recursos que contém os recursos:

  1. Exclua o grupo de recursos usando Remove-AzResourceGroup:

    Remove-AzResourceGroup -Name $rg.Name -Force
    

Próximas etapas

Nesta etapa, saiba como bloquear o tráfego de rede usando uma configuração de administrador de segurança: