Öffentlicher IP-Adressdienst

Mit dem Netzwerkdienst der öffentlichen (externen) IP-Adresse können Sie eine Verbindung vom Internet zu eine virtuelle Arbeitslast (VM), eine Management-Appliance oder ein Load-Balancer in Ihrer privaten Cloud ausgeführt wird. Beispiel: Wenn Sie auf Ihrer Arbeitslast-VM einen Webserver ausführen, können Sie den Web-Traffic über eine öffentliche IP-Adresse und das Internet bereitstellen. Standardmäßig ist der öffentliche IP-Netzwerkdienst deaktiviert.

Die Zuweisung einer öffentlichen IP-Adresse zu einer Ressource bietet außerdem folgende Vorteile:

  • DDoS-Angriff (Distributed Denial of Service) wird verhindert. Dieser Schutz wird automatisch für die öffentliche IP-Adresse aktiviert.
  • Ständig aktivierte Traffic-Überwachung und Echtzeit-Exfiltration gängiger Angriffe auf Netzwerkebene
  • Schutz und Minderung von Angriffe über das gesamte Netzwerk hinweg. Das Netzwerk kann dazu verwendet werden, den Angriffstraffic über Regionen hinweg zu verteilen und zu minimieren.

Verhalten

Eine öffentliche IP-Adresse kann nur einer einzigen privaten IP-Adresse zugewiesen werden. Die öffentliche IP-Adresse wird dieser privaten IP-Adresse zugewiesen, bis Sie die Zuweisung aufheben. Eine Ressource, die einer öffentlichen IP-Adresse zugeordnet ist, verwendet immer die öffentliche IP-Adresse für den Internetzugriff. Sie können bis zu 100 öffentliche IP-Adressen für das mit VMware Engine verbundene primäre VPC-Netzwerk reservieren.

Standardmäßig wird eingehender Traffic über eine öffentliche IP-Adresse abgelehnt und nur ausgehender Internetzugriff ist zulässig. Erstellen Sie eine Firewallregel für die öffentliche IP-Adresse für den jeweiligen Port, um eingehenden Traffic zuzulassen.

Voraussetzungen für gcloud und API

So verwenden Sie das gcloud-Befehlszeilentool oder die API zum Verwalten Ihrer VMware Engine Ressourcen empfehlen wir, die Tools wie unten beschrieben zu konfigurieren.

gcloud

  1. Legen Sie Ihre Standardprojekt-ID fest:

    gcloud config set project PROJECT_ID
    
  2. Legen Sie eine Standardregion und/oder -zone fest:

    gcloud config set compute/region REGION
    gcloud config set compute/zone ZONE

Weitere Informationen zum gcloud vmware-Tool finden Sie in der Cloud SDK-Referenz.

API

In den API-Beispielen in diesem Dokumentensatz wird die API mit dem cURL-Befehlszeilentool abgefragt. Für die cURL-Anfrage ist ein gültiges Zugriffstoken erforderlich. Es gibt viele Möglichkeiten, ein gültiges Zugriffstoken zu erhalten. In den folgenden Schritten wird das Tool gcloud verwendet, um ein Zugriffstoken zu generieren:

  1. In Google Cloud anmelden

    gcloud auth login
    
  2. Zugriffstoken generieren und in TOKEN exportieren

    export TOKEN=`gcloud auth print-access-token`
    
  3. Prüfen, ob TOKEN richtig festgelegt ist

    echo $TOKEN
    
    Output:
    TOKEN
    

Verwenden Sie das Autorisierungstoken jetzt in Ihren Anfragen an die API. Beispiel:

curl -X GET -H "Authorization: Bearer \"$TOKEN\""  -H "Content-Type: application/json; charset=utf-8" https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations

Python

Bei Python-Codebeispielen in dieser Dokumentation wird die VMware Engine-Bibliothek verwendet, um mit der API zu kommunizieren. Um diesen Ansatz verwenden zu können, muss die Bibliothek installiert und die Standardanmeldedaten für Anwendungen konfiguriert werden.

  1. Python-Bibliothek herunterladen und installieren

     pip install google-cloud-vmwareengine
    
  2. Konfigurieren Sie die ADC-Informationen, indem Sie diesen Befehl in Ihrer Shell ausführen.

      gcloud auth application-default login
    

    oder eine Dienstkontoschlüsseldatei verwenden

      export GOOGLE_APPLICATION_CREDENTIALS="FILE_PATH"
    

Weitere Informationen zur Bibliothek finden Sie auf der Referenzseite oder in den Codebeispielen auf GitHub.

Öffentlichen IP-Netzwerkdienst in einer Region aktivieren

Bevor Sie einer Arbeitslast-VM eine öffentliche IP-Adresse zuweisen können, müssen Sie den öffentlichen IP-Netzwerkdienst in der Region aktivieren:

Console

  1. Zum VMware Engine-Portal
  2. Gehen Sie zu Netzwerk > Regionale Einstellungen.
  3. Wählen Sie in der Zeile, die dem gewünschten Bereich entspricht, Bearbeiten aus. Wenn die Region nicht in der Übersichtstabelle aufgeführt ist, fügen Sie die Region hinzu. Klicken Sie dazu auf Region hinzufügen.
  4. Stellen Sie den öffentlichen IP-Dienst auf Aktiviert ein.
    • Wenn Sie den öffentlichen IP-Dienst aktivieren möchten, müssen Sie auch den Netzwerkdienst für den Internetzugriff aktivieren.
    • Es ist möglich, den Internetzugriffsdienst zu aktivieren und den öffentlichen IP-Dienst deaktiviert zu lassen. In diesem Fall sind Point-to-Site-VPN und die öffentliche IP-Zuweisung nicht verfügbar.
  5. Geben Sie im Feld Edge Services CIDR den Adressbereich ein, der bei der Adressierung des öffentliche IP-Gateways von VMware Engine (Adressbereich /26) verwendet werden soll.
  6. Klicken Sie auf Senden.

Wenn der Vorgang abgeschlossen ist, ändert sich der Netzwerkstatus des Dienstes in Aktiviert (in der Regel nach einigen Minuten).

gcloud

Führen Sie mit dem gcloud-Tool den folgenden Befehl aus, um eine Netzwerkrichtlinie zu erstellen:

gcloud vmware network-policies create NETWORK_POLICY_NAME \
    --vmware-engine-network NETWORK_NAME --edge-services-cidr IP_RANGE \
    --location REGION --external-ip-access --internet-access

Ersetzen Sie Folgendes:

  • NETWORK_POLICY_NAME: der Name dieses Netzwerks Richtlinie
  • NETWORK_NAME: das Netzwerk für diese Anfrage. Muss im Format REGION-default sein.
  • IP_RANGE: der für das Internet zu verwendende CIDR-Bereich und externe IP-Zugriffsgateways in CIDR-Notation. Ein RFC 1918-CIDR-Block mit dem Präfix „/26“ ist erforderlich.
  • REGION: die Region des Netzwerks

API

curl -X POST -H "Authorization: Bearer TOKEN"  -H "Content-Type: application/json; charset=utf-8" https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/networkPolicies?networkPolicyId=NETWORK_POLICY_NAME -d '{
  "vmwareEngineNetwork":"projects/PROJECT_ID/locations/REGION/vmwareEngineNetworks/NETWORK_NAME",
  "edgeServiceCidr":IP_RANGE,
  "internetAccess: {
    "enabled": true
   },
   "externalIp": {
     "enabled": true
   }
 }

Ersetzen Sie Folgendes:

  • NETWORK_POLICY_NAME: der Name dieses Netzwerks .
  • PROJECT_ID ist die Projekt-ID für diese Anfrage.
  • REGION: die Region des Netzwerks
  • IP_RANGE: der für das Internet zu verwendende CIDR-Bereich und externe IP-Zugriffsgateways in CIDR-Notation. Es ist ein RFC 1918-CIDR-Block mit dem Präfix „/26“ erforderlich.
  • NETWORK_NAME: die Netzwerkrichtlinie für dieses Netzwerk gilt für, muss das Format >REGION-default haben

Python

Erstellen Sie mit der folgenden Funktion eine neue Netzwerkrichtlinie, bei der external_ip und internet_access auf True gesetzt sind:

from google.api_core import operation
from google.cloud import vmwareengine_v1


def create_network_policy(
    project_id: str,
    region: str,
    ip_range: str,
    internet_access: bool,
    external_ip: bool,
) -> operation.Operation:
    """
    Creates a new network policy in a given network.

    Args:
        project_id: name of the project you want to use.
        region: name of the region you want to use. I.e. "us-central1"
        ip_range: the CIDR range to use for internet access and external IP access gateways,
            in CIDR notation. An RFC 1918 CIDR block with a "/26" suffix is required.
        internet_access: should internet access be allowed.
        external_ip: should external IP addresses be assigned.

    Returns:
        An operation object representing the started operation. You can call its .result() method to wait for
        it to finish.

    Raises:
        ValueError if the provided ip_range doesn't end with /26.
    """
    if not ip_range.endswith("/26"):
        raise ValueError(
            "The ip_range needs to be an RFC 1918 CIDR block with a '/26' suffix"
        )

    network_policy = vmwareengine_v1.NetworkPolicy()
    network_policy.vmware_engine_network = f"projects/{project_id}/locations/{region}/vmwareEngineNetworks/{region}-default"
    network_policy.edge_services_cidr = ip_range
    network_policy.internet_access.enabled = internet_access
    network_policy.external_ip.enabled = external_ip

    request = vmwareengine_v1.CreateNetworkPolicyRequest()
    request.network_policy = network_policy
    request.parent = f"projects/{project_id}/locations/{region}"
    request.network_policy_id = f"{region}-default"

    client = vmwareengine_v1.VmwareEngineClient()
    return client.create_network_policy(request)

Öffentliche IP-Adresse zuweisen

So weisen Sie eine öffentliche IP-Adresse für eine Arbeitslast-VM zu:

  1. Zugriff auf das Google Cloud VMware Engine-Portal
  2. Gehen Sie zu Netzwerk > Öffentliche IP-Adressen.
  3. Klicken Sie auf Zuweisen.
  4. Geben Sie im Feld Name einen Namen für den öffentlichen IP-Adresseintrag ein.
  5. Wählen Sie die Private Cloud aus, die die Arbeitslast-VM enthält.
  6. Wählen Sie den Standort aus, an dem Sie die zugewiesene öffentliche IP-Adresse verwenden möchten.
  7. Geben Sie im Feld Angehängte lokale Adresse die lokale IP-Adresse der VM ein, der Sie diese öffentliche IP-Adresse zuweisen möchten.
  8. Klicken Sie auf Senden, um mit der Zuweisung der öffentlichen IP-Adresse zu beginnen.

Sie können auf der Seite Aktivitäten > Aufgaben den Status der Aufgabe prüfen. Nach Abschluss der Zuweisung wird der neue Eintrag auf der Seite Öffentliche IP-Adressen mit dem Status Betriebsfähig angezeigt.