Partager via


Créer une machine virtuelle et établir la connexion à un réseau virtuel locataire ou un réseau local virtuel

S’applique à : Windows Server 2022, Windows Server 2019, Windows Server 2016, Azure Stack HCI versions 21H2 et 20H2

Dans cette rubrique, vous créez une machine virtuelle locataire et vous la connectez à un réseau virtuel que vous avez créé avec la virtualisation de réseau Hyper-V ou à un réseau local virtuel (VLAN). Vous pouvez utiliser les applets de commande Windows PowerShell du contrôleur de réseau pour vous connecter à un réseau virtuel ou NetworkControllerRESTWrappers pour vous connecter à un VLAN.

Utilisez les processus décrits dans cette rubrique pour déployer des appliances virtuelles. En quelques étapes supplémentaires, vous pouvez configurer des appliances pour traiter ou inspecter les paquets de données qui circulent vers ou depuis d’autres machines virtuelles sur le Réseau virtuel.

Les sections de cette rubrique incluent des exemples de commandes Windows PowerShell qui contiennent des exemples de valeurs pour de nombreux paramètres. Veillez à remplacer les exemples de valeurs dans ces commandes par des valeurs appropriées à votre déploiement avant d’exécuter ces commandes.

Prérequis

  1. Adaptateurs réseau de machine virtuelle créés avec des adresses MAC statiques pendant la durée de vie de la machine virtuelle.

    Si l’adresse MAC change pendant la durée de vie de la machine virtuelle, le contrôleur de réseau ne peut pas configurer la stratégie nécessaire pour l’adaptateur réseau. Le fait de ne pas configurer la stratégie pour le réseau empêche l’adaptateur réseau de traiter le trafic réseau, et toutes les communications avec le réseau échouent.

  2. Si la machine virtuelle nécessite un accès réseau au démarrage, ne démarrez la machine virtuelle qu’après avoir défini l’ID d’interface sur le port de l’adaptateur réseau de machine virtuelle. Si vous démarrez la machine virtuelle avant de définir l’ID d’interface et que l’interface réseau n’existe pas, la machine virtuelle ne peut pas communiquer sur le réseau dans le contrôleur de réseau et toutes les stratégies sont appliquées.

  3. Si vous avez besoin de listes de contrôle d’accès personnalisées pour cette interface réseau, créez la liste de contrôle d’accès maintenant en suivant les instructions de la rubrique Utiliser des listes de contrôle d’accès (ACL) pour gérer le flux de trafic réseau du centre de données

Vérifiez que vous avez déjà créé un Réseau virtuel avant d’utiliser cet exemple de commande. Pour plus d’informations, consultez Créer, supprimer ou mettre à jour des réseaux virtuels de locataire.

Créez une machine virtuelle et connectez-vous à un Réseau virtuel à l’aide des applets de commande du contrôleur de réseau Windows PowerShell

  1. Créez une machine virtuelle avec un adaptateur réseau de machine virtuelle qui a une adresse MAC statique.

    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. Obtenez le réseau virtuel qui contient le sous-réseau auquel vous souhaitez connecter l’adaptateur réseau.

    $vnet = Get-NetworkControllerVirtualNetwork -ConnectionUri $uri -ResourceId "Contoso_WebTier"
    
  3. Créez un objet interface réseau dans le contrôleur de réseau.

    Conseil

    Dans cette étape, vous utilisez la liste de contrôle d’accès personnalisée.

    $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. Obtenez l’InstanceId de l’interface réseau à partir du contrôleur de réseau.

     $nic = Get-NetworkControllerNetworkInterface -ConnectionUri $uri -ResourceId "MyVM_Ethernet1"
    
  5. Définissez l’ID d’interface sur le port de l’adaptateur réseau de machine virtuelle Hyper-V.

    Notes

    Vous devez exécuter ces commandes sur l’hôte Hyper-V sur lequel la machine virtuelle est installée.

    #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. Démarrez la machine virtuelle.

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

Vous avez correctement créé une machine virtuelle, connecté la machine virtuelle à un locataire Réseau virtuel et démarré la machine virtuelle afin qu’elle puisse traiter les charges de travail des locataires.

Créez une machine virtuelle et connectez-vous à un VLAN à l’aide de NetworkControllerRESTWrappers

  1. Créez la machine virtuelle et affectez une adresse MAC statique à la machine virtuelle.

    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. Définissez l’ID de réseau local virtuel sur l’adaptateur réseau de machine virtuelle.

    Set-VMNetworkAdapterIsolation –VMName "MyVM" -AllowUntaggedTraffic $true -IsolationMode VLAN -DefaultIsolationId 123
    
  3. Obtenez le sous-réseau de réseau logique et créez l’interface réseau.

     $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. Définissez l’InstanceId sur le port 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. Démarrez la machine virtuelle.

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

Vous avez correctement créé une machine virtuelle, connecté la machine virtuelle à un VLAN et démarré la machine virtuelle afin qu’elle puisse traiter les charges de travail des locataires.