Risolvi i problemi relativi alle VM con più interfacce di rete

Questa pagina fornisce i passaggi per la risoluzione dei problemi comuni che potresti riscontrare durante la creazione e l'utilizzo di VM con più interfacce di rete.

Non riesco a creare una VM con più interfacce

Potresti visualizzare 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 tentando di creare più interfacce del numero massimo di interfacce supportate dal tipo di macchina dell'istanza. Consulta la tabella Numero massimo di interfacce.

  • Subnetworks must be distinct for NICs attached to a VM.

    Se ricevi questo messaggio, stai tentando di creare più di un'interfaccia nella stessa subnet. Ogni interfaccia di rete deve essere collegata a una subnet diversa.

  • Networks must be distinct for non-default NICs attached to a VM.

    Se ricevi questo messaggio, stai tentando di creare più di un'interfaccia nella stessa rete. Controlla quanto segue:

    • Per collegare più interfacce di rete alla stessa rete VPC, ogni interfaccia di rete deve essere collegata alla stessa rete dell'interfaccia nic0.

    • Il collegamento di più interfacce di rete alla stessa rete VPC non è supportato per le NIC dinamiche o le interfacce Private Service Connect.

  • Subnetwork CIDR ranges must be non-overlapping for NICs attached to a VM.

    Se ricevi questo messaggio, gli intervalli CIDR associati alle interfacce della tua VM si sovrappongono. Questi intervalli CIDR includono tutti gli intervalli principali delle subnet associate alle interfacce VM, nonché gli intervalli secondari utilizzati per gli intervalli IP alias. Ogni interfaccia è collegata a una subnet che non deve sovrapporsi alle subnet di altre interfacce. Ad esempio, se stai tentando di creare l'istanza nella regione REGION_A, puoi controllare gli intervalli CIDR primari della subnet utilizzando il seguente comando o la consoleGoogle Cloud .

    gcloud compute networks subnets list --regions REGION_A
    NAME                REGION      NETWORK          RANGE
    default             REGION_A  default          10.138.0.0/20
    overlapping-subnet  REGION_A  test-network     10.138.8.0/24
    

    Per controllare gli intervalli CIDR delle subnet secondarie, utilizza il seguente comando o la consoleGoogle Cloud .

    gcloud compute networks subnets describe overlapping-subnet --region REGION_A
    
    ...
    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. Puoi verificare se una rete è una rete legacy utilizzando uno dei seguenti metodi:

    • Nella console Google Cloud , vai alla pagina Reti VPC e controlla la colonna Modalità.
    • Esegui il comando gcloud compute networks list e controlla il campo SUBNET_MODE.
  • 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. Per ulteriori informazioni sui ruoli richiesti per la creazione di istanze, consulta Autorizzazioni, IAM e istanze con più interfacce di rete. Puoi verificare se la policy IAM associata al tuo progetto ti concede uno dei seguenti ruoli: OWNER, EDITOR o compute.instanceAdmin.v1. Per creare istanze nel VPC condiviso, devi avere anche il ruolo compute.networkUser. Nell'esempio seguente, l'account email2@gmail.com non dispone delle autorizzazioni IAM sufficienti per creare un'istanza. Per istruzioni più dettagliate, consulta la guida IAM 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 assegnarti un ruolo di OWNER, EDITOR o compute.instanceAdmin.v1. Se associ un'interfaccia a una subnet appartenente al VPC condiviso, devi disporre anche del ruolo compute.networkUser.

    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 della VM. Puoi controllare esaminando le regole firewall per la rete collegata all'interfaccia secondaria visitando la consoleGoogle Cloud e facendo clic sulla rete VPC appropriata o 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 dall'interno della sua rete. Se devi raggiungere questa interfaccia dall'esterno della rete, puoi assegnare un indirizzo IP esterno all'interfaccia secondaria.

  • Verifica 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. Consulta la sezione Specifiche per informazioni dettagliate su come i programmi DHCP instradano le route predefinite nella VM.

  • Se stai tentando di accedere a un indirizzo IPv6, consulta anche 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 utilizzando un IP esterno, hai due opzioni. Se devi connetterti all'esterno della rete solo sull'interfaccia di rete secondaria, puoi impostare una route predefinita su questa interfaccia di rete. In caso contrario, puoi utilizzare l'approccio descritto nel tutorial Configurare il routing per un'interfaccia aggiuntiva per configurare una tabella di routing separata utilizzando il routing basato su criteri di origine nella tua VM.

Se stai tentando di accedere a un indirizzo IPv6, consulta anche Non riesco a connettermi all'indirizzo IPv6 di un'interfaccia secondaria.

Non riesco a connettermi all'indirizzo IPv6 di un'interfaccia secondaria

Se stai tentando di accedere a un indirizzo IPv6, verifica che sulla VM sia installata la versione google-guest-agent 20220603.00 o successive. Per saperne di più sulla gestione delle versioni di 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. Ti consigliamo di aggiornare l'agente ospite 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 per 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 maschera di rete diversa da /32

Per impostazione predefinita, il server dei metadati dell'istanza risponde solo alle richieste ARP per il gateway predefinito.

Per configurare interfacce con una maschera di rete diversa da /32, devi creare un'immagine utilizzando il flag --guest-os-features MULTI_IP_SUBNET e utilizzarla per creare l'istanza. Ad esempio, se utilizzi un'immagine basata su debian-9, puoi creare un'immagine utilizzando il seguente comando:

gcloud compute images create debian-9-multi-ip-subnet \
     --source-disk debian-9-disk \
     --source-disk-zone ZONE_A \
     --guest-os-features MULTI_IP_SUBNET

Per visualizzare le funzionalità guest configurate sull'immagine, esegui il comando gcloud compute images describe sull'immagine guest.

gcloud compute images describe debian-9-multi-ip-subnet

Per saperne di più sulla creazione di immagini personalizzate, consulta Creare, eliminare e ritirare immagini personalizzate.

Non riesco a risolvere il nome host interno di una VM con più interfacce di rete

Quando viene eseguita una query DNS con un nome host interno, viene risolta nell'interfaccia di rete principale (nic0) dell'istanza.

Se nic0 è collegato a una rete VPC diversa da quella dell'istanza che esegue la query DNS, la query DNS non va a buon fine. Il DNS interno viene risolto solo all'interno di una determinata rete VPC. Per maggiori informazioni, consulta DNS interno di Compute Engine.

Ricevo un errore durante l'eliminazione di una NIC dinamica aggiornando le proprietà dell'istanza

In rari casi, se elimini una scheda di interfaccia di rete (NIC) dinamica durante l'aggiornamento delle proprietà di un'istanza, l'aggiornamento potrebbe non riuscire. Dopo l'errore, l'istanza torna allo stato originale. In rarissimi casi, è possibile che la NIC dinamica rimanga eliminata.

Se riscontri questo problema, procedi nel seguente modo:

  • Per risolvere il problema, utilizza lo stesso comando o la stessa richiesta per aggiornare di nuovo le proprietà dell'istanza. Se esegui di nuovo l'operazione, l'istanza raggiunge lo stato specificato nella richiesta originale.

  • Per evitare che il problema si ripeta: non eliminare le NIC dinamiche da un'istanza aggiornando le proprietà dell'istanza. Elimina invece le NIC dinamiche direttamente come descritto in Eliminare le NIC dinamiche.

Ricevo un errore durante l'eliminazione di una NIC dinamica aggiornando le configurazioni MIG

In rari casi, se elimini una NIC dinamica durante l'aggiornamento delle configurazioni delle istanze in un MIG, l'aggiornamento potrebbe non riuscire. Dopo l'errore, le istanze tornano allo stato originale.

Compute Engine risolve automaticamente questo problema riprovando l'operazione di aggiornamento finché non va a buon fine. Puoi controllare periodicamente lo stato delle istanze gestite finché l'errore dell'ultimo tentativo non viene risolto.

Risoluzione dei problemi tramite la console seriale

Spesso è consigliabile 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 i passaggi descritti in Risoluzione dei problemi tramite la console seriale.