Internetzugang für Arbeitslast-VMs konfigurieren

Sie konfigurieren den Internetzugriffsnetzwerkdienst für VMware-Arbeitslasten in Google Cloud VMware Engine pro Region. Sie können Internettraffic von Ihren Arbeitslasten-VMware mithilfe der Internet-Edge von Google Cloud oder einer lokalen Verbindung leiten.

Arbeitslast-VMs, die auf das Internet zugreifen können, können auch über den privaten Google-Zugriff auf Google Cloud-Dienste zugreifen. Der Zugriff auf Google Cloud-Dienste mit privatem Google-Zugriff verbleibt in Google Cloud-Netzwerken und geht nicht ins Internet.

Der Netzwerkdienst für den Internetzugang unterstützt Folgendes:

  • Bis zu 100 öffentliche IP-Adressen pro Region
  • Bis zu 300 Firewallregeln pro Firewalltabelle
  • Durchsatz von bis zu 2 Gbit/s für 128.000 gleichzeitige Verbindungen für jede Region
  • TCP-, UDP- und ICMP-Protokolle

Application Level Gateway wird vom Netzwerkdienst für den Internetzugriff nicht unterstützt (ALG).

Hinweise

Um Änderungen an den Einstellungen für den Internetzugriff Ihrer privaten Cloud vorzunehmen, benötigen Sie Administratorzugriff auf VMware Engine.

Um den Internetzugriff zu aktivieren, benötigen Sie einen CIDR-Adressbereich für Edge-Dienste. Wenn Sie den Internetzugang oder öffentliche IP-Netzwerkdienste aktivieren, werden Gateways im Kontext des Dienstmandanten bereitgestellt.

Verwenden Sie den CIDR-Adressbereich für Edge-Dienste für die Adressierung von Internet- und öffentlichen IP-Gateways von VMware Engine. Der Adressbereich muss die folgenden Anforderungen erfüllen:

  • Halten Sie RFC 1918 als privaten Bereich ein.
  • Sie dürfen sich nicht mit anderen VMware Engine-Adressbereichen überschneiden, wie z. B. dem Adressbereich für Verwaltungsgeräte oder NSX-T-Segmente.
  • Sie dürfen sich nicht mit Adressbereichen überschneiden, die in VMware Engine beworben werden, beispielsweise aus VPC-Netzwerk-Subnetzen oder aus lokalen Netzwerken.
  • Geben Sie einen IP-Adressbereich mit 26 Subnetzmasken-Bits (/26) an.

Google Cloud CLI und API-Anforderungen

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 -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, um die API abfragen. Für das cURL ist ein gültiges Zugriffstoken erforderlich Es gibt viele Möglichkeiten, ein gültiges Zugriffstoken zu erhalten. folgende verwenden Sie das gcloud-Tool, um ein Zugriffstoken zu generieren:

  1. Melden Sie sich in Google Cloud an:

    gcloud auth login
    
  2. Zugriffstoken generieren und in TOKEN exportieren:

    export TOKEN=`gcloud auth print-access-token`
    
  3. Überprüfen Sie, ob das TOKEN richtig eingestellt ist:

    echo $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

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. Laden Sie die Python-Bibliothek herunter und installieren Sie sie:

    pip install google-cloud-vmwareengine
    
  2. Konfigurieren Sie die ADC-Informationen, indem Sie den entsprechenden Befehl in Ihrer 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.

Internetzugriffsdienst konfigurieren

Sie können Ihren Arbeitslast-VMs Zugriff auf das Internet gewähren, indem Sie eine Netzwerkrichtlinie aktualisieren.

Standardmäßig ist der Netzwerkdienst zum Internetzugriff deaktiviert.

Internetzugriffsdienst in einer Region aktivieren

Console

So aktivieren Sie den Internetzugriffsdienst in einer Region:

  1. Rufen Sie in der Google Cloud Console die Seite Netzwerkrichtlinien auf.

    Zu den Netzwerkrichtlinien

  2. Klicke auf Erstellen, um eine neue Richtlinie zu erstellen. Wenn Sie eine bestehenden Netzwerkrichtlinie, Klicken Sie auf das Dreipunkt-Menü und wählen Sie Bearbeiten aus.

  3. Füllen Sie die Details Ihrer Netzwerkrichtlinie aus, einschließlich der Auswahl der Netzwerk und Region, für die die Richtlinie gilt.

  4. Stellen Sie den Internetzugriff auf Aktiviert und aktivieren Sie ihn optional. Externer IP-Adressdienst.

  5. Geben Sie im Feld Edge Services CIDR den Adressbereich ein, der verwendet werden soll, wenn VMware Engine-Internetgateway adressieren (/26-Adressbereich).

  6. Klicken Sie auf Erstellen.

Wenn der Vorgang abgeschlossen ist, ändert sich der Status 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 projects/PROJECT_ID/locations/LOCATIONS/vmwareEngineNetworks/NETWORK_ID \
    --edge-services-cidr=IP_RANGE \
    --location=LOCATION \
    --internet-access

Ersetzen Sie Folgendes:

  • NETWORK_POLICY_NAME: der Name dieses Netzwerks .
  • NETWORK_ID: die Netzwerkrichtlinie für dieses Netzwerk gilt für
  • IP_RANGE: der für das Internet zu verwendende CIDR-Bereich und externe IP-Zugriffsgateways in CIDR-Notation. Ein RFC CIDR-Block von 1918 mit einem "/26" -Präfix ist erforderlich.
  • LOCATION: global für Legacy-Netzwerke oder den Region eines Standardnetzwerks

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/LOCATION/networkPolicies?networkPolicyId=NETWORK_POLICY_NAME

'{
  "vmwareEngineNetwork":"projects/PROJECT_ID/locations/LOCATION/vmwareEngineNetworks/NETWORK_ID",
  "edgeServiceCidr":IP_RANGE,
  "internetAccess: {
    "enabled": true
   },
   "externalIp": {
     "enabled": true
   }
}"

Ersetzen Sie Folgendes:

  • NETWORK_POLICY_NAME: der Name dieses Netzwerks . Muss das Format REGION-default haben.
  • PROJECT_ID ist die Projekt-ID für diese Anfrage.
  • LOCATION: global für Legacy-Netzwerke oder den Region eines Standardnetzwerks
  • IP_RANGE: der für das Internet zu verwendende CIDR-Bereich und externe IP-Zugriffsgateways in CIDR-Notation. Ein RFC CIDR-Block von 1918 mit einem "/26" -Präfix ist erforderlich.
  • NETWORK_ID: das Netzwerk für dieses Netzwerk Richtlinie

Python

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)

Internetzugriffsdienst in einer Region deaktivieren

So deaktivieren Sie den Internetzugriffsdienst in einer Region:

Console

  1. Rufen Sie in der Google Cloud Console die Seite Netzwerkrichtlinien auf.

    Zu den Netzwerkrichtlinien

  2. Klicken Sie in der Zeile für die entsprechende Netzwerkrichtlinie auf das Mehr .

  3. Ändern Sie die Einstellung für Internetzugriff auf Deaktiviert.

    • Sie müssen den öffentlichen IP-Dienst deaktivieren, bevor Sie den Internetzugriff deaktivieren können.
    • Sie müssen alle zugewiesenen öffentlichen IP-Adressen und Point-to-Site-VPN-Gateways löschen, bevor Sie den öffentlichen IP-Dienst deaktivieren können.
  4. Klicken Sie auf Speichern.

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

gcloud

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

gcloud vmware network-policies update NETWORK_POLICY_NAME \
  --no-internet-access \
  --location LOCATION

Ersetzen Sie Folgendes:

  • NETWORK_POLICY_NAME: der Name dieses Netzwerks Richtlinie
  • LOCATION: global für Legacy-Netzwerke oder den Region eines Standardnetzwerks

API

curl -X PATCH -H "Authorization: Bearer TOKEN"  -H "Content-Type: application/json; charset=utf-8" https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/networkPolicies/NETWORK_POLICY_NAME?updateMask=internetAccess.enabled,externalIp.enabled -d "{
  "internetAccess: {
    "enabled": false
 },
  "externalIp": {
    "enabled": false
   }
}"

Ersetzen Sie Folgendes:

  • PROJECT_ID ist die Projekt-ID für diese Anfrage.
  • LOCATION: global für Legacy-Netzwerke oder den Region eines Standardnetzwerks
  • NETWORK_POLICY_NAME: der Name dieses Netzwerks Richtlinie

Python

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


def update_network_policy(
    project_id: str, region: str, internet_access: bool, external_ip: bool
) -> operation.Operation:
    """
    Updates a 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".
        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.
    """

    client = vmwareengine_v1.VmwareEngineClient()
    request = vmwareengine_v1.UpdateNetworkPolicyRequest()
    request.update_mask = "internetAccess.enabled,externalIp.enabled"
    network_policy = vmwareengine_v1.NetworkPolicy()
    network_policy.name = (
        f"projects/{project_id}/locations/{region}/networkPolicies/{region}-default"
    )
    network_policy.vmware_engine_network = f"projects/{project_id}/locations/{region}/vmwareEngineNetworks/{region}-default"
    network_policy.internet_access.enabled = internet_access
    network_policy.external_ip.enabled = external_ip

    request.network_policy = network_policy

    return client.update_network_policy(request)

Lokale Verbindung für den Arbeitslast-Internetzugriff verwenden

Optional können Sie Internet-Traffic von Ihren Arbeitslast-VMs in VMware Engine über eine lokale Verbindung weiterleiten. Der Traffic wird anhand des Status der folgenden Elemente weitergeleitet:

  • Standardmäßiges Route Advertisement (0.0.0.0/0) aus lokaler Umgebung
  • Öffentlicher IP-Dienst von VMware Engine
  • Internetzugriffsdienst von VMware Engine
  • VPC Service Controls für die VPC-Peering-Verbindung zwischen Ihrem VPC-Netzwerk und VMware Engine

Routing von Internettraffic über eine lokale Verbindung aktivieren

So greifen Sie von Ihren Arbeitslast-VMs über eine lokale führen Sie zwei Schritte aus:

  1. Bieten Sie die Standardroute (0.0.0.0/0) lokal von einer lokalen Verbindung (Cloud VPN oder Cloud Interconnect) an. Prüfen Sie das Cloud VPN-Gateway oder den Cloud Router, in dem die lokale Verbindung zu Ihrem VPN endet.
  2. Internetzugriff und öffentlichen IP-Dienst für die VMware Engine-Netzwerk

Console

  1. Rufen Sie in der Google Cloud Console die Seite Netzwerkrichtlinien auf.

    Zu den Netzwerkrichtlinien

  2. Klicken Sie in der Zeile für die entsprechende Netzwerkrichtlinie auf das Mehr .

  3. Ändern Sie die Option Öffentliche IP-Adresse auf Deaktiviert.

  4. Ändern Sie die Einstellung für Internetzugriff auf Deaktiviert.

  5. Klicken Sie auf Speichern.

  6. Wenn Sie ein Legacy-VMware-Engine-Netzwerk verwenden: Aktivieren Sie VPC Service Controls für die VPC-Peering-Verbindung zwischen Ihren VPC-Netzwerk und VMware Engine mithilfe der gcloud services vpc-peerings enable-vpc-service-controls-Befehl:

    gcloud services vpc-peerings enable-vpc-service-controls \
       --network=VPC_NETWORK \
       --service=servicenetworking.googleapis.com

gcloud

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

gcloud vmware network-policies update NETWORK_POLICY_NAME \
  --no-internet-access \
  --no-external-ip-address \
  --location LOCATION

Ersetzen Sie Folgendes:

  • NETWORK_POLICY_NAME: der Name dieses Netzwerks Richtlinie
  • LOCATION: global für Legacy-Netzwerke oder den Region eines Standardnetzwerks

Wenn Sie ein Legacy-VMware-Engine-Netzwerk verwenden: Aktivieren Sie VPC Service Controls für die VPC-Peering-Verbindung zwischen Ihren VPC-Netzwerk und VMware Engine mithilfe der gcloud services vpc-peerings enable-vpc-service-controls-Befehl:

gcloud services vpc-peerings enable-vpc-service-controls \
   --network=VPC_NETWORK \
   --service=servicenetworking.googleapis.com

API

curl -X PATCH -H "Authorization: Bearer TOKEN"  -H "Content-Type: application/json; charset=utf-8" https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/networkPolicies/NETWORK_POLICY_NAME?updateMask=internetAccess.enabled,externalIp.enabled

"{
  "internetAccess: {
    "enabled": false
   },
  "externalIp: {
    "enabled": false
   }
}"

Wenn Sie ein Legacy-VMware-Engine-Netzwerk verwenden: Aktivieren Sie VPC Service Controls für die VPC-Peering-Verbindung zwischen Ihren VPC-Netzwerk und VMware Engine mithilfe der gcloud services vpc-peerings enable-vpc-service-controls-Befehl:

gcloud services vpc-peerings enable-vpc-service-controls \
   --network=VPC_NETWORK_NAME \
   --service=servicenetworking.googleapis.com

Python

Legen Sie internet_access und external_ip auf False fest.

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


def update_network_policy(
    project_id: str, region: str, internet_access: bool, external_ip: bool
) -> operation.Operation:
    """
    Updates a 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".
        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.
    """

    client = vmwareengine_v1.VmwareEngineClient()
    request = vmwareengine_v1.UpdateNetworkPolicyRequest()
    request.update_mask = "internetAccess.enabled,externalIp.enabled"
    network_policy = vmwareengine_v1.NetworkPolicy()
    network_policy.name = (
        f"projects/{project_id}/locations/{region}/networkPolicies/{region}-default"
    )
    network_policy.vmware_engine_network = f"projects/{project_id}/locations/{region}/vmwareEngineNetworks/{region}-default"
    network_policy.internet_access.enabled = internet_access
    network_policy.external_ip.enabled = external_ip

    request.network_policy = network_policy

    return client.update_network_policy(request)

Wenn Sie ein Legacy-VMware-Engine-Netzwerk verwenden: Aktivieren Sie VPC Service Controls für die VPC-Peering-Verbindung zwischen Ihren VPC-Netzwerk und VMware Engine mithilfe der gcloud services vpc-peerings enable-vpc-service-controls-Befehl:

gcloud services vpc-peerings enable-vpc-service-controls \
   --network=VPC_NETWORK \
   --service=servicenetworking.googleapis.com

Das Aktivieren von VPC Service Controls ist für das Routing des Internettraffics über eine lokale Verbindung oder eine VPC in Ihrem Projekt unerlässlich.

Wenn VPC Service Controls aktiviert ist, nimmt Google Cloud die folgenden Routingänderungen im VPC-Netzwerk des Diensterstellers vor (in diesem Fall das Dienstmandantenprojekt, das mit VMware Engine verbunden ist):

  • Entfernt die IPv4-Standardroute (Ziel 0.0.0.0/0, Standard-Internetgateway für den nächsten Hop).
  • Leitet Internettraffic über die VPC-Peering-Standardroute weiter.

Beispiel:

VPC Service Controls für ein Verbindungs-Peering eines Netzwerks namens „my-network“ aktivieren Für das aktuelle Projekt verwenden Sie den Befehl gcloud services vpc-peerings enable-vpc-service-controls:

gcloud services vpc-peerings enable-vpc-service-controls \
    --network=my-network \
    --service=servicenetworking.googleapis.com

Routing von Internet-Traffic über eine lokale Verbindung deaktivieren

Um das Routing von Internettraffic von Ihren Arbeitslast-VMs über einen lokale Verbindung, nicht mehr die Standardroute (0.0.0.0/0) anbieten und Deaktivieren Sie VPC Service Controls für die VPC-Peering-Verbindung.

Bei Verwendung eines Legacy-VMware Engine-Netzwerks: Deaktivieren Sie VPC Service Controls für die VPC-Peering-Verbindung zwischen Ihren VPC-Netzwerk und VMware Engine, verwenden Sie gcloud services vpc-peerings disable-vpc-service-controls-Befehl:

gcloud services vpc-peerings disable-vpc-service-controls \
    --network=VPC_NETWORK_NAME \
    --service=servicenetworking.googleapis.com

Nächste Schritte