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

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

Vorbereitung

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.

gcloud- 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/oder -zone fest:

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

Weitere Informationen zum gcloud vmware-Tool Cloud SDK-Referenzdokumentation.

API

API-Beispiele in dieser Dokumentation verwenden das cURL-Befehlszeilentool, um die API abfragen. Für die cURL-Anfrage ist ein gültiges Zugriffstoken erforderlich. Es gibt viele Möglichkeiten, ein gültiges Zugriffstoken zu erhalten. verwenden Sie die Methode gcloud-Tool zum Generieren eines Zugriffstokens:

  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 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. Python-Bibliothek herunterladen und installieren

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

Internetzugriffsdienst konfigurieren

Sie können Ihren Arbeitslast-VMs Zugriff auf das Internet gewähren, indem Sie den Internetzugriffs-Netzwerkdienst aktivieren. Standardmäßig ist der Netzwerkdienst zum Internetzugriff deaktiviert.

Internetzugriffsdienst in einer Region aktivieren

Console

So aktivieren Sie den Internetzugriffsdienst in einer Region:

  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 Internetzugriff auf Aktiviert ein.
    • Sie können den Internetzugriff aktivieren und den öffentlichen IP-Dienst deaktiviert 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 verwendet werden soll, wenn VMware Engine-Internetgateway adressieren (/26-Adressbereich).
  6. Klicken Sie auf Senden.

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_NAME \
    --edge-services-cidr IP_RANGE \
    --location REGION --internet-access

Ersetzen Sie Folgendes:

  • NETWORK_POLICY_NAME: der Name dieser Netzwerkrichtlinie. Muss das Format REGION-default haben.
  • NETWORK_NAME: 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.
  • 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: der Name dieses Netzwerks . Er muss das Format REGION-default haben.
  • PROJECT_ID ist die Projekt-ID für diese Anfrage.
  • REGION: Region des Netzwerks
  • 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_NAME: das Netzwerk, auf das diese Netzwerkrichtlinie angewendet werden soll, muss das Format >REGION-default haben

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

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 REGION

Ersetzen Sie Folgendes:

  • NETWORK_POLICY_NAME: der Name dieses Netzwerks Richtlinie
  • REGION: Region des Netzwerks

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/REGION/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.
  • REGION: Region des Netzwerks
  • 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-Dienstkontrollen 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. Zugriff auf das VMware Engine Portal
  2. Gehen Sie zu Netzwerk > Regionale Einstellungen.
  3. Klicken Sie auf das Symbol Bearbeiten für die Region, in der Sie den Internetzugriff über eine lokale Verbindung aktivieren möchten.
  4. Ändern Sie die Option Öffentliche IP-Adresse auf Deaktiviert.

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

  6. Klicken Sie auf Senden.

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

Ersetzen Sie Folgendes:

  • NETWORK_POLICY_NAME: der Name dieses Netzwerks Richtlinie
  • REGION: Region des Netzwerks

Aktivieren Sie dann 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/REGION/networkPolicies/NETWORK_POLICY_NAME?updateMask=internetAccess.enabled,externalIp.enabled -d "{
  "internetAccess: {
    "enabled": false
   },
  "externalIp: {
    "enabled": false
   }
}"

Aktivieren Sie dann VPC Service Controls für die VPC-Peering-Verbindung zwischen Ihrem 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

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)

Aktivieren Sie dann 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

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-Dienstkontrollen für die VPC-Peering-Verbindung.

Nutzen Sie folgenden gcloud services vpc-peerings disable-vpc-service-controls-Befehl, um die VPC Service Controls für die VPC-Peering-Verbindung zwischen Ihrer VPC-Netzwerk und VMware Engine zu deaktivieren:

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

Nächste Schritte