Configura Cloud NAT con Compute Engine
En esta página, se muestra cómo configurar una configuración de Cloud NAT de muestra con Compute Engine. Antes de configurar Cloud NAT, consulta la descripción general de Cloud NAT.
Prerequisites
Antes de configurar Cloud NAT, debes hacer lo siguiente.
Obtén permisos de IAM
La función roles/compute.networkAdmin te da permisos para crear una puerta de enlace NAT en Cloud Router, reservar y asignar direcciones IP de NAT y especificar subredes cuyo tráfico debería usar la traducción de direcciones de red a través de la puerta de enlace NAT.
Configura Google Cloud
Antes de comenzar, configura los siguientes elementos en Google Cloud.
- Accede a tu cuenta de Google Cloud. Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
-
En la página del selector de proyectos de Google Cloud Console, selecciona o crea un proyecto de Google Cloud.
-
Asegúrate de que la facturación esté habilitada para tu proyecto de Cloud. Obtén información sobre cómo verificar si la facturación está habilitada en un proyecto.
- Instala y, luego, inicializa Google Cloud CLI.
-
En la página del selector de proyectos de Google Cloud Console, selecciona o crea un proyecto de Google Cloud.
-
Asegúrate de que la facturación esté habilitada para tu proyecto de Cloud. Obtén información sobre cómo verificar si la facturación está habilitada en un proyecto.
- Instala y, luego, inicializa Google Cloud CLI.
Configura el ejemplo de Compute Engine
Usa este ejemplo si quieres ver una configuración simple de Cloud NAT que funciona con Compute Engine.
Paso 1: Crea una subred y una red de VPC
Si ya tienes una red y una subred, puedes omitir este paso.
Console
En Google Cloud Console, ve a la página Redes de VPC.
Haz clic en Crear red de VPC
En Nombre ingresa
custom-network1
.En Subredes, establece Modo de creación de subred como Personalizado.
En Subred nueva, ingresa el nombre
subnet-us-east-192
.En Región, selecciona us-east4.
Ingresa un rango de direcciones IP de
192.168.1.0/24
.Haga clic en Listo y, luego, en Crear.
gcloud
Crea una nueva red de VPC en modo personalizado en tu proyecto:
gcloud compute networks create custom-network1 \ --subnet-mode custom
Especifica el prefijo de subred para tu primera región. En este ejemplo, se asigna
192.168.1.0/24
a la regiónus-east4
.gcloud compute networks subnets create subnet-us-east-192 \ --network custom-network1 \ --region us-east4 \ --range 192.168.1.0/24
Terraform
Puedes usar un módulo de Terraform para crear una subred y una red de VPC personalizadas.
Paso 2: Crea una instancia de VM sin dirección IP externa
Console
En la consola ve a la página Instancias de VM.
Haga clic en Crear instancia.
En Nombre, especifica
nat-test-1
para tu instancia.Establece Región en us-east4.
Configura Zona como us-east4-c.
Haz clic en el vínculo Administración, seguridad, discos, redes, usuario único.
Haz clic en la pestaña Redes.
En Interfaces de red, haz clic en
Editar en la interfaz predeterminada de la VM.- Establece Red en
custom-network1
. - Establece Subred en
subnet-us-east-192
. - Configura IP externa como Ninguna.
- Haga clic en Listo.
- Establece Red en
Para crear y, luego, iniciar la instancia, haz clic en Crear.
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
Puedes usar un recurso de Terraform para crear una instancia de VM.
Paso 3: Crea una regla de firewall que admita conexiones SSH
Console
En la consola, ve a la página de Firewall:
Haz clic en Crear regla de firewall.
Ingresa un Nombre de
allow-ssh
.En Red, especifica
custom-network1
.Configura Dirección del tráfico como Entrada.
Establece Acción en caso de coincidencia en Permitir.
Configura Destinos como Todas las instancias de la red.
Establece Filtro de fuente en Rangos de IP.
Configura Rangos de IP de origen como
35.235.240.0/20
.Configura Protocolos y puertos como Protocolos y puertos especificados.
Selecciona la casilla de verificación tcp y, luego, ingresa el puerto
22
.Haga clic en Crear.
gcloud
gcloud compute firewall-rules create allow-ssh \ --network custom-network1 \ --source-ranges 35.235.240.0/20 \ --allow tcp:22
Terraform
Puedes usar un recurso de Terraform para crear una regla de firewall.
Paso 4: Crea permisos de SSH de para IAP para tu instancia de prueba
En un paso posterior, usa Identity-Aware Proxy (IAP) para conectarte a tu instancia de prueba.
Console
En la consola, dirígete a la página Identity-Aware-Proxy.
Selecciona la pestaña Recursos de SSH y TCP.
Para actualizar los permisos de los miembros en los recursos, selecciona la casilla de verificación junto a Todos los recursos del túnel > us-east4-c > nat-test-1.
En el panel de la derecha, haz clic en Agregar miembro.
Para otorgar a los usuarios, grupos o cuentas de servicio acceso a los recursos, en el campo Nuevos miembros, especifica sus direcciones de correo electrónico.
Si solo estás probando esta función, puedes ingresar tu propia dirección de correo electrónico.
Para otorgar a los miembros acceso a los recursos a través de la función de redireccionamiento de TCP de Cloud IAP, en la lista desplegable Función, selecciona Cloud IAP > Usuario de túnel protegido con IAP.
Haz clic en Guardar.
gcloud
Este comando otorga acceso SSH mediante IAP a todas las instancias de VM en tu proyecto. Si quieres otorgar acceso SSH mediante IAP a una VM individual, usa las instrucciones de la consola.
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=MEMBER_INFO \ --role=roles/iap.tunnelResourceAccessor
Reemplaza lo siguiente:
PROJECT_ID
: El ID de tu proyectoMEMBER_INFO
: una lista separada por comas de parestype:email
miembros Ejemplos:- Para un usuario individual:
user:test-user@example.com
- Para un grupo:
group:admins@example.com
- Para una cuenta de servicio:
serviceAccount:test123@example.domain.com
- Para un usuario individual:
Terraform
Puedes usar un recurso de Terraform a fin de crear permisos SSH de IAP para tu instancia de prueba.
Paso 5: Accede a nat-test-1
y confirma que no pueda acceder a Internet
Console
En la consola ve a la página Instancias de VM.
En
nat-test-1
, en la columna Conectar, haz clic en la flecha desplegable SSH y, luego, selecciona Abrir en ventana del navegador.En el símbolo del sistema de la VM, ingresa
curl example.com
y, luego, presiona Intro.No deberías obtener ningún resultado. Si lo haces, es posible que hayas creado
nat-test-1
con una dirección IP externa o que haya otro problema. Para solucionar problemas, consulta Las VM pueden llegar a Internet de forma inesperada sin Cloud NAT.Para finalizar el comando, es posible que debas ingresar
Ctrl+C
.
gcloud
Agrega una clave SSH de Compute Engine a tu host local:
ssh-add ~/.ssh/google_compute_engine
Conéctate a
nat-test-1
y ejecuta un comando:gcloud compute ssh nat-test-1 \ --zone us-east4-c \ --command "curl example.com" \ --tunnel-through-iap
No deberías obtener ningún resultado. Si lo haces, es posible que hayas creado
nat-test-1
con una dirección IP externa o que haya otro problema. Para solucionar problemas, consulta Las VM pueden llegar a Internet de forma inesperada sin Cloud NAT.Para finalizar el comando, es posible que debas ingresar
Ctrl+C
.
Paso 6: Crea una configuración de NAT con Cloud Router
Debes crear el Cloud Router en la misma región en la que están las instancias que usan Cloud NAT. Cloud NAT solo se usa para colocar información de NAT en las VM. No se usa como parte de la puerta de enlace NAT.
Esta configuración permite a todas las instancias de la región usar Cloud NAT para todos los rangos de IP principales y de IP de alias. También asigna de forma automática las direcciones IP externas de la puerta de enlace NAT. Para obtener más opciones, consulta la documentación de Google Cloud CL.
Console
En la consola, ve a la página Cloud NAT.
Haz clic en Comenzar o Crear puerta de enlace de NAT.
En Nombre de la puerta de enlace, ingresa
nat-config
.Establece Red de VPC en
custom-network1
.Establece Región en us-east4.
En Cloud Router, seleccione Crear router nuevo.
- En Nombre ingresa
nat-router
. - Haga clic en Crear.
- En Nombre ingresa
Haga clic en Crear.
gcloud
Crea un Cloud Router:
gcloud compute routers create nat-router \ --network custom-network1 \ --region us-east4
Agrega una configuración al router:
gcloud compute routers nats create nat-config \ --router-region us-east4 \ --router nat-router \ --nat-all-subnet-ip-ranges \ --auto-allocate-nat-external-ips
Terraform
Puedes usar un recurso de Terraform para crear un Cloud Router.
Puedes usar un módulo de Terraform para crear una configuración de NAT.
Paso 7: Vuelve a conectarte a Internet
La configuración de NAT puede tardar hasta tres minutos en propagarse a la VM, por lo que debes esperar al menos un minuto antes de volver a acceder a Internet.
Console
En la consola ve a la página Instancias de VM.
En
nat-test-1
, en la columna Conectar, haz clic en la flecha desplegable SSH y, luego, selecciona Abrir en ventana del navegador.En el símbolo del sistema de la VM, ingresa
curl example.com
y, luego, presiona Intro.
gcloud
Conéctate a nat-test-1
y ejecuta un comando:
gcloud compute ssh nat-test-1 \ --zone us-east4-c \ --command "curl example.com" \ --tunnel-through-iap
Deberías ver un resultado con el siguiente contenido:
<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>
¿Qué sigue?
- Crea tu propia puerta de enlace de Cloud NAT.
- Crea una configuración de GKE de ejemplo.