Inicio rápido: crear una red de malla con Azure Virtual Network Manager mediante Azure PowerShell

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

En este inicio rápido, implementará tres redes virtuales y usará Azure Virtual Network Manager para crear una topología de red de malla.

Importante

Azure Virtual Network Manager se encuentra actualmente en versión preliminar pública. Esta versión preliminar se ofrece sin Acuerdo de Nivel de Servicio y no se recomienda para cargas de trabajo de producción. Es posible que algunas características no sean compatibles o que tengan sus funcionalidades limitadas. Para más información, consulte Términos de uso complementarios de las Versiones Preliminares de Microsoft Azure.

Prerrequisitos

  • Una cuenta de Azure con una suscripción activa. Cree una cuenta gratuita.
  • Asegúrese de que tiene los módulos más recientes de PowerShell, o bien, puede usar Azure Cloud Shell en el portal.
  • Si PowerShell se ejecuta localmente, también debe ejecutar Connect-AzAccount para crear una conexión con Azure.

Registro de la suscripción en la versión preliminar pública

Use el siguiente comando para registrar la suscripción de Azure para la versión preliminar pública de Azure Virtual Network Manager:

Register-AzProviderFeature -FeatureName AllowAzureNetworkManager -ProviderNamespace Microsoft.Network

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 -AllowPrerelease

Creación de un administrador de redes virtuales

  1. Defina el ámbito y el tipo de acceso que tendrá esta instancia de Azure Virtual Network Manager. Puede optar por crear el ámbito con el grupo de suscripciones o el grupo de administración o una combinación de ambos. Cree el ámbito mediante New-AzNetworkManagerScope.

    [System.Collections.Generic.List[string]]$subGroup = @()  
    $group.Add("/subscriptions/abcdef12-3456-7890-abcd-ef1234567890")
    [System.Collections.Generic.List[string]]$mgGroup = @()  
    $group.Add("/managementGroups/abcdef12-3456-7890-abcd-ef1234567890")
    
    [System.Collections.Generic.List[String]]$access = @()  
    $access.Add("Connectivity");  
    $access.Add("Security"); 
    
    $scope = New-AzNetworkManagerScope -Subscription $subGroup  -ManagementGroup $mgGroup
    
  2. Cree el Virtual Network Manager con New-AzNetworkManager. En este ejemplo se crea una instancia de Azure Virtual Network Manager llamada myAVNM en la ubicación de Oeste de EE. UU.

    $avnm = @{
        Name = 'myAVNM'
        ResourceGroupName = 'myAVNMResourceGroup'
        NetworkManagerScope = $scope.id
        NetworkManagerScopeAccess = $access
        Location = 'West US'
    }
    $networkmanager = New-AzNetworkManager @avnm
    

Creación de un grupo de recursos y de redes virtuales

Crear un grupo de recursos

Para poder crear una instancia de Azure Virtual Network Manager, debe crear un grupo de recursos para hospedar el administrador de red. Cree un grupo de recursos con New-AzResourceGroup. En el ejemplo siguiente se crea un grupo de recursos denominado myAVNMResourceGroup en la ubicación de WestUS.

$rg = @{
    Name = 'myAVNMResourceGroup'
    Location = 'WestUS'
}
New-AzResourceGroup @rg

Crear tres redes virtuales

Cree tres redes virtuales con New-AzVirtualNetwork. En este ejemplo se crean redes virtuales denominadas VNetA, VNetB y VNetC en la ubicación Oeste de EE. UU. Si ya tiene redes virtuales con las que desea crear una red de malla, puede ir directamente a la sección siguiente.

$vnetA = @{
    Name = 'VNetA'
    ResourceGroupName = 'myAVNMResourceGroup'
    Location = 'West US'
    AddressPrefix = '10.0.0.0/16'    
}
$virtualNetworkA = New-AzVirtualNetwork @vnetA

$vnetB = @{
    Name = 'VNetB'
    ResourceGroupName = 'myAVNMResourceGroup'
    Location = 'West US'
    AddressPrefix = '10.1.0.0/16'    
}
$virtualNetworkB = New-AzVirtualNetwork @vnetB

$vnetC = @{
    Name = 'VNetC'
    ResourceGroupName = 'myAVNMResourceGroup'
    Location = 'West US'
    AddressPrefix = '10.2.0.0/16'    
}
$virtualNetworkC = New-AzVirtualNetwork @vnetC

Agregue una subred a cada una de las redes virtuales.

Para completar la configuración de las redes virtuales, agregue una subred /24 a cada una. Cree una configuración de subred denominada default con Add-AzVirtualNetworkSubnetConfig.

$subnetA = @{
    Name = 'default'
    VirtualNetwork = $virtualNetworkA
    AddressPrefix = '10.0.0.0/24'
}
$subnetConfigA = Add-AzVirtualNetworkSubnetConfig @subnetA
$virtualnetworkA | Set-AzVirtualNetwork

$subnetB = @{
    Name = 'default'
    VirtualNetwork = $virtualNetworkB
    AddressPrefix = '10.0.0.0/24'
}
$subnetConfigC = Add-AzVirtualNetworkSubnetConfig @subnetB
$virtualnetworkB | Set-AzVirtualNetwork

$subnetC = @{
    Name = 'default'
    VirtualNetwork = $virtualNetworkC
    AddressPrefix = '10.0.0.0/24'
}
$subnetConfigC = Add-AzVirtualNetworkSubnetConfig @subnetC
$virtualnetworkC | Set-AzVirtualNetwork

Creación de un grupo de red

Pertenencia estática

  1. Cree un miembro de red virtual estática con New-AzNetworkManagerGroupMembersItem.

    $member = New-AzNetworkManagerGroupMembersItem –ResourceId "/subscriptions/abcdef12-3456-7890-abcd-ef1234567890/resourceGroups/myAVNMResourceGroup/providers/Microsoft.Network/virtualNetworks/VNetA"
    
  2. Agregue el miembro estático al grupo de pertenencia estática con los siguientes comandos:

    [System.Collections.Generic.List[Microsoft.Azure.Commands.Network.Models.NetworkManager.PSNetworkManagerGroupMembersItem]]$groupMembers = @()  
    $groupMembers.Add($member)
    

Pertenencia dinámica

  1. Defina la instrucción condicional y almacénela en una variable:

    $conditionalMembership = '{ 
        "allof":[ 
            { 
            "field": "name", 
            "contains": "VNet" 
            } 
        ] 
    }' 
    
  2. Cree el grupo de red mediante la instrucción condicional definida en el último paso mediante New-AzNetworkManagerGroup.

    $ng = @{
        Name = 'myNetworkGroup'
        ResourceGroupName = 'myAVNMResourceGroup'
        GroupMember = $groupMembers
        ConditionalMembership = $conditionalMembership
        NetworkManagerName = 'myAVNM'
        MemberType = 'Microsoft.Network/VirtualNetwork'
    }
    $networkgroup = New-AzNetworkManagerGroup @ng
    

Creación de una configuración

  1. Cree un elemento de grupo de conectividad al que agregar un grupo de red con New-AzNetworkManagerConnectivityGroupItem.

    $gi = @{
        NetworkGroupId = $networkgroup.Id
    }
    $groupItem = New-AzNetworkManagerConnectivityGroupItem @gi
    
  2. Cree un grupo de configuración y agregue el elemento de grupo del paso anterior.

    [System.Collections.Generic.List[Microsoft.Azure.Commands.Network.Models.PSNetworkManagerConnectivityGroupItem]]$configGroup = @()
    $configGroup.Add($groupItem)
    
  3. Cree la configuración de conectividad con New-AzNetworkManagerConnectivityConfiguration.

    $config = @{
        Name = 'connectivityconfig'
        ResourceGroupName = 'myAVNMResourceGroup'
        NetworkManagerName = 'myAVNM'
        ConnectivityTopology = 'Mesh'
        AppliesToGroup = $configGroup
    }
    $connectivityconfig = New-AzNetworkManagerConnectivityConfiguration @config
    

Confirmación de la implementación

Confirme la configuración en las regiones de destino con Deploy-AzNetworkManagerCommit.

[System.Collections.Generic.List[string]]$configIds = @()  
$configIds.add($connectivityconfig.id) 
[System.Collections.Generic.List[string]]$target = @()   
$target.Add("westus")     

$deployment = @{
    Name = 'myAVNM'
    ResourceGroupName = 'myAVNMResourceGroup'
    ConfigurationId = $configIds
    TargetLocation = $target
    CommitType = 'Connectivity'
}
Deploy-AzNetworkManagerCommit @deployment 

Limpieza de recursos

Si ya no necesita Azure Virtual Network Manager, debe asegurarse de que todos los elementos siguientes se cumplen antes de poder eliminar el recurso:

  • No hay implementaciones de configuraciones en ninguna región.
  • Se han eliminado todas las configuraciones.
  • Se han eliminado todos los grupos de red.
  1. Quite la implementación de conectividad mediante la implementación de una configuración vacía con Deploy-AzNetworkManagerCommit.

    [System.Collections.Generic.List[string]]$configIds = @()
    [System.Collections.Generic.List[string]]$target = @()   
    $target.Add("westus")     
    $removedeployment = @{
        Name = 'myAVNM'
        ResourceGroupName = 'myAVNMResourceGroup'
        ConfigurationId = $configIds
        Target = $target
        CommitType = 'Connectivity'
    }
    Deploy-AzNetworkManagerCommit @removedeployment
    
  2. Quite la configuración de conectividad con Remove-AzNetworkManagerConnectivityConfiguration

    $removeconfig = @{
        Name = 'connectivityconfig'
        ResourceGroupName = 'myAVNMResourceGroup'
        NetworkManagerName = 'myAVNM'
    }
    Remove-AzNetworkManagerConnectivityConfiguration @removeconfig   
    
  3. Quite el grupo de red con Remove-AzNetworkManagerGroup.

    $removegroup = @{
        Name = 'myNetworkGroup'
        ResourceGroupName = 'myAVNMResourceGroup'
        NetworkManagerName = 'myAVNM'
    }
    Remove-AzNetworkManagerGroup @removegroup
    
  4. Elimine la instancia del administrador de red con Remove-AzNetworkManager.

    $removenetworkmanager = @{
        Name = 'myAVNM'
        ResourceGroupName = 'myAVNMResourceGroup'
    }
    Remove-AzNetworkManager @removenetworkmanager
    
  5. Si ya no necesita los recursos que ha creado, elimine el grupo de recursos con Remove-AzResourceGroup.

    Remove-AzResourceGroup -Name 'myAVNMResourceGroup'
    

Pasos siguientes

Después de crear la instancia de Azure Virtual Network Manager, siga avanzando para aprender a bloquear el tráfico mediante la configuración del administrador de seguridad: