Crea 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, ogni interfaccia deve collegarsi a una subnet che si trova in una rete VPC diversa. Non puoi collegare più interfacce di rete alla stessa subnet o a subnet nella stessa rete VPC.
Puoi configurare le interfacce VM solo con indirizzi IPv4 (stack singolo) o indirizzi IPv4 e IPv6 (doppio stack).
Se non hai bisogno di più interfacce di rete, segui la procedura per creare e avviare un'istanza per creare istanze con la configurazione di rete predefinita.
Per ulteriori informazioni su più interfacce di rete e su come funzionano, consulta Interfacce di rete multiple.
Specifiche
- Puoi configurare un'interfaccia di rete solo quando crei un'istanza.
- Se crei un'istanza con più interfacce di rete, ogni interfaccia deve connettersi a una rete VPC diversa. Le reti possono essere reti VPC o reti VPC condivise a sé stanti.
- Un'interfaccia di rete deve connettersi a una subnet con un intervallo di indirizzi IP che non si sovrapponga all'intervallo di indirizzi IP di un'altra interfaccia sulla stessa istanza.
- Se vuoi creare una VM collegata a subnet in più reti VPC, tutte le reti e le subnet devono esistere prima della creazione dell'istanza. Per ulteriori informazioni sulla creazione di reti e subnet, consulta Creare e gestire le reti VPC.
- Non puoi eliminare un'interfaccia di rete senza eliminare l'istanza a cui è collegata.
Ogni istanza deve avere un minimo di 1 interfaccia di rete e un massimo di 8, a seconda del tipo di macchina dell'istanza:
- Il campo
nic0
è obbligatorio e deve essere configurato al momento della creazione dell'istanza. nic1
anic7
sono facoltativi, ma devono essere configurati anche al momento della creazione dell'istanza.
Per scoprire di più, consulta la sezione Numero massimo di interfacce.
- Il campo
Ogni interfaccia può avere facoltativamente un indirizzo IPv4 esterno.
Se connetti una VM a una subnet con un intervallo di subnet IPv4 interno o esterno, puoi facoltativamente configurare un indirizzo IPv6 interno o esterno.
Il server DHCP di Google Cloud invia una route predefinita (RFC 3442, "percorso statico senza classe") solo all'interfaccia di rete predefinita,
nic0
. Se è necessaria una route predefinita su un'altra interfaccia di rete, devi configurare il routing dei criteri nell'istanza.Tutte le interfacce di rete delle VM devono connettersi alle subnet nelle reti che si trovano nello stesso progetto della VM o a una rete VPC condiviso condivisa con il progetto.
Limitazioni
Non puoi aggiungere o rimuovere le interfacce di rete da una VM esistente.
L'inoltro IP è abilitato a livello di VM e non può essere applicato alle singole interfacce.
Autorizzazioni, IAM e istanze con più interfacce di rete
Per creare un'istanza con più interfacce di rete, devi avere 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 istanza con più interfacce in un progetto che non utilizza un ambiente VPC condiviso: un utente con il ruolo di proprietario, editor o Amministratore istanze Compute (v1) a livello di progetto può creare un'istanza con più interfacce associate a reti e subnet VPC che fanno parte dello stesso progetto.
Creazione ed eliminazione di istanze e modelli di istanza con più interfacce negli ambienti VPC condiviso: un utente con il ruolo di 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 di VPC condiviso, devi avere anche il ruolo Utente di rete Compute (roles/compute.networkUser
) a livello di progetto host VPC condiviso o a livello di subnet VPC condiviso.
Per saperne di più sulle autorizzazioni, consulta la documentazione di IAM su Compute Engine.
Utilizza più interfacce di rete con tipi di rete VPC diversi
- Le interfacce di rete precedenti non sono supportate per più interfacce di rete.
- Quando configuri più interfacce di rete, collega ogni interfaccia a una rete VPC in modalità automatica o a una rete VPC in modalità personalizzata.
Allocazione degli indirizzi IP dell'interfaccia di rete
- Devi configurare ogni interfaccia di rete con un indirizzo IP interno primario allocato dall'intervallo di indirizzi IP principali di una subnet.
- L'indirizzo interno principale assegnato a ciascuna interfaccia in una singola istanza deve essere diverso
- Puoi scegliere di configurare ciascuna delle interfacce virtuali (NIC) con un indirizzo IP esterno univoco. Gli indirizzi esterni possono essere temporanei o riservati.
Numero massimo di interfacce di rete
Il numero di interfacce di rete virtuale scala con il numero di vCPU con un minimo di 2 e un massimo di 8.
Utilizza la seguente tabella per determinare quante interfacce di rete possono essere collegate a un'istanza:
Numero di vCPU | Numero di vNIC |
---|---|
2 o meno | 2 |
4 | fino a 4 |
6 | fino a 6 |
8 o più | fino a 8 |
Prima di iniziare
Verifica che tutte le reti e le subnet richieste vengano create prima di creare l'istanza. Se devi creare reti o subnet, consulta Creare e gestire reti VPC.
Verifica che ogni rete abbia le regole firewall appropriate per consentire il traffico da consentire verso e dalla VM con più interfacce. Se devi creare regole firewall, consulta l'articolo Utilizzare le regole firewall VPC.
Se connetti una VM a più reti utilizzando indirizzi IPv6, installa la versione
google-guest-agent
20220603.00 o successiva. Per ulteriori informazioni, consulta Non riesco a connettermi all'indirizzo IPv6 di un'interfaccia secondaria.
Crea istanze VM con più interfacce di rete
Per istruzioni generali sulla creazione di istanze, consulta Creare e avviare un'istanza VM.
Puoi aggiungere più interfacce di rete quando crei un'istanza:
- Nella console Google Cloud, aggiungi le interfacce di rete nella pagina Crea un'istanza, nella sezione Networking > Interfacce di rete.
- Nell'interfaccia alla gcloud CLI, utilizza il comando
instances create
. Includi il flag--network-interface
per ogni interfaccia, seguito da eventuali chiavi di rete appropriate, come([network | subnet], private-network-ip, address, external-ipv6-address)
.
La prima interfaccia viene sempre creata come nic0
ed è sempre l'interfaccia predefinita. Ciò è importante per alcuni altri aspetti del networking di Google Cloud.
Ad esempio, i bilanciatori del carico di Google Cloud
(tranne i bilanciatori del carico di rete passthrough interni) 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, quindi 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 da utilizzare.
Se vuoi configurare indirizzi IPv6 nell'interfaccia, seleziona una subnet con un intervallo di indirizzi IPv6 configurato. Il tipo di accesso IPv6 della subnet determina se la VM riceve un indirizzo IPv6 interno o un indirizzo IPv6 esterno.
Seleziona un tipo di stack IP: IPv4 (stack singolo) o IPv4 e IPv6 (stack doppio)
In Indirizzo IPv4 principale, seleziona una delle seguenti opzioni:
- Temporaneo 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
In Indirizzo IPv6 principale, seleziona una delle seguenti opzioni:
- Allocazione automatica per assegnare automaticamente un nuovo indirizzo IPv6 interno statico
- Un indirizzo IPv6 interno statico dall'elenco
- Prenota indirizzo IPv6 interno statico per prenotare e assegnare un nuovo indirizzo IPv6 interno statico
In 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
In Indirizzo IPv6 esterno, seleziona una delle seguenti opzioni:
- Allocazione automatica per assegnare automaticamente un nuovo indirizzo IPv6 esterno statico
- Un indirizzo IPv6 statico statico prenotato dall'elenco
- Prenota indirizzo IPv6 esterno statico per prenotare e assegnare un nuovo indirizzo IPv6 esterno statico
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 il processo di creazione della VM.
Fai clic su Crea.
gcloud
Per creare interfacce di rete su una nuova istanza, utilizza il comando instances create
.
Includi il flag --network-interface
per ogni interfaccia,
seguito da eventuali chiavi di rete appropriate, come
network
, subnet
, private-network-ip
, address
e external-ipv6-address
.
Per visualizzare esempi di come creare VM con più interfacce, consulta la pagina Configurazioni di esempio.
Questo snippet illustra solo il flag --network-interface
, uno dei numerosi parametri possibili che puoi specificare durante la creazione di un'istanza.
Per sapere quali tipi di macchine supportano il numero di interfacce di rete necessarie, 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, \ address=EXTERNAL_IPV4_ADDRESS | no-address, \ private-network-ip=INTERNAL_IPV4_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 si collega l'interfaccia.STACK_TYPE
: tipo di stack dell'interfaccia.Il valore predefinito è
IPV4_ONLY
. SpecificaIPV4_IPV6
per configurare un'interfaccia a doppio stack.EXTERNAL_IPV4_ADDRESS
: assegna all'interfaccia l'indirizzo IPv4 esterno denominato.Devi aver prenotato un indirizzo IPv4 esterno. Specifica "no-address" anziché
address=EXTERNAL_IPV4_ADDRESS
se non vuoi che l'interfaccia abbia un indirizzo IP esterno. Specificaaddress=''
se vuoi che l'interfaccia riceva un indirizzo IP esterno temporaneo.INTERNAL_IPV4_ADDRESS
: l'indirizzo IPv4 interno che deve essere presente nell'interfaccia nella subnet di destinazione. Ometti se vuoi che sia assegnato un indirizzo valido.INTERNAL_IPV6_ADDRESS
: l'indirizzo IPv6 interno che deve essere presente nell'interfaccia nella subnet di destinazione. Se ometti questo flag, non viene assegnato un indirizzo IPv6 interno.EXTERNAL_IPV6_ADDRESS
: assegna all'interfaccia l'indirizzo IPv4 esterno denominato.Devi aver prenotato un indirizzo IPv6 esterno. Specifica "no-address" anziché
external-ipv6-address=EXTERNAL_IPV6_ADDRESS
se non vuoi che l'interfaccia abbia un indirizzo IPv6 esterno. Specificaexternal-ipv6-address=''
se vuoi che l'interfaccia riceva un indirizzo IPv6 esterno temporaneo.
API
Utilizza il metodo instances.insert
per creare un'istanza VM con più interfacce di rete.
Per creare un'istanza VM con indirizzi IPv4 interni:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { .... "networkInterfaces": [ { "networkIP": "IPV4_ADDRESS", "subnetwork": "regions/REGION/subnetworks/SUBNETWORK" }, for each interface, specify a network... ], other instance settings... }
Sostituisci quanto segue:
SUBNET
: la subnet in cui si trova l'interfaccia di rete.REGION
: la regione che contiene l'istanza.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.
Per creare un'istanza VM con indirizzi IPv6 interni:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { .... "networkInterfaces": [ { "subnetwork": "regions/REGION/subnetworks/SUBNETWORK" "ipv6Address": "IPV6_ADDRESS", "internalIpv6PrefixLength": 96, "stackType": IPV4_IPV6, "ipv6AccessType": INTERNAL }, for each interface, specify a network... ], other instance settings... }
Sostituisci quanto segue:
SUBNET
: la subnet in cui si trova l'interfaccia di rete.REGION
: la regione che contiene l'istanza.PROJECT_ID
: l'ID del progetto che contiene l'istanza.ZONE
: la zona che contiene l'istanza.IPV6_ADDRESS
: l'indirizzo IPv6 interno che vuoi assegnare all'interfaccia di rete.
Terraform
Puoi utilizzare una risorsa Terraform per creare un'istanza VM con più interfacce di rete.
Gli argomenti Terraform hanno valori di esempio modificabili.
Per informazioni su come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.
Esempi di configurazioni
Le sezioni seguenti mostrano come creare VM con più interfacce.
Configura più interfacce di rete con 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
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 statico,EXTERNAL_IPV4_ADDRESS
.nic2
è collegato alla subnetsubnet-b
nella retenet2
con 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 per il comando.
Puoi utilizzare l'indirizzo IP dell'interfaccia di rete che hai aggiunto per configurare l'inoltro DNS. Per scoprire di più sulla configurazione delle zone di forwarding Cloud DNS, consulta Zone di forwarding.
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=us-west2-a
Le interfacce vengono create come segue:
nic0
è collegato 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.
Configura più interfacce di rete per i gruppi di istanze
Puoi utilizzare le istanze con più interfacce di rete in gruppi di istanze e gruppi di istanze gestite non gestiti.
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 subnet. Quindi, aggiungi le istanze VM al gruppo di istanze non gestite.
Per configurare più interfacce di rete per 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 us-central1
Poiché i nomi delle subnet in ogni regione di un progetto devono essere univoci, le subnet per nome vengono associate implicitamente a ogni interfaccia con una rete VPC. Ogni interfaccia deve utilizzare una subnet che si trova 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 IP 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
.
Configura routing dei criteri
Per le immagini supportate da Google, quando hai bisogno di un'interfaccia di rete secondaria (un'interfaccia diversa da nic0
) per comunicare con qualsiasi indirizzo IP non locale nell'intervallo di subnet principale della subnet associata a quell'interfaccia secondaria, devi configurare il routing dei criteri per assicurarti che i pacchetti in uscita lascino l'interfaccia corretta. In questi casi, devi configurare una tabella di routing
separata per ogni interfaccia di rete utilizzando il routing dei criteri.
Il routing dei criteri basato sull'origine non è supportato dai sistemi operativi Windows.
Trova il gateway predefinito per l'interfaccia
Puoi trovare il gateway predefinito per l'interfaccia di una VM eseguendo una query sul server di metadati.
Per trovare il gateway predefinito per l'indirizzo IPv4 di un'interfaccia, effettua la seguente richiesta dalla VM:
curl http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/INTERFACE_NUMBER/gateway -H "Metadata-Flavor: Google"
Sostituisci
INTERFACE_NUMBER
con il numero dell'interfaccia. Ad esempio, per trovare il gateway predefinito pernic1
, utilizza1
.Per trovare il gateway predefinito per l'indirizzo IPv6 di un'interfaccia, effettua la seguente richiesta dalla VM:
curl http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/INTERFACE_NUMBER/gateway-ipv6 -H "Metadata-Flavor: Google"
Sostituisci
INTERFACE_NUMBER
con il numero dell'interfaccia. Ad esempio, per trovare il gateway predefinito pernic1
, utilizza1
.
Configura il routing basato su criteri sulle VM Linux
Per evitare di perdere la connettività alla VM mentre modifichi la route predefinita, utilizza la console di serie.
Configura il routing dei criteri per ogni interfaccia secondaria con
ifconfig
. Non configurare l'interfaccia principale (nic0
) in quanto ha una route configurata.sudo ifconfig NIC IP_ADDRESS netmask NETMASK broadcast IP_ADDRESS mtu 1430 echo "1 rt1" | sudo tee -a /etc/iproute2/rt_tables sudo ip route add GATEWAY src IP_ADDRESS dev NIC table rt1 sudo ip route add default via GATEWAY dev NIC table rt1 sudo ip rule add from IP_ADDRESS/PREFIX_LENGTH table rt1 sudo ip rule add to IP_ADDRESS/PREFIX_LENGTH table rt1
Sostituisci quanto segue:
NIC
: l'interfaccia per cui vuoi aggiungere un percorso. Ad esempio,eth1
.IP_ADDRESS
: l'indirizzo IP configurato nell'interfaccia.NETMASK
: la netmask dell'interfaccia. Ad esempio,255.255.255.255
.GATEWAY
: l'indirizzo IP del gateway predefinito dell'interfaccia.PREFIX_LENGTH
: la lunghezza del prefisso per l'indirizzo IP configurato.
Configura il routing basato su criteri su Ubuntu versione 18.04 o successive
Con il passaggio da ifupdown a Netplan come utilità di configurazione di rete predefinita per Ubuntu 18.04 LTS o versioni successive, il pacchetto ifconfig non è preinstallato. Inoltre, le modifiche apportate ai file di configurazione di rete di Netplan non vengono mantenute durante i riavvii delle VM di Compute Engine.
Crea uno script di avvio che imposti una tabella di routing per ogni interfaccia di rete all'avvio della VM. Scopri di più su come creare script di avvio.
L'uso di uno script di avvio non funziona se installi una condivisione file nella VM perché vengono eseguite solo dopo aver montato le partizioni. In questo modo, la condivisione file verrà sempre montata sull'interfaccia predefinita prima della creazione della tabella di routing dallo script di avvio.
Per montare una condivisione file su una VM tramite una rete secondaria, vale a dire un'interfaccia diversa da
nic0
, devi configurare il criterio di routing della VM client per assicurarti che la condivisione file venga montata tramite l'interfaccia di rete corretta. A questo scopo, modifica i seguenti file:In
/etc/default/instance_configs.cfg
, imposta il flagsetup
perNetworkInterfaces
sufalse
:[NetworkInterfaces] dhclient_script = /sbin/google-dhclient-script dhcp_command = ip_forwarding = true setup = false
In
/etc/network/interfaces
, aggiungi le seguenti righe all'interfaccia di interesse:auto eth1 iface eth1 inet dhcp up ip route add filestore-reserved-address-range via default-gateway-of-nic-to-filestore
Sostituisci quanto segue:
filestore-reserved-address-range
è l'intervallo di indirizzi riservati utilizzato dall'istanza di Compute Engine.default-gateway-of-nic-to-filestore
è l'indirizzo IP del gateway predefinito del NIC connesso alla rete VPC condivisa con l'istanza di Compute Engine.
Per ulteriori informazioni sul montaggio di una condivisione file su un'istanza VM, consulta Montaggio di condivisioni file su Compute Engine.
Risolvere i problemi
Non posso creare una VM con più interfacce
Potresti vedere uno dei seguenti messaggi di errore:
Invalid value for field 'resource': ''. Too many network interfaces. The maximum number of network interfaces allowed for this machine type is.
Se ricevi questo messaggio di errore, stai cercando di creare più interfacce rispetto a quelle massime supportate dal tuo tipo di macchina dell'istanza. Consulta la tabella Numero massimo di interfacce.
Networks must be distinct for NICs attached to a VM.
Se ricevi questo messaggio, stai cercando di creare più di un'interfaccia nella stessa rete. Ogni interfaccia di rete deve essere collegata a una rete VPC diversa.
Subnetwork CIDR ranges must be non-overlapping for NICs attached to a VM.
Se ricevi questo messaggio, gli intervalli CIDR associati alle interfacce della VM si sovrappongono. Questi intervalli CIDR includono tutti gli intervalli principali di subnet associate alle interfacce VM, nonché gli intervalli secondari utilizzati per gli intervalli IP alias. Ogni interfaccia è collegata a una subnet, ciascuna in una rete VPC diversa, che non deve sovrapporsi a subnet di altre interfacce. Ad esempio, se stai cercando di creare un'istanza nella regione
us-west1
, puoi controllare gli intervalli CIDR primari della subnet utilizzando il comando seguente o la console Google Cloud.gcloud compute networks subnets list --regions us-west1 NAME REGION NETWORK RANGE default us-west1 default 10.138.0.0/20 overlapping-subnet us-west1 test-network 10.138.8.0/24
Per controllare gli intervalli CIDR secondari della subnet, utilizza il comando seguente o Google Cloud Console.
gcloud compute networks subnets describe overlapping-subnet --region us-west1
... ipCidrRange: 10.128.8.0/24 ... secondaryIpRanges: - ipCidrRange: 10.138.8.0/24 rangeName: conflicting-range
Multiple network interfaces are not supported on legacy networks.
Se ricevi questo messaggio, stai tentando di creare l'istanza in una rete legacy. Le istanze con più interfacce non sono supportate con le reti legacy. Per verificare se una rete è una rete legacy, utilizza il comando seguente o la console Google Cloud. Il campo Modalità indica il tipo di rete.
gcloud compute networks list NAME MODE IPV4_RANGE GATEWAY_IPV4 default auto legacy-network legacy 10.240.0.0/16 10.240.0.1 test-network custom
Required 'compute.instances.create' permission for 'projects/PROJECT_ID/zones/ZONE/instances/test-inst'
Se ricevi questo messaggio, l'account con cui hai eseguito l'accesso non dispone delle autorizzazioni IAM necessarie per creare un'istanza. Consulta Autorizzazioni IAM per informazioni dettagliate sui ruoli richiesti per la creazione di istanze. Puoi controllare se il criterio IAM associato al tuo progetto ti concede i seguenti ruoli:
OWNER
,EDITOR
ocompute.instanceAdmin.v1
. Per creare istanze in VPC condiviso, avrai inoltre bisogno del ruolocompute.networkUser
. Nell'esempio riportato di seguito, l'accountemail2@gmail.com
non dispone di autorizzazioni IAM sufficienti per creare un'istanza. Per istruzioni più dettagliate, consulta la guida IAM su concessione, modifica e revoca dell'accesso alle risorse.gcloud projects get-iam-policy PROJECT_ID bindings: - members: - user:email1@gmail.com role: roles/owner - members: - serviceAccount:our-project-123@appspot.gserviceaccount.com - serviceAccount:123456789012-compute@developer.gserviceaccount.com role: roles/editor - members: - user:email2@gmail.com role: roles/viewer etag: BwUjMhXbSPU= version: 1
Puoi chiedere al proprietario o all'editor del progetto di concederti il ruolo di
OWNER
,EDITOR
ocompute.instanceAdmin.v1
. Occorre anche il ruolocompute.networkUser
se associ una qualsiasi interfaccia a una subnet appartenente al VPC condiviso.gcloud projects set-iam_policy --member user:email2@gmail.com --role roles/editor
Non riesco a connettermi all'indirizzo IP interno di un'interfaccia secondaria
Controlla le regole firewall per verificare che consentano la connettività all'interfaccia secondaria delle VM. Per verificare, controlla le regole firewall per la rete collegata all'interfaccia secondaria visitando la console Google Cloud e facendo clic sulla rete VPC appropriata oppure utilizzando il seguente comando
gcloud
.gcloud compute firewall-rules list --filter='network:NETWORK_NAME'
Controlla se stai tentando di connetterti a un'interfaccia secondaria da un indirizzo Internet o dall'esterno della rete dell'interfaccia secondaria. Puoi connetterti all'IP interno di un'interfaccia solo dalla sua rete. Se hai bisogno di raggiungere l'interfaccia dall'esterno della rete, puoi assegnare un indirizzo IP esterno all'interfaccia secondaria.
Controlla se stai tentando di connetterti all'IP interno dell'interfaccia secondaria dall'esterno della subnet a cui è collegata l'interfaccia secondaria, da un'altra subnet della stessa rete o da una rete in peering. Più interfacce di rete per istanza spiega l'interazione tra il peering VPC e le istanze VM con più interfacce. Per raggiungere le interfacce secondarie dall'esterno della subnet dell'interfaccia, potresti dover configurare le route sulla VM. Per ulteriori dettagli su come i programmi DHCP programmano le route predefinite nella VM, consulta Comportamento DHCP con più interfacce di rete.
Se stai tentando di accedere a un indirizzo IPv6, consulta anche l'articolo Non riesco a connettermi all'indirizzo IPv6 di un'interfaccia secondaria.
Non riesco a connettermi a un'interfaccia secondaria utilizzando un indirizzo IP esterno
Il server DHCP programma una route predefinita solo sull'interfaccia di rete principale della VM. Se vuoi connetterti all'interfaccia secondaria tramite un IP esterno, hai due opzioni. Se hai bisogno di connetterti solo al di fuori della rete nell'interfaccia di rete secondaria, puoi impostare una route predefinita su tale interfaccia di rete. In caso contrario, puoi utilizzare la configurazione del routing dei criteri per configurare una tabella di routing separata utilizzando il routing dei criteri basato sull'origine nella VM.
Se stai tentando di accedere a un indirizzo IPv6, consulta anche l'articolo Non riesco a connettermi all'indirizzo IPv6 di un'interfaccia secondaria.
Non riesco a connettermi all'indirizzo IPv6 di un'interfaccia secondaria
Se stai cercando di accedere a un indirizzo IPv6, controlla che la VM abbia la versione google-guest-agent
20220603.00 o successiva. Per maggiori informazioni sulla gestione delle versioni google-guest-agent
, consulta Ambiente guest.
Se hai una versione precedente di google-guest-agent
, le interfacce secondarie non ricevono una route di subnet IPv6. Consigliamo di aggiornare lo user agent in modo che le route siano configurate correttamente.
Tuttavia, come soluzione alternativa, puoi creare uno script di avvio per apportare la seguente modifica alla configurazione di ogni interfaccia secondaria.
sudo sysctl -w net.ipv6.conf.INTERFACE_NAME.accept_ra_rt_info_max_plen=128
Sostituisci INTERFACE_NAME
con il nome dell'interfaccia, ad esempio eth1
o ens5
.
Ho problemi di connettività quando utilizzo una netmask diversa da /32
Per impostazione predefinita, l'istanza server di metadati risponde solo alle richieste ARP per il gateway predefinito.
Per configurare le interfacce con una netmask diversa da /32
, devi creare un'immagine utilizzando il flag --guest-os-features MULTI_IP_SUBNET
e utilizzarla per creare la tua istanza. Ad esempio, se utilizzi un'immagine basata su debian-9
, puoi
crearne una utilizzando il seguente comando:
gcloud compute images create debian-9-multi-ip-subnet \ --source-disk debian-9-disk \ --source-disk-zone us-west1-a \ --guest-os-features MULTI_IP_SUBNET
Per visualizzare le funzionalità Ospite configurate sull'immagine, esegui il comando gcloud compute
images describe
sull'immagine ospite.
gcloud compute images describe debian-9-multi-ip-subnet
Per ulteriori informazioni sulla creazione di immagini personalizzate, consulta Creazione, eliminazione e deprecazione di immagini personalizzate.
Non riesco a risolvere il nome host interno di una VM con più interfacce di rete
Quando una query DNS viene eseguita con un nome host interno, viene risolta nell'interfaccia di rete principale (nic0
) dell'istanza.
Se nic0
è collegato a una rete VPC diversa dalla rete VPC dell'istanza che esegue la query DNS, la query DNS non riesce.
Il DNS interno viene risolto solo all'interno di una determinata rete VPC. Per ulteriori informazioni, consulta Risoluzione DNS con più interfacce di rete.
Risoluzione dei problemi utilizzando la console seriale
Spesso è una buona idea abilitare la console seriale su una VM per eseguire il debug dei problemi relativi alla configurazione. Puoi abilitare la console seriale per il debug interattivo seguendo la procedura descritta in Risolvere i problemi utilizzando la console seriale.