Reglas de Cloud NAT
En esta página, se proporciona una descripción general de las reglas de Cloud NAT para la NAT pública. Estas reglas te permiten definir cómo se usa Cloud NAT para conectarse a Internet.
Las reglas de Cloud NAT para NAT pública admiten la traducción de direcciones de red de origen (SNAT) según la dirección de origen (versión preliminar) o de destino.
Reglas de NAT
De forma predeterminada, cuando configuras una puerta de enlace de Cloud NAT para NAT pública, los paquetes que traduce esa puerta de enlace NAT usan el mismo conjunto de direcciones IP de NAT para llegar a todas las direcciones de Internet. Si necesitas más control sobre los paquetes que traduce Cloud NAT, puedes agregar reglas de NAT.
Una regla de NAT define una condición de coincidencia y una acción correspondiente. Después de especificar las reglas de NAT, cada paquete coincide con cada regla de NAT. Si un paquete coincide con la condición establecida en una regla, se produce la acción correspondiente a esa coincidencia.
Las reglas de NAT para la NAT pública admiten la coincidencia de direcciones de origen y destino:
- En las reglas basadas en la fuente (vista previa), los paquetes se correlacionan según su dirección IP de origen. Solo se admiten direcciones IPv4 de origen.
- En las reglas basadas en el destino, los paquetes se correlacionan según su dirección IP de destino. Solo se admiten direcciones de destino IPv4.
No se permite combinar condiciones basadas en la fuente y el destino en una sola regla de NAT. Para obtener más información, consulta Especificaciones de las reglas NAT.
Ejemplo de configuración de la regla de Cloud NAT
En el siguiente ejemplo, se ilustra cómo usar las reglas de NAT cuando el destino permite el acceso desde solo unas pocas direcciones IP. Recomendamos que el tráfico a esos destinos desde tus VMs de Trusted Cloud en subredes privadas se traduzca con SNAT solo con las direcciones IP permitidas. Te recomendamos que no uses estas direcciones IP para otros destinos.
Considera los siguientes requisitos para las VM en Subnet-1
(10.10.10.0/24
), que se encuentra en la región A de la red de VPC test
:
- Las VM deben usar la dirección IP NAT
203.0.113.20
para enviar tráfico al destino198.51.100.20/30
. - Las VM deben usar la dirección IP NAT
203.0.113.30
para enviar tráfico al destino198.51.100.30
o198.51.100.31
. - Las VM deben usar la dirección IP de NAT
203.0.113.40
para enviar tráfico a cualquier otro destino de Internet.
Esta red de VPC también contiene dos subredes adicionales en la misma región. Estas VM deben usar la dirección IP NAT 203.0.113.10
para enviar tráfico a cualquier destino.
Puedes usar reglas NAT para este ejemplo, pero necesitas dos puertas de enlace NAT porque Subnet-1
(10.10.10.0/24
) tiene reglas NAT que son diferentes de las otras subredes. Para crear esta configuración, sigue estos pasos:
- Crea una puerta de enlace llamada
Cloud NAT Gateway 1
paraSubnet-1
con la dirección IP de NAT203.0.113.40
y agrega las siguientes reglas:- Regla 1 de NAT en
Cloud NAT Gateway 1
: Cuando el destino sea198.51.100.20/30
, usa203.0.113.20
para la NAT. - Regla de NAT 2 en
Cloud NAT Gateway 1
: Cuando el destino sea198.51.100.30
o198.51.100.31
, usa203.0.113.30
para la NAT.
- Regla 1 de NAT en
- Crea una puerta de enlace llamada
Cloud NAT Gateway 2
para las otras subredes de la región y asigna la dirección IP de NAT como203.0.113.10
. No se necesitan reglas de NAT en este paso.
Especificaciones de las reglas de NAT
- Cloud NAT admite reglas basadas en el origen y el destino. Cada regla define una condición que se basa en la dirección de origen o destino, pero no en ambas.
- La prioridad de una regla identifica de forma única una regla NAT, desde 0 (prioridad más alta) hasta 65,000 (prioridad más baja). No puede haber dos reglas con la misma prioridad.
- Cada configuración de NAT tiene una regla predeterminada:
- La regla predeterminada se aplica si ninguna otra regla NAT coincide en la misma configuración de NAT.
- La prioridad de la regla predeterminada es
65001
. - En el caso de las reglas basadas en la fuente y el destino, el rango de CIDR de IP de la regla predeterminada es
0.0.0.0/0
.
- Las reglas de Cloud NAT solo son compatibles cuando el valor de la opción de asignación de IP de NAT es
MANUAL_ONLY
. Todas las direcciones IP configuradas en una regla determinada deben ser del mismo nivel.
No puedes usar una combinación de direcciones IP del nivel Premium y del nivel Estándar en la misma regla (incluida la regla predeterminada).
Los rangos de CIDR de IP en las condiciones de coincidencia no deben superponerse en las reglas NAT. Como máximo, se puede aplicar una regla a un paquete determinado. Si un paquete coincide con una regla basada en la fuente y en el destino, Cloud NAT aplica la regla que tiene mayor prioridad.
No puedes crear una regla de NAT con
0.0.0.0/0
como rango de origen o destino porque la usa la regla predeterminada.Las direcciones IP de NAT en las reglas NAT no se deben superponer.
Una regla debe tener una dirección IP
Active
oDrain
no vacía. Si la regla tiene una dirección IPActive
vacía, se descartan las conexiones nuevas que coinciden con la regla de NAT.No se pueden agregar reglas NAT a una puerta de enlace NAT con el mapeo independiente de extremos habilitado. No puedes habilitar el mapeo independiente de extremos en una puerta de enlace NAT con reglas NAT.
Además, todas las VM obtienen puertos asignados desde el valor de puertos mínimos por VM para cada regla de Cloud NAT. Si se agotan los puertos asignados a una VM desde una regla de NAT, se descartan las conexiones nuevas que coinciden con la regla de NAT.
Por ejemplo, si configuras 4,096 puertos por VM y tienes 16 VM y 2 reglas NAT (rule1
con 1 dirección IP y rule2
con 2 direcciones IP), junto con la regla predeterminada (default
) con 2 direcciones IP, las 16 VM obtendrán 4,096 puertos en cada paquete de reglas NAT. En este ejemplo, no hay problemas en default
o rule2
para todas sus VM, pero rule1
no puede asignar puertos a todas sus VM.
Por lo tanto, el tráfico de las VM que necesitan pasar por rule1
podría descartarse y mostrar signos de falta de recursos, ya que no usa la regla predeterminada.
Lenguaje de expresión de reglas
Las reglas de NAT se escriben con la sintaxis de Common Expression Language.
Una expresión requiere los siguientes dos componentes:
- Atributos que se pueden inspeccionar en expresiones de reglas
- Operaciones que se pueden realizar en los atributos como parte de una expresión
Por ejemplo, en la siguiente expresión, se usan los atributos destination.ip
y 198.51.100.0/24
en la operación inIpRange()
. En este caso, la expresión muestra un valor verdadero si destination.ip
está dentro del rango de direcciones IP 198.51.100.0/24
.
inIpRange(destination.ip, '198.51.100.0/24')
Las reglas de NAT solo admiten los siguientes atributos y operaciones:
Atributos
Los atributos representan información de un paquete saliente, como la dirección IP de origen y destino.
Nombre del atributo | Descripción |
---|---|
source.ip |
Dirección IP de origen del paquete |
destination.ip |
Dirección IP de destino del paquete |
Operations
En la siguiente referencia, se describen los operadores que puedes usar con atributos para definir expresiones de reglas.
Operación | Descripción |
---|---|
inIpRange(string, string) -> bool |
inIpRange(x, y) devuelve true si el rango de IP de CIDR y contiene la dirección IP x . |
|| |
Operador lógico. x || y devuelve true si x o y es true . |
== |
Operador de igualdad. x == y devuelve true si x es igual a y . |
Expresiones de ejemplo
Puedes hacer coincidir paquetes según la dirección de origen o de destino, pero no ambas.
Ejemplos de coincidencias basadas en la fuente
Haz coincidir los paquetes con la dirección IP de origen 10.0.0.25
:
"source.ip == '10.0.0.25'"
Haz coincidir los paquetes con la dirección IP de origen 10.0.0.25
o 10.0.0.26
:
"source.ip == '10.0.0.25' || source.ip == '10.0.0.26'"
Haz coincidir los paquetes con el rango de direcciones IP de origen 10.0.2.0/24
:
"inIpRange(source.ip, '10.0.2.0/24')"
Haz coincidir los paquetes con la dirección IP de origen 10.0.0.25
o el rango de direcciones IP de origen 10.0.2.0/24
:
"source.ip == '10.0.0.25' || inIpRange(source.ip, '10.0.2.0/24')"
Ejemplos de coincidencias basadas en el destino
Haz coincidir los paquetes con la dirección IP de destino 198.51.100.20
:
"destination.ip == '198.51.100.20'"
Haz coincidir los paquetes con la dirección IP de destino 198.51.100.20
o 198.51.100.21
:
"destination.ip == '198.51.100.20' || destination.ip == '198.51.100.21'"
Haz coincidir los paquetes con el rango de direcciones IP de destino 198.51.100.10/30
:
"inIpRange(destination.ip, '198.51.100.10/30')"
Haz coincidir los paquetes con la dirección IP de destino 198.51.100.20
o el rango de direcciones IP de destino 198.51.100.10/30
:
"destination.ip == '198.51.100.20' || inIpRange(destination.ip, '198.51.100.10/30')"
¿Qué sigue?
- Aprende a configurar reglas de NAT.