Så här skapar du en virtuell Linux-dator i Azure med flera nätverkskort

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

Den här artikeln beskriver hur du skapar en virtuell dator med flera nätverkskort med Azure CLI.

Skapa stödresurser

Installera den senaste Azure CLI och logga in på ett Azure-konto med az login.

I följande exempel ersätter du exempelparameternamn med dina egna värden. Exempelparameternamnen inkluderade myResourceGroup, mystorageaccount och myVM.

Skapa först en resursgrupp med az group create. I följande exempel skapas en resursgrupp med namnet myResourceGroup på platsen eastus:

az group create --name myResourceGroup --location eastus

Skapa det virtuella nätverket med az network vnet create. I följande exempel skapas ett virtuellt nätverk med namnet myVnet och undernätet mySubnetFrontEnd:

az network vnet create \
    --resource-group myResourceGroup \
    --name myVnet \
    --address-prefix 10.0.0.0/16 \
    --subnet-name mySubnetFrontEnd \
    --subnet-prefix 10.0.1.0/24

Skapa ett undernät för serverdelstrafiken med az network vnet subnet create. I följande exempel skapas ett undernät med namnet mySubnetBackEnd:

az network vnet subnet create \
    --resource-group myResourceGroup \
    --vnet-name myVnet \
    --name mySubnetBackEnd \
    --address-prefix 10.0.2.0/24

Skapa en nätverkssäkerhetsgrupp med az network nsg create. I följande exempel skapas en nätverkssäkerhetsgrupp med namnet myNetworkSecurityGroup:

az network nsg create \
    --resource-group myResourceGroup \
    --name myNetworkSecurityGroup

Skapa och konfigurera flera nätverkskort

Skapa två nätverkskort med az network nic create. I följande exempel skapas två nätverkskort med namnet myNic1 och myNic2, som är anslutna till nätverkssäkerhetsgruppen, med ett nätverkskort som ansluter till varje undernät:

az network nic create \
    --resource-group myResourceGroup \
    --name myNic1 \
    --vnet-name myVnet \
    --subnet mySubnetFrontEnd \
    --network-security-group myNetworkSecurityGroup
az network nic create \
    --resource-group myResourceGroup \
    --name myNic2 \
    --vnet-name myVnet \
    --subnet mySubnetBackEnd \
    --network-security-group myNetworkSecurityGroup

Skapa en virtuell dator och koppla nätverkskorten

När du skapar den virtuella datorn anger du de nätverkskort som du skapade med --nics. Du måste också vara försiktig när du väljer vm-storlek. Det finns gränser för det totala antalet nätverkskort som du kan lägga till i en virtuell dator. Läs mer om storlekar på virtuella Linux-datorer.

Skapa en virtuell dator med az vm create. I följande exempel skapas en virtuell dator med namnet myVM:

az vm create \
    --resource-group myResourceGroup \
    --name myVM \
    --image Ubuntu2204 \
    --size Standard_DS3_v2 \
    --admin-username azureuser \
    --generate-ssh-keys \
    --nics myNic1 myNic2

Lägg till routningstabeller i gästoperativsystemet genom att slutföra stegen i Konfigurera gästoperativsystemet för flera nätverkskort.

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

Föregående steg skapade en virtuell dator med flera nätverkskort. Du kan också lägga till nätverkskort till en befintlig virtuell dator med Azure CLI. 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.

Skapa ytterligare ett nätverkskort med az network nic create. I följande exempel skapas ett nätverkskort med namnet myNic3 som är anslutet till serverdelsundernätet och nätverkssäkerhetsgruppen som skapades i föregående steg:

az network nic create \
    --resource-group myResourceGroup \
    --name myNic3 \
    --vnet-name myVnet \
    --subnet mySubnetBackEnd \
    --network-security-group myNetworkSecurityGroup

Om du vill lägga till ett nätverkskort till en befintlig virtuell dator frigör du först den virtuella datorn med az vm deallocate. I följande exempel frigörs den virtuella datorn med namnet myVM:

az vm deallocate --resource-group myResourceGroup --name myVM

Lägg till nätverkskortet med az vm nic add. I följande exempel läggs myNic3 till i myVM:

az vm nic add \
    --resource-group myResourceGroup \
    --vm-name myVM \
    --nics myNic3

Starta den virtuella datorn med az vm start:

az vm start --resource-group myResourceGroup --name myVM

Lägg till routningstabeller i gästoperativsystemet genom att slutföra stegen i Konfigurera gästoperativsystemet för flera nätverkskort.

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

Om du vill ta bort ett nätverkskort från en befintlig virtuell dator frigör du först den virtuella datorn med az vm deallocate. I följande exempel frigörs den virtuella datorn med namnet myVM:

az vm deallocate --resource-group myResourceGroup --name myVM

Ta bort nätverkskortet med az vm nic remove. Följande exempel tar bort myNic3 från myVM:

az vm nic remove \
    --resource-group myResourceGroup \
    --vm-name myVM \
    --nics myNic3

Starta den virtuella datorn med az vm start:

az vm start --resource-group myResourceGroup --name myVM

Skapa flera nätverkskort med Hjälp av Resource Manager-mallar

Azure Resource Manager-mallar använder deklarativa JSON-filer för att definiera din miljö. Du kan läsa en översikt över Azure Resource Manager. Med Resource Manager-mallar kan du skapa flera instanser av en resurs under distributionen, till exempel genom att skapa flera nätverkskort. Du använder kopiera för att ange antalet instanser som ska skapas:

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

Läs mer om att skapa flera instanser med kopiering.

Du kan också använda a copyIndex() för att sedan lägga till ett tal i ett resursnamn, vilket gör att du kan skapa myNic1, myNic2osv. Följande 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 routningstabeller i gästoperativsystemet genom att slutföra stegen i Konfigurera gästoperativsystemet för flera nätverkskort.

Konfigurera gästoperativsystem för flera nätverkskort

Föregående steg skapade ett virtuellt nätverk och undernät, anslutna nätverkskort och skapade sedan en virtuell dator. En offentlig IP-adress och regler för nätverkssäkerhetsgrupp som tillåter SSH-trafik skapades inte. För att konfigurera gästoperativsystemet för flera nätverkskort måste du tillåta fjärranslutningar och köra kommandon lokalt på den virtuella datorn.

Om du vill tillåta SSH-trafik skapar du en regel för nätverkssäkerhetsgrupp med az network nsg rule create på följande sätt:

az network nsg rule create \
    --resource-group myResourceGroup \
    --nsg-name myNetworkSecurityGroup \
    --name allow_ssh \
    --priority 101 \
    --destination-port-ranges 22

Skapa en offentlig IP-adress med az network public-ip create och tilldela den till det första nätverkskortet med az network nic ip-config update:

az network public-ip create --resource-group myResourceGroup --name myPublicIP

az network nic ip-config update \
    --resource-group myResourceGroup \
    --nic-name myNic1 \
    --name ipconfig1 \
    --public-ip myPublicIP

Om du vill visa den virtuella datorns offentliga IP-adress använder du az vm show enligt följande::

az vm show --resource-group myResourceGroup --name myVM -d --query publicIps -o tsv

SSH till den offentliga IP-adressen för den virtuella datorn. Standardanvändarnamnet som angavs i ett tidigare steg var azureuser. Ange ditt eget användarnamn och din offentliga IP-adress:

ssh azureuser@137.117.58.232

Om du vill skicka till eller från ett sekundärt nätverksgränssnitt måste du manuellt lägga till beständiga vägar till operativsystemet för varje sekundärt nätverksgränssnitt. I den här artikeln är eth1 det sekundära gränssnittet. Instruktioner för att lägga till beständiga vägar i operativsystemet varierar beroende på distribution. Anvisningar finns i dokumentationen för distributionen.

När du lägger till vägen till operativsystemet är gatewayadressen den första adressen för det undernät som nätverksgränssnittet finns i. Om undernätet till exempel har tilldelats intervallet 10.0.2.0/24 är den gateway som du anger för vägen 10.0.2.1 eller om undernätet har tilldelats intervallet 10.0.2.128/25 är gatewayen du anger för vägen 10.0.2.129. Du kan definiera ett specifikt nätverk för vägens mål, eller ange ett mål på 0.0.0.0, om du vill att all trafik för gränssnittet ska gå via den angivna gatewayen. Gatewayen för varje undernät hanteras av det virtuella nätverket.

När du har lagt till vägen för ett sekundärt gränssnitt kontrollerar du att vägen finns i routningstabellen med route -n. Följande exempelutdata är för routningstabellen där de två nätverksgränssnitten har lagts till i den virtuella datorn i den här artikeln:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.0.1.1        0.0.0.0         UG    0      0        0 eth0
0.0.0.0         10.0.2.1        0.0.0.0         UG    0      0        0 eth1
10.0.1.0        0.0.0.0         255.255.255.0   U     0      0        0 eth0
10.0.2.0        0.0.0.0         255.255.255.0   U     0      0        0 eth1
168.63.129.16   10.0.1.1        255.255.255.255 UGH   0      0        0 eth0
169.254.169.254 10.0.1.1        255.255.255.255 UGH   0      0        0 eth0

Bekräfta att den väg som du lade till bevaras mellan omstarter genom att kontrollera routningstabellen igen efter en omstart. Om du vill testa anslutningen kan du ange följande kommando, till exempel där eth1 är namnet på ett sekundärt nätverksgränssnitt:

ping bing.com -c 4 -I eth1

Nästa steg

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

Om du vill skydda dina virtuella datorer ytterligare använder du just-in-time-åtkomst till virtuella datorer. Den här funktionen öppnar regler för nätverkssäkerhetsgrupp för SSH-trafik när det behövs och under en definierad tidsperiod. Mer information finns i Manage virtual machine access using just in time (Hantera åtkomsten till virtuella datorer med Just-In-Time).