Terminación de IPv6 para el balanceo de cargas HTTP(S) y de proxies SSL y TCP

Google Cloud admite clientes IPv6 con balanceo de cargas HTTP(S), balanceo de cargas de proxy SSL y balanceo de cargas de proxy TCP. 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 externas IPv4 y, también, IPv6 para los siguientes balanceadores:

  • Balanceadores de cargas HTTP(S) externos
  • Balanceadores de cargas de proxy SSL
  • Balanceadores de cargas de proxy TCP
Balanceo de cargas IPv6 global (haz clic para agrandar)
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. 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 forma 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 forma 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 funcionar en esta región. El balanceo de cargas global requiere que uses el nivel Premium de los Niveles de servicio de red.

  • Puedes ejecutar la doble pila. 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 IPv4. Los clientes IPv4 se conectan a la dirección IPv4, al tiempo que los clientes IPv6 se conectan a la dirección IPv6. Luego, estos clientes balancean las cargas de forma automática a los backends en buen estado más cercanos y con capacidad disponible. Proporcionamos reglas de reenvío de IPv6 sin cargo, por lo que solo debes pagar las de IPv4.

    Dirige el tráfico de IPv4 y, también, de IPv6 a los mismos backends (haz clic para agrandar)
    Dirige el tráfico de IPv4 y, también, 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 tus clientes IPv6.

Terminación de IPv6 del balanceo de cargas (haz clic para agrandar)
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. Este coloca la solicitud en una conexión IPv4 a un backend.
  4. En la ruta de acceso inversa, el balanceador de cargas recibe la respuesta IPv4 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 en tanto exista la regla de reenvío. 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 e 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 de IPv6. La herramienta de línea de comandos de gcloud enumera 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 IP de cliente con terminación IPv6 para el balanceo de cargas de HTTP(S)

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 del 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 del 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 HTTP(S) externo.

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.

Qué sigue