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.
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:
Crear un elemento de grupo de conectividad:
$gi = @{ NetworkGroupId = $ng.Id } $groupItem = New-AzNetworkManagerConnectivityGroupItem @gi
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)
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:
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: