Creare VM con più interfacce di rete
Questa pagina descrive come creare istanze VM con più interfacce di rete.
Prima di iniziare, assicurati di conoscere le caratteristiche delle istanze con più interfacce di rete, come descritto nella Panoramica di più interfacce di rete.
Ruoli IAM
Per creare un'istanza con più interfacce di rete, devi disporre di uno dei seguenti ruoli:
- Ruolo Proprietario o Editor del progetto
- Ruolo Compute Instance Admin (v1) (
roles/compute.instanceAdmin.v1
)
Creazione ed eliminazione di istanze e modelli di istanze con più interfacce in un progetto che non utilizza un ambiente VPC condiviso: un utente con il ruolo Proprietario, Editor o Amministratore istanze Compute (v1) può creare un'istanza con più interfacce associate alle reti e alle subnet VPC che fanno parte dello stesso progetto.
Creazione ed eliminazione di istanze e modelli di istanze con più interfacce in ambienti VPC condiviso: un utente con il ruolo Proprietario, Editor o Amministratore istanze Compute (v1) può creare un'istanza con più interfacce. Se una delle interfacce è collegata a una subnet in un progetto host VPC condiviso, devi disporre anche del ruolo Utente di rete Compute (roles/compute.networkUser
) per l'intero progetto host o per le subnet che devi utilizzare.
Per scoprire di più sulle autorizzazioni, consulta la documentazione IAM di Compute Engine.
Creare istanze VM con più interfacce di rete
Questa sezione descrive come creare un'istanza con più interfacce di rete, tra cui vNIC e NIC dinamiche. Per istruzioni generali sulla creazione di istanze, vedi Creare e avviare un'istanza VM.
La prima interfaccia viene sempre creata come nic0
ed è sempre l'interfaccia predefinita.
Console
Nella console Google Cloud , vai alla pagina Crea un'istanza.
Nel campo Nome, inserisci un nome per l'istanza.
Nel campo Regione, seleziona una regione.
Nel campo Zona, seleziona una zona.
Nella sezione Opzioni avanzate, espandi Networking e segui questi passaggi:
Nella sezione Interfacce di rete, espandi l'interfaccia di rete per modificarla.
Per Rete e Subnet, seleziona la rete e la subnet che vuoi utilizzare.
Se vuoi configurare gli indirizzi IPv6 sull'interfaccia, seleziona una subnet in cui è configurato un intervallo di indirizzi IPv6. Il tipo di accesso IPv6 della subnet determina se l'istanza riceve un indirizzo IPv6 interno o un indirizzo IPv6 esterno.
Seleziona una delle seguenti opzioni per il tipo di stack IP per l'interfaccia:
- IPv4 (stack singolo)
- IPv4 e IPv6 (stack doppio)
- IPv6 (stack singolo) (anteprima)
Per le interfacce con indirizzi IPv4:
Per Indirizzo IPv4 interno principale, seleziona una delle seguenti opzioni:
- Temporaneo (automatico) per assegnare automaticamente un nuovo indirizzo IPv4 temporaneo
- Temporaneo (personalizzato) per specificare manualmente un nuovo indirizzo IPv4 temporaneo
- Un indirizzo IPv4 interno statico riservato dall'elenco
- Prenota indirizzo IPv4 interno statico per prenotare e assegnare un nuovo indirizzo IPv4 interno statico
Per Indirizzo IPv4 esterno, seleziona una delle seguenti opzioni:
- Temporaneo per assegnare un nuovo indirizzo IPv4 temporaneo
- Nessuno per non assegnare un indirizzo IPv4 esterno
- Un indirizzo IPv4 statico riservato dall'elenco
- Prenota indirizzo IP esterno statico per prenotare e assegnare un nuovo indirizzo IPv4 esterno statico
Per le interfacce con indirizzi IPv6, procedi nel seguente modo, a seconda del tipo di accesso della subnet connessa:
- Per Indirizzo IPv6 interno principale, seleziona una delle seguenti opzioni:
- Temporaneo (automatico) per assegnare automaticamente un nuovo indirizzo IPv6 interno temporaneo
- Temporaneo (personalizzato) per specificare manualmente un nuovo indirizzo IPv6 interno temporaneo
- Un indirizzo IPv6 interno statico prenotato dall'elenco
- Prenota indirizzo IPv6 interno statico per prenotare e assegnare un nuovo indirizzo IPv6 interno statico
- Per Indirizzo IPv6 esterno, seleziona una delle seguenti opzioni:
- Allocazione automatica per assegnare automaticamente un nuovo indirizzo IPv6 esterno temporaneo
- Un indirizzo IPv6 esterno statico riservato dall'elenco
- Prenota indirizzo IPv6 esterno statico per prenotare e assegnare un nuovo indirizzo IPv6 esterno statico
- Per Indirizzo IPv6 interno principale, seleziona una delle seguenti opzioni:
Per completare la modifica dell'interfaccia di rete, fai clic su Fine.
Per aggiungere un'altra interfaccia, fai clic su Aggiungi interfaccia di rete.
Continua il processo di creazione dell'istanza.
Fai clic su Crea.
gcloud
Per creare interfacce di rete in una nuova istanza, utilizza il
comando gcloud compute instances create
.
Includi il flag --network-interface
per ogni interfaccia, seguito da eventuali chiavi di rete appropriate, ad esempio network
, subnet
, private-network-ip
, address
, external-ipv6-address
e vlan
.
Se includi la chiave vlan
, viene creata una NIC dinamica.
Se crei una NIC dinamica, devi anche seguire i passaggi per la configurazione del sistema operativo guest per le NIC dinamiche dopo aver creato l'istanza.
Per visualizzare esempi di come creare istanze con più interfacce, consulta le configurazioni di esempio.
Questo snippet illustra solo il flag --network-interface
, uno dei molti possibili parametri che puoi specificare durante la creazione di un'istanza.
gcloud compute instances create INSTANCE_NAME \ --zone ZONE \ --network-interface \ network=NETWORK_A,subnet=SUBNET_A, \ stack-type=STACK_TYPE, \ private-network-ip=INTERNAL_IPV4_ADDRESS, \ address=EXTERNAL_IPV4_ADDRESS | no-address, \ internal-ipv6-address=INTERNAL_IPV6_ADDRESS \ ... --network-interface \ network=NETWORK_B,subnet=SUBNET_B, \ stack-type=STACK_TYPE, \ external-ipv6-address=EXTERNAL_IPV6_ADDRESS, \ external-ipv6-prefix-length=96, \ ipv6-network-tier=PREMIUM, \ vlan=VLAN_ID \ ...
Sostituisci quanto segue:
INSTANCE_NAME
: il nome dell'istanza da creare.ZONE
: la zona in cui viene creata l'istanza.NETWORK_A
,NETWORK_B
: la rete a cui è collegata l'interfaccia.SUBNET_A
,SUBNET_B
: la subnet a cui è collegata l'interfaccia.STACK_TYPE
: il tipo di stack per l'interfaccia.Il valore predefinito è
IPV4_ONLY
. SpecificaIPV4_IPV6
per configurare un'interfaccia a doppio stack oIPV6_ONLY
per configurare un'interfaccia solo IPv6 (anteprima).Valori per le interfacce con indirizzi IPv4:
INTERNAL_IPV4_ADDRESS
: l'indirizzo IPv4 interno che vuoi che l'interfaccia abbia nella subnet di destinazione. Ometti se vuoi che venga assegnato un qualsiasi indirizzo valido.EXTERNAL_IPV4_ADDRESS
: l'indirizzo IPv4 esterno dell'interfaccia.Devi aver prenotato in precedenza un indirizzo IPv4 esterno. Se non vuoi che l'interfaccia abbia un indirizzo IP esterno, specifica "no-address" anziché
address=EXTERNAL_IPV4_ADDRESS
. Se vuoi che l'interfaccia riceva un indirizzo IP esterno temporaneo, specificaaddress=''
.
Valori per le interfacce con indirizzi IPv6:
INTERNAL_IPV6_ADDRESS
: l'indirizzo IPv6 interno che vuoi che l'interfaccia abbia nella subnet di destinazione. Se non specificato, Google Cloud assegna automaticamente un indirizzo IPv6 interno dalla subnet.EXTERNAL_IPV6_ADDRESS
: l'indirizzo IPv6 esterno che vuoi che l'interfaccia abbia nella subnet di destinazione. Se non specificato, Google Cloud assegna automaticamente un indirizzo IPv6 esterno dalla subnet.
VLAN_ID
: un ID VLAN. Se specifichi un ID VLAN, l'interfaccia di rete viene configurata come NIC dinamica. Devi inserire una NIC dinamica dopo la vNIC principale nel comando.
API
Utilizza il metodo instances.insert
per creare un'istanza con più interfacce di rete.
Se includi il campo vlan
, viene creata una NIC dinamica.
Se crei una NIC dinamica, devi anche seguire i passaggi per la configurazione del sistema operativo guest per le NIC dinamiche dopo aver creato l'istanza.
Vedi i seguenti esempi:
Per creare un'istanza con solo indirizzi IPv4 interni, segui questi passaggi:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { .... "networkInterfaces": [ { "networkIP": "IPV4_ADDRESS_A", "subnetwork": "regions/REGION/subnetworks/SUBNET_A" }, { "networkIP": "IPV4_ADDRESS_B", "subnetwork": "regions/REGION/subnetworks/SUBNET_B" "vlan": "VLAN_ID" }, for each interface, specify a network... ], other instance settings... }
Sostituisci quanto segue:
PROJECT_ID
: l'ID del progetto che contiene l'istanza.ZONE
: la zona che contiene l'istanza.IPV4_ADDRESS_A
,IPV4_ADDRESS_B
: gli indirizzi IPv4 interni che vuoi assegnare a ogni interfaccia di rete.REGION
: la regione che contiene l'istanza.SUBNET_A, SUBNET_B
: le subnet in cui si trova ogni interfaccia di rete.VLAN_ID
: un ID VLAN. Se specifichi un ID VLAN, l'interfaccia di rete viene configurata come NIC dinamica. Devi posizionare una NIC dinamica dopo la vNIC principale della richiesta.
Per creare un'istanza con indirizzi IPv4 e IPv6 interni, segui questi passaggi:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { .... "networkInterfaces": [ { "subnetwork": "regions/REGION/subnetworks/SUBNET_A" "ipv6Address": "IPV6_ADDRESS_A", "internalIpv6PrefixLength": 96, "stackType": IPV4_IPV6, "ipv6AccessType": INTERNAL }, { "subnetwork": "regions/REGION/subnetworks/SUBNET_B" "ipv6Address": "IPV6_ADDRESS_B", "internalIpv6PrefixLength": 96, "stackType": IPV4_IPV6, "ipv6AccessType": INTERNAL "vlan": "VLAN_ID" }, for each interface, specify a network... ], other instance settings... }
Sostituisci quanto segue:
PROJECT_ID
: l'ID del progetto che contiene l'istanza.ZONE
: la zona che contiene l'istanza.REGION
: la regione che contiene l'istanza.SUBNET_A, SUBNET_B
: le subnet in cui si trova ogni interfaccia di rete.IPV6_ADDRESS_A, IPV6_ADDRESS_B
: l'indirizzo IPv6 interno che vuoi che l'interfaccia abbia nella subnet di destinazione. Se non specificato, Google Cloud assegna automaticamente un indirizzo IPv6 interno dalla subnet.VLAN_ID
: un ID VLAN. Se specifichi un ID VLAN, l'interfaccia di rete viene configurata come NIC dinamica. Devi posizionare una NIC dinamica dopo la vNIC principale.
Per creare un'istanza con solo indirizzi IPv6 interni (anteprima), segui questi passaggi:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { .... "networkInterfaces": [ { "subnetwork": "regions/REGION/subnetworks/SUBNET" "ipv6Address": "IPV6_ADDRESS", "internalIpv6PrefixLength": 96, "stackType": IPV6_ONLY, "ipv6AccessType": INTERNAL }, for each interface, specify a network... ], other instance settings... }
Sostituisci quanto segue:
PROJECT_ID
: l'ID del progetto che contiene l'istanza.ZONE
: la zona che contiene l'istanza.REGION
: la regione che contiene l'istanza.SUBNET
: la subnet in cui si trova l'interfaccia di rete.IPV6_ADDRESS
: l'indirizzo IPv6 interno che vuoi che l'interfaccia abbia nella subnet di destinazione. Se non specificato, Google Cloud assegna automaticamente un indirizzo IPv6 interno dalla subnet.
Terraform
Puoi utilizzare una risorsa Terraform per creare un'istanza con più interfacce di rete.
Gli argomenti Terraform hanno valori di esempio che puoi modificare.
Per scoprire come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.
Configurazioni di esempio
Le sezioni seguenti mostrano come creare istanze con più interfacce.
Configurare più vNIC e NIC dinamiche
Il seguente comando di esempio crea un'istanza con le seguenti interfacce di rete:- Una vNIC denominata
nic0
che è il contenitore di quanto segue:- Una NIC dinamica denominata
nic0.2
- Una NIC dinamica denominata
- Una vNIC denominata
nic1
che è il contenitore di quanto segue:- Una NIC dinamica denominata
nic1.4
- Una NIC dinamica denominata
nic1.5
- Una NIC dinamica denominata
gcloud beta compute instances create vm1 \ --zone zone-a \ --network-interface=network=network-a,subnet=subnet-a \ --network-interface=network=network-b,subnet=subnet-b,vlan=2 \ --network-interface=network=network-c,subnet=subnet-c \ --network-interface=network=network-d,subnet=subnet-d,vlan=4 \ --network-interface=network=network-e,subnet=subnet-e,vlan=5
Dopo aver creato un'istanza con NIC dinamiche, devi anche configurare il sistema operativo guest per le NIC dinamiche.
Configurare più interfacce di rete con solo indirizzi IPv4
Il seguente comando di esempio crea un'istanza con tre interfacce di rete.
gcloud compute instances create vm1 --machine-type=n1-standard-4 \ --network-interface '' \ --network-interface network=net1,subnet=subnet-a,private-network-ip=10.10.10.2,address=EXTERNAL_IPV4_ADDRESS \ --network-interface network=net2,subnet=subnet-b,private-network-ip=10.10.20.2,no-address
Le interfacce vengono create come segue:
nic0
viene creato con le impostazioni predefinite. L'interfaccia è collegata a una subnet nella rete VPC predefinita, con un indirizzo IP interno allocato automaticamente e un indirizzo IP esterno temporaneo.nic1
è collegato alla subnetsubnet-a
nella retenet1
, con un indirizzo IPv4 interno10.10.10.2
e un indirizzo IPv4 esterno staticoEXTERNAL_IPV4_ADDRESS
.nic2
è collegata alla subnetsubnet-b
nella retenet2
, con un indirizzo IPv4 interno10.10.20.2
e nessun indirizzo IP esterno.
Per una descrizione completa del comando gcloud compute instances create
e del flag --network-interface
, leggi la documentazione del comando.
Puoi utilizzare l'indirizzo IP dell'interfaccia di rete che hai aggiunto per configurare il forwarding DNS. Per scoprire di più sulla configurazione delle zone di inoltro di Cloud DNS, consulta Zone di inoltro.
Configurare più interfacce di rete con indirizzi IPv4 e IPv6
Il seguente comando di esempio crea un'istanza a doppio stack con due interfacce di rete.
gcloud compute instances create vm1 \ --network-interface network=dual-int,subnet=int-subnet,stack-type=IPV4_IPV6 \ --network-interface network=dual-ext,subnet=ext-subnet,stack-type=IPV4_IPV6,ipv6-network-tier=PREMIUM \ --machine-type=n1-standard-4 --zone=ZONE_A
Le interfacce vengono create come segue:
nic0
è associato alla subnetint-subnet
nella retedual-int
, con un indirizzo IPv4 interno temporaneo e un indirizzo IPv6 interno temporaneo.nic1
è collegata alla subnetext-subnet
nella retedual-ext
, con un indirizzo IPv4 interno temporaneo e un indirizzo IPv6 esterno temporaneo.
Configurare più interfacce di rete con solo indirizzi IPv6
Il seguente comando di esempio crea un'istanza solo IPv6 (anteprima) con tre interfacce di rete.
gcloud compute instances create vm1 \ --network-interface network=ipv6-only-int-a,subnet=int-subnet-a,stack-type=IPV6_ONLY \ --network-interface network=ipv6-only-int-b,subnet=int-subnet-b,stack-type=IPV6_ONLY,internal-ipv6-address=fd20:db8:0:0:1:0:: \ --network-interface network=ipv6-only-ext,subnet=ext-subnet,stack-type=IPV6_ONLY,ipv6-network-tier=PREMIUM,external-ipv6-address=EXTERNAL_IPV6_ADDRESS \ --machine-type=n1-standard-4 --zone=us-west2-a
Le interfacce vengono create come segue:
nic0
è collegata alla subnetint-subnet-a
nella reteipv6-only-int-a
con un indirizzo IPv6 interno temporaneo allocato automaticamente.nic1
è collegata alla subnetint-subnet-b
nella reteipv6-only-int-b
con un indirizzo IPv6 interno temporaneo personalizzatofd20:db8:0:0:1:0::/96
.nic2
è collegata alla subnetext-subnet
nella reteipv6-only-ext
con un indirizzo IPv6 esterno statico,EXTERNAL_IPV6_ADDRESS
.
Configurare più interfacce di rete per i gruppi di istanze
Puoi utilizzare istanze con più interfacce di rete nei gruppi di istanze non gestite e nei gruppi di istanze gestite.
Per i gruppi di istanze non gestite,
crea ogni istanza singolarmente,
assicurandoti che l'interfaccia di rete nic0
di ogni istanza sia collegata alla stessa
sottorete. Poi, aggiungi le istanze al gruppo di istanze non gestite.
Per configurare più interfacce di rete per i gruppi di istanze gestite, devi specificare la configurazione di rete per ogni interfaccia nel modello di istanza impostando il flag --network-interface
una volta per ogni interfaccia.
L'esempio seguente crea un modello di istanza con tre interfacce di rete:
gcloud compute instance-templates create template-1 \ --network-interface subnet=net0-subnet-a \ --network-interface subnet=net1-subnet-b,no-address \ --network-interface subnet=net2-subnet-c,no-address \ --region REGION_A
Poiché i nomi delle subnet in ogni regione di un progetto devono essere univoci, la specifica delle subnet per nome associa implicitamente ogni interfaccia a una rete VPC. Ogni interfaccia deve utilizzare una subnet in una rete VPC univoca:
nic0
utilizza la subnetnet0-subnet-a
nic1
utilizza la subnetnet1-subnet-b
nic2
utilizza la subnetnet2-subnet-c
L'opzione no-address
nel flag --network-interface
indica che l'interfaccia è configurata senza un indirizzo IPv4 esterno. L'indirizzo IP interno proviene dalla subnet utilizzata dall'interfaccia. Per informazioni complete sui flag e sulla sintassi, consulta il flag --network-interface
per il comando instance-templates create
.