Fehlerbehebung bei VMs mit mehreren Netzwerkschnittstellen

Auf dieser Seite finden Sie Schritte zur Fehlerbehebung bei häufigen Problemen, die beim Erstellen und Verwenden von VMs mit mehreren Netzwerkschnittstellen auftreten können.

Ich kann keine VM mit mehreren Schnittstellen erstellen

Möglicherweise wird eine der folgenden Fehlermeldungen angezeigt:

  • Invalid value for field 'resource': ''. Too many network interfaces. The maximum number of network interfaces allowed for this machine type is.

    Wenn Sie diese Fehlermeldung erhalten, versuchen Sie, mehr Schnittstellen als die vom Instanzmaschinentyp unterstützten maximalen Schnittstellen zu erstellen. Siehe die Tabelle zur maximalen Anzahl von Schnittstellen.

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

    Wenn Sie diese Nachricht erhalten, versuchen Sie, mehr als eine Schittstelle in demselben Netzwerk zu erstellen. Jede Netzwerkschnittstelle muss an ein anderes VPC-Netzwerk angeschlossen sein.

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

    Wenn Sie diese Meldung erhalten, überschneiden sich die CIDR-Bereiche Ihrer VMs. Diese CIDR-Bereiche umfassen alle primären Bereiche von Subnetzen, die mit VM-Schnittstellen verknüpft sind, sowie sekundäre Bereiche, die für Alias-IP-Bereiche verwendet werden. Jede Schnittstelle gehört zu einem Subnetz in jeweils einem anderen VPC-Netzwerk, das sich nicht mit Subnetzen anderer Schnittstellen überschneiden darf. Wenn Sie beispielsweise versuchen, Ihre Instanz in der Region REGION_A zu erstellen, können Sie mit dem folgenden Befehl oder der Google Cloud Console primäre Subnetz-CIDR-Bereiche prüfen.

    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
    

    Verwenden Sie den folgenden Befehl oder die Google Cloud Console, um sekundäre Subnetz-CIDR-Bereiche zu prüfen.

    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.

    Wenn Sie diese Meldung erhalten, versuchen Sie, Ihre Instanz in einem älteren (Legacy-)Netzwerk zu erstellen. Instanzen mit mehreren Schnittstellen werden von älteren Netzwerken nicht unterstützt. Sie können mit einer der folgenden Methoden prüfen, ob es sich bei einem Netzwerk um ein Legacy-Netzwerk handelt:

    • Rufen Sie in der Google Cloud Console die Seite VPC-Netzwerke auf und sehen Sie sich die Spalte Modus an.
    • Führen Sie den Befehl gcloud compute networks list aus und prüfen Sie das Feld SUBNET_MODE.
  • Required 'compute.instances.create' permission for 'projects/PROJECT_ID/zones/ZONE/instances/test-inst'

    Wenn Sie diese Meldung erhalten, hat das Konto, mit dem Sie angemeldet sind, keine zum Erstellen einer Instanz nötigen IAM-Berechtigungen. Weitere Informationen zu den Rollen, die zum Erstellen von Instanzen erforderlich sind, finden Sie unter Berechtigungen, IAM und Instanzen mit mehreren Netzwerkschnittstellen. Sie können prüfen, ob Ihnen die IAM-Richtlinie für Ihr Projekt eine der folgenden Rollen gewährt: OWNER, EDITOR oder compute.instanceAdmin.v1. Zum Erstellen von Instanzen in freigegebenen VPC benötigen Sie zusätzlich die Rolle compute.networkUser. Im folgenden Beispiel verfügt das Konto email2@gmail.com nicht über ausreichende IAM-Berechtigungen zum Erstellen einer Instanz. Eine ausführlichere Anleitung finden Sie in der IAM-Dokumentation unter Zugriff auf Ressourcen erteilen, ändern und entziehen.

    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
    

    Sie können den Inhaber oder Bearbeiter Ihres Projekts bitten, Ihnen eine der Rollen OWNER, EDITOR oder compute.instanceAdmin.v1 zu erteilen. Wenn Sie eine Schnittstelle mit einem zu freigegebenen VPC gehörenden Subnetz verbinden, benötigen Sie auch die Rolle compute.networkUser.

    gcloud projects set-iam_policy --member user:email2@gmail.com --role roles/editor
    

Ich kann keine Verbindung zur internen IP-Adresse einer sekundären Schnittstelle herstellen

  • Prüfen Sie die Firewallregeln, um zu bestätigen, dass sie Verbindungen zur sekundären VM-Schnittstelle zulassen. Sehen Sie sich dazu die Firewallregeln für das mit der sekundären Schnittstelle verbundene Netzwerk an. Sie können hierfür entweder die Google Cloud Console aufrufen und auf das entsprechende VPC-Netzwerk klicken oder folgenden gcloud-Befehl verwenden.

    gcloud compute firewall-rules list --filter='network:NETWORK_NAME'
    
  • Überprüfen Sie, ob Sie versuchen, eine Verbindung zu einer sekundären Schnittstelle von einer Internetadresse oder von außerhalb des Netzwerks der sekundären Schnittstelle herzustellen. Eine Verbindung zur internen IP-Adresse einer Schnittstelle ist nur innerhalb ihres Netzwerks möglich. Wenn Sie diese Schnittstelle von außerhalb des Netzwerks erreichen müssen, können Sie Ihrer sekundären Schnittstelle eine externe IP-Adresse zuweisen.

  • Überprüfen Sie, ob Sie versuchen, entweder von einem anderen Subnetz desselben Netzwerks oder von einem Peering-Netzwerk eine Verbindung zur internen IP-Adresse der sekundären Schnittstelle von außerhalb des Subnetzes herzustellen, mit dem die sekundäre Schnittstelle verbunden ist. In Mehrere Netzwerkschnittstellen pro Instanz wird das Zusammenspiel zwischen VPC-Peering und VM-Instanzen mit mehreren Schnittstellen beschrieben. Um sekundäre Schnittstellen außerhalb des Subnetzes der Schnittstelle zu erreichen, müssen Sie möglicherweise Routen auf der VM konfigurieren. Unter DHCP-Verhalten mit mehreren Netzwerkschnittstellen finden Sie weitere Informationen dazu, wie DHCP Standardrouten in der VM programmiert.

  • Wenn Sie versuchen, auf eine IPv6-Adresse zuzugreifen, lesen Sie auch die Informationen unter Ich kann keine Verbindung zur IPv6-Adresse einer sekundären Schnittstelle herstellen.

Ich kann über eine externe IP-Adresse keine Verbindung zu einer sekundären Schnittstelle herstellen

Der DHCP-Server programmiert nur auf der primären Netzwerkschnittstelle der VM eine Standardroute. Wenn Sie eine Verbindung über eine externe IP-Adresse zur sekundären Schnittstelle herstellen möchten, gibt es zwei Möglichkeiten. Wenn Sie über die sekundäre Netzwerkschnittstelle nur Verbindungen aus dem Netzwerk heraus herstellen müssen, können Sie auf dieser Netzwerkschnittstelle eine Standardroute einrichten. Andernfalls können Sie mit dem in der Anleitung Routing für eine zusätzliche Schnittstelle konfigurieren beschriebenen Ansatz eine separate Routingtabelle mit quellenbasiertem Richtlinienrouting in der VM konfigurieren.

Wenn Sie versuchen, auf eine IPv6-Adresse zuzugreifen, lesen Sie auch die Informationen unter Ich kann keine Verbindung zur IPv6-Adresse einer sekundären Schnittstelle herstellen.

Ich kann keine Verbindung zur IPv6-Adresse einer sekundären Schnittstelle herstellen

Wenn Sie versuchen, auf eine IPv6-Adresse zuzugreifen, prüfen Sie, ob auf der VM die google-guest-agent-Version 20220603.00 oder höher installiert ist. Weitere Informationen zum Verwalten von google-guest-agent-Versionen finden Sie unter Gastumgebung.

Wenn Sie eine ältere Version von google-guest-agent haben, erhalten die sekundären Schnittstellen keine IPv6-Subnetzroute. Wir empfehlen Ihnen, den Gast-Agent zu aktualisieren, damit die Routen korrekt konfiguriert sind.

Zur Umgehung dieses Problems können Sie stattdessen ein Startskript erstellen, um die folgende Konfigurationsänderung für jede sekundäre Schnittstelle vorzunehmen.

sudo sysctl -w net.ipv6.conf.INTERFACE_NAME.accept_ra_rt_info_max_plen=128

Ersetzen Sie INTERFACE_NAME durch den Namen der Schnittstelle, z. B. eth1 oder ens5.

Ich habe Verbindungsprobleme bei der Verwendung einer anderen Netzmaske als /32

Standardmäßig antwortet der Metadatenserver der Instanz nur auf ARP-Anfragen für das Standardgateway.

Für die Konfiguration von Schnittstellen mit einer anderen Netzmaske als /32 müssen Sie ein Image mit dem Flag --guest-os-features MULTI_IP_SUBNET und damit Ihre Instanz erstellen. Wenn Sie beispielsweise ein debian-9-basiertes Image verwenden, können Sie ein Image mit dem folgenden Befehl erstellen:

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

Um die auf dem Image konfigurierten Gastfeatures aufzurufen, führen Sie den Befehl gcloud compute images describe für das Gast-Image aus.

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

Weitere Informationen zum Erstellen benutzerdefinierter Images finden Sie unter Benutzerdefinierte Images erstellen, löschen und verwerfen.

Ich kann den internen Hostnamen einer VM mit mehreren Netzwerkschnittstellen nicht auflösen

Wenn eine DNS-Abfrage mit einem internen Hostnamen ausgeführt wird, wird sie in die primäre Netzwerkschnittstelle (nic0) der Instanz aufgelöst.

Wenn nic0 mit einem VPC-Netzwerk verbunden ist, das sich vom VPC-Netzwerk der Instanz unterscheidet, die die DNS-Abfrage ausführt, schlägt die DNS-Abfrage fehl. Internes DNS wird nur innerhalb eines bestimmten VPC-Netzwerks aufgelöst. Weitere Informationen finden Sie unter DNS-Auflösung mit mehreren Netzwerkschnittstellen.

Fehlerbehebung mit serieller Konsole

Oft ist es ratsam, auf der VM die serielle Konsole zu aktivieren, um ein Debugging für Konfigurationsprobleme durchzuführen. Sie können die serielle Konsole für das interaktive Debugging auswählen. Befolgen Sie dazu die Schritte unter Fehlerbehebung mit der seriellen Konsole.