Terminación de IPv6 para balanceadores de cargas de aplicaciones externos y balanceadores de cargas de red de proxy externos

Google Cloud admite clientes IPv6 con balanceadores de cargas de proxy. El balanceador de cargas acepta las conexiones IPv6 de tus usuarios y, luego, envía mediante proxy esas conexiones a tus backends.

Puedes configurar direcciones IP IPv4 e IPv6 (pila doble) para los siguientes balanceadores de cargas de proxy:

Atributo Balanceador de cargas de aplicaciones Balanceador de cargas de red del proxy
Servicio Servicio
Frontends de pila doble global
clásico
global
clásico
Backends de doble pila global1
global1

1 Admite grupos de instancias IPv4 e IPv6 (pila doble) y backends de NEG zonales. Los NEG zonales admiten la pila doble solo en extremos de tipo GCE_VM_IP_PORT.

En el siguiente ejemplo, se muestra cómo funciona el balanceo de cargas para clientes IPv6 globales:

Balanceo de cargas IPv6 global.
Balanceo de cargas IPv6 global (haz clic para agrandar).

La terminación de IPv6 te permite manejar las solicitudes IPv6 de tus usuarios y conectarlas a tus backends mediante un proxy en IPv4 o IPv6. Si usas IPv6, puedes hacer lo siguiente:

  • Puedes usar una sola dirección IPv6 Anycast para la implementación multirregión. Solo necesitas una dirección IPv6 del balanceador de cargas para las instancias de la aplicación que se ejecutan en varias regiones. Esto significa que el servidor DNS tiene un único registro AAAA y que no necesitas balancear las cargas entre varias direcciones IPv6. El almacenamiento en caché de registros AAAA por parte de los clientes no es un problema porque solo hay una dirección para almacenar en caché. Las solicitudes de los usuarios a la dirección IPv6 balancean las cargas de manera automática al backend en buen estado más cercano con capacidad disponible.

  • Puedes balancear las cargas de HTTP, HTTPS, HTTP/2, TCP y tráfico de clientes IPv6 de SSL y TLS.

  • Puedes desbordar regiones con una sola dirección de balanceador de cargas IPv6. Si los backends en una región no tienen recursos o están en mal estado, el balanceador de cargas global dirige de manera automática las solicitudes de los usuarios a la siguiente región más cercana con recursos disponibles. Cuando la región más cercana tiene recursos disponibles, el balanceo de cargas global vuelve a entregar en esta región. El balanceo de cargas global requiere que uses el nivel Premium de los Niveles de servicio de red.

  • Ejecuta implementaciones de pila doble. Si quieres entregar contenido a los clientes IPv6 y, también, IPv4, crea dos recursos de IP del balanceador de cargas (uno para IPv6 y el otro para IPv4), y asocia ambos con las mismas instancias de aplicación. Los clientes IPv4 se conectan a la dirección IPv4, mientras que los clientes IPv6 se conectan a la dirección IPv6. Luego, estos clientes balancean las cargas de manera automática a los backends de pila doble IPv4 o IPv6 en buen estado más cercanos con capacidad disponible. Para ver qué balanceadores de cargas admiten backends de pila doble, consulta Tabla: Servicios de backend y tipos de backends compatibles. Proporcionamos reglas de reenvío de IPv6 sin cargo, por lo que solo debes pagar las de IPv4.

    Dirige el tráfico IPv4 e IPv6 a los mismos backends.
    Dirige el tráfico de IPv4 y de IPv6 a los mismos backends (haz clic para agrandar).

Terminación y envío mediante proxy de IPv6

Si configuras la terminación de IPv6 para tus balanceadores de cargas, permites que tus backends aparezcan como aplicaciones IPv6 para los clientes IPv6, como se muestra en la siguiente figura:

Terminación de IPv6 para el balanceo de cargas
Terminación de IPv6 del balanceo de cargas (haz clic para agrandar).

Cuando un usuario se conecta al balanceador de cargas mediante IPv6, ocurre lo siguiente:

  1. Tu balanceador de cargas, con su dirección IPv6 y la regla de reenvío, espera las conexiones del usuario.
  2. Un cliente IPv6 se conecta al balanceador de cargas a través de IPv6.
  3. El balanceador de cargas actúa como un proxy inverso y finaliza la conexión del cliente IPv6. Basado en la política de selección de direcciones IP del servicio de backend, ubica la solicitud en una conexión IPv4 o IPv6 a un backend.
  4. En la ruta de acceso inversa, el balanceador de cargas recibe la respuesta del backend y, luego, la coloca en la conexión IPv6 de regreso al cliente original.

Asignación de direcciones IPv6 para las reglas de reenvío del balanceador de cargas

Cuando configuras un balanceador de cargas externo, proporcionas una o más reglas de reenvío globales, cada una con una dirección IP IPv4 o IPv6 externa y enrutada de forma pública (o ambas). Puedes usar esta dirección IP en los registros DNS de tu sitio.

Cuando creas una regla de reenvío, puedes usar una dirección IP estática reservada para tu proyecto o hacer que la regla de reenvío adquiera de forma automática una dirección IP efímera cuando creas la regla. Una dirección IP estática está reservada para tu proyecto y puedes conservarla hasta que la liberes de forma deliberada. Una dirección efímera pertenece a la regla de reenvío mientras esta exista. Si borras la regla de reenvío, la dirección efímera se libera de nuevo en el grupo de Google Cloud.

Si necesitas una dirección IPv4 o IPv6 para tu balanceador de cargas, puedes crear dos reglas de reenvío y asociar una dirección IPv4 a una, y una dirección IPv6 a la otra. Luego, puedes asociar ambas reglas al mismo balanceador de cargas.

Formato de dirección IPv6

Google Cloud asigna un rango de direcciones IPv6 /64 a las reglas de reenvío IPv6. Google Cloud CLI muestra las direcciones IPv6 con los 64 bits menos significativos configurados en 0, pero el balanceador de cargas acepta tráfico en todo el rango. Por lo tanto, es posible que veas otras direcciones IPv6 del balanceador de cargas en el rango asignado en los encabezados X-Forwarded-For según la dirección IP del servidor IPv6 al que se conectó el cliente.

Cuando formateas una dirección IPv6, Google Cloud sigue las recomendaciones de RFC 5952, sección 4.

Encabezado de IP del cliente con terminación IPv6 para balanceadores de cargas de aplicaciones externos

Cuando el balanceador de cargas envía mediante proxy la conexión IPv6 del cliente a una conexión IPv4 a tu backend, la dirección IP fuente original se reemplaza con la dirección IP del balanceador de cargas. Sin embargo, los backends a menudo necesitan conocer la dirección IP fuente original para el registro, la toma de decisiones o para otros fines. Google Cloud proporciona un encabezado HTTP que se propaga a los backends que incluyen la dirección IP de cliente IPv6 original.

Los encabezados HTTP para IPv6 son similares a aquellos para IPv4. El formato de las solicitudes es el siguiente:

  • X-Forwarded-For: CLIENT_IP_ADDRESS, GLOBAL_FORWARDING_RULE_EXTERNAL_IP_ADDRESSES

En el último elemento, se muestra la dirección IP del balanceador de cargas. En el penúltimo elemento, se muestra la dirección IP de cliente tal como la ve el balanceador de cargas. Es posible que haya otros elementos en el encabezado X-Forwarded-For cuando el cliente o los proxies intermedios agreguen otros encabezados X-Forwarded-For antes de enviar la solicitud al balanceador de cargas.

Un encabezado de ejemplo X-Forwarded-For puede tener este aspecto:

X-Forwarded-For: 2001:db8:abcd:1::1234, 2607:f8b0:4005:801::200e

2001:db8:abcd:1::1234 es la dirección IPv6 del cliente. 2607:f8b0:4005:801::200e es la dirección IPv6 del balanceador de cargas de aplicaciones externo.

Convierte de pila única a pila doble

Puedes convertir los recursos del balanceador de cargas que usan solo IPv4 (pila única) a IPv4 y, también, IPv6 (pila doble). Si actualizas los recursos del balanceador de cargas, puedes enrutar el tráfico IPv6 a tus backends de forma automática.

Para obtener instrucciones sobre cómo convertir los recursos y backends del balanceador de cargas en pila doble, consulta la siguiente documentación:

Precios

Las reglas de reenvío para la terminación de IPv6 se proporcionan sin costo adicional. No se te cobrará por las direcciones IPv6 efímeras. Las direcciones IPv6 reservadas se cobran según las tarifas existentes, sin importar si están en uso. De lo contrario, el precio del balanceo de cargas IPv6 es el mismo que el del balanceo de cargas IPv4. Para obtener más información sobre los precios de balanceo de cargas, consulta Precios de red.

Limitaciones

  • El tráfico IPv6 no es compatible con balanceadores de cargas de aplicaciones externos regionales, balanceadores de cargas de aplicaciones internos entre regiones, balanceadores de cargas de aplicaciones internos regionales, balanceadores de cargas de red de proxy internos regionales, balanceadores de cargas de red de proxy internos entre regiones o balanceadores de cargas de red de proxy externos regionales.
  • Los balanceadores de cargas de red del proxy clásicos y los balanceadores de cargas de aplicaciones clásicos no admiten backends de pila doble. Las solicitudes se envían mediante proxy a backends IPv4.

¿Qué sigue?

* Protocolo de selección de direcciones IP * Elige un flujo de trabajo de migración