Creare VM con più interfacce di rete
Per impostazione predefinita, ogni istanza di macchina virtuale (VM) in una rete Virtual Private Cloud (VPC) ha una singola interfaccia di rete. Tuttavia, puoi configurare un'istanza con più interfacce di rete. Quando utilizzi più interfacce di rete da un'istanza, ciascuna interfaccia deve essere collegata a una subnet in una rete VPC diversa. Non puoi collegare più interfacce di rete alla stessa subnet o a subnet che si trovano nella stessa rete VPC.
Se non hai bisogno di più interfacce di rete, segui la procedura per la creazione e l'avvio di un'istanza per creare istanze con la configurazione di rete predefinita.
Per ulteriori informazioni sulle interfacce di rete multiple e sul loro funzionamento, consulta Più interfacce di rete.
Prima di iniziare
Verifica che tutte le reti e le subnet richieste siano create prima di creare l'istanza. Se devi creare reti o subnet, consulta Creare e gestire reti VPC.
Verifica che ogni rete abbia regole firewall appropriate per consentire il traffico che vuoi consentire verso e dalla VM con più interfacce. Se devi creare regole firewall, consulta Utilizzare le regole firewall VPC.
Se colleghi una VM a più reti utilizzando indirizzi IPv6, installa
google-guest-agent
versione 20220603.00 o successiva. Per ulteriori informazioni, vedi Non riesco a connettermi all'indirizzo IPv6 di un'interfaccia secondaria.
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 Amministratore istanze Compute (v1) (
roles/compute.instanceAdmin.v1
)
Creazione ed eliminazione di istanze e modelli di istanze con più interface in un progetto che non utilizza un ambiente VPC condiviso: un utente con il ruolo Proprietario, Editor o Amministratore di istanze Compute (v1) a livello di progetto 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 negli ambienti VPC condiviso: un utente con il ruolo Proprietario, Editor o Amministratore istanze Compute (v1) a livello di progetto 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
) a livello di progetto host VPC condiviso o a livello di subnet VPC condiviso.
Per scoprire di più sulle autorizzazioni, consulta la documentazione IAM di Compute Engine.
Crea istanze VM con più interfacce di rete
Per istruzioni generali sulla creazione di istanze, consulta Creare e avviare un'istanza VM.
La prima interfaccia viene sempre creata come nic0
ed è sempre l'interfaccia predefinita. Questo è importante per alcuni altri aspetti della Google Cloud
networking. Ad esempio,i Google Cloud bilanciatori del carico (ad eccezione dei
bilanciatori del carico di rete passthrough)
distribuiscono il traffico solo a nic0
.
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.
In 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 la VM 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:
- Ephemeral per assegnare un nuovo indirizzo IPv4 temporaneo
- Un indirizzo IPv4 interno statico prenotato 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:
- Ephemeral 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:
- Allocato automaticamente per assegnare automaticamente 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 prenotato 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 con la procedura di creazione della VM.
Fai clic su Crea.
gcloud
Per creare interfacce di rete in una nuova istanza, utilizza il
comando 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
e external-ipv6-address
.
Per visualizzare esempi di come creare VM con più interfacce, consulta 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.
Per sapere quali tipi di macchine supportano il numero di interfacce di rete di cui hai bisogno, consulta la tabella Numero massimo di interfacce di rete.
gcloud compute instances create INSTANCE_NAME \ --zone ZONE \ --network-interface \ network=NETWORK,subnet=SUBNET, \ 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,subnet=SUBNET, \ stack-type=STACK_TYPE, \ external-ipv6-address=EXTERNAL_IPV6_ADDRESS, \ external-ipv6-prefix-length=96 \ ipv6-network-tier=PREMIUM \ ...
Sostituisci quanto segue:
INSTANCE_NAME
: il nome dell'istanza VM da creare.ZONE
: la zona in cui viene creata l'istanza.NETWORK
: la rete a cui è collegata l'interfaccia.SUBNET
: 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 riservato 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. Devi aver precedentemente prenotato un indirizzo IPv6 interno. Se non specificato,Google Cloud assegna automaticamente un indirizzo IPv6 interno della subnet.EXTERNAL_IPV6_ADDRESS
: l'indirizzo IPv6 esterno che vuoi che l'interfaccia abbia nella subnet di destinazione. Devi aver precedentemente prenotato un indirizzo IPv6 esterno. Se non specificato,Google Cloud assegna automaticamente un indirizzo IPv6 esterno dalla subnet.
API
Utilizza il metodo instances.insert
per creare un'istanza VM con più interfacce di rete.
Per creare un'istanza VM con solo indirizzi IPv4 interni:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { .... "networkInterfaces": [ { "networkIP": "IPV4_ADDRESS", "subnetwork": "regions/REGION/subnetworks/SUBNET" }, 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
: l'indirizzo IPv4 interno che vuoi assegnare all'interfaccia di rete.REGION
: la regione che contiene l'istanza.SUBNET
: la subnet in cui si trova l'interfaccia di rete.
Per creare un'istanza VM con indirizzi IPv4 e IPv6 interni, svolgi i seguenti 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": IPV4_IPV6, "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. Devi aver precedentemente prenotato un indirizzo IPv6 interno. Se non specificato,Google Cloud assegna automaticamente un indirizzo IPv6 interno della subnet.
Per creare un'istanza VM 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. Devi aver precedentemente prenotato un indirizzo IPv6 interno. Se non specificato, Google Cloud assegna automaticamente un indirizzo IPv6 interno della subnet.
Terraform
Puoi utilizzare una risorsa Terraform per creare un'istanza VM 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 VM con più interfacce.
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 interno 10.10.10.2 e un indirizzo IPv4 esterno staticoEXTERNAL_IPV4_ADDRESS
.nic2
è collegata alla subnetsubnet-b
nella retenet2
, con un indirizzo IPv4 interno 10.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
è collegata alla subnetint-subnet
nella retedual-int
, con un indirizzo IPv4 interno temporaneo e un indirizzo IPv6 interno temporaneo.nic1
è collegato 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 due interfacce di rete.
gcloud compute instances create vm1 \ --network-interface network=ipv6-only-int,subnet=int-subnet,stack-type=IPV6_ONLY \ --network-interface network=ipv6-only-ext,subnet=ext-subnet,stack-type=IPV6_ONLY,ipv6-network-tier=PREMIUM \ --machine-type=n1-standard-4 --zone=us-west2-a
Le interfacce vengono create come segue:
nic0
è collegato alla subnetint-subnet
nella reteipv6-only-int
con un indirizzo IPv6 interno temporaneo.nic1
è collegata alla subnetext-subnet
nella reteipv6-only-ext
con un indirizzo IPv6 esterno effimero.
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 VM sia collegata alla stessa
sottorete. Poi, aggiungi le istanze VM 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.
Il seguente esempio 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 parametri e sulla sintassi, consulta il parametro --network-interface
per il comando instance-templates create
.