Share via


Criar uma máquina virtual e se conectar a uma rede virtual de locatário ou VLAN

Aplica-se a: Windows Server 2022, Windows Server 2019, Windows Server 2016, Azure Stack HCI, versões 21H2 e 20H2

Neste tópico, você criará uma VM de locatário e a conectará a uma rede virtual que você criou com a Virtualização de Rede Hyper-V ou a uma VLAN (rede local virtual). Você pode usar os cmdlets do Controlador de Rede do Windows PowerShell para se conectar a uma rede virtual ou NetworkControllerRESTWrappers para se conectar a uma VLAN.

Use os processos descritos neste tópico para implantar soluções de virtualização. Com algumas etapas adicionais, você pode configurar dispositivos para processar ou inspecionar pacotes de dados que fluem em outras VMs na Rede Virtual.

As seções deste tópico incluem exemplos de comandos do Windows PowerShell que contêm exemplos de valores para vários parâmetros. Substitua os exemplos de valores desses comandos por valores apropriados para sua implantação antes de executá-los.

Pré-requisitos

  1. Adaptadores de rede de VM criados com endereços MAC estáticos durante o tempo de vida da VM.

    Se o endereço MAC for alterado durante o tempo de vida da VM, o Controlador de Rede não poderá configurar a política necessária para o adaptador de rede. A não configuração da política para a rede impede que o adaptador de rede processe o tráfego de rede, e ocorre uma falha em toda a comunicação com a rede.

  2. Se a VM exigir acesso à rede na inicialização, só inicie a VM depois de definir a ID da interface na porta do adaptador de rede da VM. Se você iniciar a VM antes de definir a ID da interface e o adaptador de rede não existir, a VM não poderá se comunicar na rede no Controlador de Rede e com todas as políticas aplicadas.

  3. Caso você precise ter ACLs personalizadas para esse adaptador de rede, crie a ACL agora usando as instruções do tópico Usar ACLs (listas de controle de acesso) para gerenciar o fluxo de tráfego de rede do datacenter

Verifique se você já criou uma Rede Virtual antes de usar este exemplo de comando. Para obter mais informações, confira Criar, excluir ou atualizar redes virtuais de locatário.

Criar uma VM e conectar-se a uma Rede Virtual usando os cmdlets do Controlador de Rede do Windows PowerShell

  1. Crie uma VM com um adaptador de rede de VM que tenha um endereço MAC estático.

    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. Obtenha a rede virtual que contém a sub-rede à qual você deseja conectar o adaptador de rede.

    $vnet = Get-NetworkControllerVirtualNetwork -ConnectionUri $uri -ResourceId "Contoso_WebTier"
    
  3. Crie um objeto de adaptador de rede no Controlador de Rede.

    Dica

    Nesta etapa, você usará a ACL personalizada.

    $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. Obtenha a InstanceId do adaptador de rede por meio do Controlador de Rede.

     $nic = Get-NetworkControllerNetworkInterface -ConnectionUri $uri -ResourceId "MyVM_Ethernet1"
    
  5. Defina a ID da interface na porta do adaptador de rede da VM do Hyper-V.

    Observação

    Você precisa executar esses comandos no host do Hyper-V em que a VM está instalada.

    #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. Inicie a VM.

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

Você criou uma VM com sucesso, conectou a VM a uma Rede Virtual de locatário e iniciou a VM para que ela possa processar as cargas de trabalho de locatário.

Criar uma VM e conectar-se a uma VLAN usando NetworkControllerRESTWrappers

  1. Crie a VM e atribua um endereço MAC estático a ela.

    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. Defina a ID da VLAN no adaptador de rede da VM.

    Set-VMNetworkAdapterIsolation –VMName "MyVM" -AllowUntaggedTraffic $true -IsolationMode VLAN -DefaultIsolationId 123
    
  3. Obtenha a sub-rede de rede lógica e crie o adaptador de rede.

     $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. Defina a InstanceId na porta do 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. Inicie a VM.

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

Você criou uma VM com sucesso, conectou a VM a uma VLAN e iniciou a VM para que ela possa processar as cargas de trabalho de locatário.