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.
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:
Crie um item de grupo de conectividade:
$gi = @{ NetworkGroupId = $ng.Id } $groupItem = New-AzNetworkManagerConnectivityGroupItem @gi
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)
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-AzNetworkManagerCommit
o . 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:
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
Remova a configuração de conectividade usando
Remove-AzNetworkManagerConnectivityConfiguration
:Remove-AzNetworkManagerConnectivityConfiguration -Name $connectivityconfig.Name -ResourceGroupName $rg.Name -NetworkManagerName $networkManager.Name
Remova os recursos da política usando
Remove-AzPolicy*
:Remove-AzPolicyAssignment -Name $policyAssignment.Name Remove-AzPolicyAssignment -Name $policyDefinition.Name
Remova o grupo de rede usando
Remove-AzNetworkManagerGroup
:Remove-AzNetworkManagerGroup -Name $ng.Name -ResourceGroupName $rg.Name -NetworkManagerName $networkManager.Name
Exclua a instância do Virtual Network Manager usando
Remove-AzNetworkManager
:Remove-AzNetworkManager -name $networkManager.Name -ResourceGroupName $rg.Name
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: