Поделиться через


Краткое руководство. Создание топологии сети сетки с помощью Диспетчера виртуальная сеть Azure с помощью Azure PowerShell

Начало работы с диспетчером виртуальная сеть Azure с помощью Azure PowerShell для управления подключением к виртуальным сетям.

В этом кратком руководстве описано, как развернуть три виртуальные сети и использовать Диспетчер виртуальная сеть Azure для создания топологии сети сетки. Затем убедитесь, что была применена конфигурация подключения.

Схема ресурсов, развернутых для топологии виртуальной сети сетки с помощью диспетчера виртуальных сетей Azure.

Необходимые компоненты

  • Учетная запись Azure с активной подпиской. Создайте учетную запись бесплатно .
  • Выполните это краткое руководство с помощью PowerShell локально, а не с помощью Azure Cloud Shell. Версия Az.Network в Azure Cloud Shell в настоящее время не поддерживает командлеты Диспетчера виртуальная сеть Azure.
  • Чтобы изменить динамические сетевые группы, необходимо предоставить доступ только через назначение ролей RBAC Azure. Классическая авторизация администратора или устаревшая авторизация не поддерживается.

Войдите в учетную запись Azure и выберите подписку.

Чтобы начать настройку, войдите в учетную запись Azure:

Connect-AzAccount

Затем подключитесь к подписке:

Set-AzContext -Subscription <subscription name or id>

Установка модуля Azure PowerShell

Установите последний модуль Az.Network Azure PowerShell с помощью следующей команды:

 Install-Module -Name Az.Network -RequiredVersion 5.3.0

Создание или изменение группы ресурсов

Прежде чем создать экземпляр Диспетчера виртуальная сеть Azure, необходимо создать группу ресурсов для его размещения. Создайте группу ресурсов с помощью командлета New-AzResourceGroup. В этом примере создается группа ресурсов с именем группы ресурсов в регионе "Западная часть США 2".

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

Определение области и типа доступа

Определите область и тип доступа для экземпляра Диспетчера виртуальная сеть Azure с помощью New-AzNetworkManagerScope. В этом примере определяется область с одной подпиской и задает тип доступа для подключения. Замените <subscription_id> идентификатором подписки, которую вы хотите управлять с помощью Диспетчера виртуальная сеть Azure.

$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

Создание экземпляра диспетчера виртуальная сеть

Создайте экземпляр диспетчера виртуальная сеть с помощью New-AzNetworkManager. В этом примере создается экземпляр с именем network-manager в регионе "Западная часть США 2 ".

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

Создание трех виртуальных сетей

Создайте три виртуальные сети с помощью New-AzVirtualNetwork. В этом примере создаются виртуальные сети с именем vnet-spoke-001, vnet-spoke-002 и vnet-hub-001 в регионе "Западная часть США 2". Если у вас уже есть виртуальные сети, с которыми вы хотите создать сеть сетки, перейдите к следующему разделу.

$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

Добавьте подсеть в каждую виртуальную сеть.

Чтобы завершить настройку виртуальных сетей, создайте конфигурацию подсети по умолчанию с префиксом адреса подсети /24 с помощью Add-AzVirtualNetworkSubnetConfig. Затем используйте Set-AzVirtualNetwork , чтобы применить конфигурацию подсети к виртуальной сети.

$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

Создание сетевой группы

виртуальная сеть Manager применяет конфигурации к группам виртуальных сетей, размещая их в группах сетей. Создайте сетевую группу с помощью New-AzNetworkManagerGroup. В этом примере создается группа сети с именем network-group в регионе "Западная часть США 2".

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

Определение членства для конфигурации сетки

В этой задаче вы добавите статические члены vnet-spoke-001 и vnet-spoke-002 в группу сетевых групп с помощью New-AzNetworkManagerStaticMember.

Статические члены должны иметь уникальное имя, которое распространяется на группу сети. Рекомендуется использовать согласованный хэш идентификатора виртуальной сети. Этот подход использует реализацию шаблона uniqueString() 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

Создание конфигурации подключения

В этой задаче создается конфигурация подключения с сетевой группой сети с помощью New-AzNetworkManagerConnectivityConfiguration и New-AzNetworkManagerConnectivityGroupItem:

  1. Создайте элемент группы подключения:

    $gi = @{
        NetworkGroupId = $ng.Id
    }
    $groupItem = New-AzNetworkManagerConnectivityGroupItem @gi
    
  2. Создайте группу конфигурации и добавьте в нее элемент группы подключения:

    [System.Collections.Generic.List[Microsoft.Azure.Commands.Network.Models.NetworkManager.PSNetworkManagerConnectivityGroupItem]]$configGroup = @()
    $configGroup.Add($groupItem)
    
  3. Создайте конфигурацию подключения с помощью группы конфигурации:

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

Фиксация развертывания

Зафиксируйте конфигурацию в целевых регионах с помощью Deploy-AzNetworkManagerCommit. Этот шаг активирует конфигурацию для начала вступления в силу.

[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

Очистка ресурсов

Если вам больше не нужен экземпляр Azure виртуальная сеть Manager и он связывает ресурсы, удалите группу ресурсов, содержащую их. При удалении группы ресурсов также удаляются созданные ресурсы.

  1. Удалите группу ресурсов с помощью Remove-AzResourceGroup:

    Remove-AzResourceGroup -Name $rg.ResourceGroupName -Force
    

Следующие шаги

Теперь, когда вы создали экземпляр Azure виртуальная сеть Manager, узнайте, как заблокировать сетевой трафик с помощью конфигурации администратора безопасности: