IPv6 para balanceadores de carga de aplicaciones y balanceadores de carga de red de proxy

En este documento se explica cómo gestionan el tráfico IPv6 los balanceadores de carga de aplicaciones y los balanceadores de carga de red proxy. Estos balanceadores de carga son balanceadores de carga proxy, lo que significa que las conexiones de clientes entrantes se terminan en el balanceador de carga. A continuación, el balanceador de carga inicia una nueva conexión para reenviar la solicitud del cliente al backend. En función del tipo de balanceador de carga, puedes habilitar IPv6 para una o ambas conexiones.

Habilitar IPv6 en tu balanceador de carga tiene las siguientes ventajas:

  • Usa una sola dirección IPv6 anycast para las implementaciones multirregión. Solo necesitas una dirección IPv6 del balanceador de carga para las instancias de aplicación que se ejecutan en varias regiones. Esto significa que tu servidor DNS tiene un solo registro AAAA y que no necesitas equilibrar la carga entre varias direcciones IPv6. El almacenamiento en caché de los registros AAAA por parte de los clientes no supone ningún problema porque solo hay una dirección que almacenar en caché. Las solicitudes de los usuarios a la dirección IPv6 se balancean de carga automáticamente al backend en buen estado más cercano con capacidad disponible.
  • Ejecutar implementaciones de pila dual. Para dar servicio a clientes IPv6 e IPv4, crea dos direcciones IP de balanceador de carga: una para IPv6 y otra para IPv4. Los clientes IPv4 se conectan a la dirección IPv4, mientras que los clientes IPv6 se conectan a la dirección IPv6. Estos clientes se equilibran de carga automáticamente a los back-ends de pila dual IPv4 o IPv6 más cercanos y en buen estado que tengan capacidad disponible. Para ver qué balanceadores de carga admiten back-ends de doble pila, consulta la tabla Servicios de backend y tipos de backend admitidos.

  • Balancear la carga del tráfico de clientes IPv6 de HTTP, HTTPS, HTTP/2, TCP y SSL/TLS. La compatibilidad con protocolos depende del tipo de balanceador de carga que utilices y del protocolo de la regla de reenvío.

  • Traslada el tráfico entre regiones con una sola dirección de balanceador de carga IPv6. Si los backends de una región se quedan sin recursos o no están en buen estado, el balanceador de carga global dirige automáticamente las solicitudes de los usuarios a la siguiente región más cercana que tenga recursos disponibles. Cuando la región más cercana tenga recursos disponibles, el balanceo de carga global volverá a servir contenido desde esa región. Para usar el balanceo de carga global, debes utilizar el nivel Premium de los niveles de servicio de red.

Compatibilidad con balanceadores de carga

En el caso de los balanceadores de carga basados en proxies, como los balanceadores de carga de aplicaciones y los balanceadores de carga de red de proxy, la conexión del cliente al balanceador de carga y la segunda conexión del balanceador de carga al backend se pueden configurar de forma independiente. Por ejemplo, el balanceador de carga puede aceptar tráfico IPv4 de un cliente, finalizar la conexión y, a continuación, reenviar la solicitud del balanceador de carga al backend a través de una nueva conexión IPv6, siempre que el backend sea de pila dual y esté equipado para gestionar conexiones IPv6.

Para que un balanceador de carga pueda recibir conexiones IPv6 de los clientes, debes usar una dirección IPv6 en la regla de reenvío del balanceador de carga. La conexión posterior del balanceador de carga al backend usa IPv4 de forma predeterminada. Sin embargo, puedes habilitar que determinados balanceadores de carga usen IPv6 configurando la opción Política de selección de direcciones IP en el servicio de backend.

En la siguiente tabla se describen los tipos de conexión admitidos por todos los balanceadores de carga basados en proxy:

Balanceador de carga Conexión de clientes al balanceador de carga Conexión del balanceador de carga a los backends
Balanceador de carga de aplicación externo global
Balanceador de carga de red con proxy externo global
Se pueden finalizar las conexiones IPv4 e IPv6. Cualquiera de las siguientes:
  • Conexión IPv4: compatible con back-ends solo IPv4 o de pila dual
  • Conexión IPv6: solo se admite con back-ends de pila dual*
Balanceador de carga de aplicación clásico
Balanceador de carga de red de proxy clásico
Se pueden finalizar las conexiones IPv4 e IPv6. Solo conexión IPv4
Balanceador de carga de aplicaciones externo regional
Balanceador de carga de red con proxy externo regional
Balanceador de carga de aplicaciones interno regional
Balanceador de carga de red con proxy interno regional
Balanceador de carga de aplicaciones interno entre regiones
Balanceador de carga de red con proxy interno entre regiones
Solo IPv4. No se admite el tráfico IPv6. Cualquiera de las siguientes:
  • Conexión IPv4: compatible con back-ends solo IPv4 o de pila dual
  • Conexión IPv6: solo se admite con back-ends de pila dual*
* Solo los grupos de instancias y los NEG zonales (con endpoints GCE_VM_IP_PORT) se pueden configurar como de doble pila.

Cómo funciona la cancelación de IPv6

Los balanceadores de carga de aplicaciones globales y clásicos, así como los balanceadores de carga de red con proxy, admiten la cancelación de IPv6. Si configura la terminación de IPv6 en estos balanceadores de carga, sus back-ends aparecerán como aplicaciones IPv6 para sus clientes IPv6, tal como se muestra en la siguiente figura:

Finalización de IPv6 para el balanceo de carga.
Cancelación de IPv6 para el balanceo de carga (haz clic para ampliar).

Cuando un usuario se conecta al balanceador de carga a través de IPv6, ocurre lo siguiente:

  1. El balanceador de carga, con su dirección IPv6 y su regla de reenvío, espera las conexiones de los usuarios.
  2. Un cliente IPv6 se conecta al balanceador de carga mediante IPv6.
  3. El balanceador de carga actúa como proxy inverso y finaliza la conexión del cliente IPv6. En función de la política de selección de direcciones IP del servicio de backend, coloca la solicitud en una conexión IPv4 o IPv6 a un backend.
  4. En la ruta inversa, el balanceador de carga recibe la respuesta del backend y, a continuación, la coloca en la conexión IPv6 de vuelta al cliente original.

Asignación de direcciones IPv6 a reglas de reenvío de balanceadores de carga

Cuando configuras un balanceador de carga externo, le proporcionas una o varias reglas de reenvío, cada una con una dirección IP externa, enrutable públicamente, IPv4 o IPv6 (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 automáticamente una dirección IP efímera al crearla. Una dirección IP estática se reserva para tu proyecto y puedes conservarla hasta que la liberes deliberadamente. Una dirección efímera pertenece a la regla de reenvío mientras esta exista. Si eliminas la regla de reenvío, la dirección efímera se libera y vuelve al grupo de direcciones Google Cloud .

Si necesitas una dirección IPv4 y una IPv6 para tu balanceador de carga, puedes crear dos reglas de reenvío, asociando una dirección IPv4 a una y una dirección IPv6 a la otra. Después, puede asociar ambas reglas al mismo balanceador de carga.

Formato de dirección IPv6

Google Cloud Asigna un intervalo de direcciones IPv6 /64 a las reglas de reenvío de IPv6. La CLI de Google Cloud muestra las direcciones IPv6 con los 64 bits menos significativos definidos como 0, pero el balanceador de carga acepta tráfico en todo el intervalo. Por lo tanto, es posible que veas otras direcciones IPv6 del balanceador de carga en los encabezados X-Forwarded-For del intervalo asignado, en función de la dirección IP del servidor IPv6 al que se haya conectado el cliente.

Cuando se da formato a una dirección IPv6, Google Cloud se siguen las recomendaciones de la sección 4 del RFC 5952.

Encabezado de IP de cliente con cancelación de IPv6 para balanceadores de carga de aplicación externos

Cuando el balanceador de carga proxy la conexión IPv6 del cliente a una conexión IPv4 con tu backend, la dirección IP de origen original se sustituye por la dirección IP del balanceador de carga. Sin embargo, los back-ends suelen necesitar la dirección IP de origen para registrarla, tomar decisiones o para otros fines. Google Cloud proporciona un encabezado HTTP que se propaga a los back-ends que incluye la dirección IP del cliente IPv6 original.

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

  • X-Forwarded-For: CLIENT_IP_ADDRESS, GLOBAL_FORWARDING_RULE_EXTERNAL_IP_ADDRESSES

El último elemento muestra la dirección IP del balanceador de carga. El penúltimo elemento muestra la dirección IP del cliente tal como la ve el balanceador de carga. Puede haber otros elementos en el encabezado X-Forwarded-For cuando el cliente o los proxies intermediarios añadan otros encabezados X-Forwarded-For antes de enviar la solicitud al balanceador de carga.

Un encabezado X-Forwarded-For de ejemplo podría 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 carga de aplicación externo.

Convertir de solo IPv4 a doble pila

Puedes convertir recursos de balanceador de carga que solo usen IPv4 (pila única) a IPv4 e IPv6 (pila dual). Si actualizas los recursos del balanceador de carga, puedes enrutar automáticamente el tráfico IPv6 a tus backends.

Para obtener instrucciones sobre cómo convertir tus recursos de balanceador de carga y tus back-ends a pila dual, consulta la siguiente documentación:

Balanceador de carga Documentación
Balanceador de carga de aplicación externo global
Balanceador de carga de aplicación interno entre regiones
Balanceador de carga de aplicación externo regional
Balanceador de carga de aplicación interno regional
Convertir un balanceador de carga de aplicaciones a IPv6
Balanceador de carga de red con proxy externo global
Balanceador de carga de red con proxy interno interregional
Balanceador de carga de red con proxy externo regional
Balanceador de carga de red con proxy interno regional
Convertir un balanceador de carga de red de proxy a IPv6

Precios

Las reglas de reenvío para la terminación de IPv6 se proporcionan sin coste adicional. No se te cobra por las direcciones IPv6 efímeras. Las direcciones IPv6 reservadas se cobran con las tarifas actuales, independientemente de si están en uso o no. De lo contrario, los precios del balanceo de carga IPv6 son los mismos que los del balanceo de carga IPv4. Para obtener información detallada sobre los precios del balanceo de carga, consulta los precios de red.

Limitaciones

  • Los balanceadores de carga de red de proxy clásicos y los balanceadores de carga de aplicaciones clásicos no admiten backends de doble pila. El balanceador de carga finaliza el tráfico IPv6 y, a continuación, lo envía a los backends a través de una conexión IPv4.
  • Los balanceadores de carga de aplicaciones externos regionales, los balanceadores de carga de aplicaciones internos regionales, los balanceadores de carga de red con proxy internos regionales, los balanceadores de carga de red con proxy internos entre regiones, los balanceadores de carga de aplicaciones internos entre regiones y los balanceadores de carga de red con proxy externos regionales no admiten front-ends IPv6. El tráfico IPv4 de entrada se envía a través de proxy mediante una conexión IPv4 o IPv6 a los back-ends IPv4 e IPv6 (de pila dual).

  • Solo los backends de grupos de instancias de VM y los grupos de puntos finales de red (NEG) por zonas con GCE_VM_IP_PORT puntos finales admiten backends de doble pila (IPv4 e IPv6).

Siguientes pasos