Servizio di indirizzo IP pubblico

Il servizio di rete degli indirizzi IP pubblici (esterni) ti consente di connetterti da internet a una macchina virtuale (VM) dei carichi di lavoro, a un'appliance di gestione o a un bilanciatore del carico in esecuzione nel tuo cloud privato. Ad esempio, se esegui un server web sulla VM del carico di lavoro, puoi gestire il traffico web utilizzando un indirizzo IP pubblico tramite internet. Per impostazione predefinita, il servizio di rete IP pubblico è disabilitato.

L'allocazione di un indirizzo IP pubblico a una risorsa offre anche i seguenti vantaggi:

  • Prevenzione degli attacchi Distributed Denial of Service (DDoS). Questa protezione viene attivata automaticamente per l'indirizzo IP pubblico.
  • Monitoraggio del traffico sempre attivo e mitigazione in tempo reale degli attacchi comuni a livello di rete.
  • Protezione e mitigazione degli attacchi su tutta la scala della rete globale. La rete può essere utilizzata per distribuire e mitigare il traffico degli attacchi in tutte le regioni.

Comportamento

Un indirizzo IP pubblico può essere assegnato a un solo indirizzo IP privato e l'indirizzo IP pubblico è dedicato a questo indirizzo IP privato finché non annulli l'assegnazione. Una risorsa associata a un indirizzo IP pubblico utilizza sempre l'indirizzo IP pubblico per l'accesso a internet. Puoi prenotare fino a 100 indirizzi IP pubblici per la rete VPC principale connessa a VMware Engine.

Per impostazione predefinita, il traffico in entrata da un indirizzo IP pubblico viene negato e è consentito solo l'accesso a internet in uscita. Per consentire il traffico in entrata, crea una regola firewall per l'indirizzo IP pubblico nella porta specifica.

Prerequisiti di gcloud e API

Per utilizzare lo strumento a riga di comando gcloud o l'API per gestire le risorse VMware Engine, ti 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. È richiesto un token di accesso valido per la richiesta cURL. Esistono molti modi per ottenere un token di accesso valido. I passaggi seguenti utilizzano lo strumento 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 dell'ADC eseguendo il comando nella shell

      gcloud auth application-default login
    

    o utilizza un file della chiave 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.

Abilitazione del servizio di rete IP pubblico in una regione

Prima di poter allocare un indirizzo IP pubblico a una VM di un carico di lavoro, devi abilitare il servizio di rete IP pubblico nella regione:

Console

  1. Accedi al portale VMware Engine.
  2. Vai a Rete > Impostazioni regionali.
  3. Nella riga corrispondente all'area geografica di interesse, seleziona Modifica. Se la regione non è elencata nella tabella di riepilogo, aggiungila facendo clic su Aggiungi regione.
  4. Imposta Servizio IP pubblico su Abilitato.
    • Per abilitare il servizio IP pubblico, devi abilitare anche il servizio di rete di accesso a internet.
    • È possibile abilitare il servizio di accesso a internet e lasciare disabilitato il servizio IP pubblico. In questo caso, l'allocazione di IP pubblici e VPN point-to-site non sarà disponibile.
  5. Nel campo CIDR servizi periferico, inserisci l'intervallo di indirizzi da utilizzare per gli indirizzi al gateway IP pubblico VMware Engine (intervallo di indirizzi /26).
  6. Fai clic su Invia.

Lo stato del servizio di rete passa a Enabled quando l'operazione è completata, in genere dopo diversi minuti.

gcloud

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

gcloud vmware network-policies create NETWORK_POLICY_NAME \
    --vmware-engine-network NETWORK_NAME --edge-services-cidr IP_RANGE \
    --location REGION --external-ip-access --internet-access

Sostituisci quanto segue:

  • NETWORK_POLICY_NAME: il nome di questo criterio di rete
  • NETWORK_NAME: la rete per questa richiesta, deve essere nel formato REGION-default
  • IP_RANGE: l'intervallo CIDR da utilizzare per l'accesso a internet e i gateway di accesso IP esterni, con notazione CIDR. È richiesto un blocco CIDR RFC 1918 con prefisso "/26"
  • 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.
  • PROJECT_ID: l'ID progetto per questa richiesta
  • REGION: la regione della rete
  • IP_RANGE: l'intervallo CIDR da utilizzare per l'accesso a internet e i gateway di accesso IP esterni, con notazione CIDR. È richiesto un blocco CIDR RFC 1918 con prefisso "/26".
  • NETWORK_NAME: la rete a cui si applica questo criterio di rete deve essere nel formato >REGION-default

Python

Crea un nuovo criterio di rete con external_ip e internet_access impostati su True con la seguente funzione:

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)

Allocazione di un indirizzo IP pubblico

Per allocare un indirizzo IP pubblico per una VM di un carico di lavoro, segui questi passaggi:

  1. Accedi al portale Google Cloud VMware Engine
  2. Vai a Rete > IP pubblici.
  3. Fai clic su Assegna.
  4. Nel campo Nome, inserisci un nome per identificare la voce dell'indirizzo IP pubblico.
  5. Seleziona il Private Cloud che contiene la VM del carico di lavoro.
  6. Seleziona la Località in cui vuoi pubblicare l'IP pubblico allocato.
  7. Nel campo Indirizzo locale collegato, inserisci l'indirizzo IP locale della VM a cui vuoi assegnare questo indirizzo IP pubblico.
  8. Fai clic su Invia per iniziare l'attività di allocazione dell'indirizzo IP pubblico.

Puoi controllare lo stato dell'attività nella pagina Attività > Attività. Una volta completata l'allocazione, la nuova voce viene visualizzata nella pagina IP pubblici con lo stato Operazionale.