Создание, удаление или обновление виртуальных сетей клиентов

В этом разделе описано, как создавать, удалять и обновлять виртуальная сеть виртуализации сети Hyper-V после развертывания программно-определяемой сети (SDN). Виртуализация сети Hyper-V помогает изолировать сети клиентов, чтобы каждая сеть клиента была отдельной сущностью. Каждая сущность не имеет возможности перекрестного подключения, если вы не настроите рабочие нагрузки общедоступного доступа.

Создание виртуальной сети

Создание виртуальной сети для клиента помещает его в уникальный домен маршрутизации на узле Hyper-V. Под каждой виртуальной сетью существует по крайней мере одна виртуальная подсеть. Виртуальные подсети определяются префиксом IP и ссылаются на ранее определенный ACL.

Ниже приведены действия по созданию новой виртуальной сети.

  1. Определите префиксы IP-адреса, из которых необходимо создать виртуальные подсети.
  2. Определите сеть логического поставщика, по которой туннель трафика клиента.
  3. Создайте по крайней мере одну виртуальную подсеть для каждого префикса IP-адреса, который вы определили на шаге 1.
  4. (Необязательно) Добавьте ранее созданные списки управления доступом к виртуальным подсетям или добавьте подключение шлюза для клиентов.

В следующей таблице приведены примеры идентификаторов подсети и префиксов для двух вымышленных клиентов. Клиент Fabrikam имеет две виртуальные подсети, а клиент Contoso имеет три виртуальных подсети.

Имя клиента. Идентификатор виртуальной подсети Префикс виртуальной подсети
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

В следующем примере скрипта используются команды Windows PowerShell, экспортированные из модуля NetworkController , для создания виртуальной сети Contoso и одной подсети:

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

Изменение существующего виртуальная сеть

Windows PowerShell можно использовать для обновления существующей виртуальной подсети или сети.

При выполнении следующего примера скрипта обновленные ресурсы просто помещаются в сетевой контроллер с тем же идентификатором ресурса. Если клиент Contoso хочет добавить новую виртуальную подсеть (24.30.2.0/24) в свою виртуальную сеть, вы или администратор Contoso могут использовать следующий сценарий.

$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

Удаление виртуальная сеть

Windows PowerShell можно использовать для удаления виртуальная сеть.

В следующем примере Windows PowerShell клиент виртуальная сеть удаляется путем выдачи HTTP-удаления в URI идентификатора ресурса.

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