Snabbstart: Skapa en nätnätverkstopologi med Azure Virtual Network Manager med hjälp av Azure PowerShell

Kom igång med Azure Virtual Network Manager med hjälp av Azure PowerShell för att hantera anslutningen för dina virtuella nätverk.

I den här snabbstarten distribuerar du tre virtuella nätverk och använder Azure Virtual Network Manager för att skapa en nätnätverkstopologi. Sedan kontrollerar du att anslutningskonfigurationen har tillämpats.

Diagram över resurser som distribuerats för en nättopologi för virtuella nätverk med Azure Virtual Network Manager.

Viktigt!

Azure Virtual Network Manager är allmänt tillgängligt för konfigurationer av hub-and-spoke-anslutningar och säkerhetskonfigurationer med säkerhetsadministratörsregler. Mesh-anslutningskonfigurationer finns kvar i den offentliga förhandsversionen.

Den här förhandsversionen tillhandahålls utan serviceavtal och rekommenderas inte för produktionsarbetsbelastningar. Vissa funktioner kanske inte stöds eller kan vara begränsade. Mer information finns i Kompletterande villkor för användning av Microsoft Azure-förhandsversioner.

Förutsättningar

  • Ett Azure-konto med en aktiv prenumeration. Skapa ett konto utan kostnad.
  • Utför den här snabbstarten med hjälp av PowerShell lokalt, inte via Azure Cloud Shell. Versionen av Az.Network i Azure Cloud Shell stöder för närvarande inte Azure Virtual Network Manager-cmdletar.
  • Om du vill ändra dynamiska nätverksgrupper måste du endast beviljas åtkomst via Azure RBAC-rolltilldelning . Klassisk administratörs-/äldre auktorisering stöds inte.

Logga in på ditt Azure-konto och välj din prenumeration

Börja konfigurationen genom att logga in på ditt Azure-konto:

Connect-AzAccount

Anslut sedan till din prenumeration:

Set-AzContext -Subscription <subscription name or id>

Installera Azure PowerShell-modulen

Installera den senaste Azure PowerShell-modulen för Az.Network med hjälp av det här kommandot:

 Install-Module -Name Az.Network -RequiredVersion 5.3.0

Skapa en resursgrupp

Innan du kan skapa en Azure Virtual Network Manager-instans måste du skapa en resursgrupp som ska vara värd för den. Skapa en resursgrupp med hjälp av New-AzResourceGroup. I det här exemplet skapas en resursgrupp med namnet vnm-learn-eastus-001ResourceGroup på platsen USA, östra:


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

Definiera omfångs- och åtkomsttyp

Definiera omfångs- och åtkomsttypen för Azure Virtual Network Manager-instansen med hjälp av New-AzNetworkManagerScope. Det här exemplet definierar ett omfång med en enda prenumeration och anger åtkomsttypen till Anslut ivity. Ersätt <subscription_id> med ID:t för den prenumeration som du vill hantera 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

Skapa en Virtual Network Manager-instans

Skapa en Virtual Network Manager-instans med hjälp av New-AzNetworkManager. Det här exemplet skapar en instans med namnet vnm-learn-eastus-001 på platsen USA, östra:

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

Skapa tre virtuella nätverk

Skapa tre virtuella nätverk med hjälp av New-AzVirtualNetwork. Det här exemplet skapar virtuella nätverk med namnet vnet-learn-prod-eastus-001, vnet-learn-prod-eastus-002 och vnet-learn-test-eastus-003 på platsen USA, östra. Om du redan har virtuella nätverk som du vill skapa ett nätnätverk med kan du gå vidare till nästa avsnitt.

$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

Lägga till ett undernät i varje virtuellt nätverk

För att slutföra konfigurationen av de virtuella nätverken skapar du en undernätskonfiguration med namnet default med ett undernätsadressprefix på /24 med hjälp av Add-AzVirtualNetworkSubnetConfig. Använd sedan Set-AzVirtualNetwork för att tillämpa undernätskonfigurationen på det virtuella nätverket.

$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

Skapa en nätverksgrupp

Virtual Network Manager tillämpar konfigurationer på grupper av virtuella nätverk genom att placera dem i nätverksgrupper. Skapa en nätverksgrupp med hjälp av New-AzNetworkManagerGroup. I det här exemplet skapas en nätverksgrupp med namnet ng-learn-prod-eastus-001 på platsen USA, östra:

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

Definiera medlemskap för en mesh-konfiguration

När du har skapat din nätverksgrupp definierar du dess medlemskap genom att lägga till virtuella nätverk. Du kan lägga till dessa nätverk manuellt eller med hjälp av Azure Policy.

Lägga till medlemskap manuellt

I den här uppgiften lägger du till de statiska medlemmarna vnet-learn-prod-eastus-001 och vnet-learn-prod-eastus-002 i nätverksgruppen ng-learn-prod-eastus-001 med hjälp av New-AzNetworkManagerStaticMember.

Statiska medlemmar måste ha ett unikt namn som är begränsat till nätverksgruppen. Vi rekommenderar att du använder en konsekvent hash för det virtuella nätverks-ID:t. Den här metoden använder implementeringen av Azure Resource Manager-mallen uniqueString() .

    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

Skapa en anslutningskonfiguration

I den här uppgiften skapar du en anslutningskonfiguration med nätverksgruppen ng-learn-prod-eastus-001 med hjälp av New-AzNetworkManager Anslut ivityConfiguration och New-AzNetworkManager Anslut ivityGroupItem:

  1. Skapa ett anslutningsgruppobjekt:

    $gi = @{
        NetworkGroupId = $ng.Id
    }
    $groupItem = New-AzNetworkManagerConnectivityGroupItem @gi
    
  2. Skapa en konfigurationsgrupp och lägg till ett anslutningsgruppobjekt i den:

    [System.Collections.Generic.List[Microsoft.Azure.Commands.Network.Models.NetworkManager.PSNetworkManagerConnectivityGroupItem]]$configGroup = @()
    $configGroup.Add($groupItem)
    
  3. Skapa anslutningskonfigurationen med konfigurationsgruppen:

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

Genomför distribution

Checka in konfigurationen i målregionerna med hjälp Deploy-AzNetworkManagerCommitav . Det här steget utlöser konfigurationen så att den börjar gälla.

[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 

Rensa resurser

Om du inte längre behöver Azure Virtual Network Manager-instansen kontrollerar du att alla följande punkter är sanna innan du tar bort resursen:

  • Det finns inga distributioner av konfigurationer till någon region.
  • Alla konfigurationer har tagits bort.
  • Alla nätverksgrupper har tagits bort.

Så här tar du bort resursen:

  1. Ta bort anslutningsdistributionen genom att distribuera en tom konfiguration 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
    
  2. Ta bort anslutningskonfigurationen med hjälp Remove-AzNetworkManagerConnectivityConfigurationav :

    
    Remove-AzNetworkManagerConnectivityConfiguration -Name $connectivityconfig.Name -ResourceGroupName $rg.Name -NetworkManagerName $networkManager.Name
    
    
  3. Ta bort principresurserna med hjälp Remove-AzPolicy*av :

    
    Remove-AzPolicyAssignment -Name $policyAssignment.Name
    Remove-AzPolicyAssignment -Name $policyDefinition.Name
    
    
  4. Ta bort nätverksgruppen med hjälp Remove-AzNetworkManagerGroupav :

    Remove-AzNetworkManagerGroup -Name $ng.Name -ResourceGroupName $rg.Name -NetworkManagerName $networkManager.Name
    
  5. Ta bort Virtual Network Manager-instansen med hjälp Remove-AzNetworkManagerav :

    Remove-AzNetworkManager -name $networkManager.Name -ResourceGroupName $rg.Name
    
  6. Om du inte längre behöver den resurs som du skapade tar du bort resursgruppen med hjälp av Remove-AzResourceGroup:

    Remove-AzResourceGroup -Name $rg.Name -Force
    

Nästa steg

Nu när du har skapat en Azure Virtual Network Manager-instans lär du dig hur du blockerar nätverkstrafik med hjälp av en säkerhetsadministratörskonfiguration: