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 do utworzenia topologii 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, zobacz wymagane uprawnienia.

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

W tym zadaniu utwórz grupę zasobów do hostowania wystąpienia menedżera sieci. Utwórz grupę zasobów przy użyciu polecenia New-AzResourceGroup. W tym przykładzie tworzona jest grupa zasobów o nazwie grupa zasobów w regionie Zachodnie stany USA 2 :

# Create a resource group
$location = "westus2"
$rg = @{
    Name = 'resource-group'
    Location = $location
}
New-AzResourceGroup @rg

Definiowanie zakresu i typu dostępu

W tym zadaniu 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.

$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

Utwórz wystąpienie usługi Virtual Network Manager

W tym zadaniu utwórz wystąpienie usługi Virtual Network Manager przy użyciu polecenia New-AzNetworkManager. W tym przykładzie tworzona jest instancja o nazwie network-manager w regionie (US) West US 2:

$avnm = @{
    Name = 'network-manager'
    ResourceGroupName = $rg.Name
    NetworkManagerScope = $scope
    NetworkManagerScopeAccess = $access
    Location = $location
}
$networkManager = New-AzNetworkManager @avnm

Tworzenie trzech sieci wirtualnych

W tym zadaniu utwórz trzy sieci wirtualne przy użyciu polecenia New-AzVirtualNetwork. W tym przykładzie tworzone są sieci wirtualne o nazwach vnet-00, vnet-01 oraz vnet-02 w regionie (US) West US 2. Jeśli masz już sieci wirtualne, za pomocą których chcesz utworzyć sieć siatki, możesz przejść do następnej sekcji.

$vnet_00 = @{
    Name = 'vnet-00'
    ResourceGroupName = $rg.Name
    Location = $location
    AddressPrefix = '10.0.0.0/16'    
}

$vnet_00 = New-AzVirtualNetwork @vnet_00

$vnet_01 = @{
    Name = 'vnet-01'
    ResourceGroupName = $rg.Name
    Location = $location
    AddressPrefix = '10.1.0.0/16'    
}
$vnet_01 = New-AzVirtualNetwork @vnet_01

$vnet_02 = @{
    Name = 'vnet-02'
    ResourceGroupName = $rg.Name
    Location = $location
    AddressPrefix = '10.2.0.0/16'    
}
$vnet_02 = New-AzVirtualNetwork @vnet_02

Dodawanie podsieci do każdej sieci wirtualnej

W tym zadaniu 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_vnet_00 = @{
    Name = 'default'
    VirtualNetwork = $vnet_00
    AddressPrefix = '10.0.0.0/24'
}
$subnetConfig_vnet_00 = Add-AzVirtualNetworkSubnetConfig @subnet_vnet_00
$vnet_00 | Set-AzVirtualNetwork

$subnet_vnet_01 = @{
    Name = 'default'
    VirtualNetwork = $vnet_01
    AddressPrefix = '10.1.0.0/24'
}
$subnetConfig_vnet_01 = Add-AzVirtualNetworkSubnetConfig @subnet_vnet_01
$vnet_01 | Set-AzVirtualNetwork

$subnet_vnet_02 = @{
    Name = 'default'
    VirtualNetwork = $vnet_02
    AddressPrefix = '10.2.0.0/24'
}
$subnetConfig_vnet_02 = Add-AzVirtualNetworkSubnetConfig @subnet_vnet_02
$vnet_02 | Set-AzVirtualNetwork

Tworzenie grupy sieciowej

Menedżer sieci wirtualnej stosuje konfiguracje do grup sieci wirtualnych, umieszczając je w grupach sieciowych. Stwórz grupę sieciową dla topologii siatki, używając New-AzNetworkManagerGroup. Ten przykład tworzy grupę sieci o nazwie network-group w regionie (US) West US 2:

$ng = @{
        Name = 'network-group'
        ResourceGroupName = $rg.Name
        NetworkManagerName = $networkManager.Name
    }
    $ng = New-AzNetworkManagerGroup @ng

Określanie przynależności do konfiguracji siatki

W tym zadaniu dodasz członków statycznych vnet-00 i vnet-01 do grupy sieciowej network-group przy użyciu 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_vnet_00 = @{
        Name = Get-UniqueString $vnet_00.Id
        ResourceGroupName = $rg.Name
        NetworkGroupName = $ng.Name
        NetworkManagerName = $networkManager.Name
        ResourceId = $vnet_00.Id
    }
    $sm_vnet_00 = New-AzNetworkManagerStaticMember @sm_vnet_00
$sm_vnet_01 = @{
        Name = Get-UniqueString $vnet_01.Id
        ResourceGroupName = $rg.Name
        NetworkGroupName = $ng.Name
        NetworkManagerName = $networkManager.Name
        ResourceId = $vnet_01.Id
    }
    $sm_vnet_01 = New-AzNetworkManagerStaticMember @sm_vnet_01

Tworzenie konfiguracji łączności

W tym zadaniu utworzysz konfigurację łączności z sieciową grupą sieci 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 za pomocą grupy konfiguracji:

    $config = @{
        Name = 'connectivity-configuration'
        ResourceGroupName = $rg.Name
        NetworkManagerName = $networkManager.Name
        ConnectivityTopology = 'Mesh'
        AppliesToGroup = $configGroup
    }
    $connectivityconfig = New-AzNetworkManagerConnectivityConfiguration @config
        ```                        
    
    

Zatwierdź wdrożenie

Zatwierdź konfigurację w regionach docelowych przy użyciu polecenia Deploy-AzNetworkManagerCommit. Ten krok powoduje, że konfiguracja zaczyna obowiązywać.

[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.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 i jego zasobów, wykonaj następujące kroki, aby je usunąć, usuwając grupę zasobów zawierającą zasoby:

  1. Usuń grupę zasobów przy użyciu polecenia Remove-AzResourceGroup:

    Remove-AzResourceGroup -Name $rg.Name -Force
    

Następne kroki

W tym kroku dowiesz się, jak blokować ruch sieciowy przy użyciu konfiguracji administratora zabezpieczeń: