VM을 만들어서 테넌트 가상 네트워크 또는 VLAN에 연결
이 토픽에서는 테넌트 VM을 만든 다음 Hyper-V 네트워크 가상화를 사용하여 만든 가상 네트워크 또는 VLAN(가상 Local Area Network)에 연결합니다. Windows PowerShell Network Controller cmdlet을 사용하여 가상 네트워크 또는 NetworkControllerRESTWrappers에 연결한 후 VLAN에 연결할 수 있습니다.
이 토픽에 설명된 프로세스를 사용하여 가상 어플라이언스를 배포합니다. 몇 가지 추가 단계를 처리 하거나 가상 네트워크에 있는 다른 Vm에서 진행 되는 데이터 패킷 검사 기기를 구성할 수 있습니다.
이 토픽의 섹션에는 여러 매개 변수에 대한 예제 값이 포함된 예제 Windows PowerShell 명령이 포함되어 있습니다. 이러한 명령에 대 한 예제 값은 다음이 명령을 실행 하기 전에 배포에 적합 한 값으로 바꾸는 것을 확인 합니다.
필수 조건
VM의 수명 동안 정적 MAC 주소로 만든 VM 네트워크 어댑터입니다.
VM의 수명 동안 MAC 주소가 변경되면 네트워크 컨트롤러는 네트워크 어댑터에 필요한 정책을 구성할 수 없습니다. 네트워크 정책을 구성하지 않으면 네트워크 어댑터가 네트워크 트래픽을 처리할 수 없으며 네트워크와의 모든 통신에 실패합니다.
VM을 시작할 때 네트워크에 액세스해야 하는 경우 VM 네트워크 어댑터 포트에서 인터페이스 ID를 설정할 때까지 VM을 시작하지 마세요. 인터페이스 ID를 설정하기 전에 VM을 시작하고 네트워크 인터페이스가 없는 경우 VM은 네트워크 컨트롤러의 네트워크에서 통신할 수 없으며 모든 정책이 적용됩니다.
사용자 지정 Acl이 네트워크 인터페이스 필요로 하는 경우 만든 ACL 이제 항목의 지침을 사용 하 여 사용 하 여 액세스 제어 목록 (Acl) 데이터 센터 네트워크 트래픽 흐름을 관리 하려면
이 예제에서는 명령을 사용 하기 전에 가상 네트워크를 이미 만든 있는지 확인 합니다. 자세한 내용은 참조 만들기, 삭제 또는 업데이트 테 넌 트 가상 네트워크합니다.
VM을 만들고 Windows PowerShell 네트워크 컨트롤러 cmdlet을 사용 하 여 가상 네트워크에 연결
정적 MAC 주소가 포함된 VM 네트워크 어댑터를 사용하여 VM을 만듭니다.
New-VM -Generation 2 -Name "MyVM" -Path "C:\VMs\MyVM" -MemoryStartupBytes 4GB -VHDPath "C:\VMs\MyVM\Virtual Hard Disks\WindowsServer2016.vhdx" -SwitchName "SDNvSwitch" Set-VM -Name "MyVM" -ProcessorCount 4 Set-VMNetworkAdapter -VMName "MyVM" -StaticMacAddress "00-11-22-33-44-55"
네트워크 어댑터에 연결하려는 서브넷이 포함된 가상 네트워크를 가져옵니다.
$vnet = Get-NetworkControllerVirtualNetwork -ConnectionUri $uri -ResourceId "Contoso_WebTier"
네트워크 컨트롤러에서 네트워크 인터페이스 개체를 만듭니다.
팁
이 단계에서는 사용자 지정 ACL을 사용합니다.
$vmnicproperties = New-Object Microsoft.Windows.NetworkController.NetworkInterfaceProperties $vmnicproperties.PrivateMacAddress = "001122334455" $vmnicproperties.PrivateMacAllocationMethod = "Static" $vmnicproperties.IsPrimary = $true $vmnicproperties.DnsSettings = New-Object Microsoft.Windows.NetworkController.NetworkInterfaceDnsSettings $vmnicproperties.DnsSettings.DnsServers = @("24.30.1.11", "24.30.1.12") $ipconfiguration = New-Object Microsoft.Windows.NetworkController.NetworkInterfaceIpConfiguration $ipconfiguration.resourceid = "MyVM_IP1" $ipconfiguration.properties = New-Object Microsoft.Windows.NetworkController.NetworkInterfaceIpConfigurationProperties $ipconfiguration.properties.PrivateIPAddress = "24.30.1.101" $ipconfiguration.properties.PrivateIPAllocationMethod = "Static" $ipconfiguration.properties.Subnet = New-Object Microsoft.Windows.NetworkController.Subnet $ipconfiguration.properties.subnet.ResourceRef = $vnet.Properties.Subnets[0].ResourceRef $vmnicproperties.IpConfigurations = @($ipconfiguration) New-NetworkControllerNetworkInterface –ResourceID "MyVM_Ethernet1" –Properties $vmnicproperties –ConnectionUri $uri
네트워크 컨트롤러에서 네트워크 인터페이스의 InstanceId를 가져옵니다.
$nic = Get-NetworkControllerNetworkInterface -ConnectionUri $uri -ResourceId "MyVM_Ethernet1"
Hyper-V VM 네트워크 어댑터 포트에서 인터페이스 ID를 설정합니다.
참고 항목
Hyper-v 호스트에 VM이 설치 되어 있는 다음이 명령을 실행 해야 있습니다.
#Do not change the hardcoded IDs in this section, because they are fixed values and must not change. $FeatureId = "9940cd46-8b06-43bb-b9d5-93d50381fd56" $vmNics = Get-VMNetworkAdapter -VMName "MyVM" $CurrentFeature = Get-VMSwitchExtensionPortFeature -FeatureId $FeatureId -VMNetworkAdapter $vmNics if ($CurrentFeature -eq $null) { $Feature = Get-VMSystemSwitchExtensionPortFeature -FeatureId $FeatureId $Feature.SettingData.ProfileId = "{$($nic.InstanceId)}" $Feature.SettingData.NetCfgInstanceId = "{56785678-a0e5-4a26-bc9b-c0cba27311a3}" $Feature.SettingData.CdnLabelString = "TestCdn" $Feature.SettingData.CdnLabelId = 1111 $Feature.SettingData.ProfileName = "Testprofile" $Feature.SettingData.VendorId = "{1FA41B39-B444-4E43-B35A-E1F7985FD548}" $Feature.SettingData.VendorName = "NetworkController" $Feature.SettingData.ProfileData = 1 Add-VMSwitchExtensionPortFeature -VMSwitchExtensionFeature $Feature -VMNetworkAdapter $vmNics } else { $CurrentFeature.SettingData.ProfileId = "{$($nic.InstanceId)}" $CurrentFeature.SettingData.ProfileData = 1 Set-VMSwitchExtensionPortFeature -VMSwitchExtensionFeature $CurrentFeature -VMNetworkAdapter $vmNics }
VM을 시작합니다.
Get-VM -Name "MyVM" | Start-VM
VM을 만들고, VM을 테넌트 가상 네트워크에 연결하고, 테넌트 워크로드를 처리할 수 있도록 VM을 시작했습니다.
VM을 만들고 NetworkControllerRESTWrappers를 사용 하 여 VLAN에 연결
VM을 만들고 VM에 정적 MAC 주소를 할당합니다.
New-VM -Generation 2 -Name "MyVM" -Path "C:\VMs\MyVM" -MemoryStartupBytes 4GB -VHDPath "C:\VMs\MyVM\Virtual Hard Disks\WindowsServer2016.vhdx" -SwitchName "SDNvSwitch" Set-VM -Name "MyVM" -ProcessorCount 4 Set-VMNetworkAdapter -VMName "MyVM" -StaticMacAddress "00-11-22-33-44-55"
VM 네트워크 어댑터에서 VLAN ID를 설정합니다.
Set-VMNetworkAdapterIsolation –VMName "MyVM" -AllowUntaggedTraffic $true -IsolationMode VLAN -DefaultIsolationId 123
논리 네트워크 서브넷을 가져오고 네트워크 인터페이스를 만듭니다.
$logicalnet = Get-NetworkControllerLogicalNetwork -ConnectionUri $uri -ResourceId "00000000-2222-1111-9999-000000000002" $vmnicproperties = New-Object Microsoft.Windows.NetworkController.NetworkInterfaceProperties $vmnicproperties.PrivateMacAddress = "00-1D-C8-B7-01-02" $vmnicproperties.PrivateMacAllocationMethod = "Static" $vmnicproperties.IsPrimary = $true $vmnicproperties.DnsSettings = New-Object Microsoft.Windows.NetworkController.NetworkInterfaceDnsSettings $vmnicproperties.DnsSettings.DnsServers = $logicalnet.Properties.Subnets[0].DNSServers $ipconfiguration = New-Object Microsoft.Windows.NetworkController.NetworkInterfaceIpConfiguration $ipconfiguration.resourceid = "MyVM_Ip1" $ipconfiguration.properties = New-Object Microsoft.Windows.NetworkController.NetworkInterfaceIpConfigurationProperties $ipconfiguration.properties.PrivateIPAddress = "10.127.132.177" $ipconfiguration.properties.PrivateIPAllocationMethod = "Static" $ipconfiguration.properties.Subnet = New-Object Microsoft.Windows.NetworkController.Subnet $ipconfiguration.properties.subnet.ResourceRef = $logicalnet.Properties.Subnets[0].ResourceRef $vmnicproperties.IpConfigurations = @($ipconfiguration) $vnic = New-NetworkControllerNetworkInterface –ResourceID "MyVM_Ethernet1" –Properties $vmnicproperties –ConnectionUri $uri $vnic.InstanceId
Hyper-V 포트에서 InstanceId를 설정합니다.
#The hardcoded Ids in this section are fixed values and must not change. $FeatureId = "9940cd46-8b06-43bb-b9d5-93d50381fd56" $vmNics = Get-VMNetworkAdapter -VMName "MyVM" $CurrentFeature = Get-VMSwitchExtensionPortFeature -FeatureId $FeatureId -VMNetworkAdapter $vmNics if ($CurrentFeature -eq $null) { $Feature = Get-VMSystemSwitchExtensionFeature -FeatureId $FeatureId $Feature.SettingData.ProfileId = "{$InstanceId}" $Feature.SettingData.NetCfgInstanceId = "{56785678-a0e5-4a26-bc9b-c0cba27311a3}" $Feature.SettingData.CdnLabelString = "TestCdn" $Feature.SettingData.CdnLabelId = 1111 $Feature.SettingData.ProfileName = "Testprofile" $Feature.SettingData.VendorId = "{1FA41B39-B444-4E43-B35A-E1F7985FD548}" $Feature.SettingData.VendorName = "NetworkController" $Feature.SettingData.ProfileData = 1 Add-VMSwitchExtensionFeature -VMSwitchExtensionFeature $Feature -VMNetworkAdapter $vmNics } else { $CurrentFeature.SettingData.ProfileId = "{$InstanceId}" $CurrentFeature.SettingData.ProfileData = 1 Set-VMSwitchExtensionPortFeature -VMSwitchExtensionFeature $CurrentFeature -VMNetworkAdapter $vmNics }
VM을 시작합니다.
Get-VM -Name "MyVM" | Start-VM
VM을 만들고, VM을 VLAN에 연결하고, 테넌트 워크로드를 처리할 수 있도록 VM을 시작했습니다.