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.
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 tworzona jest grupa zasobów o nazwie grupa zasobów w regionie Zachodnie stany USA 2 :
# Create a resource group
$location = "West US 2"
$rg = @{
Name = 'resource-group'
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.
$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
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 tworzone jest wystąpienie o nazwie network-manager w regionie Zachodnie stany USA 2 :
$avnm = @{
Name = 'network-manager'
ResourceGroupName = $rg.ResourceGroupName
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 nazwach vnet-spoke-001, vnet-spoke-002 i vnet-hub-001 w regionie Zachodnie stany USA 2. Jeśli masz już sieci wirtualne, za pomocą których chcesz utworzyć sieć siatki, możesz przejść do następnej sekcji.
$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
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_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
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 network-group w regionie Zachodnie stany USA 2:
$ng = @{
Name = 'network-group'
ResourceGroupName = $rg.ResourceGroupName
NetworkManagerName = $networkManager.Name
}
$ng = New-AzNetworkManagerGroup @ng
Definiowanie członkostwa dla konfiguracji siatki
W tym zadaniu dodajesz statyczne elementy członkowskie vnet-spoke-001 i vnet-spoke-002 do grupy sieciowej sieciowej grupy 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_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
Tworzenie konfiguracji łączności
W tym zadaniu utworzysz konfigurację łączności z sieciową grupą sieci przy użyciu polecenia New-AzNetworkManagerConnectivityConfiguration i New-AzNetworkManagerConnectivityGroupItem:
Utwórz element grupy łączności:
$gi = @{ NetworkGroupId = $ng.Id } $groupItem = New-AzNetworkManagerConnectivityGroupItem @gi
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)
Utwórz konfigurację łączności z grupą konfiguracji:
$config = @{ Name = 'connectivity-configuration' ResourceGroupName = $rg.ResourceGroupName 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("westus2")
$deployment = @{
Name = $networkManager.Name
ResourceGroupName = $rg.ResourceGroupName
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 skojarzysz zasoby, usuń grupę zasobów, która je zawiera. Usunięcie grupy zasobów spowoduje również usunięcie utworzonych zasobów.
Usuń grupę zasobów przy użyciu polecenia Remove-AzResourceGroup:
Remove-AzResourceGroup -Name $rg.ResourceGroupName -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ń: