다음을 통해 공유


테넌트 가상 네트워크 만들기, 삭제 또는 업데이트

적용 대상: Windows Server 2022, Windows Server 2019, Windows Server 2016, Azure Stack HCI, 버전 21H2 및 20H2

이 항목에서는 SDN(소프트웨어 정의 네트워킹)을 배포한 후 Hyper-V 네트워크 가상화 가상 네트워크를 만들고, 삭제하고, 업데이트하는 방법에 대해 알아봅니다. Hyper-V 네트워크 가상화를 사용하면 각 테넌트 네트워크가 별도의 엔터티가 되도록 테넌트 네트워크를 격리할 수 있습니다. 공용 액세스 워크로드를 구성하지 않는 한 각 엔터티는 상호 연결 가능성이 없습니다.

새 가상 네트워크 만들기

테넌트에 대한 가상 네트워크를 만들면 Hyper-V 호스트에서 고유한 라우팅 수행기본 내에 배치됩니다. 모든 가상 네트워크 아래에는 하나 이상의 가상 서브넷이 있습니다. 가상 서브넷은 IP 접두사로 정의되고 이전에 정의된 ACL을 참조합니다.

새 가상 네트워크를 만드는 단계는 다음과 같습니다.

  1. 가상 서브넷을 만들 IP 주소 접두사를 식별합니다.
  2. 테넌트 트래픽이 터널되는 논리 공급자 네트워크를 식별합니다.
  3. 1단계에서 식별한 각 IP 접두사에 대해 하나 이상의 가상 서브넷을 만듭니다.
  4. (선택 사항) 이전에 만든 ACL을 가상 서브넷에 추가하거나 테넌트에 대한 게이트웨이 연결을 추가합니다.

다음 표에는 두 가상 테넌트에 대한 예제 서브넷 ID 및 접두사가 포함되어 있습니다. 테넌트 Fabrikam에는 두 개의 가상 서브넷이 있지만 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의 가상 네트워크와 하나의 서브넷을 만듭니다.

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

기존 Virtual Network 수정

Windows PowerShell을 사용하여 기존 가상 서브넷 또는 네트워크를 업데이트할 수 있습니다.

다음 예제 스크립트를 실행하면 업데이트된 리소스는 단순히 동일한 리소스 ID를 사용하여 네트워크 컨트롤러에 PUT됩니다. 테넌트 Contoso가 가상 네트워크에 새 가상 서브넷(24.30.2.0/24)을 추가하려는 경우 사용자 또는 Contoso 관리istrator는 다음 스크립트를 사용할 수 있습니다.

$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

Virtual Network 삭제

Windows PowerShell을 사용하여 Virtual Network를 삭제할 수 있습니다.

다음 Windows PowerShell 예제에서는 리소스 ID의 URI에 HTTP 삭제를 실행하여 테넌트 Virtual Network를 삭제합니다.

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