Öffentlicher IP-Adressdienst

Mit dem öffentlichen (externen) Netzwerkdienst für IP-Adressen können Sie eine Verbindung aus dem Internet zu einer virtuellen Arbeitslastmaschine (VM), einer Management-Appliance oder einem Load-Balancer in Ihrer privaten Cloud herstellen. 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

Wenn Sie das gcloud-Befehlszeilentool oder die API zum Verwalten Ihrer VMware Engine-Ressourcen verwenden möchten, 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-Referenzdokumentation.

API

API-Beispiele in dieser Dokumentation verwenden das cURL-Befehlszeilentool zum Abfragen der API. Im Rahmen der 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 gcloud-Tool 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. Überprüfen, ob TOKEN richtig eingestellt ist

    echo $TOKEN
    
    Output:
    TOKEN
    

Verwenden Sie nun das Autorisierungstoken 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

Python-Codebeispiele in dieser Dokumentation verwenden die VMware Engine-Bibliothek für die Kommunikation mit der API. Für diesen Ansatz 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 die entsprechenden Befehle in der Shell ausführen.

      gcloud auth application-default login
    

    oder verwenden Sie eine Dienstkonto-Schlüsseldatei

      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: Name dieser Netzwerkrichtlinie
  • NETWORK_NAME: das Netzwerk für diese Anfrage. Er muss das Format REGION-default haben.
  • IP_RANGE: der CIDR-Bereich für Gateways für Internetzugriff und externe IP-Adressen in CIDR-Notation. Ein CIDR-Block gemäß RFC 1918 mit dem Präfix „/26“ ist erforderlich
  • REGION: 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 ist der Name dieser Netzwerkrichtlinie.
  • PROJECT_ID ist die Projekt-ID für diese Anfrage.
  • REGION: Region des Netzwerks
  • IP_RANGE: der CIDR-Bereich für Gateways für Internetzugriff und externe IP-Adressen in CIDR-Notation. Ein CIDR-Block gemäß RFC 1918 mit dem Präfix „/26“ ist erforderlich.
  • NETWORK_NAME: Das Netzwerk, für das diese Netzwerkrichtlinie gilt, muss das Format >REGION-default haben.

Python

Erstellen Sie mit der folgenden Funktion eine neue Netzwerkrichtlinie, wobei external_ip und internet_access auf True festgelegt 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.