Instanzen mit mehreren Netzwerkschnittstellen erstellen

Standardmäßig hat jede VM-Instanz in einem VPC-Netzwerk eine einzelne Netzwerkschnittstelle. Sie können jedoch eine Instanz mit mehreren Netzwerkschnittstellen konfigurieren. Wenn Sie mehrere Schnittstellen einer Instanz verwenden, muss jede Schnittstelle an ein anderes VPC-Netzwerk angehängt werden. Es ist nicht möglich, mehrere Netzwerkschnittstellen an dasselbe VPC-Netzwerk anzubinden.

Sie können VM-Schnittstellen nur mit IPv4-Adressen (Single-Stack) oder sowohl mit IPv4- als auch mit IPv6-Adressen (Dual-Stack) konfigurieren.

Wenn Sie nicht mehrere Netzwerkschnittstellen benötigen, folgen Sie der Anleitung unter Instanz erstellen und starten, um Instanzen mit der Standardnetzwerkkonfiguration zu erstellen.

Weitere Informationen zu mehreren Netzwerkschnittstellen und ihrer Funktionsweise finden Sie unter Mehrere Netzwerkschnittstellen.

Spezifikationen

  • Eine Netzwerkschnittstelle kann nur beim Erstellen einer Instanz konfiguriert werden.

  • Jede in einer einzelnen Instanz konfigurierte Netzwerkschnittstelle muss folgende Voraussetzungen erfüllen:

    • Verbindung zu einem anderen VPC-Netzwerk, entweder zu einem eigenständigen VPC-Netzwerk oder einem freigegebenen VPC-Netzwerk.
    • Diese müssen zu einem Subnetz gehören, dessen IP-Bereich sich nicht mit den Subnetzen einer anderen Schnittstelle überschneidet.
  • Wenn Sie eine VM erstellen möchten, die mit mehreren VPC-Netzwerken verknüpft ist, müssen alle Netzwerke vorhanden sein, bevor Sie die Instanz erstellen. Weitere Informationen zum Erstellen von Netzwerken finden Sie unter Virtual Private Cloud-Netzwerke (VPC) erstellen und ändern.

  • Sie können eine Netzwerkschnittstelle nicht löschen, ohne die Instanz zu löschen.

  • Jede Instanz muss je nach Maschinentyp der Instanz mindestens eine und maximal acht Netzwerkschnittstellen haben.

    • nic0 ist erforderlich und muss beim Erstellen der Instanz konfiguriert werden.
    • nic1 bis nic7 sind optional und müssen auch beim Erstellen der Instanz konfiguriert werden.
    • Weitere Informationen finden Sie unter Maximale Anzahl von Schnittstellen.
  • Jede Schnittstelle kann optional eine externe IPv4-Adresse haben.

  • Wenn Sie eine VM mit einem Subnetz mit einem internen oder externen IPv6-Subnetzbereich verbinden, können Sie optional eine interne oder externe IPv6-Adresse konfigurieren.

  • Der DHCP-Server von Google Cloud sendet nur an die Standard-NIC nic0 eine Standardroute (RFC 3442, „classless static route“). Wenn eine Standardroute auf einer anderen NIC benötigt wird, müssen Sie das Richtlinienrouting für die Instanz konfigurieren.

  • Alle VM-Schnittstellen müssen eine Verbindung zu Netzwerken im selben Projekt wie die VM oder zu einer für das Projekt freigegebenen VPC herstellen.

Beschränkungen

  • Sie können keine Netzwerkschnittstellen zu einer vorhandenen VM hinzufügen oder entfernen.

  • Die IP-Weiterleitung ist auf VM-Ebene aktiviert und kann nicht auf einzelne Schnittstellen angewendet werden.

Berechtigungen, IAM und Instanzen mit mehreren Netzwerkschnittstellen

Wenn Sie eine Instanz mit mehreren Netzwerkschnittstellen erstellen möchten, benötigen Sie eine der folgenden Rollen:

  • Rolle "Projektinhaber" oder "Projektbearbeiter"
  • Rolle compute.instanceAdmin.v1

Erstellen und Löschen von Instanzen und Instanzvorlagen mit mehreren Schnittstellen in einem Projekt, in dem keine freigegebene VPC verwendet wird: Ein Nutzer mit der Rolle INHABER, BEARBEITER oder compute.instanceAdmin.v1 auf Projektebene kann eine Instanz mit mehreren Schnittstellen erstellen, die VPC-Netzwerken und Subnetzen aus demselben Projekt zugewiesen sind.

Erstellen und Löschen von Instanzen und Instanzvorlagen mit mehreren Schnittstellen in Umgebungen mit freigegebener VPC: Ein Nutzer mit der Rolle INHABER, BEARBEITER oder compute.instanceAdmin.v1 auf Projektebene kann eine Instanz mit mehreren Schnittstellen erstellen. Wenn eine dieser Schnittstellen einem Subnetz in einem Hostprojekt mit freigegebener VPC zugeordnet ist, benötigen Sie auch die Rolle compute.networkUser auf Ebene des Hostprojekts mit freigegebener VPC oder auf Ebene des Subnetzes der freigegebenen VPC.

Weitere Informationen zu Berechtigungen finden Sie in der Compute Engine IAM-Dokumentation.

Mehrere Netzwerkschnittstellen mit unterschiedlichen VPC-Netzwerktypen verwenden

  • Mehrere Netzwerkschnittstellen werden in Legacy-Netzwerken nicht unterstützt.
  • Wenn Sie mehrere Netzwerkschnittstellen konfigurieren, verbinden Sie jede Schnittstelle mit einem VPC-Netzwerk im automatischen Modus oder mit einem VPC-Netzwerk im benutzerdefinierten Modus.

Zuweisung von IP-Adressen für Netzwerkschnittstellen

  • Sie müssen jede Netzwerkschnittstelle mit einer primären internen IP-Adresse konfigurieren, die dem primären IP-Adressbereich eines Subnetzes zugewiesen ist.
    • Die primären internen Adressen, die den Schnittstellen in den einzelnen Instanzen zugewiesen sind, müssen unterschiedlich sein.
  • Sie können jede virtuelle Schnittstelle (NIC) mit einer eindeutigen externen IP-Adresse konfigurieren. Externe Adressen können sitzungsspezifisch oder reserviert sein.

Maximale Anzahl von Netzwerkschnittstellen

Die Anzahl der virtuellen Netzwerkschnittstellen wird mit der Anzahl der vCPUs mit mindestens zwei und maximal acht skaliert.

Mithilfe der folgenden Tabelle können Sie ermitteln, wie viele Netzwerkschnittstellen an eine Instanz angehängt werden können:

Anzahl von vCPUs Anzahl der vNICs
2 oder weniger 2
2 bis 8 2 bis 8
8 oder mehr 8

Vorbereitung

  • Prüfen Sie vor dem Erstellen der Instanz, ob alle erforderlichen Netzwerke erstellt wurden. Informationen zum Erstellen von Netzwerken finden Sie unter VPC-Netzwerke (Virtual Private Cloud erstellen und ändern).

  • Prüfen Sie, ob jedes Netzwerk über geeignete Firewallregeln verfügt, um den Traffic, den Sie zu und von der VM mit mehreren Schnittstellen zulassen möchten, zuzulassen. Informationen zum Erstellen von Firewallregeln finden Sie unter Firewallregeln verwenden.

  • Wenn Sie eine VM mit mehreren Netzwerken über IPv6-Adressen verbinden, benötigt die VM eine der folgenden Konfigurationen. Andernfalls werden die Schnittstellen mit IPv6-Adressen nicht mit einer IPv6-Subnetzroute konfiguriert.

    • Die VM hat die google-guest-agent-Version 20220412.00 oder höher. Weitere Informationen zum Verwalten von google-guest-agent-Versionen finden Sie unter Gastumgebung.

    • Für die VM wurde ein Startskript konfiguriert, um für jede sekundäre Schnittstelle die folgende Konfigurationsänderung 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.

VM-Instanzen mit mehreren Netzwerkschnittstellen erstellen

Das Erstellen einer Instanz mit einer einzigen Schnittstelle bleibt unverändert. Allgemeine Anweisungen zum Erstellen von Instanzen finden Sie unter Instanz erstellen und starten.

Sie können beim Erstellen einer Instanz mehrere Netzwerkschnittstellen hinzufügen:

  • In der Konsole fügen Sie Netzwerkschnittstellen auf der Seite "Instanz erstellen" im Bereich "Netzwerk -> Netzwerkschnittstellen" hinzu.
  • Mit dem gcloud-Befehlszeilentool verwenden Sie den Befehl instances create. Geben Sie dabei für jede Schnittstelle das Flag --network-interface, gefolgt von allen geeigneten Netzwerkschlüsseln, z. B. ([network | subnet], private-network-ip, address), an.

Die erste Schnittstelle wird immer als nic0 erstellt und ist immer die Standardschnittstelle. Dies ist wichtig für einige andere Aspekte des Google Cloud-Netzwerks. Beispielsweise verteilen Google Cloud-Load-Balancer (außer internem TCP/UDP-Load-Balancing) den Traffic nur auf nic0.

Console

  1. Gehen Sie zur Seite Instanz erstellen.

    Zur Seite „Instanz erstellen“

  2. Geben Sie einen Namen für die Instanz ein.

  3. Wählen Sie eine Region aus.

  4. Zone auswählen

  5. Maximieren Sie den Abschnitt Netzwerk, Laufwerke, Sicherheit, Verwaltung, Einzelmandanten.

  6. Maximieren Sie Netzwerk und gehen Sie so vor:

    1. Maximieren Sie im Bereich Netzwerkschnittstellen eine Netzwerkschnittstelle, um sie zu bearbeiten.

    2. Wählen Sie unter Netzwerk und Subnetzwerk das gewünschte Netzwerk und Subnetzwerk aus.

      Wählen Sie ein Subnetz aus, für das ein IPv6-Adressbereich konfiguriert ist, wenn Sie IPv6-Adressen auf der Schnittstelle konfigurieren möchten. Der IPv6-Zugriffstyp des Subnetzes bestimmt, ob die VM eine interne IPv6-Adresse oder eine externe IPv6-Adresse erhält.

    3. Wählen Sie einen IP-Stack-Typ aus: IPv4 (einzelner Stack) oder IPv4 und IPv6 (Dual-Stack)

    4. Wählen Sie für Primäre interne IP eine der folgenden Optionen aus:

      • Sitzungsspezifisch, um eine neue sitzungsspezifische IPv4-Adresse zuzuweisen
      • Reservierte IPv4-Adresse aus der Liste
      • Static (Statisch), um eine neue statische IPv4-Adresse zuzuweisen
    5. Wählen Sie für Externe IPv4-Adresse eine der folgenden Optionen aus:

      • Sitzungsspezifisch, um eine neue sitzungsspezifische IPv4-Adresse zuzuweisen
      • None (Keine), um keine externe IPv4-Adresse zuzuweisen
      • Reservierte IPv4-Adresse aus der Liste
      • Neue IP-Adresse erstellen, um eine neue statische IPv4-Adresse zuzuweisen
    6. Klicken Sie auf Fertig, um die Änderung der Netzwerkschnittstelle abzuschließen.

  7. Klicken Sie auf Netzwerkschnittstelle hinzufügen, um eine weitere Schnittstelle hinzuzufügen.

  8. Fahren Sie mit dem VM-Erstellungsprozess fort.

  9. Klicken Sie auf Erstellen.

gcloud

Mit dem Befehl instances create können Sie Netzwerkschnittstellen auf einer neuen Instanz erstellen. Geben Sie dabei für jede Schnittstelle das Flag --network-interface, gefolgt von allen geeigneten Netzwerkschlüsseln, z. B. [network,subnet],private-network-ip,address), an.

Dieses Snippet zeigt nur das Flag --network-interface, einen von vielen möglichen Parametern, die Sie beim Erstellen einer Instanz angeben können. Informationen zu anderen Flags finden Sie in der Referenz zu gcloud unter dem Befehl instances create. In der Tabelle Maximale Anzahl an Netzwerkschnittstellen sehen Sie, welche Maschinentypen die Anzahl der von Ihnen benötigten Netzwerkschnittstellen unterstützen.

gcloud compute instances create INSTANCE_NAME \
    --zone [ZONE] \
    [--network-interface \
        [network=NETWORK,subnet=SUBNET], \
        [stack-type=STACK_TYPE], \
        [address=RESERVED_EXTERNAL_ADDRESS | no-address], \
        [private-network-ip=INTERNAL_ADDRESS] \
    ...]

Dabei gilt:

  • ZONE: Die Zone, in der die Instanz erstellt wird.
  • NETWORK: Das Netzwerk, an das die Schnittstelle angehängt wird.
  • SUBNET: Das Subnetz, an das die Schnittstelle angehängt wird.
  • STACK_TYPE: der Stacktyp für die Schnittstelle Der Standardwert ist IPV4_ONLY. Geben Sie IPV4_IPV6 an, um eine Dual-Stack-Schnittstelle zu konfigurieren.
  • RESERVED_EXTERNAL_ADDRESS: Die zugewiesene externe IP-Adresse wird der Schnittstelle zugewiesen. Sie müssen zuvor eine externe Adresse reserviert haben. Geben Sie anstelle von address=RESERVED_EXTERNAL_ADDRESS „no-address” an, wenn die Schnittstelle keine externe IP-Adresse haben soll. Geben Sie address='' an, wenn die Schnittstelle eine sitzungsspezifische externe IP-Adresse erhalten soll.
  • INTERNAL_ADDRESS: Die interne IP-Adresse, die die Schnittstelle im Zielsubnetz haben soll. Lassen Sie diese aus, wenn Sie nur eine beliebige gültige Adresse zuweisen möchten.

API

Erstellen Sie eine VM-Instanz mit mehreren Netzwerkschnittstellen.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
  "networkInterfaces": [
    {
      "subnetwork": "SUBNET_URL"
    },
      for each interface, specify a network...
  ],
  other instance settings...
}

Ersetzen Sie die Platzhalter durch gültige Werte:

  • SUBNET_URL ist die URL des Subnetzes, in dem sich die Netzwerkschnittstelle befindet.
  • PROJECT_ID ist die ID des Projekts, das die Instanz enthalten wird.
  • ZONE ist die Zone, die die Instanz enthalten wird.

Weitere Informationen finden Sie in der Methode instances.insert.

Terraform

Sie können eine Terraform-Ressource verwenden, um eine VM-Instanz mit mehreren Netzwerkschnittstellen zu erstellen.

Die Terraform-Argumente haben Beispielwerte, die Sie ändern können.

resource "google_compute_instance" "default" {
  project      = var.project_id # Replace with your project ID in quotes
  zone         = "us-central1-b"
  name         = "backend-instance"
  machine_type = "e2-medium"
  boot_disk {
    initialize_params {
      image = "debian-cloud/debian-9"
    }
  }
  network_interface {
    subnetwork = var.subnet_1 # Replace with self link to a subnetwork in quotes
    network_ip = "10.0.0.14"
  }
  network_interface {
    subnetwork = var.subnet_2 # Replace with self link to a subnetwork in quotes
    network_ip = "10.10.20.14"
  }
}

Beispielkonfigurationen

In den folgenden Abschnitten wird gezeigt, wie Sie VMs mit mehreren Schnittstellen erstellen.

Mehrere Schnittstellen mit IPv4-Adressen konfigurieren

Mit dem folgenden Beispielbefehl wird eine Instanz mit drei Netzwerkschnittstellen erstellt.

 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=RESERVED_EXTERNAL_ADDRESS \
    --network-interface network=net2,subnet=subnet-b,private-network-ip=10.10.20.2,no-address

Die Schnittstellen werden wie folgt erstellt:

  • nic0 wird mit den Standardeinstellungen erstellt. Die Schnittstelle ist mit dem Standard-VPC-Netzwerk mit einer automatisch zugewiesenen internen IP-Adresse und einer sitzungsspezifischen externen IP-Adresse verbunden.

  • nic1 ist an das Subnetz subnet-a im Netzwerk net1 mit der internen IP-Adresse 10.10.10.2 und der statischen externen IP-Adresse RESERVED_EXTERNAL_ADDRESS angehängt.

  • nic2 ist an das Subnetz subnet-b im Netzwerk net2 mit der internen IP-Adresse 10.10.20.2 und ohne externe IP-Adresse angehängt.

Eine vollständige Beschreibung des Befehls gcloud compute instances create und des Flags --network-interface finden Sie in der Dokumentation zum Befehl.

Sie können die IP-Adresse der NIC verwenden, die Sie hinzugefügt haben, um die DNS-Weiterleitung einzurichten. Weitere Informationen zum Konfigurieren von Cloud DNS-Weiterleitungszonen finden Sie unter Weiterleitungszonen.

Mehrere Schnittstellen mit IPv4- und IPv6-Adressen konfigurieren

Mit dem folgenden Beispielbefehl wird eine Dual-Stack-Instanz mit zwei Netzwerkschnittstellen erstellt.

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

Die Schnittstellen werden wie folgt erstellt:

  • nic0 ist an das Subnetz int-subnet im Netzwerk dual-int mit einer sitzungsspezifischen internen IPv4-Adresse und einer sitzungsspezifischen internen IPv6-Adresse angehängt.

  • nic1 ist an das Subnetz ext-subnet im Netzwerk dual-ext mit einer sitzungsspezifischen internen IPv4-Adresse und einer sitzungsspezifischen externen IPv6-Adresse angehängt.

Mehrere Netzwerkschnittstellen für Instanzgruppen konfigurieren

Sie können Instanzen mit mehreren Netzwerkschnittstellen in nicht verwalteten Instanzgruppen und verwalteten Instanzgruppen verwenden.

Erstellen Sie für nicht verwaltete Instanzgruppen jede Instanz einzeln und achten Sie darauf, dass sich die Netzwerkschnittstelle nic0 für jede VM im selben VPC-Netzwerk befindet. Fügen Sie dann die VM-Instanzen der nicht verwalteten Instanzgruppe hinzu.

Zum Konfigurieren mehrerer Netzwerkschnittstellen für verwaltete Instanzgruppen müssen Sie die Netzwerkkonfiguration für jede Schnittstelle in der Instanzvorlage angeben. Dazu legen Sie das Flag --network-interface einmal für jede Schnittstelle fest. Im folgenden Beispiel wird eine Instanzvorlage mit drei Netzwerkschnittstellen erstellt:

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

Da Subnetznamen in jeder Region eines Projekts eindeutig sein müssen, wird durch die Angabe von Subnetzen implizit jede Schnittstelle einem VPC-Netzwerk zugeordnet. Jede Schnittstelle muss ein eindeutiges VPC-Netzwerk verwenden:

  • nic0 verwendet das Subnetz net0-subnet-a
  • nic1 verwendet das Subnetz net1-subnet-b
  • nic2 verwendet das Subnetz net2-subnet-c

Die Option no-address im Flag --network-interface gibt an, dass die Schnittstelle ohne externe IP-Adresse konfiguriert ist. Die interne IP-Adresse stammt aus dem Subnetz, das von der Schnittstelle verwendet wird. Ausführliche Informationen zu Flags und Syntax finden Sie unter dem Flag --network-interface für den Befehl instance-templates create.

Richtlinienrouting konfigurieren

Wenn es bei einem von Google unterstützten Image erforderlich ist, dass eine sekundäre Netzwerkschnittstelle (eine andere Schnittstelle als nic0) mit einer IP-Adresse außerhalb des primären Subnetzbereichs des verknüpften Subnetzes dieser sekundären Schnittstelle kommunizieren muss, müssen Sie das Richtlinienrouting konfigurieren, damit Pakete über die richtige Schnittstelle ausgehen. In solchen Fällen müssen Sie eine separate Routingtabelle für jede Netzwerkschnittstelle konfigurieren, die Richtlinienrouting verwendet.

Quellbasiertes Richtlinienrouting wird von Windows-Betriebssystemen nicht unterstützt.

Standardgateway für die Schnittstelle ermitteln

Sie können das Standardgateway für die Schnittstelle einer VM durch Abfrage des Metadatenservers ermitteln.

  • Stellen Sie die folgende Anfrage von der VM, um das Standardgateway für die IPv4-Adresse einer Schnittstelle zu finden:

    curl http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/INTERFACE_NUMBER/gateway -H "Metadata-Flavor: Google"
    

    Ersetzen Sie INTERFACE_NUMBER durch die Nummer der Schnittstelle. Verwenden Sie beispielsweise 1, um das Standardgateway für nic1 zu ermitteln.

  • Stellen Sie die folgende Anfrage von der VM, um das Standardgateway für die IPv6-Adresse einer Schnittstelle zu finden:

    curl http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/INTERFACE_NUMBER/gateway-ipv6 -H "Metadata-Flavor: Google"
    

    Ersetzen Sie INTERFACE_NUMBER durch die Nummer der Schnittstelle. Verwenden Sie beispielsweise 1, um das Standardgateway für nic1 zu ermitteln.

Richtlinienbasiertes Routing auf Linux-VMs konfigurieren

Verwenden Sie die serielle Konsole, um die Verbindung zur VM beim Ändern der Standardroute zu vermeiden.

  • Konfigurieren Sie das Richtlinienrouting für jede sekundäre Schnittstelle mit ifconfig. Konfigurieren Sie die primäre Schnittstelle (nic0) nicht, da sie eine Route konfiguriert hat.

    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
    

    Dabei gilt:

    • NIC: die Schnittstelle, für die Sie eine Route hinzufügen möchten Beispiel: eth1.
    • IP_ADDRESS: die auf der Schnittstelle konfigurierte IP-Adresse
    • NETMASK: der Name der Schnittstelle, z. B. 255.255.255.255
    • GATEWAY: die Standard-Gateway-IP-Adresse der Schnittstelle
    • PREFIX_LENGTH: die Präfixlänge für die konfigurierte IP-Adresse

Richtlinienbasiertes Routing auf Ubuntu Version 18.04 oder höher konfigurieren

Mit der Umstellung von ifupdown auf Netplan als Standarddienstprogramm für die Netzwerkkonfiguration für Ubuntu 18.04 LTS oder höher ist das ifconfig-Paket nicht vorinstalliert. Darüber hinaus gehen Änderungen, die Sie an den Netzwerkkonfigurationsdateien von Netplan vornehmen, bei Neustarts von Compute Engine-VMs verloren.

  1. Erstellen Sie ein Startskript, das eine Routingtabelle für jede Netzwerkschnittstelle beim Starten der VM festlegt. Weitere Informationen zum Erstellen von Startskripts

    Die Verwendung eines Startskripts funktioniert nicht, wenn Sie eine Dateifreigabe in Ihrer VM bereitstellen, da sie nur ausgeführt werden, nachdem Partitionen bereitgestellt wurden. Dies würde dazu führen, dass Ihre Dateifreigabe immer auf der Standardschnittstelle bereitgestellt wird, bevor Ihr Startskript die Routingtabelle erstellt hat.

  2. Für die Bereitstellung einer Dateifreigabe auf einer VM über ein sekundäres Netzwerk, also eine andere Schnittstelle als nic0, müssen Sie die Routingrichtlinie der Client-VM so konfigurieren, dass die Dateifreigabe über die richtige Netzwerkschnittstelle bereitgestellt wird. Ändern Sie dazu die folgenden Dateien:

    • Setzen Sie in /etc/default/instance_configs.cfg das setup-Flag für NetworkInterfaces auf false:

      [NetworkInterfaces]
      dhclient_script = /sbin/google-dhclient-script
      dhcp_command =
      ip_forwarding = true
          setup = false
      

    • Fügen Sie in /etc/network/interfaces die folgenden Zeilen zur entsprechenden Schnittstelle hinzu:

      auto eth1
      iface eth1 inet dhcp
          up ip route add filestore-reserved-address-range via default-gateway-of-nic-to-filestore
      

    Dabei gilt:

    • filestore-reserved-address-range ist der reservierte Adressbereich, der von der Compute Engine-Instanz verwendet wird
    • default-gateway-of-nic-to-filestore ist die Standard-Gateway-IP-Adresse der NIC, die mit dem VPC-Netzwerk verbunden ist und mit der VPC-Instanz geteilt wird.

    Weitere Informationen zum Bereitstellen einer Dateifreigabe auf einer VM-Instanz finden Sie unter Dateifreigaben in Compute Engine bereitstellen.

Fehlerbehebung

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 us-west1 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 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
    

    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 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.

    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. Mit dem folgenden Befehl oder der Google Cloud Console können Sie prüfen, ob es sich bei einem Netzwerk um ein Legacy-Netzwerk handelt. Das Feld Modus gibt die Art des Netzwerks an.

    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'

    Wenn Sie diese Meldung erhalten, hat das Konto, mit dem Sie angemeldet sind, keine zum Erstellen einer Instanz nötigen IAM-Berechtigungen. Detaillierte Informationen zu den für das Erstellen von Instanzen erforderlichen Rollen finden Sie unter IAM-Berechtigungen. 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 mit 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 der 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.

Ich kann über eine externe IP-Adresse keine Verbindung zur 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 gemäß Richtlinienrouting konfigurieren eine separate Routingtabelle zur Verwendung von quellbasiertem Richtlinienrouting in der VM konfigurieren.

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 us-west1-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.

Fehlerbehebung mit serieller Konsole

Oft ist es ratsam, auf der VM die serielle Konsole zu aktivieren, um eine Fehlerbehebung für Konfigurationsprobleme durchzuführen. Sie können die serielle Konsole für das interaktive Debugging auswählen. Dazu befolgen Sie die Schritte unter Mit der seriellen Konsole interagieren.