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.
  • 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 oder auto. Legacy-Netzwerke haben den Modus legacy.

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

  1. Rufen Sie in der Google Cloud Console die Seite „VPC-Netzwerke“ auf.
    Zur VPC-Netzwerkseite
  2. Klicken Sie auf den Namen eines bestehenden Netzwerks.
  3. Klicken Sie auf Subnetz hinzufügen.
  4. Geben Sie einen Namen für das neue Subnetz ein.
  5. Geben Sie die Region an.
  6. Geben Sie einen IP-Adressbereich in der CIDR-Schreibweise ein. (Beispiel: 10.65.61.0/24)
  7. Klicken Sie auf Sekundären IP-Bereich erstellen.
  8. Geben Sie einen Namen des Subnetzbereichs ein.
  9. Geben Sie einen sekundären IP-Bereich in der CIDR-Schreibweise ein. (Beispiel: 10.9.0.0/24)
  10. 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.
  11. 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,...

Dabei gilt:

  • 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 und RANGE_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"
  },
  ...]
}

Dabei gilt:

  • 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 und SECONDARY_IP_RANGE_2: Die IP-Adressbereiche, die für die sekundären Bereiche verwendet werden sollen.
  • SECONDARY_RANGE_NAME_1 und SECONDARY_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.

resource "google_compute_subnetwork" "network-with-private-secondary-ip-ranges" {
  project       = var.project_id # Replace this with your project ID in quotes
  name          = "test-subnetwork"
  ip_cidr_range = "10.2.0.0/16"
  region        = "us-central1"
  network       = "test-vpc-network"
  secondary_ip_range {
    range_name    = "tf-test-secondary-range-update1"
    ip_cidr_range = "192.168.10.0/24"
  }
}

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

  1. Rufen Sie in der Google Cloud Console die Seite „VPC-Netzwerke“ auf.
    Zur VPC-Netzwerkseite
  2. Klicken Sie auf den Namen eines zu ändernden Subnetzes, um seine Detailseite anzuzeigen.
  3. Klicken Sie auf Bearbeiten.
  4. Klicken Sie im Abschnitt Sekundäre IP-Bereiche auf IP-Bereich hinzufügen.
  5. Geben Sie einen Namen für Name des Subnetzbereichs ein.
  6. Geben Sie einen Bereich für Sekundärer IP-Bereich in CIDR-Schreibweise ein. Beispiel: 10.9.0.0/24
  7. 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.
  8. 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,...

Dabei gilt:

  • 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 und RANGE_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 und SECONDARY_IP_RANGE_2 sind die IP-Adressbereiche, die für die sekundären Bereiche verwendet werden sollen.
  • SECONDARY_RANGE_NAME_1 und SECONDARY_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

  1. Rufen Sie in der Google Cloud Console die Seite „VPC-Netzwerke“ auf.
    Zur VPC-Netzwerkseite
  2. Klicken Sie auf den Namen eines zu ändernden Subnetzes, um seine Detailseite anzuzeigen.
  3. Klicken Sie auf Bearbeiten.
  4. Klicken Sie im Bereich Sekundäre IP-Bereiche neben dem zu entfernenden sekundären Bereich auf X.
  5. 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 und RANGE_NAME_2 sind die Namen der sekundären Bereiche, die aus dem Zielsubnetz SUBNET_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

  1. Rufen Sie in der Google Cloud Console die Seite „VM-Instanzen” auf.
    Zur Seite „VM-Instanzen”
  2. Klicken Sie auf Instanz erstellen.
  3. Geben Sie einen Namen für die neue Instanz ein.
  4. Geben Sie eine Zone an.
  5. Klicken Sie auf Verwaltung, Sicherheit, Laufwerke, Netzwerke, einzelne Mandanten.
  6. Klicken Sie auf den Tab Netzwerk.
  7. Klicken Sie neben der primären Schnittstelle im Bereich Netzwerkschnittstellen auf die Schaltfläche zum Bearbeiten (Bleistiftsymbol).
  8. Klicken Sie auf Alias-IP-Bereiche einblenden.
  9. Lassen Sie die Einstellung für den Subnetzbereich auf Primär.
  10. Geben Sie einen Alias-IP-Bereich in der CIDR-Schreibweise ein. Dies muss ein ungenutzter Teilbereich des Primärbereichs sein.
  11. 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 und RANGE_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

  1. Rufen Sie in der Google Cloud Console die Seite „VM-Instanzen” auf.
    Zur Seite „VM-Instanzen”
  2. Klicken Sie auf Instanz erstellen.
  3. Geben Sie einen Namen für die neue Instanz ein.
  4. Geben Sie eine Zone an.
  5. Klicken Sie auf Verwaltung, Sicherheit, Laufwerke, Netzwerke, einzelne Mandanten.
  6. Klicken Sie auf den Tab Netzwerk.
  7. Klicken Sie neben der primären Schnittstelle im Bereich Netzwerkschnittstellen auf die Schaltfläche zum Bearbeiten (Bleistiftsymbol).
  8. Klicken Sie auf Alias-IP-Bereiche einblenden.
  9. Wählen Sie das Subnetzwerk mit dem sekundären Bereich aus.
  10. Wählen Sie unter Subnetzbereich den sekundären IP-Bereich aus, den Sie verwenden möchten.
  11. Geben Sie einen Alias-IP-Bereich in der CIDR-Schreibweise ein. Dies muss ein ungenutzter Teilbereich des sekundären IP-Bereichs sein.
  12. 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:

  1. Rufen Sie in der Google Cloud Console die Seite VPC-Netzwerke auf.
    Zur VPC-Netzwerkseite
  2. Klicken Sie auf VPC-Netzwerk erstellen.
  3. Geben Sie als Name my-network1 ein.
  4. Legen Sie als Modus für Subnetzerstellung die Option Custom fest und geben Sie als Name des Subnetzes my-subnet1 an.
  5. Geben Sie eine Region an.
  6. Legen Sie den IP-Adressbereich als 172.16.1.0/24 fest.
  7. Klicken Sie auf Sekundären IP-Bereich erstellen.
  8. Legen Sie Name des Subnetzbereichs auf range1 fest.
  9. Setzen Sie Sekundärer IP-Bereich auf 10.1.0.0/16.
  10. Klicken Sie auf Fertig.
  11. Klicken Sie auf Erstellen.

Erstellen Sie das zweite Netzwerk und Subnetz:

  1. Rufen Sie in der Google Cloud Console die Seite VPC-Netzwerke auf.
    Zur VPC-Netzwerkseite
  2. Klicken Sie auf VPC-Netzwerk erstellen.
  3. Geben Sie als Name my-network2 ein.
  4. Legen Sie als Modus für Subnetzerstellung die Option Custom fest und geben Sie als Name des Subnetzes my-subnet2 an.
  5. Geben Sie dieselbe Region wie für das erste Netzwerk und das erste Subnetz an.
  6. Legen Sie den IP-Adressbereich als 172.16.2.0/24 fest.
  7. Klicken Sie auf Sekundären IP-Bereich erstellen.
  8. Legen Sie Name des Subnetzbereichs auf range2 fest.
  9. Setzen Sie Sekundärer IP-Bereich auf 10.2.0.0/16.
  10. Klicken Sie auf Fertig.
  11. Klicken Sie auf Erstellen.

Erstellen Sie eine VM mit Schnittstellen in beiden Netzwerken:

  1. Rufen Sie in der Google Cloud Console die Seite „VM-Instanzen” auf.
    Zur Seite „VM-Instanzen”
  2. Klicken Sie auf Instanz erstellen.
  3. Legen Sie als Zone die Region fest, in der Sie die Subnetze erstellt haben.
  4. Klicken Sie auf Verwaltung, Sicherheit, Laufwerke, Netzwerke, einzelne Mandanten.
  5. Klicken Sie auf Netzwerk.
  6. Klicken Sie auf die erste Netzwerkschnittstelle.
  7. Legen Sie für Netzwerk my-network1 fest.
  8. Legen Sie für Subnetzwerk my-subnet1 fest.
  9. Klicken Sie auf Alias-IP-Bereiche einblenden.
  10. Klicken Sie auf Alias-IP-Bereich hinzufügen.
  11. Legen Sie Subnetzbereich auf Primary fest.
  12. Setzen Sie Alias-IP-Bereich auf /32.
  13. Klicken Sie auf IP-Bereich hinzufügen.
  14. Legen Sie Subnetzbereich auf range1 fest.
  15. Setzen Sie Alias-IP-Bereich auf /24.
  16. Klicken Sie auf Fertig.
  17. Klicken Sie auf Netzwerkschnittstelle hinzufügen.
  18. Wählen Sie my-network2 aus.
  19. Legen Sie für Subnetzwerk my-subnet2 fest.
  20. Klicken Sie auf Alias-IP-Bereiche einblenden.
  21. Klicken Sie auf Alias-IP-Bereich hinzufügen.
  22. Legen Sie Subnetzbereich auf Primary fest.
  23. Setzen Sie Alias-IP-Bereich auf /32.
  24. Klicken Sie auf IP-Bereich hinzufügen.
  25. Legen Sie Subnetzbereich auf range2 fest.
  26. Setzen Sie Alias-IP-Bereich auf /24.
  27. Klicken Sie auf Fertig.
  28. Klicken Sie auf Erstellen.

gcloud

  1. Erstellen Sie das erste Netzwerk:

    gcloud compute networks create my-network1 --subnet-mode CUSTOM
    
  2. 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
    
  3. Erstellen Sie ein zweites Netzwerk:

    gcloud compute networks create my-network2 --subnet-mode CUSTOM
    
  4. 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
    
  5. 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"
    
  6. 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

  1. Erstellen Sie zwei VPC-Netzwerke im benutzerdefinierten Modus mit den Namen my-network1 und my-network2. Weitere Informationen finden Sie unter Netzwerk im benutzerdefinierten Modus erstellen.

  2. Fügen Sie den VPC-Netzwerken Subnetze hinzu. Weitere Informationen finden Sie unter Subnetze hinzufügen.

    1. Fügen Sie my-network1 ein Subnetz mit dem Namen my-subnet1 hinzu. Geben Sie 172.16.1.0/24 für den primären Bereich und 10.1.0.0/16 für den sekundären Bereich mit dem Namen range1 an.

    2. Fügen Sie my-network2 ein Subnetz mit dem Namen my-subnet2 hinzu. Geben Sie 172.16.2.0/24 für den primären Bereich und 10.2.0.0/16 für den sekundären Bereich mit dem Namen range2 an.

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

  1. Rufen Sie in der Google Cloud Console die Seite „VM-Instanzen” auf.
    Zur Seite „VM-Instanzen”
  2. Klicken Sie auf den Namen einer vorhandenen Instanz.
  3. Klicken Sie auf Bearbeiten.
  4. Klicken Sie auf die Netzwerkschnittstelle nic0 oder die Netzwerkschnittstelle, der Sie einen Alias-IP-Bereich hinzufügen.
  5. Klicken Sie auf Alias-IP-Bereiche einblenden.
  6. Klicken Sie auf IP-Bereich hinzufügen.
  7. Wählen Sie einen Subnetzbereich aus.
  8. Geben Sie einen Alias-IP-Bereich ein.
  9. Klicken Sie auf Fertig.
  10. 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;..."

Dabei gilt:

  • 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 und RANGE_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 und RANGE_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/multinic/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.
  • 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

  1. Rufen Sie in der Google Cloud Console die Seite „VM-Instanzen” auf.
    Zur Seite „VM-Instanzen”
  2. Klicken Sie auf den Namen einer vorhandenen Instanz.
  3. Klicken Sie auf Bearbeiten.
  4. Klicken Sie auf die Netzwerkschnittstelle nic0 oder die zu ändernde Netzwerkschnittstelle.
  5. Klicken Sie auf Alias-IP-Bereiche einblenden.
  6. Klicken Sie zum Hinzufügen eines Alias-IP-Bereichs auf Alias-IP-Bereich hinzufügen.
  7. Wenn Sie einen Alias-IP-Bereich entfernen möchten, klicken Sie neben dem Alias-IP-Bereich auf X.
  8. Klicken Sie auf Fertig.
  9. 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;..."
  • ZONE ist die Zone, die die Instanz enthält.
  • NETWORK_INTERFACE ist der Name der Netzwerkschnittstelle, die Sie ändern möchten.
  • RANGES_TO_RETAIN sind die vorhandenen Bereiche im Format CURRENT_RANGE_NAME:CURRRENT_RANGE_CIDR, die Sie beibehalten möchten. Wenn Sie Bereiche einer Instanz hinzufügen, die keine enthält, sind diese Werte leer. Wenn Sie alle Bereiche aus der Instanz entfernen, ist das gesamte Feld --aliases leer.
  • NEW_RANGE_NAME ist der Name des sekundären Bereichs des Subnetzes, aus dem neue Alias-IP-Bereiche bezogen werden. Wenn Sie Bereiche aus dem primären Bereich des Subnetzes zuweisen, lassen Sie diesen Wert weg.
  • NEW_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.

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:CURRRENT_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/multinic/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.
  • 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

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

  2. 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).
  3. 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

  1. Überprüfen Sie die Firewallregeln.

    1. Listen Sie alle Firewallregeln auf:

      gcloud compute firewall-rules list --format=json
      
    2. Überprüfen Sie, ob Traffic von und zu der Alias-IP-Adresse zugelassen wird.

    3. 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
      
  2. Stellen Sie sicher, dass die VM die IP-Aliasbereiche als lokal erkennt. Bei Linux-Distributionen wie Debian kann dies in der Regel so geschehen:

    1. 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
      
    2. 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
      
    3. Wenn keine lokale Route vorhanden ist, konfigurieren Sie sie mit diesem Befehl:

      ip route add to local ALIAS_IP_RANGE dev eth0 proto 66
      

Autostart-Dienst wird nicht an Alias-IP-Adresse gebunden

Bei unterstützten Linux-Distributionen werden vom Alias-Gast-Agent automatisch Alias-IP-Adressen als lokale Adressen festgelegt. Dies vereinfacht die Einrichtung, da keine Konfiguration auf Betriebssystemebene erforderlich ist.

Dies bedeutet jedoch auch, dass das Betriebssystem die Alias-IP-Adressen nicht als lokale Adressen erkennt, bevor der Gast-Agent ausgeführt wird. Wenn Sie Dienste auf Ihrer VM automatisch starten und vor dem Gast-Agent starten, 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

Zur Behebung dieses Problems konfigurieren Sie Ihren Dienst so, dass er nach dem Gast-Agent startet. Führen Sie bei Distributionen, die systemctl verwenden, die folgenden Schritte aus.

  1. 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
    
  2. Fügen Sie im Texteditor die folgenden Zeilen hinzu: Achten Sie darauf, die Zeilen oberhalb der Zeile hinzuzufügen, die Lines below this comment will be discarded liest.

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

  1. 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
    
  2. 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
    
  3. 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:

  1. 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
    
  2. 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
    
  3. 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.
    
  4. 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
    
  5. 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:

  1. Erstellen Sie einen Alias-IP-Bereich.

    gcloud compute instances create vm --network-interface "subnet=s1,aliases=10.9.27.0/24"
    
  2. 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.
    
  3. 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.
    
  4. 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 Schnittstelle cbr0 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 oder ens4) statt der Container-Bridge-Schnittstelle (cbr0) zugewiesen ist.

Behebung:

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

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

  3. Konfigurieren Sie den Google-Gast-Agent so, dass er die lokalen Routen für Alias-IP-Bereiche und Weiterleitungsregeln überspringt.

    1. Bearbeiten Sie /etc/default/instance_configs.cfg und legen Sie ip_forwarding=false im Abschnitt [NetworkInterfaces] fest. Sie können den Abschnitt [NetworkInterfaces] erstellen, wenn er nicht bereits in der Datei instance_configs.cfg vorhanden ist.

    2. Führen Sie eine der folgenden Aufgaben aus:

      • Starten Sie die Knoten-VM neu.

      • 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 Dienst google-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
        

        Dabei gilt:

        • ALIAS_IP_RANGE: der Alias-IP-Adressbereich.
        • DEVICE_IDENTIFIER: die Kennung der Netzwerkschnittstelle. Beispiel: ens4oder eth0

    Weitere Informationen finden Sie in der Dokumentation zum Google-Gast-Agent im Abschnitt "Konfiguration".

Nächste Schritte