Udostępnij przez


Utwórz maszynę wirtualną i nawiąż połączenie z siecią wirtualną dzierżawy lub siecią VLAN

W tym temacie utworzysz maszynę wirtualną dla dzierżawcy i połączysz ją z siecią wirtualną, którą utworzyłeś za pomocą Wirtualizacji Sieci Hyper-V, lub z wirtualną siecią lokalną (VLAN). Polecenia cmdlet kontrolera sieci programu Windows PowerShell umożliwiają połączenie z siecią wirtualną, a NetworkControllerRESTWrappers pozwalają na połączenie z siecią VLAN.

Użyj procesów opisanych w tym temacie, aby wdrożyć urządzenia wirtualne. Za pomocą kilku dodatkowych kroków można skonfigurować urządzenia do przetwarzania lub inspekcji pakietów danych, które przepływają do lub z innych maszyn wirtualnych w sieci wirtualnej.

Sekcje w tym temacie zawierają przykładowe polecenia programu Windows PowerShell zawierające przykładowe wartości dla wielu parametrów. Przed uruchomieniem tych poleceń upewnij się, że zastąpisz przykładowe wartości wartościami odpowiednimi dla danego wdrożenia.

Prerequisites

  1. Karty sieciowe maszyn wirtualnych utworzone z użyciem statycznych adresów MAC na cały okres istnienia maszyny wirtualnej.

    Jeśli adres MAC zmieni się w okresie istnienia maszyny wirtualnej, kontroler sieci nie może skonfigurować niezbędnych zasad dla karty sieciowej. Nieskonfigurowanie polityki sieci uniemożliwia karcie sieciowej przetwarzanie ruchu sieciowego, a cała komunikacja z siecią kończy się nieudana.

  2. Jeśli maszyna wirtualna wymaga dostępu do sieci podczas uruchamiania, nie uruchamiaj maszyny wirtualnej dopiero po ustawieniu identyfikatora interfejsu na porcie karty sieciowej maszyny wirtualnej. Jeśli uruchomisz maszynę wirtualną przed ustawieniem identyfikatora interfejsu, a interfejs sieciowy nie istnieje, maszyna wirtualna nie może komunikować się z siecią w kontrolerze sieci i wszystkie zastosowane zasady.

  3. Jeśli potrzebujesz niestandardowych list ACL dla tego interfejsu sieciowego, utwórz listę ACL teraz, korzystając z instrukcji w temacie Używanie list kontroli dostępu (ACL) do zarządzania przepływem ruchu sieciowego centrum danych

Przed użyciem tego przykładowego polecenia upewnij się, że sieć wirtualna została już utworzona. Aby uzyskać więcej informacji, zobacz Tworzenie, usuwanie i aktualizowanie sieci wirtualnej dzierżawcy.

Tworzenie maszyny wirtualnej i nawiązywanie połączenia z siecią wirtualną przy użyciu poleceń cmdlet kontrolera sieci programu Windows PowerShell

  1. Utwórz maszynę wirtualną z kartą sieciową VM mającą statyczny adres 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"
    
  2. Pobierz sieć wirtualną zawierającą podsieć, z którą chcesz połączyć kartę sieciową.

    $vnet = Get-NetworkControllerVirtualNetwork -ConnectionUri $uri -ResourceId "Contoso_WebTier"
    
  3. Utwórz obiekt interfejsu sieciowego w kontrolerze sieci.

    Tip

    W tym kroku użyjesz niestandardowej listy kontroli dostępu.

    $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. Pobierz identyfikator InstanceId dla interfejsu sieciowego z poziomu kontrolera sieci.

     $nic = Get-NetworkControllerNetworkInterface -ConnectionUri $uri -ResourceId "MyVM_Ethernet1"
    
  5. Ustaw identyfikator interfejsu na porcie karty sieciowej maszyny wirtualnej Hyper-V.

    Note

    Należy uruchomić te polecenia na hoście Hyper-V, na którym zainstalowano maszynę wirtualną.

    #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. Uruchom maszynę wirtualną.

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

Pomyślnie utworzono maszynę wirtualną, połączono ją z siecią wirtualną dzierżawcy i uruchomiono, aby mogła przetwarzać obciążenia dzierżawcy.

Tworzenie maszyny wirtualnej i nawiązywanie połączenia z siecią VLAN przy użyciu elementu NetworkControllerRESTWrappers

  1. Utwórz maszynę wirtualną i przypisz statyczny adres MAC do maszyny wirtualnej.

    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. Ustaw identyfikator sieci VLAN na karcie sieciowej maszyny wirtualnej.

    Set-VMNetworkAdapterIsolation –VMName "MyVM" -AllowUntaggedTraffic $true -IsolationMode VLAN -DefaultIsolationId 123
    
  3. Pobierz podsieć sieci logicznej i utwórz interfejs sieciowy.

     $logicalnet = Get-NetworkControllerLogicalNetwork -ConnectionUri $uri -ResourceId "a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1"
    
     $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. Ustaw identyfikator InstanceId na porcie Hyper-V.

    #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. Uruchom maszynę wirtualną.

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

Pomyślnie utworzono maszynę wirtualną, połączono ją z siecią VLAN i uruchomiono, aby mogła przetwarzać obciążenia najemcy.