Configura l'accesso a internet per le VM dei carichi di lavoro

Configura il servizio di rete di accesso a internet per i carichi di lavoro VMware in Google Cloud VMware Engine in base alla regione. Puoi indirizzare il traffico connesso a internet dalle VM dei tuoi carichi di lavoro utilizzando il perimetro internet di Google Cloud o una rete on-premise connessione.

Le VM dei carichi di lavoro che possono accedere a internet possono anche accedere a Google Cloud servizi mediante l'accesso privato Google. L'accesso ai servizi Google Cloud tramite l'accesso privato Google rimane all'interno delle reti Google Cloud e non esce verso internet.

Il servizio di rete di accesso a internet supporta:

  • Fino a 100 indirizzi IP pubblici per ogni regione
  • Fino a 300 regole firewall per tabella firewall
  • Velocità effettiva fino a 2 Gbps su 128.000 connessioni simultanee per ogni regione
  • Protocolli TCP, UDP e ICMP

Il servizio di rete di accesso a internet non supporta il gateway a livello di applicazione (ALG).

Prima di iniziare

Per apportare modifiche alle impostazioni di accesso a internet del cloud privato, devi disporre dell'accesso amministrativo a VMware Engine.

Per abilitare l'accesso a internet, è necessario un intervallo di indirizzi CIDR dei servizi perimetrali. Quando attivi i servizi di rete di accesso a internet o IP pubblico, i gateway vengono di cui nel contesto del tenant di servizio.

Usa l'intervallo di indirizzi CIDR dei servizi perimetrali per l'indirizzamento di VMware Engine gateway Internet e IP pubblici. L'intervallo di indirizzi deve soddisfare i seguenti requisiti requisiti:

  • Rispetta la specifica RFC 1918 come intervallo privato.
  • Non devono sovrapporsi ad altri intervalli di indirizzi di VMware Engine, ad esempio l'intervallo di indirizzi utilizzato per gli appliance di gestione o i segmenti NSX-T.
  • Non devono sovrapporsi agli intervalli di indirizzi pubblicizzati VMware Engine, ad esempio quelli utilizzati per il Virtual Private Cloud (VPC) tramite subnet di rete o reti on-premise.
  • Dedica un intervallo di indirizzi IP con 26 bit di subnet mask (/26).

Requisiti di gcloud e API

Per utilizzare lo strumento a riga di comando gcloud o l'API per gestire VMware Engine per le risorse, consigliamo di configurare gli strumenti come descritto di seguito.

gcloud

  1. Imposta l'ID progetto predefinito:

    gcloud config set project PROJECT_ID
    
  2. Imposta una regione e/o una zona predefinite:

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

Per ulteriori informazioni sullo strumento gcloud vmware, consulta la documentazione di riferimento di Cloud SDK.

API

Gli esempi di API in questo set di documentazione utilizzano lo strumento a riga di comando cURL per eseguire query sull'API. Nell'ambito della richiesta cURL è necessario un token di accesso valido. Esistono molti modi per ottenere un token di accesso valido; i passaggi seguenti utilizzano gcloud per generare un token di accesso:

  1. Accedi a Google Cloud

    gcloud auth login
    
  2. Genera token di accesso ed esporta in TOKEN

    export TOKEN=`gcloud auth print-access-token`
    
  3. Verifica che TOKEN sia impostato correttamente

    echo $TOKEN
    
    Output:
    TOKEN
    

Ora utilizza il token di autorizzazione nelle richieste all'API. Ad esempio:

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

Gli esempi di codice Python in questa documentazione utilizzano la libreria VMware Engine per comunicare con l'API. Per poter utilizzare questo approccio, è necessario installare la libreria e configurare le Credenziali predefinite dell'applicazione.

  1. Scarica e installa la libreria Python

     pip install google-cloud-vmwareengine
    
  2. Configura le informazioni ADC eseguendo questi comandi nella shell

      gcloud auth application-default login
    

    o usa un file di chiavi dell'account di servizio

      export GOOGLE_APPLICATION_CREDENTIALS="FILE_PATH"
    

Per maggiori informazioni sulla libreria, visita la pagina di riferimento o visualizza gli esempi di codice su GitHub.

Configurare il servizio di accesso a internet

Puoi consentire alle VM dei carichi di lavoro di accedere a internet attivando il servizio di rete di accesso a internet. Per impostazione predefinita, la rete di accesso a internet è disabilitato.

Abilita il servizio di accesso a internet in una regione

Console

Per abilitare il servizio di accesso a internet in una regione:

  1. Accedi al portale VMware Engine.
  2. Vai a Rete > Impostazioni regionali.
  3. Nella riga corrispondente alla regione che ti interessa, seleziona Modifica. Se La regione non è elencata nella tabella di riepilogo, aggiungi la regione facendo clic Aggiungi regione.
  4. Imposta l'opzione Accesso a internet su Attivato.
    • Puoi abilitare l'accesso a internet e lasciare disabilitato il servizio IP pubblico. In questo caso, la VPN point-to-site e l'allocazione degli IP pubblici non sono disponibili.
  5. Nel campo Edge Services CIDR, inserisci l'intervallo di indirizzi da utilizzare per indirizzare il gateway internet di VMware Engine (intervallo di indirizzi /26).
  6. Fai clic su Invia.

Lo stato del servizio diventa Attivato quando l'operazione viene vengono completate, in genere dopo alcuni minuti.

gcloud

Utilizzando lo strumento gcloud, esegui questo comando per creare un criterio di rete:

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

Sostituisci quanto segue:

  • NETWORK_POLICY_NAME: il nome di questa rete . Deve essere nel formato REGION-default.
  • NETWORK_NAME: la rete di questo criterio di rete si applica a
  • IP_RANGE: l'intervallo CIDR da utilizzare per internet e gateway di accesso IP esterni, in notazione CIDR. Un RFC Blocco CIDR del 1918 con "/26" è obbligatorio.
  • REGION: la regione della rete

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

Sostituisci quanto segue:

  • NETWORK_POLICY_NAME: il nome di questo criterio di rete. Deve essere nel formato REGION-default.
  • PROJECT_ID: l'ID progetto per questa richiesta
  • REGION: la regione della rete
  • IP_RANGE: l'intervallo CIDR da utilizzare per internet e gateway di accesso IP esterni, in notazione CIDR. Un RFC Blocco CIDR del 1918 con "/26" è obbligatorio.
  • NETWORK_NAME: la rete di questo criterio di rete a cui si applica, deve essere nel formato >REGION-default

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)

Disattivare il servizio di accesso a internet in una regione

Per disattivare il servizio di accesso a internet in una regione, segui questi passaggi:

Console

  1. Accedi al portale VMware Engine.
  2. Vai a Rete > Impostazioni regionali.
  3. Nella riga corrispondente alla regione di interesse, seleziona Modifica.
  4. Imposta Accesso a internet su Disattivato.
    • Devi disabilitare il servizio IP pubblico prima di disabilitare l'accesso a internet.
    • Devi eliminare tutti gli indirizzi IP pubblici allocati e la VPN point-to-site prima di poter disabilitare il servizio IP pubblico.
  5. Fai clic su Invia.

Lo stato del servizio diventa Disattivato quando l'operazione viene vengono completate, in genere dopo alcuni minuti.

gcloud

Utilizzando lo strumento gcloud, esegui il seguente comando per aggiornare il criterio di rete:

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

Sostituisci quanto segue:

  • NETWORK_POLICY_NAME: il nome di questa rete norme
  • REGION: la regione della rete

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

Sostituisci quanto segue:

  • PROJECT_ID: l'ID progetto per questa richiesta
  • REGION: la regione della rete
  • NETWORK_POLICY_NAME: il nome di questa rete norme

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)

Utilizzare una connessione on-premise per l'accesso a internet dei carichi di lavoro

Facoltativamente, puoi indirizzare il traffico associato a internet dalle VM dei carichi di lavoro in VMware Engine tramite una connessione on-premise. Il traffico è diretto in base allo stato di quanto segue:

  • Annuncio di route predefinita (0.0.0.0/0) da on-premise
  • Servizio IP pubblico VMware Engine
  • Servizio di accesso a internet VMware Engine
  • Controlli di servizio VPC sulla connessione in peering VPC tra Rete VPC e VMware Engine

Consenti il routing del traffico internet tramite una connessione on-premise

Per accedere a internet dalle VM dei carichi di lavoro tramite una connessione on-premise, devi completare due passaggi:

  1. Annunci la route predefinita (0.0.0.0/0) dall'on-premise tramite una connessione on-premise (Cloud VPN o Cloud Interconnect). Controlla il Gateway Cloud VPN o Router Cloud in cui termina la connessione on-premise alla VPN.
  2. Disattiva l'accesso a internet e il servizio IP pubblico per il sulla rete VMware Engine.

Console

  1. Accedi al portale VMware Engine
  2. Vai a Rete > Impostazioni regionali.
  3. Fai clic sull'icona Modifica per la regione in cui vuoi attivare l'accesso a internet utilizzando una connessione on-premise.
  4. Imposta IP pubblico su Disabilitato.

  5. Imposta Accesso a internet su Disattivato.

  6. Fai clic su Invia.

  7. Abilita Controlli di servizio VPC sulla connessione in peering VPC tra alla rete VPC e a VMware Engine mediante Comando gcloud services vpc-peerings enable-vpc-service-controls:

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

gcloud

Utilizzando lo strumento gcloud, esegui il seguente comando per aggiornare il criterio di rete:

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

Sostituisci quanto segue:

  • NETWORK_POLICY_NAME: il nome di questa rete norme
  • REGION: la regione della rete

Quindi, abilita Controlli di servizio VPC sulla connessione in peering VPC tra alla rete VPC e a VMware Engine mediante Comando gcloud services vpc-peerings enable-vpc-service-controls:

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

Quindi, abilita Controlli di servizio VPC sulla connessione in peering VPC tra alla rete VPC e a VMware Engine mediante Comando gcloud services vpc-peerings enable-vpc-service-controls:

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

Python

Imposta internet_access e external_ip su False.

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)

Quindi, attiva Controlli di servizio VPC sulla connessione in peering VPC tra la tua rete VPC e VMware Engine utilizzando il comando gcloud services vpc-peerings enable-vpc-service-controls:

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

Disattiva il routing del traffico internet tramite una connessione on-premise

Per disattivare il routing del traffico internet dalle VM del tuo carico di lavoro tramite una connessione on-premise, smetti di pubblicizzare la route predefinita (0.0.0.0/0) e disattiva i controlli di servizio VPC sulla connessione in peering VPC.

Per disabilitare i Controlli di servizio VPC sulla connessione in peering VPC tra sulla rete VPC e VMware Engine, utilizza Comando gcloud services vpc-peerings disable-vpc-service-controls:

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

Passaggi successivi