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 über 128.000 gleichzeitige Verbindungen pro 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 standardmäßige Projekt-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 Tool gcloud vmware finden Sie in der Cloud SDK-Referenzdokumentation.

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. 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. Prüfen Sie, ob TOKEN richtig festgelegt ist:

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

In den Python-Codebeispielen in dieser Dokumentation wird die VMware Engine-Bibliothek verwendet, um mit der API zu kommunizieren. Damit dieser Ansatz verwendet werden kann, muss die Bibliothek installiert und die Standardanmeldedaten für Anwendungen konfiguriert sein.

  1. Laden Sie die Python-Bibliothek herunter und installieren Sie sie:

    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
    

    Sie können auch 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.

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 in der Google Cloud Console die Seite Netzwerkrichtlinien auf.

    Zu den Netzwerkrichtlinien

  2. Klicken Sie auf Erstellen, um eine neue Richtlinie zu erstellen. Wenn Sie eine vorhandene Netzwerkrichtlinie bearbeiten möchten, klicken Sie am Ende der Zeile auf das Dreipunkt-Menü und wählen Sie Bearbeiten aus.

  3. Geben Sie die Details Ihrer Netzwerkrichtlinie ein, einschließlich des Netzwerks und der Region, für die die Richtlinie gilt.

  4. Stellen Sie den Internetzugriff auf Aktiviert und aktivieren Sie optional den Dienst für externe IP-Adressen.

  5. Geben Sie im Feld Edge Services CIDR den Adressbereich ein, der bei der Adressierung des VMware Engine-Internetgateways (Adressbereich /26) verwendet werden soll.

  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 dieser Netzwerkrichtlinie.
  • NETWORK_ID: das Netzwerk, auf das diese Netzwerkrichtlinie angewendet wird
  • IP_RANGE: Der CIDR-Bereich, der für den Internetzugriff und externe IP-Zugriffs-Gateways verwendet werden soll, in CIDR-Notation. Es ist ein RFC 1918-CIDR-Block mit dem Präfix „/26“ 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: 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 CIDR-Bereich, der für den Internetzugriff und externe IP-Zugriffs-Gateways verwendet werden soll, in CIDR-Notation. Es ist ein RFC 1918-CIDR-Block mit dem Präfix „/26“ 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 in der Google Cloud Console die Seite Netzwerkrichtlinien auf.

    Zu den Netzwerkrichtlinien

  2. Klicken Sie in der Zeile mit der entsprechenden Netzwerkrichtlinie auf das Symbol Dreipunkt-Menü.

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

Wenn Sie von Ihren Arbeitslast-VMs über eine lokale Verbindung auf das Internet zugreifen möchten, 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 in der Google Cloud Console die Seite Netzwerkrichtlinien auf.

    Zu den Netzwerkrichtlinien

  2. Klicken Sie in der Zeile mit der entsprechenden Netzwerkrichtlinie auf das Symbol Dreipunkt-Menü.

  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. Bei Verwendung eines Legacy-VMware Engine-Netzwerks:Aktivieren Sie mit dem Befehl gcloud services vpc-peerings enable-vpc-service-controls 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 Legacy-VMware Engine-Netzwerks:Aktivieren Sie mit dem Befehl gcloud services vpc-peerings enable-vpc-service-controls 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 Legacy-VMware Engine-Netzwerks:Aktivieren Sie mit dem Befehl gcloud services vpc-peerings enable-vpc-service-controls 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 Legacy-VMware Engine-Netzwerks:Aktivieren Sie mit dem Befehl gcloud services vpc-peerings enable-vpc-service-controls 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

Die Aktivierung von VPC Service Controls ist erforderlich, um Internettraffic entweder über eine lokale Verbindung oder eine VPC in Ihrem Projekt zu leiten.

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

  • Die IPv4-Standardroute wird entfernt (Ziel 0.0.0.0/0, nächster Hop „Standard-Internetgateway“).
  • Der Internet-Traffic wird über die Standardroute des VPC-Peerings weitergeleitet.

Beispiel:

Um VPC Service Controls für eine Verbindung zu einem Netzwerk mit dem Namen „my-network“ im aktuellen Projekt zu aktivieren, 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

Wenn Sie das Routing von Internettraffic 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 Legacy-VMware Engine-Netzwerks:Deaktivieren Sie die VPC Service Controls für die VPC-Peering-Verbindung zwischen Ihrem VPC-Netzwerk und der VMware Engine mit dem 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