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 bei 128.000 gleichzeitigen Verbindungen für jede Region
  • TCP-, UDP- und ICMP-Protokolle

Der Netzwerkdienst für den Internetzugang unterstützt keine ALG-Funktionen (Application Level Gateway).

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.

Anforderungen an die Google Cloud CLI 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 -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 abzufragen. Ein gültiges Zugriffstoken ist im Rahmen der cURL-Anfrage erforderlich. Es gibt viele Möglichkeiten, ein gültiges Zugriffstoken abzurufen. In den folgenden Schritten wird das gcloud-Tool verwendet, um ein Zugriffstoken zu generieren:

  1. Melden Sie sich in Google Cloud an:

    gcloud auth login
    
  2. Generieren Sie ein Zugriffstoken und exportieren Sie es in TOKEN:

    export TOKEN=`gcloud auth print-access-token`
    
  3. Überprüfen Sie, ob TOKEN ordnungsgemäß festgelegt 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

In den Python-Codebeispielen in dieser Dokumentation wird die VMware Engine-Bibliothek für die Kommunikation mit der API verwendet. 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 diese Befehle in Ihrer Shell ausführen:

    gcloud auth application-default login
    

    Alternativ können Sie eine Dienstkonto-Schlüsseldatei verwenden:

    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 erstellen oder 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 die Google Cloud Console auf.
  2. Gehen Sie in der Hauptnavigation zu Netzwerkrichtlinien.
  3. Klicken Sie auf Erstellen, um eine neue Richtlinie zu erstellen. Wenn Sie eine vorhandene Netzwerkrichtlinie bearbeiten möchten, klicken Sie auf das Symbol Mehr am Ende einer Zeile und wählen Sie Bearbeiten aus.
  4. Geben Sie die Details Ihrer Netzwerkrichtlinie ein und wählen Sie das Netzwerk und die Region aus, für die die Richtlinie gilt.
  5. Setzen Sie Internetzugriff auf Aktiviert und aktivieren Sie optional den Dienst für externe IP-Adressen.

  6. Geben Sie im Feld CIDR für Edge-Dienste den Adressbereich ein, der beim Adressieren des VMware Engine-Internetgateways verwendet werden soll (/26-Adressbereich).

  7. 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 ist der Name dieser Netzwerkrichtlinie.
  • NETWORK_ID: das Netzwerk, für das diese Netzwerkrichtlinie gilt
  • IP_RANGE: der für Internetzugriff und externe IP-Zugriffsgateways zu verwendende CIDR-Bereich in CIDR-Notation. Ein CIDR-Block nach RFC 1918 mit dem Präfix „/26“ ist erforderlich.
  • LOCATION: global für Legacy-Netzwerke oder die 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 ist der Name dieser Netzwerkrichtlinie. Er muss das Format REGION-default haben.
  • PROJECT_ID ist die Projekt-ID für diese Anfrage.
  • LOCATION: global für Legacy-Netzwerke oder die Region eines Standardnetzwerks
  • IP_RANGE: der für Internetzugriff und externe IP-Zugriffsgateways zu verwendende CIDR-Bereich in CIDR-Notation. Ein CIDR-Block nach RFC 1918 mit dem Präfix „/26“ ist erforderlich.
  • NETWORK_ID: das Netzwerk für diese Netzwerkrichtlinie

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 die Google Cloud Console auf.
  2. Gehen Sie in der Hauptnavigation zu Netzwerkrichtlinien.
  3. Klicken Sie in der Zeile für die entsprechende Netzwerkrichtlinie auf das Symbol Mehr.
  4. Ä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.
  5. 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 dieser Netzwerkrichtlinie
  • LOCATION: global für Legacy-Netzwerke oder die 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 die Region eines Standardnetzwerks
  • NETWORK_POLICY_NAME: der Name dieser Netzwerkrichtlinie

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 der VMware Engine

Routing von Internettraffic über eine lokale Verbindung aktivieren

Für den Zugriff auf das Internet von Ihren Arbeitslast-VMs über eine lokale Verbindung müssen Sie zwei Schritte ausführen:

  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. Deaktivieren Sie den Internetzugriff und den öffentlichen IP-Dienst für das VMware Engine-Netzwerk.

Console

  1. Rufen Sie die Google Cloud Console auf.
  2. Gehen Sie in der Hauptnavigation zu Netzwerkrichtlinien.
  3. Klicken Sie in der Zeile für die entsprechende Netzwerkrichtlinie auf das Symbol Mehr.
  4. Ändern Sie die Option Öffentliche IP-Adresse auf Deaktiviert.

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

  6. Klicken Sie auf Speichern.

  7. Bei Verwendung eines Legacy-VMware Engine-Netzwerks:Aktivieren Sie mit dem Befehl gcloud services vpc-peerings enable-vpc-service-controls die VPC Service Controls für die VPC-Peering-Verbindung zwischen Ihrem VPC-Netzwerk und VMware Engine:

    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 dieser Netzwerkrichtlinie
  • LOCATION: global für Legacy-Netzwerke oder die Region eines Standardnetzwerks

Bei Verwendung eines VMware Engine-Legacy-Netzwerks:Aktivieren Sie mit dem Befehl gcloud services vpc-peerings enable-vpc-service-controls die VPC Service Controls für die VPC-Peering-Verbindung zwischen Ihrem VPC-Netzwerk und VMware Engine:

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
   }
}"

Bei Verwendung eines VMware Engine-Legacy-Netzwerks:Aktivieren Sie mit dem Befehl gcloud services vpc-peerings enable-vpc-service-controls die VPC Service Controls für die VPC-Peering-Verbindung zwischen Ihrem VPC-Netzwerk und VMware Engine:

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)

Bei Verwendung eines VMware Engine-Legacy-Netzwerks:Aktivieren Sie mit dem Befehl gcloud services vpc-peerings enable-vpc-service-controls die VPC Service Controls für die VPC-Peering-Verbindung zwischen Ihrem VPC-Netzwerk und VMware Engine:

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

Das Aktivieren von VPC Service Controls ist wichtig, um Internettraffic entweder über eine lokale Verbindung oder eine VPC in Ihrem Projekt weiterzuleiten.

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

  • 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:

Verwenden Sie den Befehl gcloud services vpc-peerings enable-vpc-service-controls, um VPC Service Controls für das Verbindungs-Peering eines Netzwerks mit dem Namen „my-network“ im aktuellen Projekt zu aktivieren:

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

Routing von Internet-Traffic über eine lokale Verbindung deaktivieren

Wenn Sie das Routing des Internettraffics von Ihren Arbeitslast-VMs über eine lokale Verbindung deaktivieren möchten, beenden Sie das Advertising der Standardroute (0.0.0.0/0) und deaktivieren Sie VPC Service Controls für die VPC-Peering-Verbindung.

Bei Verwendung eines VMware Engine-Legacy-Netzwerks:Deaktivieren Sie VPC Service Controls für die VPC-Peering-Verbindung zwischen Ihrem VPC-Netzwerk und VMware Engine. Verwenden Sie dazu den Befehl gcloud services vpc-peerings disable-vpc-service-controls:

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

Nächste Schritte