Alias-IP-Bereiche konfigurieren
Dieses Dokument enthält eine Anleitung zum Konfigurieren von Alias-IP-Adressen und Alias-IP-Bereichen mit der Google Cloud Console und der Google Cloud CLI. Bevor Sie diese Befehle ausführen, überprüfen Sie Alias-IP-Bereiche.
Beschränkungen
Subnetz
- Die Limits pro Netzwerk beschreiben die maximale Anzahl sekundärer Bereiche, die Sie für jedes Subnetz definieren können.
- Sie können nicht gleichzeitig sekundäre Bereiche hinzufügen und entfernen. Das Hinzufügen und Entfernen muss in separaten Schritten erfolgen.
- Die CIDR-Erweiterung wird für sekundäre Bereiche nicht unterstützt.
VM-Instanz
- Alias-IP-Bereiche werden auf allen VM-Netzwerkschnittstellen unterstützt. Das Routing für Alias-IP-Bereiche wird auf der primären Netzwerkschnittstelle automatisch konfiguriert. Auf sekundären Schnittstellen ist dies nicht der Fall. Wenn Sie mehrere Netzwerkschnittstellen haben, müssen Sie für die zusätzlichen Schnittstellen das Richtlinienrouting konfigurieren. Ein Beispiel dazu finden Sie in der Anleitung Routing zu einer sekundären Schnittstelle einer VM konfigurieren.
- Alias-IP-Bereiche können hinzugefügt oder gelöscht, aber nicht aktualisiert werden.
- Wenn Sie einen Alias-IP-Bereich von einer VM entfernen und einer anderen VM zuweisen, kann die Übertragung bis zu einer Minute dauern.
- Firewall-Quell-Tags werden für Alias-IP-Adressen nicht unterstützt. Das bedeutet, dass Quell-Tags, die Sie in Firewallregeln konfigurieren, mit der primären IP-Adresse der virtuellen Maschine übereinstimmen, aber nicht mit den Alias-IP-Adressen. Verwenden Sie Quellbereiche, um eingehenden Traffic von Alias-IP-Adressen zuzulassen oder zu verweigern.
- Internes DNS löst einen VM-Namen in seine primäre IP-Adresse auf. Weitere Namen für Alias-IP-Adressen werden nicht automatisch konfiguriert, können aber manuell hinzugefügt werden.
VPC-Netzwerk
- Das gleichzeitige Hinzufügen oder Entfernen einer großen Anzahl von Alias-IP-Bereichen kann lange dauern. Es kann beispielsweise bis zu zehn Minuten dauern, um 7.000 Alias-IP-Bereiche hinzuzufügen oder zu löschen.
- VPC-Netzwerke im automatischen Modus können nicht gelöscht werden, wenn sekundäre Subnetzbereiche vorhanden sind.
- Bei einer statischen Verbindung muss die nächste Hop-IP-Adresse die primäre IP-Adresse der VM sein. Alias-IP-Adressen werden nicht als nächste Hop-IP-Adressen unterstützt.
- IPv6-Adressen werden nicht unterstützt.
- Alias-IP-Bereiche werden nur in VPC-Netzwerken, aber nicht in Legacy-Netzwerken unterstützt. Listen Sie Ihre Netzwerke auf, um den Netzwerktyp zu ermitteln. VPC-Netzwerke haben den Modus
custom
oderauto
. Legacy-Netzwerke haben den Moduslegacy
.
Subnetzbefehle
Alias-IP-Bereiche für eine VM müssen aus einem Bereich zugewiesen werden, der dem Subnetz gehört, in dem sich die VM befindet. Alle Subnetze haben einen Primärbereich. Dies ist der Standardbereich interner IP-Adressen, der das Subnetz definiert. Ein Subnetz kann auch einen oder mehrere sekundäre IP-Bereiche mit internen IP-Adressen haben. Sie können Alias-IP-Bereiche entweder aus dem primären oder sekundären Bereich des Subnetzes zuweisen.
Geben Sie für den sekundären Bereich einen Namen ein, der für das Subnetz eindeutig ist. Wenn Sie einer VM einen Alias-IP-Bereich zuweisen, wird Google Cloud durch den Namen des sekundären Bereichs mitgeteilt, aus welchem Subnetzbereich die Alias-IPs zugewiesen werden sollen.
Alle Bereiche, sowohl primäre als auch sekundäre, müssen in allen Subnetzen im VPC-Netzwerk und in allen über VPC-Netzwerk-Peering, VPN oder Interconnect verbundenen Netzwerken eindeutig sein.
In diesem Abschnitt erfahren Sie, wie Sie ein Subnetz mit einem sekundären Bereich erstellen, einen sekundären Bereich einem vorhandenen Subnetz hinzufügen und einen sekundären Bereich aus einem Subnetz entfernen. Wenn Ihr Subnetz den Bereich enthält, den Sie verwenden möchten, finden Sie in den VM-Instanzbefehlen Anleitungen zum Zuweisen eines Bereichs zu einer VM.
Subnetz mit einem oder mehreren sekundären CIDR-Bereichen erstellen
Dieser Befehl setzt voraus, dass Sie bereits ein VPC-Netzwerk haben. Wenn dies nicht der Fall ist, erstellen Sie eines.
Sie verwenden denselben Befehl, unabhängig davon, ob Sie ein Subnetz für die primäre VM-Schnittstelle oder eine der sekundären Schnittstellen erstellen.
Wenn Sie einen sekundären Bereich für die Alias-IP-Zuweisung verwenden, können Sie einen separaten IP-Bereich für in der VM gehostete Dienste nutzen. Dadurch können Sie leichter Firewallregeln erstellen, die zwar den Zugriff auf die primäre IP-Adresse der VM blockieren, jedoch einen Zugriff auf die in der VM ausgeführten Dienste erlauben.
Console
- Rufen Sie in der Google Cloud Console die Seite „VPC-Netzwerke“ auf.
Zur VPC-Netzwerkseite - Klicken Sie auf den Namen eines bestehenden Netzwerks.
- Klicken Sie auf Subnetz hinzufügen.
- Geben Sie einen Namen für das neue Subnetz ein.
- Geben Sie die Region an.
- Geben Sie einen IP-Adressbereich in der CIDR-Schreibweise ein. (Beispiel: 10.65.61.0/24)
- Klicken Sie auf Sekundären IP-Bereich erstellen.
- Geben Sie einen Namen des Subnetzbereichs ein.
- Geben Sie einen sekundären IP-Bereich in der CIDR-Schreibweise ein. (Beispiel: 10.9.0.0/24)
- Wenn Sie weitere sekundäre IP-Bereiche hinzufügen möchten, klicken Sie für jeden Bereich auf IP-Bereich hinzufügen und geben Sie einen Namen und Bereich ein.
- Klicken Sie auf Hinzufügen.
gcloud
gcloud compute networks subnets create s1 \ --network NETWORK_NAME \ --region REGION \ --range 10.65.61.0/24 \ --secondary-range RANGE_NAME_1=RANGE_CIDR_1,RANGE_NAME_2=RANGE_CIDR_2,...
Ersetzen Sie dabei Folgendes:
NETWORK_NAME
: Der Name des Netzwerks, in dem Sie das Subnetz erstellen möchten.REGION
: Die Region, in der Sie das Subnetz erstellen.RANGE_NAME_1
=RANGE_CIDR_1
undRANGE_NAME_2
=RANGE_CIDR_2
: Die Namen der sekundären Bereiche, aus denen die Alias-IP-Bereiche selbst bezogen werden sollen z. B.range1=10.9.0.0/24
.
Die vollständige Syntax finden Sie in der Dokumentation zur gcloud CLI.
API
Erstellen Sie ein Subnetz mit einem oder mehreren sekundären Bereichen.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks { "ipCidrRange": "PRIMARY_IP_RANGE", "network": "NETWORK_URL", "name": "SUBNET_NAME", "secondaryIpRanges": [ { "rangeName": "SECONDARY_RANGE_NAME_1", "ipCidrRange": "SECONDARY_IP_RANGE_1" }, { "rangeName": "SECONDARY_RANGE_NAME_2", "ipCidrRange": "SECONDARY_IP_RANGE_2" }, ...] }
Ersetzen Sie dabei Folgendes:
NETWORK_URL
: Die URL oder das VPC-Netzwerk, in dem das Subnetz erstellt wird.PRIMARY_IP_RANGE
: Der primäre IP-Adressbereich für das Subnetz.PROJECT_ID
: Die ID des Projekts, das das VPC-Netzwerk enthält, in dem das Subnetz erstellt wird.REGION
: Die Region, in der sich das Subnetz befindet.SECONDARY_IP_RANGE_1
undSECONDARY_IP_RANGE_2
: Die IP-Adressbereiche, die für die sekundären Bereiche verwendet werden sollen.SECONDARY_RANGE_NAME_1
undSECONDARY_RANGE_NAME_2
: Die Namen, die für die sekundären Bereiche verwendet werden sollen.SUBNET_NAME
: Ein Name für das Subnetz.
Weitere Informationen finden Sie im Artikel zur Methode subnetworks.insert
.
Terraform
Sie können die Terraform-Ressource verwenden, um ein Subnetz mit einem oder mehreren sekundären Bereichen 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.
Sekundäre CIDR-Bereiche einem vorhandenen Subnetz hinzufügen
Dieses Verfahren setzt voraus, dass Sie ein Subnetz haben, das Sie verwenden möchten, aber einen oder mehrere sekundäre Bereiche hinzufügen müssen.
Mit einem sekundären Bereich für die Alias-IP-Zuweisung können Sie Firewallregeln erstellen, die Zugriff auf die in einer VM ausgeführten Dienste erlauben, jedoch nicht auf die primäre IP-Adresse der VM.
Console
- Rufen Sie in der Google Cloud Console die Seite „VPC-Netzwerke“ auf.
Zur VPC-Netzwerkseite - Klicken Sie auf den Namen eines zu ändernden Subnetzes, um seine Detailseite anzuzeigen.
- Klicken Sie auf Bearbeiten.
- Klicken Sie im Abschnitt Sekundäre IP-Bereiche auf IP-Bereich hinzufügen.
- Geben Sie einen Namen für Name des Subnetzbereichs ein.
- Geben Sie einen Bereich für Sekundärer IP-Bereich in CIDR-Schreibweise ein. Beispiel:
10.9.0.0/24
- Wenn Sie weitere sekundäre IP-Bereiche hinzufügen möchten, klicken Sie für jeden Bereich auf IP-Bereich hinzufügen und geben Sie einen Namen und Bereich ein.
- Klicken Sie auf Speichern.
gcloud
gcloud compute networks subnets update SUBNET_NAME \ --region REGION \ --add-secondary-ranges RANGE_NAME_1=RANGE_CIDR_1,RANGE_NAME_2=RANGE_CIDR_2,...
Ersetzen Sie dabei Folgendes:
SUBNET_NAME
: Der Name des Subnetzes, dem Sie die sekundären Bereiche hinzufügen.REGION
: Die Region, in der Sie das Subnetz erstellen.RANGE_NAME_1
=RANGE_CIDR_1
undRANGE_NAME_2
=RANGE_CIDR_2
: Die Namen der sekundären Bereiche, aus denen die Alias-IP-Bereiche selbst bezogen werden sollen z. B.range1=10.9.0.0/24
.
Die vollständige Syntax finden Sie in der Dokumentation zur gcloud CLI.
API
Fügen Sie einem vorhandenen Subnetz einen sekundären Bereich hinzu.
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME { "secondaryIpRanges": [ { "rangeName": "SECONDARY_RANGE_NAME_1", "ipCidrRange": "SECONDARY_IP_RANGE_1" }, { "rangeName": "SECONDARY_RANGE_NAME_2", "ipCidrRange": "SECONDARY_IP_RANGE_2" }, ...], "fingerprint": "SUBNETWORK_FINGERPRINT" }
Ersetzen Sie die Platzhalter durch gültige Werte:
PROJECT_ID
ist die ID des Projekts, das das zu ändernde Subnetz enthält.REGION
ist die Region, in der sich das Subnetz befindet.SECONDARY_IP_RANGE_1
undSECONDARY_IP_RANGE_2
sind die IP-Adressbereiche, die für die sekundären Bereiche verwendet werden sollen.SECONDARY_RANGE_NAME_1
undSECONDARY_RANGE_NAME_2
sind die Namen, die für die sekundären Bereiche verwendet werden sollen.SUBNET_FINGERPRINT
ist die Fingerabdruck-ID für das bestehende Subnetz, die Sie beim Beschreiben des Subnetzes erhalten.SUBNET_NAME
ist der Name des zu ändernden Subnetzes.
Weitere Informationen finden Sie im Artikel zur Methode subnetworks.patch
.
Sekundären CIDR-Bereich aus einem Subnetz entfernen
Sie können vorhandene sekundäre Bereiche aus einem Subnetz entfernen. Informationen zum Anzeigen der Bereiche, die einem Subnetz zugeordnet sind, finden Sie unter Subnetz beschreiben.
Console
- Rufen Sie in der Google Cloud Console die Seite „VPC-Netzwerke“ auf.
Zur VPC-Netzwerkseite - Klicken Sie auf den Namen eines zu ändernden Subnetzes, um seine Detailseite anzuzeigen.
- Klicken Sie auf Bearbeiten.
- Klicken Sie im Bereich Sekundäre IP-Bereiche neben dem zu entfernenden sekundären Bereich auf X.
- Klicken Sie auf Speichern.
gcloud
gcloud compute networks subnets update SUBNET_NAME \ --region REGION \ --remove-secondary-ranges RANGE_NAME_1,RANGE_NAME_2,...
Dabei gilt:
SUBNET_NAME
ist der Name des Subnetzes, aus dem Sie die sekundären Bereiche entfernen.REGION
ist die Region, in der Sie das Subnetz erstellen.RANGE_NAME_1
undRANGE_NAME_2
sind die Namen der sekundären Bereiche, die aus dem ZielsubnetzSUBNET_NAME
entfernt werden, z. B.range1=10.9.0.0/24
.
Die vollständige Syntax finden Sie in der Dokumentation zur gcloud CLI.
API
Schließen Sie sekundäre Bereiche aus, um sie zu entfernen. Im folgenden Beispiel werden alle sekundären Bereiche aus einem vorhandenen Subnetz entfernt:
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME { "fingerprint": "SUBNET_FINGERPRINT", "secondaryIpRanges": [ ] }
Ersetzen Sie die Platzhalter durch gültige Werte:
PROJECT_ID
ist die ID des Projekts, das das zu ändernde Subnetz enthält.REGION
ist die Region, in der sich das Subnetz befindet.SUBNET_FINGERPRINT
ist die Fingerabdruck-ID für das bestehende Subnetz, die Sie beim Beschreiben des Subnetzes erhalten.SUBNET_NAME
ist der Name des zu ändernden Subnetzes.
Weitere Informationen finden Sie im Artikel zur Methode subnetworks.patch
.
Mit VM-Instanzen arbeiten
Diese Befehle zeigen, wie Sie eine Instanz mit einem Alias-IP-Bereich erstellen, einen oder mehrere Alias-IP-Bereiche einer vorhandenen VM-Instanz hinzufügen oder einen oder mehrere Bereiche aus einer vorhandenen VM-Instanz entfernen.
VM mit einem Alias-IP-Bereich im primären CIDR-Bereich erstellen
Verwenden Sie dieses Verfahren, wenn Sie einen Alias-IP-Bereich aus dem primären Bereich des Subnetzes zuweisen möchten. Der Bereich, den Sie auswählen, darf nicht bereits von einer anderen Ressource im VPC-Netzwerk verwendet werden, auch nicht teilweise.
Verwenden Sie dieses Verfahren, wenn die primäre Schnittstelle und die Alias-IP-Adressen der Instanz im gleichen Bereich liegen sollen.
Console
- Rufen Sie in der Google Cloud Console die Seite „VM-Instanzen” auf.
Zur Seite „VM-Instanzen” - Klicken Sie auf Instanz erstellen.
- Geben Sie einen Namen für die neue Instanz ein.
- Geben Sie eine Zone an.
- Klicken Sie auf Verwaltung, Sicherheit, Laufwerke, Netzwerke, einzelne Mandanten.
- Klicken Sie auf den Tab Netzwerk.
- Klicken Sie neben der primären Schnittstelle im Bereich Netzwerkschnittstellen auf die Schaltfläche zum Bearbeiten (Bleistiftsymbol).
- Klicken Sie auf Alias-IP-Bereiche einblenden.
- Lassen Sie die Einstellung für den Subnetzbereich auf Primär.
- Geben Sie einen Alias-IP-Bereich in der CIDR-Schreibweise ein. Dies muss ein ungenutzter Teilbereich des Primärbereichs sein.
- Klicken Sie auf Erstellen.
gcloud
gcloud compute instances create vm1 \ --zone ZONE \ --network-interface "subnet=SUBNET_NAME,aliases=RANGE_CIDR_1;RANGE_CIDR_2,..."
Dabei gilt:
ZONE
ist die Zone, die die Instanz enthalten wird.SUBNET_NAME
ist der Name des Subnetzes, das die Instanz enthalten wird.RANGE_CIDR_1
undRANGE_CIDR_2
sind die IP-Bereiche des primären Subnetzes, die der Schnittstelle zugewiesen werden sollen. Die Bereiche können ein bestimmter Bereich sein (192.168.100.0/24
), eine einzelne IP-Adresse (192.168.100.1
) oder eine Netzmaske im CIDR-Format (/24
). Wenn der IP-Bereich nur durch eine Netzmaske angegeben wird, wählt die IP-Zuweisung einen verfügbaren Bereich mit der angegebenen Netzmaske aus und weist ihn der Netzwerkschnittstelle zu. Sie können mehrere Bereiche angeben, wenn Sie sie durch Semikolons (;
) trennen.
Die vollständige Syntax finden Sie in der Dokumentation zur gcloud CLI.
API
Erstellen Sie eine Instanz mit einer Alias-IP-Adresse aus dem primären IP-Adressbereich des Subnetzes der Instanz.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { "networkInterfaces": [ { "aliasIpRanges": [ { "ipCidrRange": "CIDR_RANGE" } ] }, ... ], ... }
Ersetzen Sie die Platzhalter durch gültige Werte:
PROJECT_ID
ist die ID des Projekts, in dem Sie die Instanz erstellen.CIDR_RANGE
ist der IP-Bereich des primären Subnetzes, der der Schnittstelle zugewiesen werden soll. Der Bereich kann ein bestimmter Bereich sein (192.168.100.0/24
), eine einzelne IP-Adresse (192.168.100.1
) oder eine Netzmaske im CIDR-Format (/24
). Wenn Sie den IP-Bereich nur als Netzmaske angeben, wählt die IP-Adressenzuweisung einen verfügbaren Bereich mit der angegebenen Netzmaske aus und weist ihn der Netzwerkschnittstelle zu.ZONE
ist die Google Cloud-Zone, in der die Instanz erstellt wird.
Weitere Informationen finden Sie im Artikel zur Methode instance.insert
.
VM mit einem Alias-IP-Bereich in einem sekundären CIDR-Bereich erstellen
Verwenden Sie diese Vorgehensweise, wenn Sie einen Alias-IP-Bereich aus einem sekundären Bereich des Subnetzes zuweisen möchten. Wenn Sie die Alias-IP-Bereiche vom primären Bereich des Subnetzes getrennt halten, können Sie Firewallregeln erstellen, die Zugriff auf die Dienste erlauben, die in einer VM ausgeführt werden, jedoch nicht auf die primäre IP-Adresse der VM.
Console
- Rufen Sie in der Google Cloud Console die Seite „VM-Instanzen” auf.
Zur Seite „VM-Instanzen” - Klicken Sie auf Instanz erstellen.
- Geben Sie einen Namen für die neue Instanz ein.
- Geben Sie eine Zone an.
- Klicken Sie auf Verwaltung, Sicherheit, Laufwerke, Netzwerke, einzelne Mandanten.
- Klicken Sie auf den Tab Netzwerk.
- Klicken Sie neben der primären Schnittstelle im Bereich Netzwerkschnittstellen auf die Schaltfläche zum Bearbeiten (Bleistiftsymbol).
- Klicken Sie auf Alias-IP-Bereiche einblenden.
- Wählen Sie das Subnetzwerk mit dem sekundären Bereich aus.
- Wählen Sie unter Subnetzbereich den sekundären IP-Bereich aus, den Sie verwenden möchten.
- Geben Sie einen Alias-IP-Bereich in der CIDR-Schreibweise ein. Dies muss ein ungenutzter Teilbereich des sekundären IP-Bereichs sein.
- Klicken Sie auf Erstellen.
gcloud
gcloud compute instances create vm3 \ --zone ZONE \ --network-interface subnet=SUBNET_NAME,aliases=RANGE_NAME:RANGE_CIDR
Dabei gilt:
ZONE
ist die Zone, die die Instanz enthalten wird.SUBNET_NAME
ist der Name des Subnetzes, das die Instanz enthalten wird.RANGE_NAME
ist der Name des sekundären Bereichs des Subnetzes, aus dem der Alias-IP-Bereich bezogen wird.RANGE_CIDR
ist der IP-Bereich, der der Schnittstelle zugewiesen werden soll. Der Bereich kann ein bestimmter Bereich sein (192.168.100.0/24
), eine einzelne IP-Adresse (192.168.100.1
) oder eine Netzmaske im CIDR-Format (/24
). Wenn der IP-Bereich nur durch eine Netzmaske angegeben wird, wählt die IP-Zuweisung einen verfügbaren Bereich mit der angegebenen Netzmaske aus und weist ihn der Netzwerkschnittstelle zu.
Die vollständige Syntax finden Sie in der Dokumentation zur gcloud.
API
Erstellen Sie eine Instanz mit einer Alias-IP-Adresse aus dem sekundären IP-Adressbereich des Subnetzes der Instanz.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { "networkInterfaces": [ { "aliasIpRanges": [ { "ipCidrRange": "SECONDARY_CIDR_RANGE", "subnetworkRangeName": "SECONDARY_RANGE_NAME" } ] }, ... ], ... }
Ersetzen Sie die Platzhalter durch gültige Werte:
PROJECT_ID
ist die ID des Projekts, in dem Sie die Instanz erstellen.SECONDARY_CIDR_RANGE
ist der IP-Bereich, der der Schnittstelle zugewiesen werden soll. Der Bereich kann ein bestimmter Bereich sein (192.168.100.0/24
), eine einzelne IP-Adresse (192.168.100.1
) oder eine Netzmaske im CIDR-Format (/24
). Wenn Sie den IP-Bereich nur als Netzmaske angeben, wählt die IP-Adressenzuweisung einen verfügbaren Bereich mit der angegebenen Netzmaske aus und weist ihn der Netzwerkschnittstelle zu.SECONDARY_RANGE_NAME
ist der Name des sekundären Bereichs des Subnetzes, aus dem der Alias-IP-Bereich bezogen wird.ZONE
ist die Google Cloud-Zone, in der die Instanz erstellt wird.
Weitere Informationen finden Sie im Artikel zur Methode instance.insert
.
VM mit mehreren Schnittstellen und Alias-IP-Adressen erstellen
In diesem Beispiel werden zwei Netzwerke mit je einem Subnetz erstellt. Für die verwendete VM gibt es in beiden Netzwerken Schnittstellen. Wenn Sie bereits zwei VPC-Netzwerke haben, können Sie direkt mit dem Erstellen der VM-Instanz fortfahren.
Console
Erstellen Sie das erste Netzwerk und Subnetz:
- Rufen Sie in der Google Cloud Console die Seite VPC-Netzwerke auf.
Zur VPC-Netzwerkseite - Klicken Sie auf VPC-Netzwerk erstellen.
- Geben Sie als Name
my-network1
ein. - Legen Sie als Modus für Subnetzerstellung die Option
Custom
fest und geben Sie als Name des Subnetzesmy-subnet1
an. - Geben Sie eine Region an.
- Legen Sie den IP-Adressbereich als
172.16.1.0/24
fest. - Klicken Sie auf Sekundären IP-Bereich erstellen.
- Legen Sie Name des Subnetzbereichs auf
range1
fest. - Setzen Sie Sekundärer IP-Bereich auf
10.1.0.0/16
. - Klicken Sie auf Fertig.
- Klicken Sie auf Erstellen.
Erstellen Sie das zweite Netzwerk und Subnetz:
- Rufen Sie in der Google Cloud Console die Seite VPC-Netzwerke auf.
Zur VPC-Netzwerkseite - Klicken Sie auf VPC-Netzwerk erstellen.
- Geben Sie als Name
my-network2
ein. - Legen Sie als Modus für Subnetzerstellung die Option
Custom
fest und geben Sie als Name des Subnetzesmy-subnet2
an. - Geben Sie dieselbe Region wie für das erste Netzwerk und das erste Subnetz an.
- Legen Sie den IP-Adressbereich als
172.16.2.0/24
fest. - Klicken Sie auf Sekundären IP-Bereich erstellen.
- Legen Sie Name des Subnetzbereichs auf
range2
fest. - Setzen Sie Sekundärer IP-Bereich auf
10.2.0.0/16
. - Klicken Sie auf Fertig.
- Klicken Sie auf Erstellen.
Erstellen Sie eine VM mit Schnittstellen in beiden Netzwerken:
- Rufen Sie in der Google Cloud Console die Seite „VM-Instanzen” auf.
Zur Seite „VM-Instanzen” - Klicken Sie auf Instanz erstellen.
- Legen Sie als Zone die Region fest, in der Sie die Subnetze erstellt haben.
- Klicken Sie auf Verwaltung, Sicherheit, Laufwerke, Netzwerke, einzelne Mandanten.
- Klicken Sie auf Netzwerk.
- Klicken Sie auf die erste Netzwerkschnittstelle.
- Legen Sie für Netzwerk
my-network1
fest. - Legen Sie für Subnetzwerk
my-subnet1
fest. - Klicken Sie auf Alias-IP-Bereiche einblenden.
- Klicken Sie auf Alias-IP-Bereich hinzufügen.
- Legen Sie Subnetzbereich auf
Primary
fest. - Setzen Sie Alias-IP-Bereich auf
/32
. - Klicken Sie auf IP-Bereich hinzufügen.
- Legen Sie Subnetzbereich auf
range1
fest. - Setzen Sie Alias-IP-Bereich auf
/24
. - Klicken Sie auf Fertig.
- Klicken Sie auf Netzwerkschnittstelle hinzufügen.
- Wählen Sie
my-network2
aus. - Legen Sie für Subnetzwerk
my-subnet2
fest. - Klicken Sie auf Alias-IP-Bereiche einblenden.
- Klicken Sie auf Alias-IP-Bereich hinzufügen.
- Legen Sie Subnetzbereich auf
Primary
fest. - Setzen Sie Alias-IP-Bereich auf
/32
. - Klicken Sie auf IP-Bereich hinzufügen.
- Legen Sie Subnetzbereich auf
range2
fest. - Setzen Sie Alias-IP-Bereich auf
/24
. - Klicken Sie auf Fertig.
- Klicken Sie auf Erstellen.
gcloud
Erstellen Sie das erste Netzwerk:
gcloud compute networks create my-network1 --subnet-mode CUSTOM
Fügen Sie ein Subnetz hinzu:
gcloud compute networks subnets create my-subnet1 \ --network my-network1 \ --range 172.16.1.0/24 \ --secondary-range range1=10.1.0.0/16
Erstellen Sie ein zweites Netzwerk:
gcloud compute networks create my-network2 --subnet-mode CUSTOM
Fügen Sie ein Subnetz hinzu:
gcloud compute networks subnets create my-subnet2 \ --network my-network2 \ --range 172.16.2.0/24 \ --secondary-range range2=10.2.0.0/16
Erstellen Sie eine VM mit Schnittstellen in beiden Netzwerken. Die erste, unter
my-subnet1
aufgeführte Netzwerkschnittstelle ist die primäre Schnittstelle:gcloud compute instances create multi-nic-alias-vm \ --machine-type f1-micro \ --network-interface "subnet=my-subnet1,aliases=/32;range1:/24" \ --network-interface "subnet=my-subnet2,aliases=/32;range2:/24"
Blenden Sie mit dem Anzeigebefehl die Schnittstellen und ihre Adressen ein:
gcloud compute instances describe multi-nic-alias-vm
... networkInterfaces: - ... aliasIpRanges: - ipCidrRange: 172.16.1.2/32 - ipCidrRange: 10.1.0.0/24 subnetworkRangeName: range1 name: nic0 network: .../networks/my-network1 networkIP: 172.16.1.3 subnetwork: .../subnetworks/my-subnet1 ... - ... aliasIpRanges: - ipCidrRange: 172.16.2.2/32 - ipCidrRange: 10.2.0.0/24 subnetworkRangeName: range2 name: nic1 network: .../networks/my-network2 networkIP: 172.16.2.3 subnetwork: .../subnetworks/my-subnet2
API
Erstellen Sie zwei VPC-Netzwerke im benutzerdefinierten Modus mit den Namen
my-network1
undmy-network2
. Weitere Informationen finden Sie unter Netzwerk im benutzerdefinierten Modus erstellen.Fügen Sie den VPC-Netzwerken Subnetze hinzu. Weitere Informationen finden Sie unter Subnetze hinzufügen.
Fügen Sie
my-network1
ein Subnetz mit dem Namenmy-subnet1
hinzu. Geben Sie172.16.1.0/24
für den primären Bereich und10.1.0.0/16
für den sekundären Bereich mit dem Namenrange1
an.Fügen Sie
my-network2
ein Subnetz mit dem Namenmy-subnet2
hinzu. Geben Sie172.16.2.0/24
für den primären Bereich und10.2.0.0/16
für den sekundären Bereich mit dem Namenrange2
an.
Erstellen Sie eine VM mit Schnittstellen in beiden Netzwerken.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { "networkInterfaces": [ { "subnetwork": "projects/PROJECT_ID/regions/REGION/subnetworks/my-subnet1", "aliasIpRanges": [ { "ipCidrRange": "/32", }, { "subnetworkRangeName": "range1", "ipCidrRange": "/24" } ] }, { "subnetwork": "projects/PROJECT_ID/regions/REGION/subnetworks/my-subnet2", "aliasIpRanges": [ { "ipCidrRange": "/32", }, { "subnetworkRangeName": "range2", "ipCidrRange": "/24" } ] } ], ... }
Ersetzen Sie die Platzhalter durch gültige Werte:
PROJECT_ID
ist die ID des Projekts, in dem Sie die Instanz erstellen.REGION
ist die Google Cloud-Region, in der sich das Subnetz befindet. Die Subnetze müssen sich in derselben Region wie die Instanz befinden.ZONE
ist die Google Cloud-Zone, in der die Instanz erstellt wird.
Weitere Informationen finden Sie im Artikel zur Methode
instance.insert
.
Alias-IP-Bereiche zu vorhandener Instanz hinzufügen
Sie können einer laufenden Instanz einen Alias-IP-Bereich hinzufügen.
Die neuen Adressen sind möglicherweise nicht sofort verfügbar, selbst wenn der API-Aufruf abgeschlossen ist. Sie sind erst verfügbar, wenn dem Gastbetriebssystem die Adressen und Routen hinzugefügt wurden.
Console
- Rufen Sie in der Google Cloud Console die Seite „VM-Instanzen” auf.
Zur Seite „VM-Instanzen” - Klicken Sie auf den Namen einer vorhandenen Instanz.
- Klicken Sie auf Bearbeiten.
- Klicken Sie auf die Netzwerkschnittstelle nic0 oder die Netzwerkschnittstelle, der Sie einen Alias-IP-Bereich hinzufügen.
- Klicken Sie auf Alias-IP-Bereiche einblenden.
- Klicken Sie auf IP-Bereich hinzufügen.
- Wählen Sie einen Subnetzbereich aus.
- Geben Sie einen Alias-IP-Bereich ein.
- Klicken Sie auf Fertig.
- Klicken Sie auf Speichern.
gcloud
gcloud compute instances network-interfaces update INSTANCE_NAME \ --zone ZONE \ [--network-interface NETWORK_INTERFACE; default="nic0"] --aliases "RANGE_NAME_1:RANGE_CIDR_1;RANGE_NAME_2:RANGE_CIDR_2;..."
Ersetzen Sie dabei Folgendes:
ZONE
ist die Zone, die die Instanz enthält.NETWORK_INTERFACE
ist der Name der Netzwerkschnittstelle, zu der Sie einen Alias-IP-Adressbereich hinzufügen.RANGE_NAME_1
undRANGE_NAME_2
sind die Namen der sekundären Bereiche des Subnetzes, aus denen der Alias-IP-Bereich bezogen wird. Wenn Sie Bereiche aus dem primären Bereich des Subnetzes zuweisen, lassen Sie diesen Wert weg.RANGE_CIDR_1
undRANGE_CIDR_2
sind die IP-Bereiche, die der Schnittstelle zugewiesen werden sollen. Die Bereiche können ein bestimmter Bereich sein (192.168.100.0/24
), eine einzelne IP-Adresse (192.168.100.1
) oder eine Netzmaske im CIDR-Format (/24
). Wenn der IP-Bereich nur durch eine Netzmaske angegeben wird, wählt die IP-Zuweisung einen verfügbaren Bereich mit der angegebenen Netzmaske aus und weist ihn der Netzwerkschnittstelle zu.
Die vollständige Syntax finden Sie in der Dokumentation zur gcloud.
API
Fügen Sie einer vorhandenen Instanz Alias-IP-Bereiche hinzu.
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/updateNetworkInterface?networkInterface=NETWORK_INTERFACE_NAME { "aliasIpRanges": [ { "ipCidrRange": "SECONDARY_IP_RANGE", "subnetworkRangeName": "SECONDARY_RANGE_NAME" }, existing ranges... ], "fingerprint": "INTERFACE_FINGERPRINT" }
Ersetzen Sie die Platzhalter durch gültige Werte:
PROJECT_ID
ist die ID des Projekts, das die zu ändernde Instanz enthält.INSTANCE_NAME
ist der Name der Instanz, die geändert werden soll.NETWORK_INTERFACE_NAME
ist der Name der zu ändernden Netzwerkschnittstelle der Instanz.INTERFACE_FINGERPRINT
ist die Fingerabdruck-ID für die vorhandene Netzwerkschnittstelle, die beim Beschreiben einer Instanz angegeben wird.SECONDARY_CIDR_RANGE
ist der IP-Bereich, der der Schnittstelle zugewiesen werden soll. Der Bereich kann ein bestimmter Bereich sein (192.168.100.0/24
), eine einzelne IP-Adresse (192.168.100.1
) oder eine Netzmaske im CIDR-Format (/24
). Wenn Sie den IP-Bereich nur als Netzmaske angeben, wählt die IP-Adressenzuweisung einen verfügbaren Bereich mit der angegebenen Netzmaske aus und weist ihn der Netzwerkschnittstelle zu.SECONDARY_RANGE_NAME
ist der Name des sekundären Bereichs des Subnetzes, aus dem der Alias-IP-Bereich bezogen wird. Wenn Sie Bereiche aus dem primären Bereich des Subnetzes zuweisen, lassen Sie dieses Feld weg.ZONE
ist die Google Cloud-Zone, in der die Instanz erstellt wird.
Weitere Informationen finden Sie im Artikel zur Methode instance.updateNetworkInterface
.
Alias-IP-Bereiche für eine vorhandene Instanz ändern
Sie können einer vorhandenen Instanz weitere Alias-IP-Bereiche hinzufügen oder einen oder mehrere Bereiche entfernen.
Die Adressänderungen sind möglicherweise nicht sofort sichtbar. Der API-Aufruf muss beendet sein und das Gastbetriebssystem muss die Adressen und Routen ändern.
Console
- Rufen Sie in der Google Cloud Console die Seite „VM-Instanzen” auf.
Zur Seite „VM-Instanzen” - Klicken Sie auf den Namen einer vorhandenen Instanz.
- Klicken Sie auf Bearbeiten.
- Klicken Sie auf die Netzwerkschnittstelle nic0 oder die zu ändernde Netzwerkschnittstelle.
- Klicken Sie auf Alias-IP-Bereiche einblenden.
- Klicken Sie zum Hinzufügen eines Alias-IP-Bereichs auf Alias-IP-Bereich hinzufügen.
- Wenn Sie einen Alias-IP-Bereich entfernen möchten, klicken Sie neben dem Alias-IP-Bereich auf X.
- Klicken Sie auf Fertig.
- Klicken Sie auf Speichern.
gcloud
gcloud compute instances network-interfaces update INSTANCE_NAME \ --zone ZONE \ [--network-interface NETWORK_INTERFACE; default="nic0"] \ --aliases "RANGES_TO_RETAIN;NEW_RANGE_NAME:NEW_RANGE_CIDR;..."
Ersetzen Sie dabei Folgendes:
ZONE
: Die Zone, die die Instanz enthältNETWORK_INTERFACE
: der Name der Netzwerkschnittstelle, die Sie ändernRANGES_TO_RETAIN
sind die vorhandenen Bereiche im FormatCURRENT_RANGE_NAME
:CURRENT_RANGE_CIDR
, die Sie beibehalten möchten. Wenn Sie einer Instanz, die keine Bereiche enthält, Bereiche hinzufügen, sind diese Werte leer. Wenn Sie alle Bereiche aus der Instanz entfernen, ist das gesamte Feld--aliases
leer.NEW_RANGE_NAME
: der Name des sekundären Bereichs des Subnetzes, aus dem neue Alias-IP-Bereiche abgerufen werden. Wenn Sie Bereiche aus dem primären Bereich des Subnetzes zuweisen, lassen Sie diesen Wert weg.NEW_RANGE_CIDR
: der IP-Adressbereich, der der Schnittstelle zugewiesen werden soll. Dieser Bereich kann ein bestimmter Bereich sein (192.168.100.0/24
), eine einzelne IP-Adresse (192.168.100.1
) oder eine Netzmaske im CIDR-Format (/24
). Wenn der IP-Bereich nur durch eine Netzmaske angegeben wird, wählt die IP-Zuweisung einen verfügbaren Bereich mit der angegebenen Netzmaske aus und weist ihn der Netzwerkschnittstelle zu.
Wenn Sie Bereiche hinzufügen möchten, führen Sie den Befehl aus und geben Sie alle vorhandenen sowie alle neuen Alias-IP-Bereiche an. Paare werden durch Semikolons getrennt. Beispiel: --aliases
"CURRENT_RANGE_NAME:CURRENT_RANGE_CIDR;NEW_RANGE_NAME:NEW_RANGE_CIDR"
Wenn Sie Bereiche entfernen möchten, führen Sie den Befehl aus und geben Sie nur die Alias-IP-Bereiche an, die Sie behalten möchten. Zum Beibehalten von Bereichen aus einem sekundären Bereich müssen Sie den Namen des sekundären Bereichs angeben. Ein CIDR-Bereich kann ein bestimmter Bereich sein (192.168.100.0/24
) oder eine einzelne IP-Adresse (192.168.100.1
). Beispiel: --aliases "RANGE_NAME:RANGE_CIDR;RANGE_CIDR"
.
Wenn Sie alle Bereiche entfernen möchten, führen Sie den Befehl aus und geben Sie das Flag --aliases
an. Verwenden Sie für eine leere Eingabe Anführungszeichen. Beispiel: --aliases ""
.
Sie können nicht im selben gcloud
-Befehl Bereiche hinzufügen und entfernen. Wenn Sie mit der Google Cloud-CLI bestimmte Bereiche entfernen bzw. hinzufügen möchten, führen Sie den Befehl zuerst aus, um nicht benötigte Bereiche zu entfernen. Anschließend führen Sie ihn noch einmal aus, um benötigte Bereiche hinzuzufügen.
Die vollständige Syntax finden Sie in der Dokumentation zu gcloud
.
API
Fügen Sie einer Netzwerkschnittstelle einer vorhandenen Instanz Alias-IP-Adressbereiche hinzu oder entfernen Sie sie.
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/updateNetworkInterface?networkInterface=NETWORK_INTERFACE_NAME { "aliasIpRanges": [ include new and existing ranges to add them... exclude existing ranges to remove them... ], "fingerprint": "INTERFACE_FINGERPRINT" }
Ersetzen Sie die Platzhalter durch gültige Werte:
PROJECT_ID
ist die ID des Projekts, das die zu ändernde Instanz enthält.INSTANCE_NAME
ist der Name der Instanz, die geändert werden soll.NETWORK_INTERFACE_NAME
ist der Name der zu ändernden Netzwerkschnittstelle der Instanz.INTERFACE_FINGERPRINT
ist die Fingerabdruck-ID für die vorhandene Netzwerkschnittstelle, die beim Beschreiben einer Instanz angegeben wird.
Weitere Informationen finden Sie im Artikel zur Methode instance.updateNetworkInterface
.
Fehlerbehebung
VM-Instanz kann nicht mit Alias-IP-Adresse erstellt werden
Überprüfen Sie, ob das Netzwerk ein VPC-Netzwerk ist. Alias-IP-Adressen werden in Legacy-Netzwerken nicht unterstützt.
gcloud compute networks list --filter="name=NETWORK_NAME"
Die Einstellung
MODE
für das Netzwerk sollte „auto” oder „custom” lauten.Prüfen Sie Folgendes, wenn ein Subnetzbereichsname angegeben ist:
gcloud compute networks subnets describe SUBNET_NAME --region=REGION
- Das Subnetz hat einen sekundären Bereich mit dem entsprechenden Namen.
- Der angeforderte Alias-IP-Bereich liegt in diesem sekundären Bereich oder er ist kleiner als der primäre Bereich (bei Verwendung einer Netzmaske).
Wenn kein Subnetzbereichsname angegeben ist, müssen Sie darauf achten, dass der angeforderte Alias-IP-Bereich innerhalb des primären Subnetzbereichs liegt oder (bei Verwendung einer Netzmaske) kleiner als der Primärbereich ist.
Verbindung zur Alias-IP-Adresse nicht möglich
Überprüfen Sie die Firewallregeln.
Listen Sie alle Firewallregeln auf:
gcloud compute firewall-rules list --format=json
Überprüfen Sie, ob Traffic von und zu der Alias-IP-Adresse zugelassen wird.
Fügen Sie ggf. Firewallregeln hinzu, um das Pingen von Alias-IP-Adressen zu ermöglichen:
gcloud compute firewall-rules create FIREWALL_NAME1 \ --network NETWORK_NAME --priority 0 --source-ranges ALIAS_IP \ --allow icmp
gcloud compute firewall-rules create FIREWALL_NAME2 \ --network NETWORK_NAME --priority 0 --direction out \ --destination-ranges ALIAS_IP --allow icmp
Stellen Sie sicher, dass die VM die IP-Aliasbereiche als lokal erkennt. Bei Linux-Distributionen wie Debian kann dies in der Regel so geschehen:
Stellen Sie eine Verbindung zur Instanz her und führen Sie den folgenden Befehl aus:
ip route show table local
Die Ausgabe sollte Folgendes enthalten:
local ALIAS_IP_RANGE dev eth0 proto 66 scope host
ip_aliases = true
muss in/etc/default/instance_configs.cfg
enthalten sein. Wenn Sie dies ändern müssen, müssen Sie auch den Gast-Agent neu starten:systemctl restart google-guest-agent
Wenn keine lokale Route vorhanden ist, konfigurieren Sie sie mit diesem Befehl:
ip route add to local ALIAS_IP_RANGE dev eth0 proto 66
Automatisch gestarteter Dienst wird nicht an die Alias-IP-Adresse gebunden
Unter unterstützten Linux-Distributionen werden Alias-IP-Adressen vom vorinstallierten Gastagenten automatisch als lokale Adressen festgelegt. Das vereinfacht die Einrichtung, da keine Konfiguration auf Betriebssystemebene erforderlich ist.
Das bedeutet jedoch auch, dass das Betriebssystem die Alias-IP-Adressen nicht als lokale Adressen erkennt, bevor der Gastagent ausgeführt wird. Wenn Sie auf Ihrer VM automatisch startende Dienste haben, die vor dem Gastagenten gestartet werden, können sie nicht an die Alias-IP-Adressen gebunden werden.
Ein Apache-HTTP-Server kann beispielsweise mit dem folgenden Fehler beendet werden:
could not bind to address ALIAS_IP:80
Konfigurieren Sie Ihren Dienst so, dass er nach dem Gastagenten gestartet wird, um dieses Problem zu beheben. Führen Sie bei Distributionen, die systemctl
verwenden, die folgenden Schritte aus.
Führen Sie als privilegierter Nutzer den folgenden Befehl aus, um ein Drop-in-Snippet für den Dienst hinzuzufügen, der nicht ordnungsgemäß funktioniert, z. B. wäre ein Apache HTTP Server unter Debian
apache2
:systemctl edit YOUR_SERVICE
Fügen Sie im Texteditor die folgenden Zeilen hinzu. Achten Sie darauf, dass Sie die Zeilen über der Zeile mit
Lines below this comment will be discarded
einfügen.[Unit] After=google-guest-agent.service
Mein sekundärer IP-Bereich ist nicht aufgeführt
Sekundäre IP-Bereiche werden nicht als reguläre Subnetze aufgeführt. Um zu prüfen, ob der sekundäre IP-Bereich des Subnetzes erstellt wurde, verwenden Sie den Befehl gcloud compute networks subnets describe
.
Erstellen Sie ein Subnetz.
gcloud compute networks subnets create my-subnet \ --region us-central1 \ --network my-network \ --range 10.9.0.0/16 \ --secondary-range secondaryrange1=172.16.0.0/12
Created [https://www.googleapis.com/compute/v1/projects/google.com:my-project/regions/us-central1/subnetworks/my-subnet]. NAME REGION NETWORK RANGE my-subnet us-central1 my-network 10.9.0.0/16
Listen Sie Ihre Subnetze auf.
gcloud compute networks subnets list
NAME REGION NETWORK RANGE my-subnet us-central1 my-network 10.9.0.0/16
Rufen Sie Details zu einem Subnetz ab, um die sekundären Bereiche anzuzeigen.
gcloud compute networks subnets describe my-subnet --region us-central1
... ipCidrRange: 10.9.0.0/16 ... secondaryIpRanges: - ipCidrRange: 172.16.0.0/12 rangeName: secondaryrange1 ...
Der angegebene sekundäre Bereich des Subnetzes existiert nicht
Wenn Sie beim Erstellen einer VM die Fehlermeldung erhalten, dass der sekundäre Bereich nicht existiert, prüfen Sie Folgendes:
- Das Subnetz muss einen sekundären Bereich mit dem angegebenen Namen haben.
- Sie müssen Ihre VM innerhalb des Subnetzes erstellen, in dem sich der sekundäre Bereich befindet.
Dieser Fehler wird angezeigt, wenn Sie die folgenden Befehle ausführen:
Erstellen Sie ein Subnetz mit einem sekundären Bereich.
gcloud compute networks subnets create my-subnet \ --region us-central1 \ --network my-network \ --range 10.9.0.0/16 \ --secondary-range secondaryrange1=172.16.0.0/12
Created [https://www.googleapis.com/compute/v1/projects/google.com:my-project/regions/us-central1/subnetworks/my-subnet]. NAME REGION NETWORK RANGE my-subnet us-central1 my-network 10.9.0.0/16
Erstellen Sie eine Instanz in einem anderen Netzwerk, z. B. im Standardnetzwerk, und nicht im neu erstellten Subnetz.
gcloud compute instances create instance-1 \ --zone us-central1-a \ --network default
Created [https://www.googleapis.com/compute/v1/projects/google.com:my-project/zones/us-central1-a/instances/instance-1]. NAME ZONE MACHINE_TYPE PREEMPTIBLE INTERNAL_IP EXTERNAL_IP STATUS instance-1 us-central1-a n1-standard-1 10.128.0.2 47.82.96.9 RUNNING
Versuchen Sie, einen Alias-IP-Bereich aus dem in Schritt 1 erstellten Subnetz zuzuweisen. Der Befehl schlägt fehl, da sich der sekundäre Bereich in einem anderen Subnetz befindet als die Instanz.
gcloud compute instances network-interfaces update instance-1 \ --zone us-central1-a \ --aliases secondaryrange1:172.16.0.10/32
ERROR: (gcloud.compute.instances.network-interfaces.update) HTTPError 400: Invalid value for field 'resource.aliasIpRanges[0].subnetworkRangeName': 'secondaryrange'. The specified subnetwork secondary range does not exist.
Erstellen Sie eine andere Instanz. Die Schnittstelle dieser Instanz sollte in dem in Schritt 1 erstellten Subnetz enthalten sein.
gcloud compute instances create instance-2 \ --zone us-central1-a \ --network-interface subnet=my-subnet
Created [https://www.googleapis.com/compute/v1/projects/google.com:my-project/zones/us-central1-a/instances/instance-2]. NAME ZONE MACHINE_TYPE PREEMPTIBLE INTERNAL_IP EXTERNAL_IP STATUS instance-2 us-central1-a n1-standard-1 10.9.0.2 38.74.204.89 RUNNING
Fügen Sie der Schnittstelle einen Alias-IP-Bereich hinzu. Dieses Mal ist der Befehl erfolgreich, da sich die Schnittstelle und der sekundäre Bereich im selben Subnetz befinden.
gcloud compute instances network-interfaces update instance-2 \ --zone us-central1-a \ --aliases secondaryrange1:172.16.0.10/32
Updating network interface [nic0] of instance [instance-2]...done.
Hinzufügen und Entfernen sekundärer IP-Bereiche in derselben Anfrage nicht möglich
Das Hinzufügen und Entfernen von sekundären IP-Bereichen des Subnetzes in demselben Befehl wird derzeit nicht unterstützt. Mit den gcloud-Befehlen zum Hinzufügen und Entfernen von sekundären Bereichen bleiben die vorhandenen Bereiche erhalten, die nicht geändert werden.
Führen Sie zwei einzelne Befehle aus, um Bereiche hinzuzufügen bzw. zu entfernen.
gcloud compute networks subnets update SUBNET_NAME \ --add-secondary-ranges RANGE_NAME_1=RANGE_CIDR_1,RANGE_NAME_2=RANGE_CIDR_2,...
gcloud compute networks subnets update SUBNET_NAME \ --remove-secondary-ranges RANGE_NAME_1,RANGE_NAME_2,...
Weitere Details zu diesem Befehl erhalten Sie über gcloud compute networks subnets update --help
.
Gleichzeitiges Hinzufügen und Entfernen von Alias-IP-Bereichen nicht möglich
Das Hinzufügen und Entfernen von Alias-IP-Bereichen einer VM in derselben Anfrage wird derzeit nicht unterstützt.
Der gcloud
-Befehl zum Aktualisieren von Alias-IP-Bereichen behält die vorhandenen Bereiche NICHT bei, daher wird das Auslassen eines Bereichs als Anfrage zum Löschen des Bereichs behandelt.
Wenn beispielsweise die aktuelle VM den Aliasbereich 10.9.27.0/24
hat und der neue angeforderte Bereich /24
ist, wird das Ausführen des Befehls zum Anfordern des Bereichs /24
zurückgewiesen, da dies als Entfernen des Bereichs 10.9.27.0/24
und Hinzufügen des Bereichs /24
interpretiert wird.
Der vorhandene Bereich muss explizit entfernt werden, bevor Sie den neuen Bereich hinzufügen können.
Beispiel:
Erstellen Sie einen Alias-IP-Bereich.
gcloud compute instances create vm --network-interface "subnet=s1,aliases=10.9.27.0/24"
Versuchen Sie,
/24
hinzuzufügen, ohne den vorhandenen Bereich anzugeben. Ein Fehler wird angezeigt.gcloud compute instances network-interfaces update vm --aliases "/24" ERROR: (gcloud.compute.instances.network-interfaces.update) HTTPError 400: Invalid value for field 'resource.aliasIpRanges': ''. Cannot simultaneously add and remove alias IP ranges.
Aktualisieren Sie die VM, um alle Alias-IP-Bereiche zu entfernen.
gcloud compute instances network-interfaces update vm --aliases "" Updating network interface [nic0] of instance [vm]...done.
Fügen Sie den neuen Alias-IP-Bereich hinzu.
gcloud compute instances network-interfaces update vm --aliases "/24" Updating network interface [nic0] of instance [vm]...done.
Weitere Details zu diesem Befehl erhalten Sie über gcloud compute instances network-interfaces update --help
.
Quell-Tags und Quelldienstkonten in Firewallregeln
Quelldienstkonten und Quell-Tags in Firewallregeln beziehen sich nur auf primäre Netzwerk-IP-Adressen der passenden Instanzen, nicht jedoch auf Alias-IP-Adressen. Eine auf Quell-Tags basierende Firewallregel hat also keinen Einfluss auf den Traffic von einer Alias-IP-Adresse der Instanz. Alias-IP-Adressen können den Firewallregeln als Quell- oder Zielbereiche hinzugefügt werden.
Probleme mit VMs mit mehreren Schnittstellen und Alias-IP-Bereichen
Weitere Informationen erhalten Sie unter Fehlerbehebung für mehrere Schnittstellen.
Deaktivierte cbr0
-Bridge auf selbstverwalteten Kubernetes-Clustern durch Aktivieren von IP-Aliassen für Google Cloud-Images
Bei Images, die von Google bereitgestellt werden, erstellt der Google Gast-Agent lokale Routen für Alias-IP-Adressbereiche. Bei selbst verwalteten Kubernetes-Clustern müssen Sie den Google Gast-Agent so konfigurieren, dass er keine lokalen Routen für Alias-IP-Bereiche erstellt. Dieser Schritt ist für GKE-Cluster nicht erforderlich, da GKE die Erstellung lokaler Routen für Alias-IP-Bereiche auf seinen Knoten-Images deaktiviert.
Symptome:
Kubernetes-Pods verlieren den Netzwerkzugriff, wenn die vom Gast-Agent erstellte lokale Route den Alias-IP-Bereich aus der Schnittstelle
cbr0
entfernt.Eine Paketerfassung auf dem Linux-Bridge-Gerät (
tcpdump -ni cbr arp
) zeigt, dass keine ARP-Antworten von der Schnittstellecbr0
vorliegen, obwohl diese Schnittstelle aktiv ist.Die Untersuchung der lokalen Routentabelle (
ip route show table local
) zeigt, dass der Alias-IP-Adressbereich der primären Netzwerkschnittstelle (z. B.eth0
oderens4
) statt der Container-Bridge-Schnittstelle (cbr0
) zugewiesen ist.
Behebung:
Führen Sie den entsprechenden Befehl aus, der unter Installierte Pakete für die Gastumgebung aufgeführt ist, um festzustellen, ob auf der Knoten-VM der Google-Gast-Agent oder ein älteres Compute Engine-Paket ausgeführt wird.
Wenn auf Ihrer Knoten-VM der Google-Gast-Agent nicht ausgeführt wird, installieren Sie den Gast-Agent oder verwenden ein neueres von Google bereitgestelltes Image.
Konfigurieren Sie den Google-Gast-Agent so, dass er die lokalen Routen für Alias-IP-Bereiche und Weiterleitungsregeln überspringt.
Bearbeiten Sie
/etc/default/instance_configs.cfg
und legen Sieip_forwarding=false
im Abschnitt[NetworkInterfaces]
fest. Sie können den Abschnitt[NetworkInterfaces]
erstellen, wenn er nicht bereits in der Dateiinstance_configs.cfg
vorhanden ist.Führen Sie eine der folgenden Aufgaben aus:
Starten Sie den Dienst
google-guest-agent.service
neu und bearbeiten Sie die lokale Routentabelle.Führen Sie
sudo systemctl restart google-guest-agent.service
aus, um den Dienstgoogle-guest-agent.service
neu zu starten. Bearbeiten Sie dann die lokale Routentabelle, um alle Einträge für die Alias-IP-Adressbereiche zu entfernen. Beispiel:sudo ip route del local ALIAS_IP_RANGE dev DEVICE_IDENTIFIER
Ersetzen Sie dabei Folgendes:
ALIAS_IP_RANGE
: der Alias-IP-Adressbereich.DEVICE_IDENTIFIER
: die Kennung der Netzwerkschnittstelle. Beispiel:ens4
odereth0
Weitere Informationen finden Sie in der Dokumentation zum Google-Gast-Agent im Abschnitt "Konfiguration".