Een virtuele Linux-machine maken in Azure met meerdere netwerkinterfacekaarten

Van toepassing op: ✔️ Flexibele schaalsets voor Linux-VM's ✔️

In dit artikel wordt beschreven hoe u een vm met meerdere NIC's maakt met de Azure CLI.

Ondersteunende resources maken

Installeer de nieuwste Azure CLI en meld u aan bij een Azure-account met behulp van az login.

Vervang in de volgende voorbeelden voorbeeldparameternamen door uw eigen waarden. Voorbeelden van parameternamen zijn myResourceGroup, mystorageaccount en myVM.

Maak eerst een resourcegroep met az group create. In het volgende voorbeeld wordt een resourcegroep met de naam myResourceGroup gemaakt op de locatie eastus:

az group create --name myResourceGroup --location eastus

Maak het virtuele netwerk met az network vnet create. In het volgende voorbeeld wordt een virtueel netwerk gemaakt met de naam myVnet en een subnet met de naam 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

Maak een subnet voor het back-endverkeer met az network vnet subnet create. In het volgende voorbeeld wordt een subnet met de naam mySubnetBackEnd gemaakt:

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

Maak een netwerkbeveiligingsgroep met az network nsg create. In het volgende voorbeeld wordt een netwerkbeveiligingsgroep met de naam myNetworkSecurityGroup gemaakt:

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

Meerdere NIC's maken en configureren

Maak twee NIC's met az network nic create. In het volgende voorbeeld worden twee NIC's, myNic1 en myNic2, gemaakt die de netwerkbeveiligingsgroep hebben verbonden, met één NIC die verbinding maakt met elk subnet:

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

Een virtuele machine maken en de NIC's koppelen

Wanneer u de virtuele machine maakt, geeft u de NIC's op die u hebt gemaakt met --nics. U moet ook voorzichtig zijn wanneer u de VM-grootte selecteert. Er gelden limieten voor het totale aantal NIC's dat u aan een virtuele machine kunt toevoegen. Meer informatie over vm-grootten voor Linux.

Maak een VM met az vm create. In het volgende voorbeeld wordt een VM met de naam myVM gemaakt:

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

Voeg routeringstabellen toe aan het gastbesturingssystemen door de stappen in Het gastbesturingssystemen voor meerdere NIC's configureren uit te voeren.

Een NIC toevoegen aan een VM

In de vorige stappen is een vm met meerdere NIC's gemaakt. U kunt ook NIC's toevoegen aan een bestaande vm met de Azure CLI. Verschillende VM-grootten ondersteunen een wisselend aantal NIC's, dus de grootte van uw VM is dienovereenkomstig. Indien nodig kunt u het formaat van een virtuele machine wijzigen.

Maak nog een NIC met az network nic create. In het volgende voorbeeld wordt een NIC met de naam myNic3 gemaakt die is verbonden met het back-endsubnet en de netwerkbeveiligingsgroep die in de vorige stappen zijn gemaakt:

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

Als u een NIC wilt toevoegen aan een bestaande VM, moet u eerst de toewijzing van de VM ongedaan maken met az vm deallocate. In het volgende voorbeeld wordt de toewijzing van de VM met de naam myVM ongedaan gemaakt:

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

Voeg de NIC toe met az vm nic add. In het volgende voorbeeld wordt myNic3 toegevoegd aan myVM:

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

Start de VM met az vm start:

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

Voeg routeringstabellen toe aan het gastbesturingssystemen door de stappen in Het gastbesturingssystemen voor meerdere NIC's configureren uit te voeren.

Een NIC verwijderen uit een VM

Als u een NIC uit een bestaande VM wilt verwijderen, moet u eerst de toewijzing van de VM ongedaan maken met az vm deallocate. In het volgende voorbeeld wordt de toewijzing van de VM met de naam myVM ongedaan gemaakt:

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

Verwijder de NIC met az vm nic remove. In het volgende voorbeeld wordt myNic3 uit myVM verwijderd:

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

Start de VM met az vm start:

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

Meerdere NIC's maken met behulp van Resource Manager-sjablonen

Azure Resource Manager-sjablonen maken gebruik van declaratieve JSON-bestanden om uw omgeving te definiëren. U kunt een overzicht van Azure Resource Manager lezen. Resource Manager-sjablonen bieden een manier om meerdere exemplaren van een resource te maken tijdens de implementatie, zoals het maken van meerdere NIC's. U gebruikt copy om het aantal exemplaren op te geven dat moet worden gemaakt:

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

Lees meer over het maken van meerdere exemplaren met behulp van kopiëren.

U kunt ook een copyIndex() gebruiken om vervolgens een nummer toe te voegen aan een resourcenaam, zodat u , myNic2, enzovoort kunt makenmyNic1. Hieronder ziet u een voorbeeld van het toevoegen van de indexwaarde:

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

U kunt een volledig voorbeeld lezen van het maken van meerdere NIC's met behulp van Resource Manager-sjablonen.

Voeg routeringstabellen toe aan het gastbesturingssystemen door de stappen in Het gastbesturingssystemen voor meerdere NIC's configureren uit te voeren.

Gastbesturingssystemen configureren voor meerdere NIC's

In de vorige stappen zijn een virtueel netwerk en subnet gemaakt, gekoppelde NIC's en vervolgens een virtuele machine gemaakt. Er zijn geen openbaar IP-adres en regels voor netwerkbeveiligingsgroepen gemaakt die SSH-verkeer toestaan. Als u het gastbesturingssystemen voor meerdere NIC's wilt configureren, moet u externe verbindingen toestaan en opdrachten lokaal uitvoeren op de VM.

Als u SSH-verkeer wilt toestaan, maakt u als volgt een regel voor een netwerkbeveiligingsgroep met az network nsg rule create :

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

Maak een openbaar IP-adres met az network public-ip create en wijs dit toe aan de eerste NIC met 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

Als u het openbare IP-adres van de VM wilt weergeven, gebruikt u az vm show als volgt:

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

Ga nu met SSH naar het openbare IP-adres van uw VM. De standaardgebruikersnaam die in een vorige stap is opgegeven, was azureuser. Geef uw eigen gebruikersnaam en openbaar IP-adres op:

ssh azureuser@137.117.58.232

Als u wilt verzenden naar of van een secundaire netwerkinterface, moet u handmatig permanente routes toevoegen aan het besturingssysteem voor elke secundaire netwerkinterface. In dit artikel is eth1 de secundaire interface. Instructies voor het toevoegen van permanente routes aan het besturingssysteem verschillen per distributie. Zie de documentatie voor uw distributie voor instructies.

Wanneer u de route toevoegt aan het besturingssysteem, is het gatewayadres het eerste adres van het subnet waarin de netwerkinterface zich bevindt. Als aan het subnet bijvoorbeeld het bereik 10.0.2.0/24 is toegewezen, is de gateway die u opgeeft voor de route 10.0.2.1 of als aan het subnet het bereik 10.0.2.128/25 is toegewezen, is de gateway die u opgeeft voor de route 10.0.2.129. U kunt een specifiek netwerk definiëren voor de bestemming van de route of een bestemming 0.0.0.0.0 opgeven als u wilt dat al het verkeer voor de interface via de opgegeven gateway gaat. De gateway voor elk subnet wordt beheerd door het virtuele netwerk.

Nadat u de route voor een secundaire interface hebt toegevoegd, controleert u of de route zich in de routetabel bevindt met route -n. De volgende voorbeelduitvoer is voor de routetabel met de twee netwerkinterfaces die in dit artikel aan de VM zijn toegevoegd:

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

Controleer of de route die u hebt toegevoegd, behouden blijft tijdens het opnieuw opstarten door de routetabel opnieuw te controleren na het opnieuw opstarten. Als u de connectiviteit wilt testen, kunt u de volgende opdracht invoeren, bijvoorbeeld waarbij eth1 de naam van een secundaire netwerkinterface is:

ping bing.com -c 4 -I eth1

Volgende stappen

Bekijk de grootten van Linux-VM's wanneer u een VM met meerdere NIC's probeert te maken. Let op het maximum aantal NIC's dat elke VM-grootte ondersteunt.

Als u uw VM's verder wilt beveiligen, gebruikt u Just-In-Time-VM-toegang. Met deze functie worden regels voor netwerkbeveiligingsgroepen geopend voor SSH-verkeer wanneer dat nodig is en voor een bepaalde periode. Zie Manage virtual machine access using just in time (VM-toegang beheren met behulp van JIT) voor meer informatie.