Udostępnij za pośrednictwem


Szybki start: tworzenie topologii sieci siatki za pomocą usługi Azure Virtual Network Manager przy użyciu programu Azure PowerShell

Rozpocznij pracę z usługą Azure Virtual Network Manager przy użyciu programu Azure PowerShell, aby zarządzać łącznością dla sieci wirtualnych.

W tym przewodniku Szybki start wdrożysz trzy sieci wirtualne i użyjesz usługi Azure Virtual Network Manager, aby utworzyć topologię sieci siatki. Następnie sprawdź, czy konfiguracja łączności została zastosowana.

Diagram zasobów wdrożonych dla topologii sieci wirtualnej siatki za pomocą menedżera sieci wirtualnej platformy Azure.

Wymagania wstępne

  • Konto platformy Azure z aktywną subskrypcją. Utwórz konto bezpłatnie.
  • Wykonaj ten przewodnik Szybki start przy użyciu programu PowerShell lokalnie, a nie za pośrednictwem usługi Azure Cloud Shell. Wersja modułu Az.Network w usłudze Azure Cloud Shell nie obsługuje obecnie poleceń cmdlet usługi Azure Virtual Network Manager.
  • Aby zmodyfikować dynamiczne grupy sieciowe, należy udzielić dostępu tylko za pośrednictwem przypisania roli RBAC platformy Azure. Autoryzacja administratora klasycznego/starszej wersji nie jest obsługiwana.

Zaloguj się do konta platformy Azure i wybierz swoją subskrypcję

Aby rozpocząć konfigurację, zaloguj się do konta platformy Azure:

Connect-AzAccount

Następnie połącz się z subskrypcją:

Set-AzContext -Subscription <subscription name or id>

Instalowanie modułu Azure PowerShell

Zainstaluj najnowszy moduł Az.Network programu Azure PowerShell przy użyciu tego polecenia:

 Install-Module -Name Az.Network -RequiredVersion 5.3.0

Tworzenie grupy zasobów

Przed utworzeniem wystąpienia usługi Azure Virtual Network Manager należy utworzyć grupę zasobów do jej hostowania. Utwórz grupę zasobów przy użyciu polecenia New-AzResourceGroup. W tym przykładzie utworzono grupę zasobów o nazwie vnm-learn-eastus-001ResourceGroup w lokalizacji Wschodnie stany USA:


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

Definiowanie zakresu i typu dostępu

Zdefiniuj zakres i typ dostępu dla wystąpienia usługi Azure Virtual Network Manager przy użyciu polecenia New-AzNetworkManagerScope. W tym przykładzie zdefiniowano zakres z jedną subskrypcją i ustawiono typ dostępu na łączność. Zastąp <subscription_id> ciąg identyfikatorem subskrypcji, którą chcesz zarządzać za pośrednictwem usługi 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

Tworzenie wystąpienia programu Virtual Network Manager

Utwórz wystąpienie menedżera sieci wirtualnej przy użyciu polecenia New-AzNetworkManager. W tym przykładzie utworzono wystąpienie o nazwie vnm-learn-eastus-001 w lokalizacji Wschodnie stany USA:

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

Tworzenie trzech sieci wirtualnych

Utwórz trzy sieci wirtualne przy użyciu polecenia New-AzVirtualNetwork. W tym przykładzie tworzone są sieci wirtualne o nazwie vnet-learn-prod-eastus-001, vnet-learn-prod-eastus-002 i vnet-learn-test-eastus-003 w lokalizacji Wschodnie stany USA. Jeśli masz już sieci wirtualne, za pomocą których chcesz utworzyć sieć siatki, możesz przejść do następnej sekcji.

$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

Dodawanie podsieci do każdej sieci wirtualnej

Aby ukończyć konfigurację sieci wirtualnych, utwórz konfigurację podsieci o nazwie default z prefiksem adresu podsieci /24 za pomocą polecenia Add-AzVirtualNetworkSubnetConfig. Następnie użyj polecenia Set-AzVirtualNetwork , aby zastosować konfigurację podsieci do sieci wirtualnej.

$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

Tworzenie grupy sieciowej

Menedżer sieci wirtualnej stosuje konfiguracje do grup sieci wirtualnych, umieszczając je w grupach sieciowych. Utwórz grupę sieci przy użyciu polecenia New-AzNetworkManagerGroup. W tym przykładzie utworzono grupę sieciową o nazwie ng-learn-prod-eastus-001 w lokalizacji Wschodnie stany USA:

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

Definiowanie członkostwa dla konfiguracji siatki

Po utworzeniu grupy sieciowej należy zdefiniować jej członkostwo, dodając sieci wirtualne. Te sieci można dodać ręcznie lub przy użyciu usługi Azure Policy.

Ręczne dodawanie członkostwa

W tym zadaniu do grupy sieciowej ng-learn-prod-eastus-001 i vnet-learn-prod-eastus-002 do grupy sieciowej ng-learn-prod-eastus-001 należy użyć polecenia New-AzNetworkManagerStaticMember.

Statyczne elementy członkowskie muszą mieć unikatową nazwę, która jest ograniczona do grupy sieciowej. Zalecamy użycie spójnego skrótu identyfikatora sieci wirtualnej. To podejście korzysta z implementacji uniqueString() szablonu usługi 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

Tworzenie konfiguracji łączności

W tym zadaniu utworzysz konfigurację łączności z grupą sieciową ng-learn-prod-eastus-001 przy użyciu polecenia New-AzNetworkManagerConnectivityConfiguration i New-AzNetworkManagerConnectivityGroupItem:

  1. Utwórz element grupy łączności:

    $gi = @{
        NetworkGroupId = $ng.Id
    }
    $groupItem = New-AzNetworkManagerConnectivityGroupItem @gi
    
  2. Utwórz grupę konfiguracji i dodaj do niej element grupy łączności:

    [System.Collections.Generic.List[Microsoft.Azure.Commands.Network.Models.NetworkManager.PSNetworkManagerConnectivityGroupItem]]$configGroup = @()
    $configGroup.Add($groupItem)
    
  3. Utwórz konfigurację łączności z grupą konfiguracji:

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

Zatwierdzanie wdrożenia

Zatwierdź konfigurację w regionach docelowych przy użyciu polecenia Deploy-AzNetworkManagerCommit. Ten krok wyzwala konfigurację, aby zacząć obowiązywać.

[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 

Czyszczenie zasobów

Jeśli nie potrzebujesz już wystąpienia usługi Azure Virtual Network Manager, przed usunięciem zasobu upewnij się, że spełnione są wszystkie następujące kwestie:

  • Nie ma wdrożeń konfiguracji w żadnym regionie.
  • Wszystkie konfiguracje zostały usunięte.
  • Wszystkie grupy sieciowe zostały usunięte.

Aby usunąć zasób:

  1. Usuń wdrożenie łączności, wdrażając pustą konfigurację za pomocą polecenia 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. Usuń konfigurację łączności przy użyciu polecenia Remove-AzNetworkManagerConnectivityConfiguration:

    
    Remove-AzNetworkManagerConnectivityConfiguration -Name $connectivityconfig.Name -ResourceGroupName $rg.Name -NetworkManagerName $networkManager.Name
    
    
  3. Usuń zasoby zasad przy użyciu polecenia Remove-AzPolicy*:

    
    Remove-AzPolicyAssignment -Name $policyAssignment.Name
    Remove-AzPolicyAssignment -Name $policyDefinition.Name
    
    
  4. Usuń grupę sieci przy użyciu polecenia Remove-AzNetworkManagerGroup:

    Remove-AzNetworkManagerGroup -Name $ng.Name -ResourceGroupName $rg.Name -NetworkManagerName $networkManager.Name
    
  5. Usuń wystąpienie programu Virtual Network Manager przy użyciu polecenia Remove-AzNetworkManager:

    Remove-AzNetworkManager -name $networkManager.Name -ResourceGroupName $rg.Name
    
  6. Jeśli nie potrzebujesz już utworzonego zasobu, usuń grupę zasobów przy użyciu polecenia Remove-AzResourceGroup:

    Remove-AzResourceGroup -Name $rg.Name -Force
    

Następne kroki

Po utworzeniu wystąpienia usługi Azure Virtual Network Manager dowiedz się, jak blokować ruch sieciowy przy użyciu konfiguracji administratora zabezpieczeń: