テナントの仮想ネットワークを作成、削除、または更新する

このトピックでは、ソフトウェア定義ネットワーク (SDN) を展開した後で Hyper-V ネットワーク仮想化仮想ネットワークを作成、削除、更新する方法について説明します。 Hyper-V ネットワーク仮想化を使用すると、テナント ネットワークを分離して、各テナント ネットワークを個別のエンティティにするのに役立ちます。 パブリック アクセス ワークロードを構成しない限り、各エンティティには交差接続の可能性はありません。

新しい仮想ネットワークを作成します

テナントの仮想ネットワークを作成すると、仮想ネットワークは Hyper-V ホスト上の一意のルーティング ドメイン内に配置されます。 すべての仮想ネットワークの下に、少なくとも 1 つの仮想サブネットがあります。 仮想サブネットは、IP プレフィックスによって定義され、以前に定義された ACL を参照します。

新しい仮想ネットワークを作成する手順は次のとおりです。

  1. 仮想サブネットの作成に使用する IP アドレス プレフィックスを特定します。
  2. テナント トラフィックがトンネリングされる論理プロバイダー ネットワークを特定します。
  3. 手順 1 で特定した IP プレフィックスごとに、少なくとも 1 つの仮想サブネットを作成します。
  4. (省略可能) 以前に作成した ACL を仮想サブネットに追加するか、テナントのゲートウェイ接続を追加します。

次の表に、2 つの架空のテナントのサブネット ID とプレフィックスの例を示します。 Fabrikam テナントには 2 つの仮想サブネットがあります。一方、Contoso テナントには 3 つの仮想サブネットがあります。

テナント名 仮想サブネット ID 仮想サブネット プレフィックス
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

次のスクリプト例では、NetworkController モジュールからエクスポートされた Windows PowerShell コマンドを使用して、Contoso の仮想ネットワークと 1 つのサブネットを作成します。

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 を使用して、既存の仮想ネットワークを更新することができます。

次のサンプル スクリプトを実行すると、更新されたリソースは、同じリソース ID でネットワーク コントローラーに単純に PUT されます。 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 の例では、リソース ID の URI に HTTP 削除を発行することで、テナントの仮想ネットワークを削除します。

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