Skapa och hantera en virtuell Windows-dator som har flera nätverkskort

Gäller för: ✔️ Flexibla skalningsuppsättningar för virtuella Windows-datorer ✔️

Virtuella datorer i Azure kan ha flera nätverkskort (NIC) kopplade till sig. Ett vanligt scenario är att ha olika undernät för klientdels- och serverdelsanslutningar. Du kan associera flera nätverkskort på en virtuell dator till flera undernät, men alla dessa undernät måste finnas i samma virtuella nätverk (vNet). Den här artikeln beskriver hur du skapar en virtuell dator som har flera nätverkskort kopplade till sig. Du lär dig också hur du lägger till eller tar bort nätverkskort från en befintlig virtuell dator. Olika VM-storlekar stöder ett varierande antal nätverkskort, så ändra storlek på den virtuella datorn.

Anteckning

Om flera undernät inte krävs för ett scenario kan det vara enklare att använda flera IP-konfigurationer på ett enda nätverkskort. Anvisningar för den här konfigurationen finns här.

Förutsättningar

I följande exempel ersätter du exempelparameternamn med dina egna värden. Exempelparameternamn är myResourceGroup, myVnet och myVM.

Skapa en virtuell dator med flera nätverkskort

Skapa först en resursgrupp. I följande exempel skapas en resursgrupp med namnet myResourceGroup på platsen EastUs :

New-AzResourceGroup -Name "myResourceGroup" -Location "EastUS"

Skapa virtuella nätverk och undernät

Ett vanligt scenario är att ett virtuellt nätverk har två eller flera undernät. Ett undernät kan vara för klientdelstrafik, det andra för serverdelstrafik. Om du vill ansluta till båda undernäten använder du sedan flera nätverkskort på den virtuella datorn.

  1. Definiera två virtuella nätverksundernät med New-AzVirtualNetworkSubnetConfig. I följande exempel definieras undernäten för mySubnetFrontEnd och mySubnetBackEnd:

    $mySubnetFrontEnd = New-AzVirtualNetworkSubnetConfig -Name "mySubnetFrontEnd" `
        -AddressPrefix "192.168.1.0/24"
    $mySubnetBackEnd = New-AzVirtualNetworkSubnetConfig -Name "mySubnetBackEnd" `
        -AddressPrefix "192.168.2.0/24"
    
  2. Skapa ditt virtuella nätverk och undernät med New-AzVirtualNetwork. I följande exempel skapas ett virtuellt nätverk med namnet myVnet:

    $myVnet = New-AzVirtualNetwork -ResourceGroupName "myResourceGroup" `
        -Location "EastUs" `
        -Name "myVnet" `
        -AddressPrefix "192.168.0.0/16" `
        -Subnet $mySubnetFrontEnd,$mySubnetBackEnd
    

Skapa flera nätverkskort

Skapa två nätverkskort med New-AzNetworkInterface. Koppla ett nätverkskort till klientdelsundernätet och ett nätverkskort till serverdelsundernätet. I följande exempel skapas nätverkskort med namnet myNic1 och myNic2:

$frontEnd = $myVnet.Subnets|?{$_.Name -eq 'mySubnetFrontEnd'}
$myNic1 = New-AzNetworkInterface -ResourceGroupName "myResourceGroup" `
    -Name "myNic1" `
    -Location "EastUs" `
    -SubnetId $frontEnd.Id

$backEnd = $myVnet.Subnets|?{$_.Name -eq 'mySubnetBackEnd'}
$myNic2 = New-AzNetworkInterface -ResourceGroupName "myResourceGroup" `
    -Name "myNic2" `
    -Location "EastUs" `
    -SubnetId $backEnd.Id

Vanligtvis skapar du också en nätverkssäkerhetsgrupp för att filtrera nätverkstrafik till den virtuella datorn och en lastbalanserare för att distribuera trafik över flera virtuella datorer.

Skapa den virtuella datorn

Börja nu skapa konfigurationen av den virtuella datorn. Varje VM-storlek har en gräns för det totala antalet nätverkskort som du kan lägga till i en virtuell dator. Mer information finns i Vm-storlekar för Windows.

  1. Ange autentiseringsuppgifterna för den virtuella datorn till variabeln $cred på följande sätt:

    $cred = Get-Credential
    
  2. Definiera den virtuella datorn med New-AzVMConfig. I följande exempel definieras en virtuell dator med namnet myVM och en VM-storlek som stöder fler än två nätverkskort (Standard_DS3_v2):

    $vmConfig = New-AzVMConfig -VMName "myVM" -VMSize "Standard_DS3_v2"
    
  3. Skapa resten av vm-konfigurationen med Set-AzVMOperatingSystem och Set-AzVMSourceImage. I följande exempel skapas en Windows Server 2016 virtuell dator:

    $vmConfig = Set-AzVMOperatingSystem -VM $vmConfig `
        -Windows `
        -ComputerName "myVM" `
        -Credential $cred `
        -ProvisionVMAgent `
        -EnableAutoUpdate
    $vmConfig = Set-AzVMSourceImage -VM $vmConfig `
        -PublisherName "MicrosoftWindowsServer" `
        -Offer "WindowsServer" `
        -Skus "2016-Datacenter" `
        -Version "latest"
    
  4. Bifoga de två nätverkskort som du skapade tidigare med Add-AzVMNetworkInterface:

    $vmConfig = Add-AzVMNetworkInterface -VM $vmConfig -Id $myNic1.Id -Primary
    $vmConfig = Add-AzVMNetworkInterface -VM $vmConfig -Id $myNic2.Id
    
  5. Skapa din virtuella dator med New-AzVM:

    New-AzVM -VM $vmConfig -ResourceGroupName "myResourceGroup" -Location "EastUs"
    
  6. Lägg till vägar för sekundära nätverkskort till operativsystemet genom att slutföra stegen i Konfigurera operativsystemet för flera nätverkskort.

Lägga till ett nätverkskort till en befintlig virtuell dator

Om du vill lägga till ett virtuellt nätverkskort till en befintlig virtuell dator frigör du den virtuella datorn, lägger till det virtuella nätverkskortet och startar sedan den virtuella datorn. Olika VM-storlekar stöder ett varierande antal nätverkskort, så ändra storlek på den virtuella datorn. Om det behövs kan du ändra storlek på en virtuell dator.

  1. Frigör den virtuella datorn med Stop-AzVM. I följande exempel frigörs den virtuella datorn med namnet myVM i myResourceGroup:

    Stop-AzVM -Name "myVM" -ResourceGroupName "myResourceGroup"
    
  2. Hämta den befintliga konfigurationen av den virtuella datorn med Get-AzVm. I följande exempel hämtas information för den virtuella datorn med namnet myVM i myResourceGroup:

    $vm = Get-AzVm -Name "myVM" -ResourceGroupName "myResourceGroup"
    
  3. I följande exempel skapas ett virtuellt nätverkskort med New-AzNetworkInterface med namnet myNic3 som är kopplat till mySubnetBackEnd. Det virtuella nätverkskortet kopplas sedan till den virtuella datorn med namnet myVM i myResourceGroup med Add-AzVMNetworkInterface:

    # Get info for the back end subnet
    $myVnet = Get-AzVirtualNetwork -Name "myVnet" -ResourceGroupName "myResourceGroup"
    $backEnd = $myVnet.Subnets|?{$_.Name -eq 'mySubnetBackEnd'}
    
    # Create a virtual NIC
    $myNic3 = New-AzNetworkInterface -ResourceGroupName "myResourceGroup" `
        -Name "myNic3" `
        -Location "EastUs" `
        -SubnetId $backEnd.Id
    
    # Get the ID of the new virtual NIC and add to VM
    $nicId = (Get-AzNetworkInterface -ResourceGroupName "myResourceGroup" -Name "MyNic3").Id
    Add-AzVMNetworkInterface -VM $vm -Id $nicId | Update-AzVm -ResourceGroupName "myResourceGroup"
    

    Primära virtuella nätverkskort

    En av nätverkskorten på en virtuell dator med flera nätverkskort måste vara primär. Om en av de befintliga virtuella nätverkskorten på den virtuella datorn redan har angetts som primär kan du hoppa över det här steget. I följande exempel förutsätts att två virtuella nätverkskort nu finns på en virtuell dator och att du vill lägga till det första nätverkskortet ([0]) som primärt:

    # List existing NICs on the VM and find which one is primary
    $vm.NetworkProfile.NetworkInterfaces
    
    # Set NIC 0 to be primary
    $vm.NetworkProfile.NetworkInterfaces[0].Primary = $true
    $vm.NetworkProfile.NetworkInterfaces[1].Primary = $false
    
    # Update the VM state in Azure
    Update-AzVM -VM $vm -ResourceGroupName "myResourceGroup"
    
  4. Starta den virtuella datorn med Start-AzVm:

    Start-AzVM -ResourceGroupName "myResourceGroup" -Name "myVM"
    
  5. Lägg till vägar för sekundära nätverkskort till operativsystemet genom att slutföra stegen i Konfigurera operativsystemet för flera nätverkskort.

Ta bort ett nätverkskort från en befintlig virtuell dator

Om du vill ta bort ett virtuellt nätverkskort från en befintlig virtuell dator frigör du den virtuella datorn, tar bort det virtuella nätverkskortet och startar sedan den virtuella datorn.

  1. Frigör den virtuella datorn med Stop-AzVM. I följande exempel frigörs den virtuella datorn med namnet myVM i myResourceGroup:

    Stop-AzVM -Name "myVM" -ResourceGroupName "myResourceGroup"
    
  2. Hämta den befintliga konfigurationen av den virtuella datorn med Get-AzVm. I följande exempel hämtas information för den virtuella datorn med namnet myVM i myResourceGroup:

    $vm = Get-AzVm -Name "myVM" -ResourceGroupName "myResourceGroup"
    
  3. Hämta information om NIC-borttagningen med Get-AzNetworkInterface. I följande exempel hämtas information om myNic3:

    # List existing NICs on the VM if you need to determine NIC name
    $vm.NetworkProfile.NetworkInterfaces
    
    $nicId = (Get-AzNetworkInterface -ResourceGroupName "myResourceGroup" -Name "myNic3").Id   
    
  4. Ta bort nätverkskortet med Remove-AzVMNetworkInterface och uppdatera sedan den virtuella datorn med Update-AzVm. I följande exempel tas myNic3 bort enligt $nicId föregående steg:

    Remove-AzVMNetworkInterface -VM $vm -NetworkInterfaceIDs $nicId | `
        Update-AzVm -ResourceGroupName "myResourceGroup"
    
  5. Starta den virtuella datorn med Start-AzVm:

    Start-AzVM -Name "myVM" -ResourceGroupName "myResourceGroup"
    

Skapa flera nätverkskort med mallar

Azure Resource Manager-mallar är ett sätt att skapa flera instanser av en resurs under distributionen, till exempel att skapa flera nätverkskort. Resource Manager mallar använder deklarativa JSON-filer för att definiera din miljö. Mer information finns i Översikt över Azure Resource Manager. Du kan använda kopiera för att ange antalet instanser som ska skapas:

"copy": {
    "name": "multiplenics",
    "count": "[parameters('count')]"
}

Mer information finns i Skapa flera instanser med hjälp av kopiera.

Du kan också använda copyIndex() för att lägga till ett tal i ett resursnamn. Du kan sedan skapa myNic1, MyNic2 och så vidare. Följande kod visar ett exempel på hur du lägger till indexvärdet:

"name": "[concat('myNic', copyIndex())]", 

Du kan läsa ett fullständigt exempel på hur du skapar flera nätverkskort med hjälp av Resource Manager mallar.

Lägg till vägar för sekundära nätverkskort till operativsystemet genom att slutföra stegen i Konfigurera operativsystemet för flera nätverkskort.

Konfigurera gästoperativsystem för flera nätverkskort

Azure tilldelar en standardgateway till det första (primära) nätverksgränssnittet som är kopplat till den virtuella datorn. Azure tilldelar inte en standardgateway till ytterligare (sekundära) nätverksgränssnitt som är kopplade till en virtuell dator. Du kan därför som standard inte kommunicera med resurser utanför det undernät som är ett sekundärt nätverksgränssnitt befinner sig i. Sekundära nätverksgränssnitt kan dock kommunicera med resurser utanför undernätet, även om stegen för att aktivera kommunikation skiljer sig åt för olika operativsystem.

  1. Kör kommandot från en Windows-kommandotolk route print , som returnerar utdata som liknar följande utdata för en virtuell dator med två anslutna nätverksgränssnitt:

    ===========================================================================
    Interface List
    3...00 0d 3a 10 92 ce ......Microsoft Hyper-V Network Adapter #3
    7...00 0d 3a 10 9b 2a ......Microsoft Hyper-V Network Adapter #4
    ===========================================================================
    

    I det här exemplet är Microsoft Hyper-V nätverkskort nr 4 (gränssnitt 7) det sekundära nätverksgränssnittet som inte har någon tilldelad standardgateway.

  2. Kör kommandot från en kommandotolk ipconfig för att se vilken IP-adress som är tilldelad till det sekundära nätverksgränssnittet. I det här exemplet tilldelas 192.168.2.4 till gränssnitt 7. Ingen standardgatewayadress returneras för det sekundära nätverksgränssnittet.

  3. Kör följande kommando för att dirigera all trafik som är avsedd för adresser utanför undernätet i det sekundära nätverksgränssnittet till gatewayen för undernätet:

    route add -p 0.0.0.0 MASK 0.0.0.0 192.168.2.1 METRIC 5015 IF 7
    

    Gatewayadressen för undernätet är den första IP-adressen (som slutar på .1) i adressintervallet som definierats för undernätet. Om du inte vill dirigera all trafik utanför undernätet kan du lägga till enskilda vägar till specifika mål i stället. Om du till exempel bara vill dirigera trafik från det sekundära nätverksgränssnittet till 192.168.3.0-nätverket anger du kommandot:

    route add -p 192.168.3.0 MASK 255.255.255.0 192.168.2.1 METRIC 5015 IF 7
    
  4. Om du vill bekräfta lyckad kommunikation med en resurs i nätverket 192.168.3.0 anger du till exempel följande kommando för att pinga 192.168.3.4 med gränssnitt 7 (192.168.2.4):

    ping 192.168.3.4 -S 192.168.2.4
    

    Du kan behöva öppna ICMP via Windows-brandväggen på den enhet som du pingar med följande kommando:

    netsh advfirewall firewall add rule name=Allow-ping protocol=icmpv4 dir=in action=allow
    
  5. Bekräfta att den tillagda vägen finns i routningstabellen route print genom att ange kommandot som returnerar utdata som liknar följande text:

    ===========================================================================
    Active Routes:
    Network Destination        Netmask          Gateway       Interface  Metric
              0.0.0.0          0.0.0.0      192.168.1.1      192.168.1.4     15
              0.0.0.0          0.0.0.0      192.168.2.1      192.168.2.4   5015
    

    Den väg som anges med 192.168.1.1 under Gateway är den väg som finns där som standard för det primära nätverksgränssnittet. Vägen med 192.168.2.1 under Gateway är den väg som du lade till.

Nästa steg

Granska storlekarna för virtuella Windows-datorer när du försöker skapa en virtuell dator som har flera nätverkskort. Var uppmärksam på det maximala antalet nätverkskort som varje VM-storlek stöder.