Utilizzare Public NAT con Compute Engine

Questa pagina mostra una dimostrazione di un gateway Public NAT che fornisce servizi di Network Address Translation per un'istanza VM Compute Engine. Prima di iniziare, leggi la panoramica di Public NAT.

Prerequisiti

Prima di configurare Public NAT, devi eseguire le seguenti operazioni.

Ottenere le autorizzazioni IAM

Il ruolo roles/compute.networkAdmin ti concede le autorizzazioni per creare un gateway NAT su router Cloud, riservare e assegnare indirizzi IP NAT e specificare le subnet il cui traffico deve utilizzare la Network Address Translation tramite il gateway NAT.

Configurare Google Cloud

Prima di iniziare, configura i seguenti elementi in Google Cloud.

  1. Accedi al tuo Google Cloud account. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti senza costi per l'esecuzione, il test e il deployment dei carichi di lavoro.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Installa Google Cloud CLI.

  5. Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.

  6. Per inizializzare gcloud CLI, esegui questo comando:

    gcloud init
  7. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  8. Verify that billing is enabled for your Google Cloud project.

  9. Installa Google Cloud CLI.

  10. Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.

  11. Per inizializzare gcloud CLI, esegui questo comando:

    gcloud init

Esempio

Di seguito è riportato un esempio end-to-end che mostra un gateway Public NAT di esempio e una VM Compute Engine di esempio che utilizza il gateway Public NAT.

Passaggio 1: crea una rete VPC e una subnet

Se hai già una rete e una subnet, puoi saltare questo passaggio.

Console

  1. Nella Google Cloud console, vai alla pagina Reti VPC.

    Vai alla pagina Reti VPC

  2. Fai clic su Crea rete VPC.

  3. Inserisci un Nome di custom-network1.

  4. In Subnet, imposta Modalità di creazione subnet su Personalizzata.

  5. In Nuova subnet, inserisci un Nome di subnet-us-east-192.

  6. In Regione, seleziona us-east4.

  7. Inserisci un Intervallo di indirizzi IP di 192.168.1.0/24.

  8. Fai clic su Fine, quindi su Crea.

gcloud

  1. Crea una nuova rete VPC in modalità personalizzata nel tuo progetto:

    gcloud compute networks create custom-network1 \
        --subnet-mode custom
  2. Specifica il prefisso della subnet per la prima regione. In questo esempio, assegniamo 192.168.1.0/24 alla regione us-east4.

    gcloud compute networks subnets create subnet-us-east-192 \
       --network custom-network1 \
       --region us-east4 \
       --range 192.168.1.0/24

Terraform

Puoi utilizzare un modulo Terraform per creare una rete Virtual Private Cloud (VPC) e una subnet personalizzate.

module "test-vpc-module" {
  source       = "terraform-google-modules/network/google"
  version      = "~> 13.0"
  project_id   = var.project_id # Replace this with your project ID in quotes
  network_name = "custom-network1"
  mtu          = 1460

  subnets = [
    {
      subnet_name   = "subnet-us-east-192"
      subnet_ip     = "192.168.1.0/24"
      subnet_region = "us-east4"
    }
  ]
}

Passaggio 2: crea un'istanza VM senza indirizzo IP esterno

Console

  1. Nella console Google Cloud , vai alla pagina Istanze VM.

    Vai alla pagina Istanze VM

  2. Fai clic su Crea istanza.

  3. Specifica un Nome di nat-test-1 per l'istanza.

  4. Imposta la Regione su us-east4.

  5. Imposta la Zona su us-east4-c.

  6. Fai clic sul link Gestione, sicurezza, dischi, networking, single-tenancy.

  7. Fai clic sulla scheda Networking.

  8. In Interfacce di rete, fai clic su Modifica per l'interfaccia predefinita della VM.

    1. Imposta la Rete su custom-network1.
    2. Imposta la Subnet su subnet-us-east-192.
    3. Imposta IP esterno su Nessuno.
    4. Fai clic su Fine.
  9. Per creare e avviare l'istanza, fai clic su Crea.

gcloud

gcloud compute instances create nat-test-1 \
    --image-family debian-9 \
    --image-project debian-cloud \
    --network custom-network1 \
    --subnet subnet-us-east-192 \
    --zone us-east4-c \
    --no-address

Terraform

Puoi utilizzare una risorsa Terraform per creare un'istanza VM.

resource "google_compute_instance" "default" {
  project      = var.project_id
  zone         = "us-east4-c"
  name         = "nat-test-1"
  machine_type = "e2-medium"
  boot_disk {
    initialize_params {
      image = "debian-cloud/debian-9"
    }
  }
  network_interface {
    network    = "custom-network1"
    subnetwork = var.subnet # Replace with a reference or self link to your subnet, in quotes
  }
}

Passaggio 3: crea una regola firewall che consenta le connessioni SSH

Console

  1. Nella Google Cloud console, vai alla pagina Policy firewall.