Condividi tramite


Guida introduttiva: Creare una topologia di rete mesh con Azure Rete virtuale Manager usando Azure PowerShell

Introduzione ad Azure Rete virtuale Manager con Azure PowerShell per gestire la connettività per le reti virtuali.

In questa guida introduttiva si distribuiscono tre reti virtuali e si usa Azure Rete virtuale Manager per creare una topologia di rete mesh. Verificare quindi che la configurazione della connettività sia stata applicata.

Diagramma delle risorse distribuite per una topologia di rete virtuale mesh con Gestione rete virtuale di Azure.

Importante

Azure Rete virtuale Manager è disponibile a livello generale per configurazioni di connettività hub-spoke e configurazioni di sicurezza con regole di amministratore della sicurezza. Le configurazioni di connettività mesh rimangono in anteprima.

Questa versione di anteprima viene fornita senza contratto di servizio, pertanto se ne sconsiglia l’uso per i carichi di lavoro in ambienti di produzione. Alcune funzionalità potrebbero non essere supportate o potrebbero presentare funzionalità limitate. Per altre informazioni, vedere le Condizioni supplementari per l'uso delle anteprime di Microsoft Azure.

Prerequisiti

Accedere al proprio account Azure e selezionare la sottoscrizione

Per iniziare la configurazione, accedere all'account Azure:

Connect-AzAccount

Connettersi quindi alla sottoscrizione:

Set-AzContext -Subscription <subscription name or id>

Installare il modulo Azure PowerShell

Installare il modulo Az.Network di Azure PowerShell più recente usando questo comando:

 Install-Module -Name Az.Network -RequiredVersion 5.3.0

Creare un gruppo di risorse

Prima di poter creare un'istanza di Azure Rete virtuale Manager, è necessario creare un gruppo di risorse per ospitarlo. Creare un gruppo di risorse usando New-AzResourceGroup. Questo esempio crea un gruppo di risorse denominato vnm-learn-eastus-001ResourceGroup nella località Stati Uniti orientali:


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

Definire l'ambito e il tipo di accesso

Definire l'ambito e il tipo di accesso per l'istanza di Azure Rete virtuale Manager usando New-AzNetworkManagerScope. Questo esempio definisce un ambito con una singola sottoscrizione e imposta il tipo di accesso su Connessione ivity. Sostituire <subscription_id> con l'ID della sottoscrizione che si vuole gestire tramite Azure Rete virtuale Manager.


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

Creare un'istanza di Rete virtuale Manager

Creare un'istanza di Rete virtuale Manager usando New-AzNetworkManager. Questo esempio crea un'istanza denominata vnm-learn-eastus-001 nella località Stati Uniti orientali:

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

Creare tre reti virtuali

Creare tre reti virtuali usando New-AzVirtualNetwork. Questo esempio crea reti virtuali denominate vnet-learn-prod-eastus-001, vnet-learn-prod-eastus-002 e vnet-learn-test-eastus-003 nella località Stati Uniti orientali. Se si dispone già di reti virtuali con cui si vuole creare una rete mesh, è possibile passare alla sezione successiva.

$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

Aggiungere una subnet a ogni rete virtuale

Per completare la configurazione delle reti virtuali, creare una configurazione della subnet denominata default con un prefisso di indirizzo subnet / 24 usando Add-AzVirtualNetworkSubnetConfig. Usare quindi Set-AzVirtualNetwork per applicare la configurazione della subnet alla rete virtuale.

$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

Creare un gruppo di rete

Rete virtuale Manager applica le configurazioni ai gruppi di reti virtuali inserendoli in gruppi di rete. Creare un gruppo di rete usando New-AzNetworkManagerGroup. Questo esempio crea un gruppo di rete denominato ng-learn-prod-eastus-001 nella località Stati Uniti orientali:

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

Definire l'appartenenza per una configurazione mesh

Dopo aver creato il gruppo di rete, definirne l'appartenenza aggiungendo reti virtuali. È possibile aggiungere queste reti manualmente o usando Criteri di Azure.

Aggiungere manualmente l'appartenenza

In questa attività si aggiungono i membri statici vnet-learn-prod-eastus-001 e vnet-learn-prod-eastus-002 al gruppo di rete ng-learn-prod-eastus-001 usando New-AzNetworkManagerStaticMember.

I membri statici devono avere un nome univoco con ambito nel gruppo di rete. È consigliabile usare un hash coerente dell'ID della rete virtuale. Questo approccio usa l'implementazione del modello di uniqueString() 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

Creare una configurazione della connettività

In questa attività viene creata una configurazione di connettività con il gruppo di rete ng-learn-prod-eastus-001 usando New-AzNetworkManager Connessione ivityConfiguration e New-AzNetworkManager Connessione ivityGroupItem:

  1. Creare un elemento del gruppo di connettività:

    $gi = @{
        NetworkGroupId = $ng.Id
    }
    $groupItem = New-AzNetworkManagerConnectivityGroupItem @gi
    
  2. Creare un gruppo di configurazione e aggiungervi un elemento del gruppo di connettività:

    [System.Collections.Generic.List[Microsoft.Azure.Commands.Network.Models.NetworkManager.PSNetworkManagerConnectivityGroupItem]]$configGroup = @()
    $configGroup.Add($groupItem)
    
  3. Creare la configurazione della connettività con il gruppo di configurazione:

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

Eseguire il commit della distribuzione

Eseguire il commit della configurazione nelle aree di destinazione usando Deploy-AzNetworkManagerCommit. Questo passaggio attiva la configurazione per iniziare a essere effettiva.

[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 

Pulire le risorse

Se l'istanza di Azure Rete virtuale Manager non è più necessaria, assicurarsi che tutti i punti seguenti siano true prima di eliminare la risorsa:

  • Non esistono distribuzioni di configurazioni in nessuna area.
  • Tutte le configurazioni sono state eliminate.
  • Tutti i gruppi di rete sono stati eliminati.

Per eliminare la risorsa:

  1. Rimuovere la distribuzione della connettività distribuendo una configurazione vuota tramite 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. Rimuovere la configurazione della connettività usando Remove-AzNetworkManagerConnectivityConfiguration:

    
    Remove-AzNetworkManagerConnectivityConfiguration -Name $connectivityconfig.Name -ResourceGroupName $rg.Name -NetworkManagerName $networkManager.Name
    
    
  3. Rimuovere le risorse dei criteri usando Remove-AzPolicy*:

    
    Remove-AzPolicyAssignment -Name $policyAssignment.Name
    Remove-AzPolicyAssignment -Name $policyDefinition.Name
    
    
  4. Rimuovere il gruppo di rete usando Remove-AzNetworkManagerGroup:

    Remove-AzNetworkManagerGroup -Name $ng.Name -ResourceGroupName $rg.Name -NetworkManagerName $networkManager.Name
    
  5. Eliminare l'istanza di Rete virtuale Manager usando Remove-AzNetworkManager:

    Remove-AzNetworkManager -name $networkManager.Name -ResourceGroupName $rg.Name
    
  6. Se la risorsa creata non è più necessaria, eliminare il gruppo di risorse usando Remove-AzResourceGroup:

    Remove-AzResourceGroup -Name $rg.Name -Force
    

Passaggi successivi

Dopo aver creato un'istanza di Azure Rete virtuale Manager, vedere come bloccare il traffico di rete usando una configurazione di amministratore della sicurezza: