Бөлісу құралы:


Краткое руководство. Создание топологии сети сетки с помощью Диспетчера виртуальная сеть 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. В этом примере создается группа ресурсов с именем vnm-learn-eastus-001ResourceGroup в расположении восточной части США:


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

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

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


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

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

Создайте экземпляр диспетчера виртуальная сеть с помощью New-AzNetworkManager. В этом примере создается экземпляр с именем vnm-learn-eastus-001 в расположении восточной части США:

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

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

Создайте три виртуальные сети с помощью New-AzVirtualNetwork. В этом примере создаются виртуальные сети с именем vnet-learn-prod-eastus-001, vnet-learn-prod-eastus-002 и vnet-learn-test-eastus-003 в расположении на востоке США. Если у вас уже есть виртуальные сети, с которыми вы хотите создать сеть сетки, перейдите к следующему разделу.

$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

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

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

$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

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

виртуальная сеть Manager применяет конфигурации к группам виртуальных сетей, размещая их в группах сетей. Создайте сетевую группу с помощью New-AzNetworkManagerGroup. В этом примере создается сетевая группа с именем ng-learn-prod-eastus-001 в расположении восточной части США:

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

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

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

Добавление членства вручную

В этой задаче вы добавите статические члены vnet-learn-prod-eastus-001 и vnet-learn-prod-eastus-002 в сетевую группу ng-learn-prod-eastus-001 с помощью 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_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

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

В этой задаче создается конфигурация подключения с сетевой группой ng-learn-prod-eastus-001 с помощью 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 = 'cc-learn-prod-eastus-001'
        ResourceGroupName = $rg.Name
        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("westus")     

$deployment = @{
    Name = $networkManager.Name
    ResourceGroupName = $rg.Name
    ConfigurationId = $configIds
    TargetLocation = $target
    CommitType = 'Connectivity'
}
Deploy-AzNetworkManagerCommit @deployment 

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

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

  • Ни в одном регионе не развернута ни одна конфигурация.
  • Все конфигурации удалены.
  • Все сетевые группы удалены.

Для удаления ресурса

  1. Удалите развертывание подключения, развернув пустую конфигурацию с помощью 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. Удалите конфигурацию подключения с помощью Remove-AzNetworkManagerConnectivityConfiguration:

    
    Remove-AzNetworkManagerConnectivityConfiguration -Name $connectivityconfig.Name -ResourceGroupName $rg.Name -NetworkManagerName $networkManager.Name
    
    
  3. Удаление ресурсов политики с помощью Remove-AzPolicy*:

    
    Remove-AzPolicyAssignment -Name $policyAssignment.Name
    Remove-AzPolicyAssignment -Name $policyDefinition.Name
    
    
  4. Удалите сетевую группу с помощью Remove-AzNetworkManagerGroup:

    Remove-AzNetworkManagerGroup -Name $ng.Name -ResourceGroupName $rg.Name -NetworkManagerName $networkManager.Name
    
  5. Удалите экземпляр диспетчера виртуальная сеть с помощьюRemove-AzNetworkManager:

    Remove-AzNetworkManager -name $networkManager.Name -ResourceGroupName $rg.Name
    
  6. Если вы больше не хотите созданный ресурс, удалите группу ресурсов с помощью Remove-AzResourceGroup:

    Remove-AzResourceGroup -Name $rg.Name -Force
    

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

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