Aracılığıyla paylaş


Hızlı Başlangıç: Azure PowerShell kullanarak Azure Sanal Ağ Manager ile ağ topolojisi oluşturma

Sanal ağlarınızın bağlantısını yönetmek için Azure PowerShell'i kullanarak Azure Sanal Ağ Manager'ı kullanmaya başlayın.

Bu hızlı başlangıçta üç sanal ağ dağıtacak ve ağ topolojisi oluşturmak için Azure Sanal Ağ Manager'ı kullanacaksınız. Ardından bağlantı yapılandırmasının uygulandığını doğrularsınız.

Azure sanal ağ yöneticisi ile bir ağ sanal ağ topolojisi için dağıtılan kaynakların diyagramı.

Önkoşullar

  • Etkin aboneliği olan bir Azure hesabı. Ücretsiz hesap oluşturun.
  • Bu hızlı başlangıcı Azure Cloud Shell aracılığıyla değil PowerShell'i yerel olarak kullanarak gerçekleştirin. Azure Cloud Shell'deki Az.Network sürümü şu anda Azure Sanal Ağ Manager cmdlet'lerini desteklememektedir.
  • Dinamik ağ gruplarını değiştirmek için size yalnızca Azure RBAC rol ataması aracılığıyla erişim verilmelidir. Klasik Yönetici/eski yetkilendirme desteklenmez.

Azure hesabınızda oturum açın ve aboneliğinizi seçin

Yapılandırmanıza başlamak için Azure hesabınızda oturum açın:

Connect-AzAccount

Ardından aboneliğinize bağlanın:

Set-AzContext -Subscription <subscription name or id>

Azure PowerShell modülünü yükleme

Şu komutu kullanarak en son Az.Network Azure PowerShell modülünü yükleyin:

 Install-Module -Name Az.Network -RequiredVersion 5.3.0

Kaynak grubu oluşturma

Azure Sanal Ağ Manager örneği oluşturabilmeniz için önce bunu barındırmak için bir kaynak grubu oluşturmanız gerekir. New-AzResourceGroup kullanarak bir kaynak grubu oluşturun. Bu örnek, Doğu ABD konumunda vnm-learn-eastus-001ResourceGroup adlı bir kaynak grubu oluşturur:


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

Kapsamı ve erişim türünü tanımlama

New-AzNetworkManagerScope kullanarak Azure Sanal Ağ Manager örneğinin kapsamını ve erişim türünü tanımlayın. Bu örnek, tek bir aboneliğe sahip bir kapsamı tanımlar ve erişim türünü Bağlantı olarak ayarlar. değerini Azure Sanal Ağ Yöneticisi aracılığıyla yönetmek istediğiniz aboneliğin kimliğiyle değiştirin<subscription_id>.


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

Sanal Ağ Yöneticisi örneği oluşturma

New-AzNetworkManager kullanarak bir Sanal Ağ Yöneticisi örneği oluşturun. Bu örnek, Doğu ABD konumunda vnm-learn-eastus-001 adlı bir örnek oluşturur:

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

Üç sanal ağ oluşturma

New-AzVirtualNetwork kullanarak üç sanal ağ oluşturun. Bu örnek, Doğu ABD konumunda vnet-learn-prod-eastus-001, vnet-learn-prod-eastus-002 ve vnet-learn-test-eastus-003 adlı sanal ağlar oluşturur. Ağ ağı oluşturmak istediğiniz sanal ağlarınız zaten varsa sonraki bölüme atlayabilirsiniz.

$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

Her sanal ağa alt ağ ekleme

Sanal ağların yapılandırmasını tamamlamak için Add-AzVirtualNetworkSubnetConfig komutunu kullanarak alt ağ adresi ön eki /24 olan default adlı bir alt ağ yapılandırması oluşturun. Ardından, alt ağ yapılandırmasını sanal ağa uygulamak için Set-AzVirtualNetwork komutunu kullanın.

$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

Ağ grubu oluşturma

Sanal Ağ Yöneticisi, yapılandırmaları ağ gruplarına yerleştirerek sanal ağ gruplarına uygular. New-AzNetworkManagerGroup kullanarak bir ağ grubu oluşturun. Bu örnek, Doğu ABD konumunda ng-learn-prod-eastus-001 adlı bir ağ grubu oluşturur:

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

Mesh yapılandırması için üyelik tanımlama

Ağ grubunuzu oluşturduktan sonra, sanal ağlar ekleyerek bu grubun üyeliğini tanımlarsınız. Bu ağları el ile veya Azure İlkesi kullanarak ekleyebilirsiniz.

El ile üyelik ekleme

Bu görevde, New-AzNetworkManagerStaticMember komutunu kullanarak vnet-learn-prod-eastus-001 ve vnet-learn-prod-eastus-002 statik üyelerini ng-learn-prod-eastus-001 ağ grubuna eklersiniz.

Statik üyelerin kapsamı ağ grubuna göre belirlenmiş benzersiz bir ada sahip olmalıdır. Sanal ağ kimliğinin tutarlı bir karması kullanmanızı öneririz. Bu yaklaşım, Azure Resource Manager şablonunun uniqueString() uygulamasını kullanır.

    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

Bağlantı yapılandırması oluşturma

Bu görevde, New-AzNetworkManagerConnectivityConfiguration ve New-AzNetworkManagerConnectivityGroupItem kullanarak ng-learn-prod-eastus-001 ağ grubuyla bir bağlantı yapılandırması oluşturursunuz:

  1. Bağlantı grubu öğesi oluşturma:

    $gi = @{
        NetworkGroupId = $ng.Id
    }
    $groupItem = New-AzNetworkManagerConnectivityGroupItem @gi
    
  2. Bir yapılandırma grubu oluşturun ve buna bir bağlantı grubu öğesi ekleyin:

    [System.Collections.Generic.List[Microsoft.Azure.Commands.Network.Models.NetworkManager.PSNetworkManagerConnectivityGroupItem]]$configGroup = @()
    $configGroup.Add($groupItem)
    
  3. Yapılandırma grubuyla bağlantı yapılandırmasını oluşturun:

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

Dağıtımı işleme

kullanarak yapılandırmayı hedef bölgelere işleyin Deploy-AzNetworkManagerCommit. Bu adım, yapılandırmanızın etkin bir şekilde başlamasını tetikler.

[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 

Kaynakları temizleme

Azure Sanal Ağ Manager örneğine artık ihtiyacınız yoksa, kaynağı silmeden önce aşağıdaki noktaların tümünün doğru olduğundan emin olun:

  • Yapılandırmaların herhangi bir bölgeye dağıtımı yoktur.
  • Tüm yapılandırmalar silindi.
  • Tüm ağ grupları silindi.

Kaynağı silmek için:

  1. aracılığıyla Deploy-AzNetworkManagerCommitboş bir yapılandırma dağıtarak bağlantı dağıtımını kaldırın:

    [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. kullanarak Remove-AzNetworkManagerConnectivityConfigurationbağlantı yapılandırmasını kaldırın:

    
    Remove-AzNetworkManagerConnectivityConfiguration -Name $connectivityconfig.Name -ResourceGroupName $rg.Name -NetworkManagerName $networkManager.Name
    
    
  3. kullanarak Remove-AzPolicy*ilke kaynaklarını kaldırın:

    
    Remove-AzPolicyAssignment -Name $policyAssignment.Name
    Remove-AzPolicyAssignment -Name $policyDefinition.Name
    
    
  4. kullanarak Remove-AzNetworkManagerGroupağ grubunu kaldırın:

    Remove-AzNetworkManagerGroup -Name $ng.Name -ResourceGroupName $rg.Name -NetworkManagerName $networkManager.Name
    
  5. kullanarak Remove-AzNetworkManagerSanal Ağ Manager örneğini silin:

    Remove-AzNetworkManager -name $networkManager.Name -ResourceGroupName $rg.Name
    
  6. Oluşturduğunuz kaynağa artık ihtiyacınız yoksa Remove-AzResourceGroup komutunu kullanarak kaynak grubunu silin:

    Remove-AzResourceGroup -Name $rg.Name -Force
    

Sonraki adımlar

Bir Azure Sanal Ağ Manager örneği oluşturduğunuza göre, güvenlik yöneticisi yapılandırmasını kullanarak ağ trafiğini engellemeyi öğrenin: