Erstellen eines virtuellen Computers und Verbinden mit einem virtuellen Mandantennetzwerk oder VLAN

Gilt für Windows Server 2022, Windows Server 2019, Windows Server 2016, Azure Stack HCI (Version 21H2 und 20H2)

In diesem Thema erstellen Sie eine Mandanten-VM und verbinden diese entweder mit einem virtuellen Netzwerk, das Sie mit Hyper-V-Netzwerkvirtualisierung erstellt haben, oder mit einem virtuellen lokalen Netzwerk (Virtual Local Area Network, VLAN). Sie können Windows PowerShell-Netzwerkcontroller-Cmdlets verwenden, um eine Verbindung mit einem virtuellen Netzwerk herzustellen, oder NetworkControllerRESTWrappers, um eine Verbindung mit einem VLAN herzustellen.

Verwenden Sie die in diesem Thema beschriebenen Prozesse, um virtuelle Geräte bereitzustellen. Mit einigen zusätzlichen Schritten können Sie Appliances so konfigurieren, dass Datenpakete verarbeitet oder überprüft werden, die zu oder von anderen VMs im virtuellen Netzwerk fließen.

Die Abschnitte in diesem Thema enthalten Beispiele für Windows PowerShell-Befehle, die Beispielwerte für viele Parameter enthalten. Achten Sie darauf, dass Sie Beispielwerte in diesen Befehlen durch Werte ersetzen, die für Ihre Bereitstellung geeignet sind, bevor Sie diese Befehle ausführen.

Voraussetzungen

  1. VM-Netzwerkadapter, die für die Lebensdauer des virtuellen Computers mit statischen MAC-Adressen erstellt wurden.

    Wenn sich die MAC-Adresse während der VM-Lebensdauer ändert, kann der Netzwerkcontroller die erforderliche Richtlinie für den Netzwerkadapter nicht konfigurieren. Wenn die Richtlinie für das Netzwerk nicht konfiguriert wird, wird verhindert, dass der Netzwerkadapter Netzwerkdatenverkehr verarbeitet, und die gesamte Kommunikation mit dem Netzwerk schlägt fehl.

  2. Wenn der virtuelle Computer beim Start Netzwerkzugriff erfordert, starten Sie den virtuellen Computer erst nach dem Festlegen der Schnittstellen-ID auf dem Port des VM-Netzwerkadapters. Wenn Sie den virtuellen Computer starten, bevor Sie die Schnittstellen-ID festlegen, und die Netzwerkschnittstelle nicht vorhanden ist, kann die VM nicht über das Netzwerk im Netzwerkcontroller kommunizieren, und alle Richtlinien werden angewendet.

  3. Wenn Sie benutzerdefinierte ACLs für diese Netzwerkschnittstelle benötigen, erstellen Sie die ACL jetzt anhand der Anweisungen im Thema Verwenden von Zugriffssteuerungslisten (ACLs) zum Verwalten des Datacenter-Netzwerkdatenverkehrsflusses.

Vergewissern Sie sich, dass Sie bereits ein virtuelles Netzwerk erstellt haben, bevor Sie diesen Beispielbefehl verwenden. Weitere Informationen finden Sie unter Erstellen, Löschen oder Aktualisieren von virtuellen Mandantennetzwerken.

Erstellen eines virtuellen Computers und Herstellen einer Verbindung mit einem virtuellen Netzwerk mithilfe der Windows PowerShell-Netzwerkcontroller-Cmdlets

  1. Erstellen Sie einen virtuellen Computer mit einem VM-Netzwerkadapter, der über eine statische MAC-Adresse verfügt.

    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"
    
  2. Rufen Sie das virtuelle Netzwerk ab, das das Subnetz enthält, mit dem Sie den Netzwerkadapter verbinden möchten.

    $vnet = Get-NetworkControllerVirtualNetwork -ConnectionUri $uri -ResourceId "Contoso_WebTier"
    
  3. Erstellen Sie im Netzwerkcontroller ein Netzwerkschnittstellenobjekt.

    Tipp

    In diesem Schritt verwenden Sie die benutzerdefinierte 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
    
  4. Rufen Sie die InstanceId für die Netzwerkschnittstelle vom Netzwerkcontroller ab.

     $nic = Get-NetworkControllerNetworkInterface -ConnectionUri $uri -ResourceId "MyVM_Ethernet1"
    
  5. Legen Sie die Schnittstellen-ID im Hyper-V-VM-Netzwerkadapterport fest.

    Hinweis

    Sie müssen diese Befehle auf dem Hyper-V-Host ausführen, auf dem die VM installiert ist.

    #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
    }
    
  6. Starten Sie den virtuellen Computer.

     Get-VM -Name "MyVM" | Start-VM
    

Sie haben erfolgreich einen virtuellen Computer erstellt, den virtuellen Computer mit einem virtuellen Mandantennetzwerk verbunden und den virtuellen Computer gestartet, damit Mandantenworkloads von ihm verarbeitet werden können.

Erstellen eines virtuellen Computers und Herstellen einer Verbindung mit einem VLAN mithilfe von NetworkControllerRESTWrappers

  1. Erstellen Sie den virtuellen Computer, und weisen Sie diesem eine statische MAC-Adresse zu.

    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"
    
  2. Legen Sie die VLAN-ID auf dem VM-Netzwerkadapter fest.

    Set-VMNetworkAdapterIsolation –VMName "MyVM" -AllowUntaggedTraffic $true -IsolationMode VLAN -DefaultIsolationId 123
    
  3. Rufen Sie das Subnetz des logischen Netzwerks ab, und erstellen Sie die Netzwerkschnittstelle.

     $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
    
  4. Legen Sie die InstanceId auf dem Hyper-V-Port fest.

    #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
    }
    
  5. Starten Sie den virtuellen Computer.

    Get-VM -Name "MyVM" | Start-VM
    

Sie haben erfolgreich einen virtuellen Computer erstellt, den virtuellen Computer mit einem VLAN verbunden und den virtuellen Computer gestartet, damit Mandantenworkloads von ihm verarbeitet werden können.