テナントの仮想ネットワークを作成、削除、または更新する
このトピックでは、ソフトウェア定義ネットワーク (SDN) を展開した後で Hyper-V ネットワーク仮想化仮想ネットワークを作成、削除、更新する方法について説明します。 Hyper-V ネットワーク仮想化を使用すると、テナント ネットワークを分離して、各テナント ネットワークを個別のエンティティにするのに役立ちます。 パブリック アクセス ワークロードを構成しない限り、各エンティティには交差接続の可能性はありません。
新しい仮想ネットワークを作成します
テナントの仮想ネットワークを作成すると、仮想ネットワークは Hyper-V ホスト上の一意のルーティング ドメイン内に配置されます。 すべての仮想ネットワークの下に、少なくとも 1 つの仮想サブネットがあります。 仮想サブネットは、IP プレフィックスによって定義され、以前に定義された ACL を参照します。
新しい仮想ネットワークを作成する手順は次のとおりです。
- 仮想サブネットの作成に使用する IP アドレス プレフィックスを特定します。
- テナント トラフィックがトンネリングされる論理プロバイダー ネットワークを特定します。
- 手順 1 で特定した IP プレフィックスごとに、少なくとも 1 つの仮想サブネットを作成します。
- (省略可能) 以前に作成した 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