테넌트 가상 네트워크 만들기, 삭제 또는 업데이트
이 토픽에서는 SDN(소프트웨어 정의 네트워킹)을 배포한 후 Hyper-V 네트워크 가상화 가상 네트워크를 만들고, 삭제하고, 업데이트하는 방법에 대해 알아봅니다. Hyper-V 네트워크 가상화를 사용하면 각 테넌트 네트워크가 별도의 엔터티가 되도록 테넌트 네트워크를 격리할 수 있습니다. 공용 액세스 워크로드를 구성하지 않는 한 각 엔터티는 상호 연결되지 않습니다.
새 가상 네트워크 만들기
테넌트 가상 네트워크를 만들면 Hyper-V 호스트의 고유 라우팅 도메인 내에 배치됩니다. 모든 가상 네트워크 아래에는 하나 이상의 가상 서브넷이 있습니다. 가상 서브넷은 IP 접두사로 정의되고 이전에 정의된 ACL을 참조합니다.
새 가상 네트워크를 만드는 단계는 다음과 같습니다.
- 가상 서브넷을 만들려는 IP 주소 접두사를 식별합니다.
- 테넌트 트래픽이 터널링되는 논리 공급자 네트워크를 식별합니다.
- 1단계에서 식별된 각 IP 접두사에 대해 하나 이상의 가상 서브넷을 만듭니다.
- (선택 사항) 이전에 만든 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
기존 가상 네트워크 수정
Windows PowerShell을 사용하여 기존 가상 서브넷 또는 네트워크를 업데이트할 수 있습니다.
다음 예제 스크립트를 실행하면 업데이트된 리소스는 동일한 리소스 ID를 사용하여 네트워크 컨트롤러에 배치하기만 합니다. 테넌트 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