Dela via


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 i regionen eastus. I de här exemplen deklarerar vi miljövariabler när de används och lägger till ett slumpmässigt suffix i unika resursnamn.

export RANDOM_SUFFIX=$(openssl rand -hex 3)
export MY_RESOURCE_GROUP_NAME="myResourceGroup$RANDOM_SUFFIX"
export REGION="WestUS2"
az group create --name $MY_RESOURCE_GROUP_NAME --location $REGION
{
  "id": "/subscriptions/xxxxx/resourceGroups/myResourceGroupxxx",
  "location": "WestUS2",
  "managedBy": null,
  "name": "myResourceGroupxxx",
  "properties": {
      "provisioningState": "Succeeded"
  },
  "tags": null,
  "type": "Microsoft.Resources/resourceGroups"
}

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:

export VNET_NAME="myVnet"
export FRONTEND_SUBNET="mySubnetFrontEnd"
az network vnet create \
    --resource-group $MY_RESOURCE_GROUP_NAME \
    --name $VNET_NAME \
    --address-prefix 10.0.0.0/16 \
    --subnet-name $FRONTEND_SUBNET \
    --subnet-prefix 10.0.1.0/24

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

export BACKEND_SUBNET="mySubnetBackEnd"
az network vnet subnet create \
    --resource-group $MY_RESOURCE_GROUP_NAME \
    --vnet-name $VNET_NAME \
    --name $BACKEND_SUBNET \
    --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:

export NSG_NAME="myNetworkSecurityGroup"
az network nsg create \
    --resource-group $MY_RESOURCE_GROUP_NAME \
    --name $NSG_NAME

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, anslutna till nätverkssäkerhetsgruppen, med ett nätverkskort som ansluter till varje undernät:

export NIC1="myNic1"
export NIC2="myNic2"
az network nic create \
    --resource-group $MY_RESOURCE_GROUP_NAME \
    --name $NIC1 \
    --vnet-name $VNET_NAME \
    --subnet $FRONTEND_SUBNET \
    --network-security-group $NSG_NAME
az network nic create \
    --resource-group $MY_RESOURCE_GROUP_NAME \
    --name $NIC2 \
    --vnet-name $VNET_NAME \
    --subnet $BACKEND_SUBNET \
    --network-security-group $NSG_NAME

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:

export VM_NAME="myVM"
az vm create \
    --resource-group $MY_RESOURCE_GROUP_NAME \
    --name $VM_NAME \
    --image Ubuntu2204 \
    --size Standard_DS3_v2 \
    --admin-username azureuser \
    --generate-ssh-keys \
    --nics $NIC1 $NIC2

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:

export NIC3="myNic3"
az network nic create \
    --resource-group $MY_RESOURCE_GROUP_NAME \
    --name $NIC3 \
    --vnet-name $VNET_NAME \
    --subnet $BACKEND_SUBNET \
    --network-security-group $NSG_NAME

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 frisläpps den virtuella datorn med namnet myVM:

az vm deallocate --resource-group $MY_RESOURCE_GROUP_NAME --name $VM_NAME

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 $MY_RESOURCE_GROUP_NAME \
    --vm-name $VM_NAME \
    --nics $NIC3

Starta den virtuella datorn med az vm start:

az vm start --resource-group $MY_RESOURCE_GROUP_NAME --name $VM_NAME

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 frisläpps den virtuella datorn med namnet myVM:

az vm deallocate --resource-group $MY_RESOURCE_GROUP_NAME --name $VM_NAME

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

az vm nic remove \
    --resource-group $MY_RESOURCE_GROUP_NAME \
    --vm-name $VM_NAME \
    --nics $NIC3

Starta den virtuella datorn med az vm start:

az vm start --resource-group $MY_RESOURCE_GROUP_NAME --name $VM_NAME

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 ett copyIndex() för att sedan lägga till ett nummer i ett resursnamn, vilket gör att du kan skapa myNic1, myNic2 osv. 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 $MY_RESOURCE_GROUP_NAME \
    --nsg-name $NSG_NAME \
    --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:

export PUBLIC_IP_NAME="myPublicIP"
az network public-ip create --resource-group $MY_RESOURCE_GROUP_NAME --name $PUBLIC_IP_NAME

az network nic ip-config update \
    --resource-group $MY_RESOURCE_GROUP_NAME \
    --nic-name $NIC1 \
    --name ipconfig1 \
    --public-ip $PUBLIC_IP_NAME

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

az vm show --resource-group $MY_RESOURCE_GROUP_NAME --name $VM_NAME -d --query publicIps -o tsv
x.x.x.x

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:

export IP_ADDRESS=$(az vm show --resource-group $MY_RESOURCE_GROUP_NAME --name $VM_NAME -d --query publicIps -o tsv)
ssh -o StrictHostKeyChecking=no azureuser@$IP_ADDRESS

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. Se dokumentationen för din distribution för instruktioner.

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 Hantera åtkomst till virtuella datorer med just-in-time.