Démarrage rapide : Créer une topologie de réseau maillé avec Azure Virtual Network Manager en utilisant Azure PowerShell
Démarrez avec Azure Virtual Network Manager en utilisant Azure PowerShell pour gérer la connectivité de vos réseaux virtuels.
Dans ce guide de démarrage rapide, vous déployez trois réseaux virtuels et utiliser le gestionnaire de réseau virtuel Azure pour créer une topologie de réseau maillé. Vous vérifiez ensuite que la configuration de la connectivité a été appliquée.
Prérequis
- Compte Azure avec un abonnement actif. Créez un compte gratuitement.
- Suivez ce guide de démarrage rapide à l’aide de PowerShell en local, et non via Azure Cloud Shell. La version de Az.Network dans Azure Cloud Shell ne prend actuellement pas en charge les cmdlets Azure Virtual Network Manager.
- Pour modifier les groupes dynamiques AVNM, vous devez vous voir accorder l’accès via l’attribution de rôle RBAC Azure uniquement. L’autorisation classique Administration/héritée n’est pas prise en charge.
Vous connecter à votre compte Azure et sélectionner votre abonnement
Pour commencer votre configuration, connectez-vous à votre compte Azure :
Connect-AzAccount
Puis, connectez-vous à votre abonnement :
Set-AzContext -Subscription <subscription name or id>
Installer le module Azure PowerShell
Installez la version la plus récente du module Azure PowerShell Az.Network à l’aide de cette commande :
Install-Module -Name Az.Network -RequiredVersion 5.3.0
Créer un groupe de ressources
Avant de pouvoir créer une instance gestionnaire de réseau virtuel Azure, vous devez créer un groupe de ressources pour l’héberger. Créez un groupe de ressources à l’aide de New-AzResourceGroup. Cet exemple crée un groupe de ressources nommé resource-group dans la région West US 2 :
# Create a resource group
$location = "West US 2"
$rg = @{
Name = 'resource-group'
Location = $location
}
New-AzResourceGroup @rg
Définir l’étendue et le type d’accès
Définissez l’étendue et le type d’accès pour l’instance Azure Réseau virtuel Manager à l’aide de New-AzNetworkManagerScope. Ce exemple définit l’étendue avec un abonnement unique et établi le type d’accès sur Connectivité. Remplacez <subscription_id>
par l’ID de l’abonnement que vous souhaitez gérer à travers Azure Virtual Network 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
Créer une instance gestionnaire de réseau virtuel
Créez un instance Réseau virtuel Manager à l’aide de New-AzNetworkManager. Cet exemple crée une instance nommée network-manager dans la région West US 2 :
$avnm = @{
Name = 'network-manager'
ResourceGroupName = $rg.ResourceGroupName
NetworkManagerScope = $scope
NetworkManagerScopeAccess = $access
Location = $location
}
$networkmanager = New-AzNetworkManager @avnm
Créer trois réseaux virtuels
Créez un réseau virtuel en utilisant New-AzVirtualNetwork. Cet exemple crée des réseaux virtuels nommés vnet-spoke-001, vnet-spoke-002 et vnet-hub-001 dans la région uest des États-Unis 2. Si vous avez déjà des réseaux virtuels avec lesquels vous souhaitez créer un réseau maillé, vous pouvez passer à la section suivante.
$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
Ajoutez un sous-réseau au réseau virtuel
Pour finaliser la configuration des réseaux virtuels, créez une configuration de sous-réseau nommée default avec Add-AzVirtualNetworkSubnetConfig avec le préfixe d’adresse de sous-réseau /24. Utilisez ensuite Set-AzVirtualNetwork pour appliquer la configuration de sous-réseau au réseau virtuel.
$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
Créer un groupe réseau
Virtual Network Manager applique des configurations à des groupes de réseaux virtuels en les plaçant dans des groupes réseau. Créez un groupe réseau en utilisant New-AzNetworkManagerGroup. Cet exemple crée un groupe réseau nommé network-group dans la région West US 2 :
$ng = @{
Name = 'network-group'
ResourceGroupName = $rg.ResourceGroupName
NetworkManagerName = $networkManager.Name
}
$ng = New-AzNetworkManagerGroup @ng
Définir l’appartenance pour une configuration de maillage
Dans cette tâche, vous ajoutez les membres statiques vnet-spoke-001 et vnet-spoke-002 au groupe réseau network-group à l'aide de New-AzNetworkManagerStaticMember.
Les membres statiques doivent avoir un nom unique qui est limité au groupe réseau. Nous vous recommandons d’utiliser un hachage cohérent de l’ID de réseau virtuel. Cette approche utilise l’implémentation du uniqueString()
modèle 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
Créer une configuration de connectivité
Dans cette tâche, vous créez une configuration de connectivité avec le groupe de réseaux network-group en utilisant New-AzNetworkManagerConnectivityConfiguration et New-AzNetworkManagerConnectivityGroupItem :
Créez un élément de groupe de connectivité :
$gi = @{ NetworkGroupId = $ng.Id } $groupItem = New-AzNetworkManagerConnectivityGroupItem @gi
Créez un groupe de configuration et ajoutez-y un élément de groupe de connectivité :
[System.Collections.Generic.List[Microsoft.Azure.Commands.Network.Models.NetworkManager.PSNetworkManagerConnectivityGroupItem]]$configGroup = @() $configGroup.Add($groupItem)
Créez la configuration de connectivité avec le groupe de configuration :
$config = @{ Name = 'connectivity-configuration' ResourceGroupName = $rg.ResourceGroupName NetworkManagerName = $networkManager.Name ConnectivityTopology = 'Mesh' AppliesToGroup = $configGroup } $connectivityconfig = New-AzNetworkManagerConnectivityConfiguration @config ```
Valider le déploiement
Validez la configuration dans les régions cibles à l’aide de Deploy-AzNetworkManagerCommit
. Cette étape déclenche votre configuration pour commencer à prendre effet.
[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
Nettoyer les ressources
Si vous n’avez plus besoin de l’instance Azure Virtual Network Manager et de ses ressources associées, supprimez le groupe de ressources qui les contient. La suppression du groupe de ressources supprime également les ressources que vous avez créées.
Supprimez le groupe de ressources à l'aide de Remove-AzResourceGroup :
Remove-AzResourceGroup -Name $rg.ResourceGroupName -Force
Étapes suivantes
Maintenant que vous avez créé une instance Azure Virtual Network Manager, découvrez comment bloquer le trafic réseau à l’aide d’une configuration d’administrateur de sécurité :