Configurar y gestionar reglas de Cloud NAT

En esta página se describe cómo configurar reglas de Cloud NAT para NAT pública. Antes de configurar reglas de Cloud NAT, consulta la información general sobre las reglas de Cloud NAT.

Crear reglas de NAT

Para crear reglas NAT, Cloud NAT usa el lenguaje de expresión común (CEL), tal como se describe en el artículo sobre el lenguaje de expresión de reglas. Para ver expresiones de ejemplo que puedes usar en tus reglas de NAT, consulta Expresiones de ejemplo.

Si quieres crear reglas de NAT, asegúrate de que la opción Asignación independiente del endpoint esté inhabilitada en tu pasarela de NAT.

Crear reglas basadas en la fuente

En los pasos de esta sección se describe cómo crear reglas NAT basadas en la fuente para las siguientes condiciones:

  1. Los paquetes del intervalo de IPs de origen 10.10.1.0/24 deben usar IP_ADDRESS_1.
  2. Los paquetes del intervalo de IPs de origen 10.10.2.0/24 deben usar IP_ADDRESS_2.
  3. Todos los demás paquetes deben usar IP_ADDRESS_3.

Para las condiciones 1 y 2, crea dos reglas NAT. La condición 3 se cumple con la regla NAT predeterminada para la coincidencia de direcciones de origen. IP_ADDRESS_1, IP_ADDRESS_2 y IP_ADDRESS_3 son las direcciones IP externas que quieres usar para NAT.

Consola

Añadir reglas de NAT a una pasarela de NAT

  1. Añade una regla de NAT que coincida con el tráfico de 10.10.1.0/24 y traduzca la IP de origen a IP_ADDRESS_1.

    1. En la Trusted Cloud consola, ve a la página Cloud NAT.

      Ir a Cloud NAT

    2. Haz clic en tu pasarela NAT.

    3. Haz clic en Editar.

    4. En Direcciones IP de Cloud NAT, selecciona Manual.

    5. En la sección Reglas de Cloud NAT, haz clic en Añadir una regla.

    6. En el campo Prioridad de la regla, introduce un número del 0 (prioridad más alta) al 65000 (prioridad más baja). Por ejemplo, 100.

    7. En Coincidir con intervalos de IP, selecciona Origen.

    8. En el campo Intervalos de IP de origen, introduce 10.10.1.0/24.

    9. En la sección Direcciones IP, selecciona la dirección IP que quieras usar para IP_ADDRESS_1.

    10. Haz clic en Listo.

  2. Añade una regla NAT que coincida con el tráfico de 10.10.2.0/24 y lo traduzca a IP_ADDRESS_2.

    1. En la sección Reglas de Cloud NAT, haz clic en Añadir una regla.
    2. En el campo Prioridad de la regla, introduce un número del 0 (prioridad más alta) al 65000 (prioridad más baja). Por ejemplo, 200.
    3. En Coincidir con intervalos de IP, selecciona Origen.
    4. En el campo Intervalos de IP de origen, introduce 10.10.2.0/24.
    5. En la sección Direcciones IP, selecciona la dirección IP que quieras usar para IP_ADDRESS_2.
    6. Haz clic en Listo.
    7. Haz clic en Guardar para guardar ambas reglas.

gcloud

Puedes seguir los pasos que se indican en las siguientes secciones para crear un archivo de reglas, crear una pasarela Cloud NAT que use las reglas del archivo de reglas o añadir reglas a una pasarela NAT que ya tengas.

Añadir reglas de NAT a una pasarela de NAT

Para añadir una regla NAT, usa el comando gcloud beta compute routers nats rules create.

  1. Añade una regla NAT que use IP_ADDRESS_1 para el tráfico de 10.10.1.0/24:

    gcloud beta compute routers nats rules create NAT_RULE_PRIORITY \
        --router=NAT_ROUTER \
        --region=REGION \
        --nat=NAT_CONFIG \
        --match="inIpRange(source.ip, '10.10.1.0/24')" \
        --source-nat-active-ips=IP_ADDRESS_1
    

    Haz los cambios siguientes:

    • NAT_RULE_PRIORITY: número de regla que identifica de forma única la regla NAT, de 0 (prioridad más alta) a 65000 (prioridad más baja). Por ejemplo, 100.
    • NAT_ROUTER: nombre del Cloud Router que usas para la pasarela de NAT
    • REGION: región de la pasarela NAT
    • NAT_CONFIG: el nombre de la configuración de NAT
    • IP_ADDRESS_1: la dirección IP externa asignada manualmente que quieras usar para los paquetes que coincidan con la regla
  2. Añade una regla NAT que use IP_ADDRESS_2 para el tráfico de 10.10.2.0/24:

    gcloud beta compute routers nats rules create NAT_RULE_PRIORITY \
        --router=NAT_ROUTER \
        --region=REGION \
        --nat=NAT_CONFIG \
        --match="inIpRange(source.ip, '10.10.2.0/24')" \
        --source-nat-active-ips=IP_ADDRESS_2
    

    Haz los cambios siguientes:

    • NAT_RULE_PRIORITY: número de regla que identifica de forma única la regla NAT, de 0 (prioridad más alta) a 65000 (prioridad más baja). Por ejemplo, 200.
    • NAT_ROUTER: nombre del Cloud Router que usas para la pasarela de NAT
    • REGION: la región de la pasarela de NAT
    • NAT_CONFIG: el nombre de la configuración de NAT
    • IP_ADDRESS_2: la dirección IP externa asignada manualmente que quieras usar para los paquetes que coincidan con la regla

Crear una pasarela NAT mediante un archivo de reglas NAT

El siguiente fragmento de código es un archivo de reglas de ejemplo. Puedes modificar este archivo de reglas para adaptarlo a tu caso práctico u omitir este paso si ya tienes un archivo de reglas.

Crear un archivo de reglas
rules:
 - ruleNumber: 100
   match: inIpRange(source.ip, '10.10.1.0/24')
   action:
     sourceNatActiveIps:
     -  /projects/PROJECT_ID/regions/REGION/addresses/IP_ADDRESS_1
 - ruleNumber: 200
   match: inIpRange(source.ip, '10.10.2.0/24')
   action:
     sourceNatActiveIps:
     -  /projects/PROJECT_ID/regions/REGION/addresses/IP_ADDRESS_2

En el ejemplo anterior, IP_ADDRESS_1 y IP_ADDRESS_2 son las direcciones IP externas asignadas manualmente que quieres usar para los paquetes que coincidan con las reglas. En cada dirección IP, sustituye lo siguiente:

  • PROJECT_ID: el proyecto de la dirección IP
  • REGION: región en la que se reserva la dirección IP
Crear una pasarela NAT mediante un archivo de reglas NAT

El siguiente comando crea una pasarela NAT y la configura con reglas de un archivo de reglas NAT. Si ya has configurado una pasarela de NAT, consulta Añadir reglas de NAT a una pasarela de NAT ya creada.

gcloud beta compute routers nats create NAT_CONFIG \
    --router=NAT_ROUTER \
    --region=REGION \
    --nat-all-subnet-ip-ranges \
    --nat-external-ip-pool=IP_ADDRESS_3,[IP_ADDRESS_4] \
    --rules=PATH_TO_NAT_RULE_FILE

Haz los cambios siguientes:

  • NAT_CONFIG: nombre de la configuración de NAT
  • NAT_ROUTER: el nombre del Cloud Router que quieras usar para la pasarela de NAT
  • REGION: la región en la que quieras crear la pasarela de Cloud NAT
  • IP_ADDRESS_3 y IP_ADDRESS_4: las direcciones IP externas que quieras usar en la regla de NAT predeterminada.
  • PATH_TO_NAT_RULE_FILE: ruta al archivo de reglas NAT

Crear reglas basadas en el destino

Los siguientes pasos de configuración de ejemplo cumplen las siguientes condiciones:

  • Los paquetes con la dirección de destino 198.51.100.10 deben usar la dirección IP de NAT IP_ADDRESS_1.
  • Los paquetes con la dirección de destino 198.51.100.20/30 deben usar la dirección IP de NAT IP_ADDRESS_2 o IP_ADDRESS_3.

Puede crear una regla NAT para cumplir cada una de estas condiciones.

Consola

Añadir reglas de NAT a una pasarela de NAT

  1. Añade una regla de NAT que use IP_ADDRESS_1 para enviar tráfico a 198.51.100.10.

    1. En la Trusted Cloud consola, ve a la página Cloud NAT.

      Ir a Cloud NAT

    2. Haz clic en Editar.

    3. En Direcciones IP de Cloud NAT, selecciona Manual.

    4. En la sección Reglas de Cloud NAT, haz clic en Añadir una regla.

    5. En el campo Prioridad de la regla, introduce un número del 0 (prioridad más alta) al 65000 (prioridad más baja). Por ejemplo, 100.

    6. En Coincidir con intervalos de IP, selecciona Destino.

    7. En el campo Destination IP ranges (Intervalos de direcciones IP de destino), introduce 198.51.100.10.

    8. En la sección Direcciones IP, selecciona la dirección IP que quieras usar para IP_ADDRESS_1.

    9. Haz clic en Listo.

  2. Añade una regla de NAT que use IP_ADDRESS_2 o IP_ADDRESS_3 para enviar tráfico a 198.51.100.20/30.

    1. En la sección Reglas de Cloud NAT, haz clic en Añadir una regla.
    2. En el campo Prioridad de la regla, introduce un número del 0 (prioridad más alta) al 65000 (prioridad más baja). Por ejemplo, 200.
    3. En Coincidir con intervalos de IP, selecciona Destino.
    4. En el campo Destination IP ranges (Intervalos de direcciones IP de destino), introduce 198.51.100.20/30.
    5. En la sección Direcciones IP, selecciona la dirección IP que quieras usar para IP_ADDRESS_2.
    6. Haga clic en Añadir dirección IP y seleccione la dirección IP que quiera usar para IP_ADDRESS_3.
    7. Haz clic en Listo.
    8. Haz clic en Guardar para guardar ambas reglas.

gcloud

Puedes seguir los pasos que se indican en las siguientes secciones para crear un archivo de reglas, crear una pasarela NAT que use las reglas del archivo de reglas o añadir reglas a una pasarela NAT.

Añadir reglas de NAT a una pasarela de NAT

Puedes añadir una regla NAT con el comando de regla NAT. Sustituye NAT_RULE_PRIORITY por la prioridad de la regla NAT que quieras asignar a la regla (de 0 [la más alta] a 65000 [la más baja]) y sustituye las demás variables por información que coincida con tu configuración.

Primero, añade una regla NAT que envíe el tráfico de IP_ADDRESS1 a 198.51.100.10.

gcloud compute routers nats rules create NAT_RULE_PRIORITY \
    --router=ROUTER_NAME \
    --nat=NAT_NAME \
    --match='destination.ip == "198.51.100.10"' \
    --source-nat-active-ips=IP_ADDRESS1 \
    [--region=REGION] [GLOBAL-FLAG ...]

A continuación, añade una regla NAT que envíe el tráfico de IP_ADDRESS2 o IP_ADDRESS3 a 198.51.100.20/30.

gcloud compute routers nats rules create NAT_RULE_PRIORITY \
    --router=ROUTER_NAME \
    --nat=NAT_NAME \
    --match='inIpRange(destination.ip, "198.51.100.20/30")' \
    --source-nat-active-ips=IP_ADDRESS2,IP_ADDRESS3 \
    [--region=REGION] [GLOBAL-FLAG ...]

Crear un archivo de reglas

El siguiente fragmento de código es un archivo de reglas de ejemplo. Puedes modificar este archivo de reglas para adaptarlo a tu caso práctico u omitir este paso si ya tienes un archivo de reglas.

rules:
 - ruleNumber: 100
   match: destination.ip == '198.51.100.10'
   action:
     sourceNatActiveIps:
     -  /projects/PROJECT ID/regions/REGION/addresses/IP_ADDRESS1
 - ruleNumber: 200
   match: inIpRange(destination.ip, '198.51.100.20/30')
   action:
     sourceNatActiveIps:
     -  /projects/PROJECT ID/regions/REGION/addresses/IP_ADDRESS2
     -  /projects/PROJECT ID/regions/REGION/addresses/IP_ADDRESS3

Crear una pasarela NAT mediante un archivo de reglas NAT

El siguiente comando crea una pasarela NAT y la configura con reglas de un archivo de reglas NAT. Si ya has configurado una pasarela de NAT, consulta Añadir reglas de NAT a una pasarela de NAT ya creada. Sustituye las variables por la información que coincida con tu configuración.

gcloud compute routers nats create NAT_NAME \
    --router=ROUTER_NAME \
    --nat-external-ip-pool=IP_ADDRESS4,[IP_ADDRESS5] \
    --nat-all-subnet-ip-ranges \
    --rules=PATH_TO_NAT_RULE_FILE \
    [--region=REGION] [GLOBAL-FLAG ...]

Actualizar reglas de NAT

Para actualizar las reglas NAT, siga los pasos que se indican en las siguientes secciones. Solo puedes usar archivos de reglas con la herramienta de línea de comandos gcloud.

Consola

  1. En la Trusted Cloud consola, ve a la página Cloud NAT.

    Ir a Cloud NAT

  2. Haz clic en tu pasarela NAT.
  3. Haz clic en Editar.
  4. En Reglas personalizadas, haz clic en la regla que quieras actualizar.
  5. En los campos desplegados, puedes modificar la información que quieras cambiar.
  6. Haz clic en Listo.
  7. Haz clic en Guardar.

gcloud

Actualizar mediante un archivo de reglas de NAT

Para actualizar una pasarela NAT con tu archivo de reglas NAT, usa el comando gcloud compute routers nats update.

Sustituye las variables por la información que coincida con tu configuración.

gcloud compute routers nats update NAT_NAME \
    --router=ROUTER_NAME \
    --rules=PATH_TO_NAT_RULE_FILE \
    [--region=REGION] [GLOBAL-FLAG ...]

El siguiente fragmento de código es un archivo de reglas de ejemplo. Ten en cuenta la acción sourceNatDrainIps, que impide que se establezcan nuevas conexiones con el destino mediante IP_ADDRESS1, pero mantiene las conexiones existentes.

rules:
 - ruleNumber: 100
   match: destination.ip == '198.51.100.10'
   action:
     sourceNatActiveIps:
     -  /projects/PROJECT ID/regions/REGION/addresses/IP_ADDRESS2
     sourceNatDrainIps:
     -  /projects/PROJECT ID/regions/REGION/addresses/IP_ADDRESS1

Actualizar con un comando de regla de NAT

Para actualizar una sola regla NAT, usa el siguiente comando. Sustituye NAT_RULE_PRIORITY por el número de prioridad de la regla NAT y las demás variables por la información que coincida con tu configuración. Ten en cuenta la opción source-nat-drain-ips, que impide que se establezcan nuevas conexiones con el destino mediante IP_ADDRESS3 y IP_ADDRESS4, pero mantiene las conexiones activas.

gcloud compute routers nats rules update NAT_RULE_PRIORITY \
    --router=ROUTER_NAME \
    --nat=NAT_NAME \
    --match=Match conditions (expressed in CEL) \
    --source-nat-active-ips=[IP_ADDRESS1],[IP_ADDRESS2] \
    --source-nat-drain-ips=[IP_ADDRESS3],[IP_ADDRESS4] \
    [--region=REGION] [GLOBAL-FLAG ...]

Eliminar reglas de NAT

Consola

  1. En la Trusted Cloud consola, ve a la página Cloud NAT.

    Ir a Cloud NAT

  2. Haz clic en tu pasarela NAT.
  3. Haz clic en Editar.
  4. En Reglas personalizadas, coloca el cursor sobre la regla que quieras eliminar. Haz clic en .
  5. Haz clic en Guardar.

gcloud

Para quitar una regla NAT de una pasarela, puedes eliminarla directamente de la pasarela o del archivo de reglas y actualizar la pasarela.

Eliminar mediante un archivo de reglas de NAT

Puedes quitar una regla NAT directamente del archivo de reglas y, a continuación, actualizar tu pasarela NAT. El comando para actualizar tu pasarela NAT se repite aquí para mayor comodidad.

Sustituye las variables por la información que coincida con tu configuración.

gcloud compute routers nats update NAT_NAME \
    --router=ROUTER_NAME \
    --rules=PATH_TO_NAT_RULE_FILE \
    [--region=REGION] [GLOBAL-FLAG ...]

Eliminar con un comando de regla de NAT

También puedes usar un comando de regla NAT delete para quitar una regla NAT de tu pasarela. Sustituye NAT_RULE_PRIORITY por el número de prioridad de la regla NAT y sustituye las demás variables por la información que coincida con tu configuración.

gcloud compute routers nats rules delete NAT_RULE_PRIORITY \
    --router=ROUTER_NAME \
    --nat=NAT_NAME \
    [--region=REGION] [GLOBAL-FLAG ...]

Describe una regla de NAT

Consola

Puede ver información sobre sus reglas de NAT en la página Cloud NAT.

  1. En la Trusted Cloud consola, ve a la página Cloud NAT.

    Ir a Cloud NAT

  2. Haz clic en tu pasarela NAT.
  3. Consulta las reglas de NAT.

Para obtener información adicional sobre una regla NAT concreta, puedes hacer lo siguiente:

  1. Haz clic en Editar.
  2. En el encabezado Reglas personalizadas, selecciona una regla NAT.
  3. Consulta la información adicional.
  4. Haz clic en Cancelar.

gcloud

Para describir una regla NAT, usa el siguiente comando. Sustituye NAT_RULE_PRIORITY por el número de prioridad de tu regla NAT y las demás variables por la información que coincida con tu configuración.

gcloud compute routers nats rules describe NAT_RULE_PRIORITY \
    --router=ROUTER_NAME \
    --nat=NAT_NAME \
    [--region=REGION] [GLOBAL-FLAG ...]

Mostrar todas las reglas de NAT de una pasarela de NAT

Consola

Puedes ver tus reglas de NAT en la página Cloud NAT.

  1. En la Trusted Cloud consola, ve a la página Cloud NAT.

    Ir a Cloud NAT

  2. Haz clic en tu pasarela NAT.
  3. Consulta las reglas de NAT.

gcloud

Para enumerar todas las reglas NAT de una pasarela NAT, usa el siguiente comando. También se muestran todas las direcciones IP de NAT presentes en las reglas de NAT, incluida la regla predeterminada. Sustituye las variables por la información que coincida con tu configuración.

gcloud compute routers nats rules list \
    --router=ROUTER_NAME \
    --nat=NAT_NAME \
    [--region=REGION] [GLOBAL-FLAG ...]