Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a: ✔️ macchine virtuali di Linux ✔️ set di scalabilità flessibili
Questo articolo illustra in dettaglio come creare una macchina virtuale con più schede di rete utilizzando l'interfaccia della riga di comando di Azure.
Creare risorse di supporto
Installare l'interfaccia della riga di comando di Azure più recente e accedere a un account Azure usando az login.
Negli esempi seguenti sostituire i nomi dei parametri di esempio con i propri valori. I nomi dei parametri di esempio includono myResourceGroup, mystorageaccount e myVM.
Creare prima un gruppo di risorse con az group create. Nell'esempio seguente viene creato un gruppo di risorse denominato myResourceGroup nella posizione eastus . In questi esempi si dichiarano variabili di ambiente man mano che vengono usate e si aggiunge un suffisso casuale ai nomi di risorse univoci.
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"
}
Creare la rete virtuale con az network vnet create. L'esempio seguente crea una rete virtuale denominata myVnet e subnet denominata 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
Creare una subnet per il traffico del back-end con az network vnet subnet create. L'esempio seguente crea una subnet denominata 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
Creare un gruppo di sicurezza di rete con il comando az network nsg create. L'esempio seguente crea un gruppo di sicurezza di rete denominato myNetworkSecurityGroup:
export NSG_NAME="myNetworkSecurityGroup"
az network nsg create \
--resource-group $MY_RESOURCE_GROUP_NAME \
--name $NSG_NAME
Creare e configurare più schede di interfaccia di rete (NIC)
Creare due interfacce di rete con az network nic create. L'esempio seguente crea due schede di interfaccia di rete, denominate myNic1 e myNic2, connesse al gruppo di sicurezza di rete, con una scheda di interfaccia di rete che si connette a ogni subnet:
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
Creare una macchina virtuale e collegare le schede di interfaccia di rete
Quando si crea la macchina virtuale, specificare le NIC (schede di interfaccia di rete) create con --nics. È anche necessario prestare attenzione quando si selezionano le dimensioni della macchina virtuale. Esistono limiti per il numero totale di schede di interfaccia di rete che è possibile aggiungere a una macchina virtuale. Altre informazioni sulle dimensioni delle macchine virtuali Linux.
Creare una VM con il comando az vm create. L'esempio seguente crea una macchina virtuale denominata 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
Aggiungere tabelle di routing al sistema operativo guest completando i passaggi descritti in Configurare il sistema operativo guest per più schede di interfaccia di rete.
Aggiungere una scheda di interfaccia di rete a una macchina virtuale
I passaggi precedenti hanno creato una macchina virtuale con più schede di interfaccia di rete. È anche possibile aggiungere schede di interfaccia di rete a una macchina virtuale esistente con l'interfaccia della riga di comando di Azure. Le diverse dimensioni delle macchine virtuali supportano un numero variabile di schede di interfaccia di rete, in modo da ridimensionare di conseguenza la macchina virtuale. Se necessario, è possibile ridimensionare una macchina virtuale.
Creare un'altra scheda di interfaccia di rete con az network nic create. L'esempio seguente crea una scheda di interfaccia di rete denominata myNic3 connessa alla subnet di back-end e al gruppo di sicurezza di rete creato nei passaggi precedenti:
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
Per aggiungere una scheda di interfaccia di rete a una macchina virtuale esistente, deallocare prima di tutto la macchina virtuale con az vm deallocate. L'esempio seguente dealloca la macchina virtuale denominata myVM:
az vm deallocate --resource-group $MY_RESOURCE_GROUP_NAME --name $VM_NAME
Aggiungi l'interfaccia di rete con az vm nic add. L'esempio seguente aggiunge myNic3 a myVM:
az vm nic add \
--resource-group $MY_RESOURCE_GROUP_NAME \
--vm-name $VM_NAME \
--nics $NIC3
Avviare la macchina virtuale con az vm start:
az vm start --resource-group $MY_RESOURCE_GROUP_NAME --name $VM_NAME
Aggiungere tabelle di routing al sistema operativo guest completando i passaggi descritti in Configurare il sistema operativo guest per più schede di interfaccia di rete.
Rimuovere una scheda di interfaccia di rete da una macchina virtuale
Per rimuovere una scheda di interfaccia di rete da una macchina virtuale esistente, deallocare prima di tutto la macchina virtuale con az vm deallocate. L'esempio seguente dealloca la macchina virtuale denominata myVM:
az vm deallocate --resource-group $MY_RESOURCE_GROUP_NAME --name $VM_NAME
Rimuovere il NIC con az vm nic remove. L'esempio seguente rimuove myNic3 da myVM:
az vm nic remove \
--resource-group $MY_RESOURCE_GROUP_NAME \
--vm-name $VM_NAME \
--nics $NIC3
Avviare la macchina virtuale con az vm start:
az vm start --resource-group $MY_RESOURCE_GROUP_NAME --name $VM_NAME
Creare più schede di interfaccia di rete usando modelli di Resource Manager
I modelli di Azure Resource Manager usano file JSON dichiarativi per definire l'ambiente. È possibile leggere una panoramica di Azure Resource Manager. I modelli di Resource Manager consentono di creare più istanze di una risorsa durante la distribuzione, ad esempio la creazione di più schede di interfaccia di rete. Usare copy per specificare il numero di istanze da creare:
"copy": {
"name": "multiplenics"
"count": "[parameters('count')]"
}
Scopri di più sulla creazione di più istanze tramite copia.
È anche possibile usare copyIndex() per aggiungere un numero a un nome di risorsa, che consente di creare myNic1, myNic2 e così via. Di seguito è riportato un esempio di aggiunta del valore di indice:
"name": "[concat('myNic', copyIndex())]",
È possibile leggere un esempio completo della creazione di più schede di interfaccia di rete usando i modelli di Resource Manager.
Aggiungere tabelle di routing al sistema operativo guest completando i passaggi descritti in Configurare il sistema operativo guest per più schede di interfaccia di rete.
Configurare il sistema operativo guest per più schede di interfaccia di rete
I passaggi precedenti hanno creato una rete virtuale e una subnet, le schede di interfaccia di rete collegate, quindi hanno creato una macchina virtuale. Un indirizzo IP pubblico e regole del gruppo di sicurezza di rete che consentono il traffico SSH non sono stati creati. Per configurare il sistema operativo guest per più schede di interfaccia di rete, è necessario consentire le connessioni remote ed eseguire i comandi in locale nella macchina virtuale.
Per consentire il traffico SSH, creare una regola del gruppo di sicurezza di rete con az network nsg rule create come indicato di seguito:
az network nsg rule create \
--resource-group $MY_RESOURCE_GROUP_NAME \
--nsg-name $NSG_NAME \
--name allow_ssh \
--priority 101 \
--destination-port-ranges 22
Creare un indirizzo IP pubblico con az network public-ip create e assegnarlo alla prima scheda di interfaccia di rete con 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
Per visualizzare l'indirizzo IP pubblico della macchina virtuale, usare az vm show come segue:
az vm show --resource-group $MY_RESOURCE_GROUP_NAME --name $VM_NAME -d --query publicIps -o tsv
x.x.x.x
Ora connettiti all'indirizzo IP pubblico della tua macchina virtuale tramite SSH. Il nome utente predefinito fornito in un passaggio precedente è azureuser. Specificare il proprio nome utente e l'indirizzo IP pubblico:
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
Per inviare da o verso un'interfaccia di rete secondaria, è necessario aggiungere manualmente route persistenti al sistema operativo per ogni interfaccia di rete secondaria. In questo articolo , eth1 è l'interfaccia secondaria. Le istruzioni per l'aggiunta di route persistenti al sistema operativo variano in base alla distribuzione. Per istruzioni, vedere la documentazione relativa alla distribuzione.
Quando si aggiunge la route al sistema operativo, l'indirizzo del gateway è il primo indirizzo della subnet in cui si trova l'interfaccia di rete. Ad esempio, se alla subnet è stato assegnato l'intervallo 10.0.2.0/24, il gateway specificato per la route è 10.0.2.1 o se alla subnet è stato assegnato l'intervallo 10.0.2.128/25, il gateway specificato per la route è 10.0.2.129. È possibile definire una rete specifica per la destinazione della route o specificare una destinazione di 0.0.0.0, se si desidera che tutto il traffico per l'interfaccia passi attraverso il gateway specificato. Il gateway per ogni subnet viene gestito dalla rete virtuale.
Dopo aver aggiunto il percorso per un'interfaccia secondaria, verificare che il percorso si trovi nella tabella dei percorsi con route -n
. L'output di esempio seguente è relativo alla tabella di route con le due interfacce di rete aggiunte alla macchina virtuale in questo articolo:
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
Verificare che la route aggiunta persiste tra i riavvii controllando di nuovo la tabella di route dopo un riavvio. Per testare la connettività, è possibile immettere il comando seguente, ad esempio, dove eth1 è il nome di un'interfaccia di rete secondaria: ping bing.com -c 4 -I eth1
Passaggi successivi
Esaminare le dimensioni delle macchine virtuali Linux quando si tenta di creare una macchina virtuale con più schede di interfaccia di rete. Prestare attenzione al numero massimo di schede di interfaccia di rete supportate da ogni dimensione di macchina virtuale.
Per proteggere ulteriormente le macchine virtuali, usare l'accesso just-in-time alle macchine virtuali. Questa funzionalità apre le regole del gruppo di sicurezza di rete per il traffico SSH quando necessario e per un periodo di tempo definito. Per altre informazioni, vedere Gestire l'accesso alle macchine virtuali usando just-in-time.