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 virtuella 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 får också lära dig hur du lägger till eller tar bort nätverkskort från en befintlig virtuell dator. Olika VM-storlekar har stöd för ett varierande antal nätverkskort, så ändra storlek på den virtuella datorn i enlighet med detta.
Kommentar
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.
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"
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.
Ange autentiseringsuppgifterna för den virtuella datorn till variabeln
$cred
enligt följande:$cred = Get-Credential
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"
Skapa resten av konfigurationen av den virtuella datorn med Set-AzVMOperatingSystem och Set-AzVMSourceImage. I följande exempel skapas en virtuell Windows Server 2016-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"
Koppla 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
Skapa den virtuella datorn med New-AzVM:
New-AzVM -VM $vmConfig -ResourceGroupName "myResourceGroup" -Location "EastUs"
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 har stöd för ett varierande antal nätverkskort, så ändra storlek på den virtuella datorn i enlighet med detta. Om det behövs kan du ändra storlek på en virtuell dator.
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"
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"
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"
Starta den virtuella datorn med Start-AzVm:
Start-AzVM -ResourceGroupName "myResourceGroup" -Name "myVM"
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.
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"
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"
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
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
ovanstående steg:Remove-AzVMNetworkInterface -VM $vm -NetworkInterfaceIDs $nicId | ` Update-AzVm -ResourceGroupName "myResourceGroup"
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 kopia 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 kopia.
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.
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.
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.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 det adressintervall 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 nätverket 192.168.3.0 anger du kommandot:
route add -p 192.168.3.0 MASK 255.255.255.0 192.168.2.1 METRIC 5015 IF 7
Om du till exempel vill bekräfta lyckad kommunikation med en resurs i nätverket 192.168.3.0 anger du 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
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 har lagt 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.