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 di avvio rapido, si distribuiscono tre reti virtuali e si usa Gestione rete virtuale di Azure per creare una topologia di rete mesh. Si verifica quindi che la configurazione della connettività sia stata applicata.
Prerequisiti
- Un account Azure con una sottoscrizione attiva. Creare un account gratuitamente.
- Eseguire questa guida introduttiva usando PowerShell in locale, non tramite Azure Cloud Shell. La versione di Az.Network in Azure Cloud Shell attualmente non supporta i cmdlet di Azure Rete virtuale Manager.
- Per modificare i gruppi di rete dinamici, è necessario che sia stato concesso l'accesso solo tramite l'assegnazione di ruolo Controllo degli accessi in base al ruolo di Azure. L'autorizzazione di amministratore/legacy classica non è supportata.
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 gruppo di risorse nell'area Stati Uniti occidentali 2 :
# Create a resource group
$location = "West US 2"
$rg = @{
Name = 'resource-group'
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 Connettività. Sostituire <subscription_id>
con l'ID della sottoscrizione che si vuole gestire tramite Azure Rete virtuale Manager.
$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
Creare un'istanza di Gestione reti virtuali
Creare un'istanza di Rete virtuale Manager usando New-AzNetworkManager. Questo esempio crea un'istanza denominata network-manager nell'area Stati Uniti occidentali 2 :
$avnm = @{
Name = 'network-manager'
ResourceGroupName = $rg.ResourceGroupName
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-spoke-001, vnet-spoke-002 e vnet-hub-001 nell'area Stati Uniti occidentali 2. Se si dispone già di reti virtuali con cui si vuole creare una rete mesh, è possibile passare alla sezione successiva.
$vnetspoke001 = @{
Name = 'vnet-spoke-001'
ResourceGroupName = $rg.ResourceGroupName
Location = $location
AddressPrefix = '10.0.0.0/16'
}
$vnet_spoke_001 = New-AzVirtualNetwork @vnetspoke001
$vnetspoke002 = @{
Name = 'vnet-spoke-002'
ResourceGroupName = $rg.ResourceGroupName
Location = $location
AddressPrefix = '10.1.0.0/16'
}
$vnet_spoke_002 = New-AzVirtualNetwork @vnetspoke002
$vnethub001 = @{
Name = 'vnet-hub-001'
ResourceGroupName = $rg.ResourceGroupName
Location = $location
AddressPrefix = '10.2.0.0/16'
}
$vnet_hub_001 = New-AzVirtualNetwork @vnethub001
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_vnetspoke001 = @{
Name = 'default'
VirtualNetwork = $vnet_spoke_001
AddressPrefix = '10.0.0.0/24'
}
$subnetConfig_vnetspoke001 = Add-AzVirtualNetworkSubnetConfig @subnet_vnetspoke001
$vnet_spoke_001 | Set-AzVirtualNetwork
$subnet_vnetspoke002 = @{
Name = 'default'
VirtualNetwork = $vnet_spoke_002
AddressPrefix = '10.1.0.0/24'
}
$subnetConfig_vnetspoke002 = Add-AzVirtualNetworkSubnetConfig @subnet_vnetspoke002
$vnet_spoke_002 | Set-AzVirtualNetwork
$subnet_vnet_hub_001 = @{
Name = 'default'
VirtualNetwork = $vnet_hub_001
AddressPrefix = '10.2.0.0/24'
}
$subnetConfig_vnet_hub_001 = Add-AzVirtualNetworkSubnetConfig @subnet_vnet_hub_001
$vnet_hub_001 | Set-AzVirtualNetwork
Creare un gruppo di rete
Gestione reti virtuali 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 network-group nell'area Stati Uniti occidentali 2:
$ng = @{
Name = 'network-group'
ResourceGroupName = $rg.ResourceGroupName
NetworkManagerName = $networkManager.Name
}
$ng = New-AzNetworkManagerGroup @ng
Definire l'appartenenza per una configurazione mesh
In questa attività si aggiungono i membri statici vnet-spoke-001 e vnet-spoke-002 al gruppo di rete tramite 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_vnetspoke001 = @{
Name = Get-UniqueString $vnet_spoke_001.Id
ResourceGroupName = $rg.ResourceGroupName
NetworkGroupName = $ng.Name
NetworkManagerName = $networkManager.Name
ResourceId = $vnet_spoke_001.Id
}
$sm_vnetspoke001 = New-AzNetworkManagerStaticMember @sm_vnetspoke001
$sm_vnetspoke002 = @{
Name = Get-UniqueString $vnet_spoke_002.Id
ResourceGroupName = $rg.ResourceGroupName
NetworkGroupName = $ng.Name
NetworkManagerName = $networkManager.Name
ResourceId = $vnet_spoke_002.Id
}
$sm_vnetspoke002 = New-AzNetworkManagerStaticMember @sm_vnetspoke002
Creare una configurazione della connettività
In questa attività viene creata una configurazione di connettività con il gruppo di rete network-group usando New-AzNetworkManagerConnectivityConfiguration e New-AzNetworkManagerConnectivityGroupItem:
Creare un elemento del gruppo di connettività:
$gi = @{ NetworkGroupId = $ng.Id } $groupItem = New-AzNetworkManagerConnectivityGroupItem @gi
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)
Creare la configurazione della connettività con il gruppo di configurazione:
$config = @{ Name = 'connectivity-configuration' ResourceGroupName = $rg.ResourceGroupName 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("westus2")
$deployment = @{
Name = $networkManager.Name
ResourceGroupName = $rg.ResourceGroupName
ConfigurationId = $configIds
TargetLocation = $target
CommitType = 'Connectivity'
}
Deploy-AzNetworkManagerCommit @deployment
Pulire le risorse
Se l'istanza di Azure Rete virtuale Manager non è più necessaria ed è associata alle risorse, eliminare il gruppo di risorse che li contiene. L'eliminazione del gruppo di risorse elimina anche le risorse create.
Eliminare il gruppo di risorse usando Remove-AzResourceGroup:
Remove-AzResourceGroup -Name $rg.ResourceGroupName -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: