Risolvere 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 rispetto al numero massimo supportato dal tipo di macchina dell'istanza. Consulta la tabella relativa al numero massimo di interfacce.

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

    Se ricevi questo messaggio, significa che stai tentando 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 delle 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 alle subnet di altre interfacce. Ad esempio, se stai tentando di creare l'istanza nella regione REGION_A, puoi controllare gli intervalli CIDR principali della sottorete utilizzando il seguente comando o la console Google 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 console Google 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, significa che stai tentando di creare l'istanza in una rete precedente. Le istanze con più interfacce non sono supportate con le reti legacy. Puoi verificare se 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, significa che 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 il criterio IAM associato al tuo progetto ti assegna uno dei seguenti ruoli: OWNER, EDITOR o compute.instanceAdmin.v1. Per creare istanze in VPC condiviso, è necessario anche il ruolo compute.networkUser. Nel seguente esempio, l'account email2@gmail.com non dispone di 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 concederti il ruolo OWNER, EDITOR o compute.instanceAdmin.v1. È necessario anche il ruolo compute.networkUser se associ un'interfaccia a una subnet appartenente a una 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 del 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 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 collegarti all'IP interno di un'interfaccia solo all'interno della relativa rete. Se devi accedere all'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 peer. 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, potrebbe essere necessario configurare i percorsi sulla VM. Consulta Comportamento di DHCP con più interfacce di rete per informazioni dettagliate su come DHCP programma le route predefinite nella VM.

  • Se stai tentando di accedere a un indirizzo IPv6, consulta anche Impossibile connettersi 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 indirizzo IP esterno, hai due opzioni. Se devi connetterti solo all'esterno della rete sull'interfaccia di rete secondaria, puoi impostare una route predefinita su quell'interfaccia. 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 in base all'origine nella VM.

Se stai tentando di accedere a un indirizzo IPv6, consulta anche Impossibile connettersi 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-agent20220603.00 o successiva. Per saperne di più sulla gestione delle versioni google-guest-agent, consulta Ambiente ospite.

Se hai una versione precedente di google-guest-agent, le interfacce secondarie non ricevono un percorso di subnet IPv6. Ti consigliamo di aggiornare l'agente guest in modo che i percorsi siano configurati correttamente.

Tuttavia, come soluzione alternativa, puoi creare uno script di avvio per apportare la seguente modifica di 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, l'istanza server di metadati 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 la tua 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 impostare come obsolete le 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 dalla rete VPC 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 ulteriori informazioni, consulta la pagina Risoluzione DNS con più interfacce di rete.

Risoluzione dei problemi utilizzando la console seriale

Spesso è buona norma abilitare la console seriale su una VM per eseguire il debug di problemi relativi alla configurazione. Puoi attivare la console seriale per il debugging interattivo seguendo i passaggi descritti in Risoluzione dei problemi utilizzando la console seriale.