Compartir a través de


Inicio rápido: creación de una topología de red de malla con Azure Virtual Network Manager mediante Azure PowerShell

Introducción a Azure Virtual Network Manager mediante el uso de Azure PowerShell para administrar la conectividad de las redes virtuales.

En este artículo de inicio rápido, implementará tres redes virtuales y usará Azure Virtual Network Manager para crear una topología de red de malla. Después, compruebe si se ha aplicado la configuración de conectividad.

Diagrama de recursos implementados para una topología de red virtual en malla con el administrador de red virtual de Azure.

Requisitos previos

  • Una cuenta de Azure con una suscripción activa. Cree una cuenta gratuita.
  • Realice este inicio rápido mediante PowerShell local, no a través de Azure Cloud Shell. La versión de Az.Network en Azure Cloud Shell no admite actualmente los cmdlets de Azure Virtual Network Manager.
  • Para modificar los grupos de red dinámicos, solo debe tener acceso mediante la asignación de roles de RBAC de Azure. No se admite la administración clásica o la autorización heredada

Iniciar sesión en la cuenta de Azure y seleccione la suscripción

Para empezar la configuración, inicie sesión en la cuenta de Azure:

Connect-AzAccount

Luego, conéctela a la suscripción:

Set-AzContext -Subscription <subscription name or id>

Instalación del módulo de Azure PowerShell

Instale el módulo Az.Network de Azure PowerShell más reciente mediante este comando:

 Install-Module -Name Az.Network -RequiredVersion 5.3.0

Crear un grupo de recursos

En esta tarea, cree un grupo de recursos para hospedar una instancia de Network Manager. Cree un grupo de recursos con New-AzResourceGroup. En este ejemplo se crea un grupo de recursos denominado grupo de recursos en la región Oeste de EE. UU. 2 :

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

Definición del ámbito y el tipo de acceso

En esta tarea, defina el ámbito y el tipo de acceso para la instancia de Azure Virtual Network Manager mediante New-AzNetworkManagerScope. Este ejemplo define un ámbito con una suscripción única y establece el tipo de acceso en Conectividad. Reemplace <subscription_id> por el id. de la suscripción que desee administrar con 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

Creación de una instancia de Virtual Network Manager

En esta tarea, cree una instancia de Virtual Network Manager mediante New-AzNetworkManager. En este ejemplo, se crea una instancia denominada network-manager en la región Oeste de EE. UU. 2 (EE. UU.):

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

Crear tres redes virtuales

En esta tarea, cree tres redes virtuales mediante New-AzVirtualNetwork. En este ejemplo, se crean redes virtuales denominadas vnet-00, vnet-01 y vnet-02 en la región Oeste de EE. UU. 2 (EE. UU.). Si ya tiene redes virtuales con las que desea crear una red de malla, puede ir directamente a la sección siguiente.

$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

Agregue una subred a cada una de las redes virtuales.

En esta tarea, cree una configuración de subred denominada default con un prefijo de dirección de subred de /24 mediante Add-AzVirtualNetworkSubnetConfig. Luego, use Set-AzVirtualNetwork para aplicar la configuración de subred a la red virtual.

$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

Creación de un grupo de red

Virtual Network Manager aplica configuraciones a grupos de redes virtuales al colocarlos en grupos de redes. Cree un grupo de redes mediante New-AzNetworkManagerGroup. En este ejemplo, se crea un grupo de red denominado network-group en la región Oeste de EE. UU. 2 (EE. UU.):

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

Definición de pertenencia a una configuración de malla

En esta tarea, agregará los miembros estáticos vnet-00 y vnet-01 al grupo de red network-group mediante New-AzNetworkManagerStaticMember.

Los miembros estáticos deben tener un nombre único cuyo ámbito sea el grupo de red. Se recomienda usar un hash coherente del id. de red virtual. Este enfoque usa la implementación uniqueString() de la plantilla de 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

Creación de una configuración de conectividad

En esta tarea, creará una configuración de conectividad con el grupo de red grupo de red mediante New-AzNetworkManagerConnectivityConfiguration y New-AzNetworkManagerConnectivityGroupItem:

  1. Crear un elemento de grupo de conectividad:

    $gi = @{
        NetworkGroupId = $ng.Id
    }
    $groupItem = New-AzNetworkManagerConnectivityGroupItem @gi
    
  2. Crear un grupo de configuración y agregar un elemento de grupo de conectividad a él:

    [System.Collections.Generic.List[Microsoft.Azure.Commands.Network.Models.NetworkManager.PSNetworkManagerConnectivityGroupItem]]$configGroup = @()
    $configGroup.Add($groupItem)
    
  3. Crear la configuración de conectividad con el grupo de configuración:

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

Confirmación de la implementación

Confirme la configuración en las regiones de destino mediante Deploy-AzNetworkManagerCommit. Este paso activa la configuración para que empiece a surtir efecto.

[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

Limpieza de recursos

Si ya no necesita la instancia de Azure Virtual Network Manager y sus recursos, siga estos pasos para eliminarlos mediante la eliminación del grupo de recursos que contiene dichos recursos:

  1. Elimine el grupo de recursos mediante Remove-AzResourceGroup:

    Remove-AzResourceGroup -Name $rg.Name -Force
    

Pasos siguientes

En este paso, aprenderá a bloquear el tráfico de red mediante una configuración de administrador de seguridad: