Como usar o Cloud NAT

Esta página mostra como configurar o Cloud NAT. Antes de configurar o Cloud NAT, leia a Visão geral do Cloud NAT.

Pré-requisitos

É necessário fazer o seguinte antes de configurar o Cloud NAT.

Acessar permissões do IAM

O papel roles/compute.networkAdmin concede permissões para criar um gateway NAT no Cloud Router, reservar e atribuir endereços IP de NAT e especificar sub-redes (sub-redes) cujo tráfego deve usar a conversão de endereços de rede pelo gateway NAT.

Configurar o Google Cloud

Antes de começar, configure os seguintes itens no Google Cloud.

  1. Faça login na sua conta do Google Cloud. Se você começou a usar o Google Cloud agora, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
  2. No Console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

    Acessar o seletor de projetos

  3. Verifique se o faturamento está ativado para seu projeto na nuvem. Saiba como confirmar se o faturamento está ativado para o projeto.

  4. Instale e inicialize o SDK do Cloud..

As instruções da ferramenta de linha de comando gcloud nesta página presumem que você tenha definido o ID do projeto antes de emitir comandos.

  1. Configure um código de projeto com o seguinte comando:

    gcloud config set project PROJECT_ID
    
  2. É possível também ver um código de projeto já configurado:

    gcloud config list --format='text(core.project)'
    

Cenários de uso e exemplos de comandos

Como criar o NAT

Definir uma configuração simples

Essa configuração aloca automaticamente os endereços IP externos necessários para fornecer serviços NAT a uma região. As instâncias de VM sem endereços IP externos em qualquer sub-rede da região recebem acesso à Internet por NAT. Essa configuração também ativa geração de registros para todos os tipos de registro.

Quando você usa a alocação automática, o Google Cloud reserva endereços IP automaticamente no seu projeto. Esses endereços são contabilizados em suas cotas de endereços IP estáticos no projeto.

É possível ativar ou desativar o Mapeamento independente de endpoint no gateway. Para saber mais, consulte Definir mapeamento do endpoint.

Console

  1. No Console do Google Cloud, acesse a página do Cloud NAT.

    Acesse a página do Cloud NAT

  2. Clique em Primeiros passos ou Criar gateway NAT.

  3. Digite um nome de gateway.

  4. Escolha uma rede VPC.

  5. Defina Região para o gateway NAT.

  6. Selecione ou crie um Cloud Router na região.

  7. Clique em Geração de registros, portas mínimas, tempo limite para abrir essa seção.

  8. Em Stackdriver Logging, selecione Tradução e erros. Isso envia todos os registros para o Cloud Logging.

  9. Clique em Criar.

gcloud

gcloud compute routers nats create NAT_CONFIG \
    --router=NAT_ROUTER \
    --auto-allocate-nat-external-ips \
    --nat-all-subnet-ip-ranges \
    --enable-logging

Substitua:

  • NAT_CONFIG: o nome da configuração NAT
  • NAT_ROUTER: o nome do seu Cloud Router

Terraform

É possível usar um módulo do Terraform para criar um Cloud Router com um gateway NAT.

module "cloud_router" {
  source  = "terraform-google-modules/cloud-router/google"
  version = "~> 0.4"
  project = var.project_id # Replace this with your project ID in quotes
  name    = "my-cloud-router"
  network = "default"
  region  = "us-central1"

  nats = [{
    name = "my-nat-gateway"
  }]
}

O gateway NAT resultante usa os seguintes valores padrão:

enable_endpoint_independent_mapping = true
icmp_idle_timeout_sec               = 30
min_ports_per_vm                    = 0
nat_ip_allocate_option              = "AUTO_ONLY"
source_subnetwork_ip_ranges_to_nat  = "ALL_SUBNETWORKS_ALL_IP_RANGES"
tcp_established_idle_timeout_sec    = 1200
tcp_transitory_idle_timeout_sec     = 30
udp_idle_timeout_sec                = 30
log_config {
    enable = true
    filter = "ALL"
}

Especificar endereços IP para NAT

Cada endereço IP é o nome de um recurso de endereço IP estático reservado.

Console

  1. No Console do Cloud, acesse a página do Cloud NAT.

    Acesse a página do Cloud NAT

  2. Clique em Primeiros passos ou Criar gateway NAT.

  3. Digite um nome de gateway.

  4. Escolha uma rede VPC.

  5. Defina Região para o gateway NAT.

  6. Selecione ou crie um Cloud Router na região.

  7. Defina Endereços IP de NAT como Manual.

  8. Selecione ou crie um endereço IP externo estático reservado para usar para NAT.

  9. Se desejar especificar endereços IP adicionais, clique em Adicionar endereço IP e selecione ou crie um endereço IP externo estático adicional reservado.

  10. Clique em Criar.

gcloud

gcloud compute routers nats create NAT_CONFIG \
    --router=NAT_ROUTER \
    --nat-all-subnet-ip-ranges \
    --nat-external-ip-pool=IP_ADDRESS1,IP_ADDRESS2

Substitua:

  • NAT_CONFIG: o nome da configuração NAT
  • NAT_ROUTER: o nome do seu Cloud Router
  • IP_ADDRESS1: um endereço IP externo reservado estático a ser usado para NAT
  • IP_ADDRESS2: outro endereço IP externo reservado estático a ser usado para NAT

Especificar intervalos de sub-rede para NAT

Por padrão, o NAT funciona para todos os intervalos de IP primário e secundário de todas as sub-redes na região para a rede VPC especificada. É possível restringir quais intervalos de sub-redes primárias e secundárias podem usar NAT.

Console

  1. No Console do Cloud, acesse a página do Cloud NAT.

    Acesse a página do Cloud NAT

  2. Clique em Primeiros passos ou Criar gateway NAT.

  3. Digite um nome de gateway.

  4. Escolha uma rede VPC.

  5. Defina Região para o gateway NAT.

  6. Selecione ou crie um Cloud Router na região.

  7. Em Mapeamento NAT, defina Origem como Personalizado.

  8. Selecione uma sub-rede

  9. Na lista suspensa Intervalos de IP, selecione os intervalos de IP da sub-rede a serem incluídos.

  10. Clique em OK.

  11. Se você quiser especificar intervalos adicionais, clique em Adicionar sub-rede e intervalo de IP.

  12. Clique em Criar.

gcloud

gcloud compute routers nats create NAT_CONFIG \
    --router=NAT_ROUTER \
    --auto-allocate-nat-external-ips \
    --nat-custom-subnet-ip-ranges=SUBNETS

Substitua:

  • NAT_CONFIG: o nome da configuração NAT
  • NAT_ROUTER: o nome do seu Cloud Router
  • SUBNETS: uma lista de sub-redes separadas por vírgula

Especificar um número mínimo diferente de portas padrão por VM para NAT

Console

  1. No Console do Cloud, acesse a página do Cloud NAT.

    Acesse a página do Cloud NAT

  2. Clique em Primeiros passos ou Criar gateway NAT.

  3. Digite um nome de gateway.

  4. Escolha uma rede VPC.

  5. Defina Região para o gateway NAT.

  6. Selecione ou crie um Cloud Router na região.

  7. Clique em Geração de registros, portas mínimas, tempo limite.

  8. Defina um mínimo de portas por instância de VM como um valor diferente.

  9. Clique em Criar.

gcloud

gcloud compute routers nats create NAT_CONFIG \
    --router=NAT_ROUTER \
    --auto-allocate-nat-external-ips \
    --min-ports-per-vm=128

Substitua:

  • NAT_CONFIG: o nome da configuração NAT
  • NAT_ROUTER: o nome do seu Cloud Router

Para mais informações, consulte Portas e conexões.

Especificar tempos limite diferentes para NAT

Console

  1. No Console do Cloud, acesse a página do Cloud NAT.

    Acesse a página do Cloud NAT

  2. Clique em Primeiros passos ou Criar gateway NAT.

  3. Digite um nome de gateway.

  4. Escolha uma rede VPC.

  5. Defina Região para o gateway NAT.

  6. Selecione ou crie um Cloud Router na região.

  7. Clique em Geração de registros, portas mínimas, tempo limite.

  8. Modifique os tempos limite conforme desejado.

  9. Clique em Criar.

gcloud

gcloud compute routers nats create NAT_CONFIG \
    --router=NAT_ROUTER \
    --auto-allocate-nat-external-ips \
    --nat-custom-subnet-ip-ranges=SUBNETS \
    --udp-idle-timeout=60s \
    --icmp-idle-timeout=60s \
    --tcp-established-idle-timeout=60s \
    --tcp-transitory-idle-timeout=60s

Substitua:

  • NAT_CONFIG: o nome da configuração NAT
  • NAT_ROUTER: o nome do seu Cloud Router
  • SUBNETS: uma lista de sub-redes separadas por vírgula

Como atualizar o NAT

Alterar as sub-redes e os recursos de endereço IP associados ao NAT

Console

  1. No Console do Google Cloud, acesse a página do Cloud NAT.

    Acesse a página do Cloud NAT

  2. Clique no seu gateway NAT.

  3. Clique em Editar.

  4. Em Mapeamento NAT, defina Origem como Personalizado.

  5. Selecione uma sub-rede

  6. Na lista suspensa Intervalos de IP, selecione os intervalos de IP da sub-rede a serem incluídos.

  7. Se você quiser especificar intervalos adicionais, clique em Adicionar sub-rede e intervalo de IP.

  8. Clique na lista suspensa Endereços IP de NAT e selecione Automático ou Manual.

  9. Se você selecionar Manual, especifique um Endereço IP externo.

  10. Para alta disponibilidade com endereços IP manuais, clique em Adicionar endereço IP e adicione um segundo endereço.

  11. Clique em Salvar.

gcloud

gcloud compute routers nats update NAT_CONFIG \
    --router=NAT_ROUTER \
    --nat-external-ip-pool=IP_ADDRESS2,IP_ADDRESS3 \
    --nat-custom-subnet-ip-ranges=SUBNETS:range1

Substitua:

  • NAT_CONFIG: o nome da configuração NAT
  • NAT_ROUTER: o nome do seu Cloud Router
  • IP_ADDRESS2: um endereço IP externo manual
  • IP_ADDRESS3: outro endereço IP externo manual
  • SUBNETS: uma lista de sub-redes separadas por vírgula

Alterar endereços IP externos associados ao NAT

É possível alterar a lista de endereços IP externos para um determinado gateway. Quando você fizer isso, o Google Cloud removerá os endereços antigos e adicionará os novos. Todas as conexões existentes nos endereços IP antigos são encerradas imediatamente. Para permitir que as conexões existentes continuem e impedir novas conexões nesses endereços IP, consulte Drenar endereços IP externos associados ao NAT.

Console

  1. No Console do Cloud, acesse a página do Cloud NAT.

    Acesse a página do Cloud NAT

  2. Clique no seu gateway NAT.

  3. Clique em Editar.

  4. Clique na lista suspensa Endereços IP de NAT e selecione Automático ou Manual.

  5. Se você selecionar Manual, especifique um Endereço IP externo.

  6. Para alta disponibilidade, clique em Adicionar endereço IP e adicione um segundo endereço.

  7. Clique em Salvar.

gcloud

gcloud compute routers nats update NAT_CONFIG \
    --router=NAT_ROUTER \
    --nat-external-ip-pool=IP_ADDRESS2,IP_ADDRESS3

Substitua:

  • NAT_CONFIG: o nome da configuração NAT
  • NAT_ROUTER: o nome do seu Cloud Router
  • IP_ADDRESS2: um endereço IP externo manual
  • IP_ADDRESS3: outro endereço IP externo manual

Drenar endereços IP externos associados ao NAT

Antes de remover um endereço IP configurado manualmente, esvazie ele para que as conexões existentes não sejam interrompidas. Quando um endereço IP for drenado, todas as conexões existentes poderão continuar até expirarem naturalmente. É possível visualizar os registros para verificar o status das conexões existentes.

Nenhuma nova conexão é aceita nos endereços IP drenados. No entanto, o endereço IP permanece associado à configuração NAT.

É necessário ter pelo menos um endereço ativo em uma configuração NAT, ou seja, não é possível drenar todos os endereços IP em uma configuração.

Para ver o estado dos endereços IP de NAT, Mostrar status NAT.

Console

  1. No Console do Cloud, acesse a página do Cloud NAT.

    Acesse a página do Cloud NAT

  2. Clique no seu gateway NAT.

  3. Clique em Editar.

  4. Em Endereços IP de NAT, defina o Escoamento de IP ao lado do endereço IP para Ativado.

  5. Clique em Salvar.

gcloud

Para drenar um endereço, mova-o do pool ativo para o pool de drenagem no mesmo comando. Se você removê-lo do pool ativo sem adicioná-lo ao pool de drenagem em um único comando, o endereço IP será excluído do serviço e as conexões existentes serão encerradas imediatamente.

Se você mover um endereço IP do pool de drenagem para o pool ativo, evita o endereço IP. Se você remover um endereço IP NAT de ambos os pools, ele será desconectado da configuração NAT.

Esse comando deixa os outros campos na configuração NAT inalterados.

gcloud compute routers nats update NAT_CONFIG \
    --router=NAT_ROUTER \
    --nat-external-ip-pool=IP_ADDRESS3 \
    --nat-external-drain-ip-pool=IP_ADDRESS2

Em que:

  • --nat-external-ip-pool=IP_ADDRESS3 atualiza o pool ativo para omitir IP_ADDRESS2
  • --nat-external-drain-ip-pool=IP_ADDRESS2 adiciona IP_ADDRESS2 ao pool de drenagem

Substitua:

  • NAT_CONFIG: o nome da configuração NAT
  • NAT_ROUTER: o nome do seu Cloud Router
  • IP_ADDRESS3: um endereço IP
  • IP_ADDRESS2: outro endereço IP

Alterar o mínimo de portas padrão alocadas por VM associada ao NAT

Console

  1. No Console do Cloud, acesse a página do Cloud NAT.

    Acesse a página do Cloud NAT

  2. Clique no seu gateway NAT.

  3. Clique em Editar.

  4. Clique em Geração de registros, portas mínimas, tempo limite.

  5. Modifique o campo Portas mínimas por instância da VM.

  6. Clique em Salvar.

gcloud

Esse comando deixa os outros campos na configuração NAT inalterados.

gcloud compute routers nats update NAT_CONFIG \
    --router=NAT_ROUTER \
    --min-ports-per-vm=128

Substitua:

  • NAT_CONFIG: o nome da configuração NAT
  • NAT_ROUTER: o nome do seu Cloud Router

Para mais informações, consulte Portas e conexões.

Alterar os tempos limites de conexão associados ao NAT

Console

  1. No Console do Cloud, acesse a página do Cloud NAT.

    Acesse a página do Cloud NAT

  2. Clique no seu gateway NAT.

  3. Clique em Editar.

  4. Clique em Geração de registros, portas mínimas, tempo limite.

  5. Modifique os valores de tempo limite que você quer alterar.

  6. Clique em Salvar.

gcloud

Esse comando deixa os outros campos na configuração NAT inalterados.

gcloud compute routers nats update NAT_CONFIG \
    --router=NAT_ROUTER \
    --udp-idle-timeout=60s \
    --icmp-idle-timeout=60s \
    --tcp-established-idle-timeout=60s \
    --tcp-transitory-idle-timeout=60s

Substitua:

  • NAT_CONFIG: o nome da configuração NAT
  • NAT_ROUTER: o nome do seu Cloud Router

Redefinir tempos limite de conexão associados ao NAT para os valores padrão

Console

  1. No Console do Cloud, acesse a página do Cloud NAT.

    Acesse a página do Cloud NAT

  2. Clique no seu gateway NAT.

  3. Clique em Editar.

  4. Clique em Geração de registros, portas mínimas, tempo limite.

  5. Remova todos os valores configurados pelo usuário que você quer redefinir.

  6. Clique em Salvar.

Os valores removidos são redefinidos para os valores padrão.

gcloud

Esse comando deixa os outros campos na configuração NAT inalterados.

gcloud compute routers nats update NAT_CONFIG \
    --router=NAT_ROUTER \
    --clear-udp-idle-timeout \
    --clear-icmp-idle-timeout \
    --clear-tcp-established-idle-timeout \
    --clear-tcp-transitory-idle-timeout

Substitua:

  • NAT_CONFIG: o nome do gateway da NAT
  • NAT_ROUTER: o nome do seu Cloud Router

Definir mapeamento do endpoint

É possível ativar ou desativar o Mapeamento independente de endpoint no gateway. Por padrão, ele fica desativado. Alternar o mapeamento independente de endpoint de ativado para desativado (ou de desativado para ativado) não interrompe as conexões atuais.

Console

  1. No Console do Cloud, acesse a página do Cloud NAT.

    Acesse a página do Cloud NAT

  2. Clique no seu gateway NAT.

  3. Clique em Editar.

  4. Clique em Configurações avançadas.

  5. Para ativar o mapeamento independente de endpoint, marque a caixa de seleção Ativar mapeamento independente de endpoint. Desmarque a caixa de seleção para desativar o mapeamento independente de endpoint.

  6. Clique em Save.

gcloud

Atualização de um gateway atual

gcloud compute routers nats update NAT_CONFIG \
    --router=NAT_ROUTER \
    [--enable-endpoint-independent-mapping | --no-enable-endpoint-independent-mapping]

Substitua:

  • NAT_CONFIG: o nome da configuração NAT
  • NAT_ROUTER: o nome do seu Cloud Router

Configurar a geração de registros

Para adicionar (ativar), modificar ou remover a geração de registros de um gateway existente, consulte Como configurar a geração de registros

Como excluir o NAT

Isso remove uma configuração NAT de um Cloud Router. Ele não exclui o roteador.

Console

  1. No Console do Google Cloud, acesse a página do Cloud NAT.

    Acesse a página do Cloud NAT

  2. Marque a caixa de seleção ao lado da configuração de gateway que você quer excluir.

  3. No Menu, clique em Excluir.

gcloud

gcloud compute routers nats delete NAT_CONFIG --router=NAT_ROUTER

Substitua:

  • NAT_CONFIG: o nome da configuração NAT
  • NAT_ROUTER: o nome do seu Cloud Router

Como mostrar a configuração NAT, os intervalos de IP:porta e os status.

Console

  1. No Console do Google Cloud, acesse a página do Cloud NAT.

    Acesse a página do Cloud NAT

  2. Para visualizar os detalhes do gateway NAT, informações de mapeamento ou detalhes de configuração, clique no nome do gateway NAT.

  3. Para visualizar o status do NAT, consulte a coluna Status do seu gateway NAT.

gcloud

gcloud compute routers nats describe NAT_CONFIG --router=NAT_ROUTER

Substitua:

  • NAT_CONFIG: o nome da configuração NAT
  • NAT_ROUTER: o nome do seu Cloud Router
gcloud compute routers get-nat-mapping-info

O comando routers get-status existente mostra o status do NAT:

gcloud compute routers get-status

Cotas e limites

Uma cota ou um limite determinado é calculado por recurso. As cotas e limites podem ser por projeto, por rede, por região ou por outro recurso. Para mais informações, consulte a página Cotas.

Exemplos de configuração

Estes exemplos mostram como testar o Cloud NAT com o Google Cloud:

A seguir