Exemplo de configuração do Compute Engine

Esta página mostra como configurar um exemplo de configuração do Cloud NAT com o Compute Engine. 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..

Como configurar o exemplo do Compute Engine

Use este exemplo se você quiser ver uma configuração simples do Cloud NAT funcionando com o Compute Engine.

Etapa 1: criar uma rede e sub-rede da VPC

Se você já tiver uma rede e uma sub-rede, pule esta etapa.

Console

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

    Acessar a página "Redes VPC"

  2. Clique em Criar rede VPC.

  3. Informe um Nome de custom-network1.

  4. Em Sub-redes, defina o Modo de criação da sub-rede como Personalizado.

  5. Em Nova sub-rede, insira um Nome de subnet-us-east-192.

  6. Em Região, selecione us-east4.

  7. Digite um intervalo de endereço IP 192.168.1.0/24.

  8. Clique em Concluído e em Criar.

gcloud

  1. Crie uma nova rede VPC de modo personalizado no seu projeto.

    gcloud compute networks create custom-network1 \
        --subnet-mode custom
  2. Especifique o prefixo de sub-rede da primeira região. Neste exemplo, atribuímos 192.168.1.0/24 à região us-east4.

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

Etapa 2: criar uma instância de VM sem endereço IP externo

Console

  1. No Console do Cloud, acesse a página Instâncias de VM.

    Acessar a página "Instâncias de VM"

  2. Clique em Criar instância.

  3. Especifique um Nome de nat-test-1 para sua instância.

  4. Defina a Região como us-east4.

  5. Defina a Zona como us-east4-c.

  6. Clique no link Gerenciamento, segurança, discos, rede, locatário individual.

  7. Clique na guia Rede.

  8. Em Interfaces de rede, clique em Editar na interface padrão da VM.

    1. Defina o Rede para custom-network1.
    2. Defina o Sub-rede para subnet-us-east-192.
    3. Defina IP externo como None.
    4. Clique em Concluído.
  9. Para criar e iniciar a instância, clique em Criar.

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

Etapa 3: criar uma regra de firewall que permita conexões SSH

Console

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

    Acessar a página Firewall

  2. Clique em Criar regra de firewall.

  3. Informe um Nome de allow-ssh.

  4. Especifique uma rede de custom-network1.

  5. Defina a Direção do tráfego como Entrada.

  6. Defina a Ação se houver correspondência como Permitir.

  7. Defina Destinos como Todas as instâncias na rede.

  8. Defina Filtro de origem como Intervalos de IPs.

  9. Defina Intervalos de IPs de origem como 35.235.240.0/20.

  10. Defina Protocolos e portas como Protocolos e portas especificados.

  11. Marque a caixa de seleção tcp e insira a porta 22.

  12. Clique em Criar

gcloud

gcloud compute firewall-rules create allow-ssh \
    --network custom-network1 \
    --source-ranges 35.235.240.0/20 \
    --allow tcp:22

Etapa 4: criar permissões SSH de IAP para sua instância de teste

Em uma etapa posterior, use o Identity-Aware Proxy (IAP) para se conectar à sua instância de teste.

Console

  1. No Console do Cloud, acesse a página do Identity-Aware Proxy.

    Acessar a página Identity-Aware Proxy

  2. Selecione a guia Recursos SSH e TCP.

  3. Para atualizar as permissões dos membros nos recursos, marque a caixa de seleção ao lado de Todos os recursos do túnel > us-east4-c > nat-test-1.

  4. No painel à direita, clique em Adicionar membro.

  5. Para conceder aos usuários, grupos ou contas de serviço acesso aos recursos, no campo Novos membros, especifique os endereços de e-mail.

    Se você estiver apenas testando esse recurso, poderá inserir seu próprio endereço de e-mail.

  6. Para conceder aos membros acesso aos recursos por meio do recurso de encaminhamento TCP do Cloud IAP, na lista suspensa Papel, selecione Cloud IAP > Usuário do túnel protegido pelo IAP.

  7. Clique em Salvar.

gcloud

Esse comando concede acesso SSH usando o IAP para todas as instâncias de VM no projeto. Se você quiser conceder acesso SSH com o IAP a uma VM individual, use as instruções do Console do Cloud.

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member=MEMBER_INFO \
    --role=roles/iap.tunnelResourceAccessor

Substitua:

  • PROJECT_ID: ID do projeto
  • MEMBER_INFO: uma lista separada por vírgulas de pares de type:email dos membros. Exemplos:
    • Para um único usuário: user:test-user@example.com
    • Para um grupo: group:admins@example.com
    • Para uma conta de serviço: serviceAccount:test123@example.domain.com

Etapa 5: faça login em nat-test-1 e confirme que não é possível acessar a Internet

Console

  1. No Console do Cloud, acesse a página Instâncias de VM.

    Acessar a página "Instâncias de VM"

  2. Para nat-test-1, na coluna Conectar, clique na seta suspensa SSH e selecione Abrir na janela do navegador.

  3. No prompt de comando da VM, insira curl example.com e pressione Enter.

    Você não deve obter nenhum resultado. Se fizer isso, você pode ter criado nat-test-1 com um endereço IP externo ou pode haver algum outro problema. Para resolver esse problema, consulte as VMs podem acessar a Internet inesperadamente sem o Cloud NAT.

    Para finalizar o comando, talvez seja necessário inserir Ctrl+C.

gcloud

  1. Adicione uma chave SSH do Compute Engine ao seu host local.

    ssh-add ~/.ssh/google_compute_engine
    
  2. Conecte-se a nat-test-1 e execute um comando:

    gcloud compute ssh nat-test-1 \
        --zone us-east4-c \
        --command "curl example.com" \
        --tunnel-through-iap

    Você não deve obter nenhum resultado. Se fizer isso, você pode ter criado nat-test-1 com um endereço IP externo ou pode haver algum outro problema. Para resolver esse problema, consulte as VMs podem acessar a Internet inesperadamente sem o Cloud NAT.

    Para finalizar o comando, talvez seja necessário inserir Ctrl+C.

Etapa 6: criar uma configuração NAT usando o Cloud Router

É necessário criar o Cloud Router na mesma região que as instâncias que usam o Cloud NAT. O Cloud NAT é usado apenas para colocar informações NAT nas VMs. Ele não é usado como parte do gateway NAT real.

Essa configuração permite que todas as instâncias da região usem o Cloud NAT para todos os intervalos de IP alias e primário. Ela também aloca automaticamente os endereços IP externos para o gateway NAT. Para mais opções, consulte a documentação da interface de linha de comando da gcloud.

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 de nat-config.

  4. Defina a Rede VPC para custom-network1.

  5. Defina a Região como us-east4.

  6. Em Cloud Router, selecione Criar novo roteador.

    1. Informe um Nome de nat-router.
    2. Clique em Criar
  7. Clique em Criar

gcloud

  1. Criar um Cloud Router

    gcloud compute routers create nat-router \
        --network custom-network1 \
        --region us-east4
  2. Adicionar uma configuração ao roteador

    gcloud compute routers nats create nat-config \
        --router-region us-east4 \
        --router nat-router \
        --nat-all-subnet-ip-ranges \
        --auto-allocate-nat-external-ips

Etapa 7: tentar se conectar à Internet novamente

Pode levar até três minutos para que a configuração de NAT seja propagada para a VM. Portanto, aguarde pelo menos um minuto antes de tentar acessar a Internet novamente.

Console

  1. No Console do Cloud, acesse a página Instâncias de VM.

    Acessar a página "Instâncias de VM"

  2. Para nat-test-1, na coluna Conectar, clique na seta suspensa SSH e selecione Abrir na janela do navegador.

  3. No prompt de comando da VM, insira curl example.com e pressione Enter.

gcloud

Conecte-se a nat-test-1 e execute um comando:

gcloud compute ssh nat-test-1 \
    --zone us-east4-c \
    --command "curl example.com" \
    --tunnel-through-iap

Você verá a saída que contém o seguinte conteúdo:


<html>
<head>
<title>Example Domain</title>
...
...
...
</head>

<body>
<div>
    <h1>Example Domain</h1>
    <p>This domain is established to be used for illustrative examples in documents. You can use this
    domain in examples without prior coordination or asking for permission.</p>
    <p><a href="http://www.iana.org/domains/example">More information...</a></p>
</div>
</body>
</html>

A seguir