Quickstart: Een mesh-netwerktopologie maken met Azure Virtual Network Manager met behulp van Azure PowerShell
Ga aan de slag met Azure Virtual Network Manager met behulp van Azure PowerShell om connectiviteit voor uw virtuele netwerken te beheren.
In deze quickstart implementeert u drie virtuele netwerken en gebruikt u Azure Virtual Network Manager om een mesh-netwerktopologie te maken. Vervolgens controleert u of de connectiviteitsconfiguratie is toegepast.
Vereisten
- Een Azure-account met een actief abonnement. Gratis een account maken
- Voer deze quickstart lokaal uit met Behulp van PowerShell, niet via Azure Cloud Shell. De versie van Az.Network in Azure Cloud Shell biedt momenteel geen ondersteuning voor de Azure Virtual Network Manager-cmdlets.
- Als u dynamische netwerkgroepen wilt wijzigen, moet u alleen toegang krijgen via Azure RBAC-roltoewijzing . Klassieke beheerder/verouderde autorisatie wordt niet ondersteund.
Aanmelden bij uw Azure-account en uw abonnement selecteren
Meld u aan bij uw Azure-account om uw configuratie te starten:
Connect-AzAccount
Maak vervolgens verbinding met uw abonnement:
Set-AzContext -Subscription <subscription name or id>
De Azure PowerShell-module installeren
Installeer de nieuwste Az.Network Azure PowerShell-module met behulp van deze opdracht:
Install-Module -Name Az.Network -RequiredVersion 5.3.0
Een brongroep maken
Voordat u een Exemplaar van Azure Virtual Network Manager kunt maken, moet u een resourcegroep maken om deze te hosten. Maak een resourcegroep met behulp van New-AzResourceGroup. In dit voorbeeld wordt een resourcegroep met de naam vnm-learn-eastus-001ResourceGroup gemaakt op de locatie VS - oost:
$location = "East US"
$rg = @{
Name = 'rg-learn-eastus-001'
Location = $location
}
New-AzResourceGroup @rg
Het bereik en het toegangstype definiëren
Definieer het bereik en het toegangstype voor het Azure Virtual Network Manager-exemplaar met behulp van New-AzNetworkManagerScope. In dit voorbeeld wordt een bereik gedefinieerd met één abonnement en wordt het toegangstype ingesteld op Connectiviteit. Vervang door <subscription_id>
de id van het abonnement dat u wilt beheren via Azure Virtual Network 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
Een Virtual Network Manager-exemplaar maken
Maak een Virtual Network Manager-exemplaar met behulp van New-AzNetworkManager. In dit voorbeeld wordt een exemplaar met de naam vnm-learn-eastus-001 gemaakt op de locatie VS - oost:
$avnm = @{
Name = 'vnm-learn-eastus-001'
ResourceGroupName = $rg.Name
NetworkManagerScope = $scope
NetworkManagerScopeAccess = $access
Location = $location
}
$networkmanager = New-AzNetworkManager @avnm
Drie virtuele netwerken maken
Maak drie virtuele netwerken met behulp van New-AzVirtualNetwork. In dit voorbeeld worden virtuele netwerken met de naam vnet-learn-prod-eastus-001, vnet-learn-prod-eastus-002 en vnet-learn-test-eastus-003 gemaakt op de locatie VS - oost. Als u al virtuele netwerken hebt waarmee u een mesh-netwerk wilt maken, kunt u doorgaan naar de volgende sectie.
$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
Een subnet toevoegen aan elk virtueel netwerk
Als u de configuratie van de virtuele netwerken wilt voltooien, maakt u een subnetconfiguratie met de naam standaard met een subnetadresvoorvoegsel van /24 met behulp van Add-AzVirtualNetworkSubnetConfig. Gebruik Vervolgens Set-AzVirtualNetwork om de subnetconfiguratie toe te passen op het virtuele netwerk.
$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
Een netwerkgroep maken
Virtual Network Manager past configuraties toe op groepen virtuele netwerken door ze in netwerkgroepen te plaatsen. Maak een netwerkgroep met behulp van New-AzNetworkManagerGroup. In dit voorbeeld wordt een netwerkgroep met de naam ng-learn-prod-eastus-001 gemaakt op de locatie VS - oost:
$ng = @{
Name = 'ng-learn-prod-eastus-001'
ResourceGroupName = $rg.Name
NetworkManagerName = $networkManager.Name
}
$ng = New-AzNetworkManagerGroup @ng
Lidmaatschap definiëren voor een mesh-configuratie
Nadat u uw netwerkgroep hebt gemaakt, definieert u het lidmaatschap door virtuele netwerken toe te voegen. U kunt deze netwerken handmatig toevoegen of met behulp van Azure Policy.
Lidmaatschap handmatig toevoegen
In deze taak voegt u de statische leden vnet-learn-prod-eastus-001 en vnet-learn-prod-eastus-002 toe aan de netwerkgroep ng-learn-prod-eastus-001 met behulp van New-AzNetworkManagerStaticMember.
Statische leden moeten een unieke naam hebben die is afgestemd op de netwerkgroep. U wordt aangeraden een consistente hash van de id van het virtuele netwerk te gebruiken. Deze benadering maakt gebruik van de implementatie van uniqueString()
de Azure Resource Manager-sjabloon.
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
Een connectiviteitsconfiguratie maken
In deze taak maakt u een connectiviteitsconfiguratie met de netwerkgroep ng-learn-prod-eastus-001 met behulp van New-AzNetworkManagerConnectivityConfiguration en New-AzNetworkManagerConnectivityGroupItem:
Maak een connectiviteitsgroepitem:
$gi = @{ NetworkGroupId = $ng.Id } $groupItem = New-AzNetworkManagerConnectivityGroupItem @gi
Maak een configuratiegroep en voeg er een verbindingsgroepitem aan toe:
[System.Collections.Generic.List[Microsoft.Azure.Commands.Network.Models.NetworkManager.PSNetworkManagerConnectivityGroupItem]]$configGroup = @() $configGroup.Add($groupItem)
Maak de connectiviteitsconfiguratie met de configuratiegroep:
$config = @{ Name = 'cc-learn-prod-eastus-001' ResourceGroupName = $rg.Name NetworkManagerName = $networkManager.Name ConnectivityTopology = 'Mesh' AppliesToGroup = $configGroup } $connectivityconfig = New-AzNetworkManagerConnectivityConfiguration @config ```
Implementatie doorvoeren
Voer de configuratie door naar de doelregio's met behulp van Deploy-AzNetworkManagerCommit
. Met deze stap wordt uw configuratie geactiveerd om van kracht te worden.
[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
Resources opschonen
Als u het Exemplaar van Azure Virtual Network Manager niet meer nodig hebt, moet u ervoor zorgen dat alle volgende punten waar zijn voordat u de resource verwijdert:
- Er zijn geen implementaties van configuraties naar een regio.
- Alle configuraties zijn verwijderd.
- Alle netwerkgroepen zijn verwijderd.
De resource verwijderen:
Verwijder de connectiviteitsimplementatie door een lege configuratie te implementeren 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
Verwijder de connectiviteitsconfiguratie met behulp van
Remove-AzNetworkManagerConnectivityConfiguration
:Remove-AzNetworkManagerConnectivityConfiguration -Name $connectivityconfig.Name -ResourceGroupName $rg.Name -NetworkManagerName $networkManager.Name
Verwijder de beleidsbronnen met behulp van
Remove-AzPolicy*
:Remove-AzPolicyAssignment -Name $policyAssignment.Name Remove-AzPolicyAssignment -Name $policyDefinition.Name
Verwijder de netwerkgroep met behulp van
Remove-AzNetworkManagerGroup
:Remove-AzNetworkManagerGroup -Name $ng.Name -ResourceGroupName $rg.Name -NetworkManagerName $networkManager.Name
Verwijder het Virtual Network Manager-exemplaar met behulp van
Remove-AzNetworkManager
:Remove-AzNetworkManager -name $networkManager.Name -ResourceGroupName $rg.Name
Als u de resource die u hebt gemaakt niet meer nodig hebt, verwijdert u de resourcegroep met behulp van Remove-AzResourceGroup:
Remove-AzResourceGroup -Name $rg.Name -Force
Volgende stappen
Nu u een Exemplaar van Azure Virtual Network Manager hebt gemaakt, leert u hoe u netwerkverkeer blokkeert met behulp van een configuratie van een beveiligingsbeheerder: