Condividi tramite


Creare, eliminare o aggiornare le reti virtuali dei tenant

Si applica a: Windows Server 2022, Windows Server 2019, Windows Server 2016, Azure Stack HCI, versioni 21H2 e 20H2

Questo argomento illustra come creare, eliminare e aggiornare reti virtuali di Virtualizzazione rete Hyper-V dopo aver distribuito Software Defined Networking (SDN). Virtualizzazione rete Hyper-V consente di isolare le reti tenant in modo che ogni rete tenant sia un'entità separata. Ogni entità non ha possibilità di connessione incrociata, a meno che non si configurino carichi di lavoro di accesso pubblico.

Creare una nuova rete virtuale

La creazione di una rete virtuale per un tenant la inserisce all'interno di un dominio di routing univoco nell'host Hyper-V. Sotto ogni rete virtuale è presente almeno una subnet virtuale. Le subnet virtuali vengono definite da un prefisso IP e fanno riferimento a un elenco di controllo di accesso definito in precedenza.

I passaggi per creare una nuova rete virtuale sono:

  1. Identificare i prefissi degli indirizzi IP da cui creare le subnet virtuali.
  2. Identificare la rete del provider logico su cui viene effettuato il tunneling del traffico tenant.
  3. Creare almeno una subnet virtuale per ogni prefisso IP identificato nel passaggio 1.
  4. (Facoltativo) Aggiungere gli elenchi di controllo di accesso definiti creati in precedenza alle subnet virtuali o aggiungere la connettività del gateway per i tenant.

La tabella seguente include gli ID subnet di esempio e prefissi per due tenant fittizi. Il tenant Fabrikam ha due subnet virtuali, mentre il tenant Contoso ha tre subnet virtuali.

Nome del tenant ID subnet virtuale Prefisso subnet virtuale
Fabrikam 5001 24.30.1.0/24
Fabrikam 5002 24.30.2.0/20
Contoso 6001 24.30.1.0/24
Contoso 6002 24.30.2.0/24
Contoso 6003 24.30.3.0/24

Lo script di esempio seguente usa i comandi di Windows PowerShell esportati dal modulo NetworkController per creare la rete virtuale di Contoso e una subnet:

import-module networkcontroller
$URI = "https://ncrest.contoso.local"

#Find the HNV Provider Logical Network

$logicalnetworks = Get-NetworkControllerLogicalNetwork -ConnectionUri $uri
foreach ($ln in $logicalnetworks) {
   if ($ln.Properties.NetworkVirtualizationEnabled -eq "True") {
      $HNVProviderLogicalNetwork = $ln
   }
}

#Find the Access Control List to user per virtual subnet

$acllist = Get-NetworkControllerAccessControlList -ConnectionUri $uri -ResourceId "AllowAll"

#Create the Virtual Subnet

$vsubnet = new-object Microsoft.Windows.NetworkController.VirtualSubnet
$vsubnet.ResourceId = "Contoso_WebTier"
$vsubnet.Properties = new-object Microsoft.Windows.NetworkController.VirtualSubnetProperties
$vsubnet.Properties.AccessControlList = $acllist
$vsubnet.Properties.AddressPrefix = "24.30.1.0/24"

#Create the Virtual Network

$vnetproperties = new-object Microsoft.Windows.NetworkController.VirtualNetworkProperties
$vnetproperties.AddressSpace = new-object Microsoft.Windows.NetworkController.AddressSpace
$vnetproperties.AddressSpace.AddressPrefixes = @("24.30.1.0/24")
$vnetproperties.LogicalNetwork = $HNVProviderLogicalNetwork
$vnetproperties.Subnets = @($vsubnet)
New-NetworkControllerVirtualNetwork -ResourceId "Contoso_VNet1" -ConnectionUri $uri -Properties $vnetproperties

Modificare una rete virtuale esistente

È possibile usare Windows PowerShell per aggiornare una subnet virtuale o una rete esistenti.

Quando si esegue lo script di esempio seguente, le risorse aggiornate sono semplicemente PUT su Controller di rete con lo stesso ID risorsa. Se il tenant Contoso vuole aggiungere una nuova subnet virtuale (24.30.2.0/24) alla rete virtuale, l'utente o l'amministratore Contoso può usare lo script seguente.

$acllist = Get-NetworkControllerAccessControlList -ConnectionUri $uri -ResourceId "AllowAll"

$vnet = Get-NetworkControllerVirtualNetwork -ResourceId "Contoso_VNet1" -ConnectionUri $uri

$vnet.properties.AddressSpace.AddressPrefixes += "24.30.2.0/24"

$vsubnet = new-object Microsoft.Windows.NetworkController.VirtualSubnet
$vsubnet.ResourceId = "Contoso_DBTier"
$vsubnet.Properties = new-object Microsoft.Windows.NetworkController.VirtualSubnetProperties
$vsubnet.Properties.AccessControlList = $acllist
$vsubnet.Properties.AddressPrefix = "24.30.2.0/24"

$vnet.properties.Subnets += $vsubnet

New-NetworkControllerVirtualNetwork -ResourceId "Contoso_VNet1" -ConnectionUri $uri -properties $vnet.properties

Eliminare una rete virtuale

È possibile usare Windows PowerShell per eliminare una rete virtuale.

Nell'esempio di Windows PowerShell seguente viene eliminata una rete virtuale tenant eseguendo un'eliminazione HTTP all'URI dell'ID risorsa.

Remove-NetworkControllerVirtualNetwork -ResourceId "Contoso_Vnet1" -ConnectionUri $uri