VMs mit mehreren Netzwerkschnittstellen erstellen
Standardmäßig hat jede VM-Instanz in einem VPC-Netzwerk (Virtual Private Cloud) eine einzelne Netzwerkschnittstelle. Sie können jedoch eine Instanz mit mehreren Netzwerkschnittstellen konfigurieren. Wenn Sie mehrere Netzwerkschnittstellen aus einer Instanz verwenden, muss jede Schnittstelle an ein Subnetz angehängt werden, das sich in einem anderen VPC-Netzwerk befindet. Sie können nicht mehrere Netzwerkschnittstellen an dasselbe Subnetz oder an Subnetze im selben VPC-Netzwerk anhängen.
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.
- Sie können nicht mehrere Netzwerkschnittstellen für Compute Engine-Bare-Metal-Instanzen konfigurieren.
- Wenn Sie eine Instanz mit mehreren Netzwerkschnittstellen erstellen, muss jede Schnittstelle mit einem anderen VPC-Netzwerk verbunden sein. Die Netzwerke können eigenständige VPC-Netzwerke oder freigegebene VPC-Netzwerke sein.
- Eine Netzwerkschnittstelle muss mit einem Subnetz verbunden werden, dessen IP-Adressbereich sich nicht mit dem IP-Adressbereich einer anderen Schnittstelle auf derselben Instanz überschneidet.
- Wenn Sie eine VM erstellen möchten, die mit Subnetzen in mehreren VPC-Netzwerken verknüpft ist, müssen alle Netzwerke und Subnetze vorhanden sein, bevor Sie die Instanz erstellen. Weitere Informationen zum Erstellen von Netzwerken und Subnetzen finden Sie unter VPC-Netzwerke erstellen und verwalten.
- Sie können eine Netzwerkschnittstelle nicht löschen, ohne die Instanz zu löschen, mit der sie verbunden ist.
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
bisnic7
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 Netzwerkschnittstelle benötigt wird, müssen Sie das Richtlinienrouting für die Instanz konfigurieren. Ein Beispiel dafür finden Sie in der folgenden Anleitung: Routing für eine zusätzliche Schnittstelle konfigurieren.Alle VM-Netzwerkschnittstellen müssen eine Verbindung zu Subnetzen in Netzwerken herstellen, die sich im selben Projekt wie die VM befinden, oder zu einem freigegebenen VPC-Netzwerk, das für das Projekt freigegeben ist.
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 Instance Admin“ (v1) (
roles/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 Instance Admin (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 Instance Admin (v1) auf Projektebene kann eine Instanz mit mehreren Schnittstellen erstellen. Wenn eine dieser Schnittstellen an ein Subnetz in einem freigegebenen VPC-Hostprojekt angehängt ist, benötigen Sie auch die Rolle „Compute-Netzwerknutzer“ (roles/compute.networkUser
) auf der 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 |
4 | Bis zu 4 |
6 | Bis zu 6 |
8 oder mehr | Bis zu 8 |
Bare-Metal-Instanzen der Compute Engine | 1 |
Hinweise
Prüfen Sie vor dem Erstellen der Instanz, ob alle erforderlichen Netzwerke und Subnetze erstellt wurden. Informationen zum Erstellen von Netzwerken oder Subnetzen finden Sie unter VPC-Netzwerke erstellen und verwalten.
Prüfen Sie, ob jedes Netzwerk über geeignete Firewallregeln verfügt, um den Traffic zuzulassen, den Sie von und zu der VM mit mehreren Schnittstellen zulassen möchten. Informationen zum Erstellen von Firewallregeln finden Sie unter VPC-Firewallregeln verwenden.
Wenn Sie eine VM mit mehreren Netzwerken über IPv6-Adressen verbinden, installieren Sie die
google-guest-agent
-Version 20220603.00 oder höher. Weitere Informationen finden Sie unter Ich kann keine Verbindung zur IPv6-Adresse einer sekundären Schnittstelle herstellen.
VM-Instanzen mit mehreren Netzwerkschnittstellen erstellen
Allgemeine Anleitungen zum Erstellen von Instanzen finden Sie unter VM-Instanz erstellen und starten.
Sie können beim Erstellen einer Instanz mehrere Netzwerkschnittstellen hinzufügen:
- In der Google Cloud Console fügen Sie Netzwerkschnittstellen auf der Seite Instanz erstellen im Abschnitt Netzwerk > Netzwerkschnittstellen hinzu.
- Verwenden Sie in der gcloud CLI 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, external-ipv6-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 für den Passthrough Network Load Balancer) den Traffic nur auf nic0
.
Console
Rufen Sie in der Google Cloud Console die Seite Instanz erstellen auf.
Geben Sie im Feld Name einen Namen für die Instanz ein.
Wählen Sie im Feld Region eine Region aus.
Wählen Sie im Feld Zone eine Zone aus.
Maximieren Sie im Abschnitt Erweiterte Optionen den Bereich Netzwerk und gehen Sie dann so vor:
Maximieren Sie im Bereich Netzwerkschnittstellen eine Netzwerkschnittstelle, um sie zu bearbeiten.
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.
Wählen Sie einen IP-Stack-Typ aus: IPv4 (einzelner Stack) oder IPv4 und IPv6 (Dual-Stack)
Wählen Sie für Primäre interne IPv4-Adresse eine der folgenden Optionen aus:
- Sitzungsspezifisch, um eine neue sitzungsspezifische IPv4-Adresse zuzuweisen
- Reservierte statische interne IPv4-Adresse aus der Liste
- Statische interne IP-Adresse reservieren, um eine neue statische interne IPv4-Adresse zu reservieren und zuzuweisen
Wählen Sie für Primäre interne IPv6-Adresse eine der folgenden Optionen aus:
- Automatisch zugewiesen, um eine neue sitzungsspezifische interne IPv6-Adresse automatisch zuzuweisen
- Reservierte statische interne IPv6-Adresse aus der Liste
- Statische interne IPv6-Adresse reservieren, um eine neue statische interne IPv6-Adresse zu reservieren und zuzuweisen
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 statische IPv4-Adresse aus der Liste
- Statische externe IP-Adresse reservieren, um eine neue statische externe IPv4-Adresse zu reservieren und zuzuweisen
Wählen Sie unter Externe IPv6-Adresse eine der folgenden Optionen aus:
- Automatisch zuweisen, um eine neue statische sitzungsspezifische IPv6-Adresse automatisch zuzuweisen
- Reservierte statische externe IPv6-Adresse aus der Liste
- Statische externe IPv6-Adresse reservieren, um eine neue statische externe IPv6-Adresse zu reservieren und zuzuweisen
Klicken Sie auf Fertig, um die Änderung der Netzwerkschnittstelle abzuschließen.
Zum Hinzufügen einer weiteren Schnittstelle klicken Sie auf Netzwerkschnittstelle hinzufügen.
Fahren Sie mit dem VM-Erstellungsprozess fort.
Klicken Sie auf Erstellen.
gcloud
Verwenden Sie den Befehl instances create
, um Netzwerkschnittstellen auf einer neuen Instanz zu erstellen.
Geben Sie dabei für jede Schnittstelle das Flag --network-interface
, gefolgt von allen geeigneten Netzwerkschlüsseln an, z. B. network
, subnet
, private-network-ip
, address
und external-ipv6-address
.
Beispiele zum Erstellen von VMs mit mehreren Schnittstellen finden Sie unter Beispielkonfigurationen.
Dieses Snippet zeigt nur das Flag --network-interface
, einen von vielen möglichen Parametern, die Sie beim Erstellen einer Instanz angeben können.
In der Tabelle Maximale Anzahl an Netzwerkschnittstellen finden Sie Informationen dazu, welche Maschinentypen die Anzahl der benötigten Netzwerkschnittstellen unterstützen.
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 \ ...
Dabei gilt:
INSTANCE_NAME
: der Name der zu erstellenden VM.ZONE
: Die Zone, in der die Instanz erstellt wird.NETWORK
ist das Netzwerk, an das die Schnittstelle angehängt ist.SUBNET
ist das Subnetz, an das die Schnittstelle angehängt ist.STACK_TYPE
: der Stacktyp für die SchnittstelleDer Standardwert ist
IPV4_ONLY
. Geben SieIPV4_IPV6
an, um eine Dual-Stack-Schnittstelle zu konfigurieren.EXTERNAL_IPV4_ADDRESS
: weist der Schnittstelle die genannte externe IPv4-Adresse zu.Sie müssen zuvor eine externe IPv4-Adresse reserviert haben. Geben Sie „no-address“ anstelle von
address=EXTERNAL_IPV4_ADDRESS
an, wenn die Schnittstelle keine externe IP-Adresse haben soll. Geben Sieaddress=''
an, wenn die Schnittstelle eine sitzungsspezifische externe IP-Adresse erhalten soll.INTERNAL_IPV4_ADDRESS
ist die interne IPv4-Adresse, die die Schnittstelle im Zielsubnetz haben soll. Lassen Sie diese aus, wenn Sie nur eine beliebige gültige Adresse zuweisen möchten.INTERNAL_IPV6_ADDRESS
ist die interne IPv6-Adresse, die die Schnittstelle im Zielsubnetz haben soll. Wenn Sie dieses Flag weglassen, wird keine interne IPv6-Adresse zugewiesen.EXTERNAL_IPV6_ADDRESS
: weist der Schnittstelle die genannte externe IPv4-Adresse zu.Sie müssen zuvor eine externe IPv6-Adresse reserviert haben. Geben Sie „no-address“ anstelle von
external-ipv6-address=EXTERNAL_IPV6_ADDRESS
an, wenn die Schnittstelle keine externe IPv6-Adresse haben soll. Geben Sieexternal-ipv6-address=''
an, wenn die Schnittstelle eine sitzungsspezifische externe IPv6-Adresse erhalten soll.
API
Verwenden Sie die Methode instances.insert
, um eine VM-Instanz mit mehreren Netzwerkschnittstellen zu erstellen.
So erstellen Sie eine VM-Instanz mit internen IPv4-Adressen:
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... }
Dabei gilt:
SUBNET
: Das Subnetz, in dem sich die Netzwerkschnittstelle befindet.REGION
: Die Region, die die Instanz enthält.PROJECT_ID
: Die ID des Projekts, das die Instanz enthält.ZONE
: Die Zone, die die Instanz enthält.IPV4_ADDRESS
: Die interne IPv4-Adresse, die Sie der Netzwerkschnittstelle zuweisen möchten.
So erstellen Sie eine VM-Instanz mit internen IPv6-Adressen:
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... }
Dabei gilt:
SUBNET
: Das Subnetz, in dem sich die Netzwerkschnittstelle befindet.REGION
: Die Region, die die Instanz enthält.PROJECT_ID
: Die ID des Projekts, das die Instanz enthält.ZONE
: Die Zone, die die Instanz enthält.IPV6_ADDRESS
: Die interne IPv6-Adresse, die Sie der Netzwerkschnittstelle zuweisen möchten.
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.
Informationen zum Anwenden oder Entfernen einer Terraform-Konfiguration finden Sie unter Grundlegende Terraform-Befehle.
Beispielkonfigurationen
In den folgenden Abschnitten wird gezeigt, wie Sie VMs mit mehreren Schnittstellen erstellen.
Mehrere Netzwerkschnittstellen 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=EXTERNAL_IPV4_ADDRESS \ --network-interface network=net2,subnet=subnet-b,private-network-ip=10.10.20.2,no-address
Die Schnittstellen werden so erstellt:
nic0
wird mit den Standardeinstellungen erstellt. Die Schnittstelle ist an ein Subnetz im Standard-VPC-Netzwerk angehängt und erhält eine automatisch zugewiesene interne IP-Adresse und eine sitzungsspezifische externe IP-Adresse.nic1
ist an das Subnetzsubnet-a
im Netzwerknet1
mit der internen IPv4-Adresse 10.10.10.2 und der statischen externen IPv4-AdresseEXTERNAL_IPV4_ADDRESS
angehängt.nic2
ist an das Subnetzsubnet-b
im Netzwerknet2
mit der internen IPv4-Adresse 10.10.20.2 und ohne externe IPv4-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 Netzwerkschnittstelle verwenden, die Sie hinzugefügt haben, um die DNS-Weiterleitung einzurichten. Weitere Informationen zum Konfigurieren von Cloud DNS-Weiterleitungszonen finden Sie unter Weiterleitungszonen.
Mehrere Netzwerkschnittstellen 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 so erstellt:
nic0
ist an das Subnetzint-subnet
im Netzwerkdual-int
mit einer sitzungsspezifischen internen IPv4-Adresse und einer sitzungsspezifischen internen IPv6-Adresse angehängt.nic1
ist an das Subnetzext-subnet
im Netzwerkdual-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 die Netzwerkschnittstelle nic0
für jede VM mit demselben Subnetz verbunden ist. 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 Subnetz verwenden, das sich in einem eindeutigen VPC-Netzwerk befindet:
nic0
verwendet das Subnetznet0-subnet-a
nic1
verwendet das Subnetznet1-subnet-b
nic2
verwendet das Subnetznet2-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
.
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
odercompute.instanceAdmin.v1
. Zum Erstellen von Instanzen mit freigegebenen VPC benötigen Sie zusätzlich die Rollecompute.networkUser
. Im folgenden Beispiel verfügt das Kontoemail2@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
odercompute.instanceAdmin.v1
zu erteilen. Wenn Sie eine Schnittstelle mit einem zu freigegebenen VPC gehörenden Subnetz verbinden, benötigen Sie auch die Rollecompute.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 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.
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.