En este documento, se muestra cómo los balanceadores de cargas de proxy controlan el tráfico IPv6. En este documento, IPv4 solo (pila única) se refiere a los recursos que solo usan direcciones IPv4, y IPv4 e IPv6 (pila doble) se refiere a los recursos que usan direcciones IPv4 e IPv6.
Google Cloud admite el tráfico IPv6 para balanceadores de cargas de red de transferencia basados en servicios de backend. Para obtener más información, consulta Balanceador de cargas de red de transferencia externa basado en servicios de backend y Descripción general del balanceador de cargas de red de transferencia interno basado en servicios de backend.
Los balanceadores de cargas de aplicaciones externos globales y los balanceadores de cargas de red de proxy externos globales finalizan el tráfico IPv6 entrante y, luego, lo enrutan a través de una conexión IPv4 o IPv6 a tus backends IPv4 e IPv6 (doble pila).
En la siguiente tabla, se indican los balanceadores de cargas que admiten frontend de IPv6 y backends de IPv4 e IPv6 (pila doble):
Función | Balanceador de cargas de aplicaciones | Balanceador de cargas de red de proxy | ||
---|---|---|---|---|
Interno | Externo | Interno | Externo | |
Frontends de IPv6 |
global clásico+ |
global clásico+ |
||
Backends de IPv4 e IPv6 (pila doble) |
entre regiones* regional* |
global* regional* |
entre regiones* regional* |
global* regional* |
* Compatible con IPv4 y Grupos de instancias IPv6 (pila doble) y backends de NEG zonales. Compatibilidad con NEG zonales pila doble solo en extremos de tipo GCE_VM_IP_PORT
.
+ Compatible con el nivel Premium
En las siguientes secciones de este documento, se describe cómo los balanceadores de cargas de aplicaciones externos globales y los balanceadores de cargas de red de proxy externos globales manejan el tráfico IPv6.
En el siguiente ejemplo, se muestra cómo funciona el balanceo de cargas para clientes IPv6 globales:
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.
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:
Cuando un usuario se conecta al balanceador de cargas mediante IPv6, ocurre lo siguiente:
- Tu balanceador de cargas, con su dirección IPv6 y la regla de reenvío, espera las conexiones del usuario.
- Un cliente IPv6 se conecta al balanceador de cargas a través de IPv6.
- 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.
- 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.
Limitaciones
Los balanceadores de cargas de red de proxy clásicos y los balanceadores de cargas de aplicaciones clásicos no admiten backends de pila doble. El balanceador de cargas finaliza el tráfico IPv6 y, luego, lo envía mediante proxy a través de una conexión IPv4 a los backends.
Los balanceadores de cargas de aplicaciones externos regionales, los balanceadores de cargas de aplicaciones internos entre regiones, los balanceadores de cargas de aplicaciones internos regionales, los balanceadores de cargas de red de proxy internos regionales, los balanceadores de cargas de red de proxy internos entre regiones ni los balanceadores de cargas de red de proxy externos regionales admiten el frontend de IPv6. El tráfico IPv4 entrante se envía mediante proxies a través de una conexión IPv4 o IPv6 a los backends IPv4 e IPv6 (pila doble).
Solo los backends de grupos de instancias de VM y los grupos de extremos de red (NEG) zonales con extremos
GCE_VM_IP_PORT
admiten IPv4 y IPv6 (pila doble).
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.
Si deseas obtener instrucciones para convertir los recursos y backends de tu balanceador de cargas a la pila doble, consulta la siguiente documentación:
Balanceador de cargas | Documentación |
---|---|
Balanceador de cargas de aplicaciones externo global Balanceador de cargas de aplicaciones interno entre regiones Balanceador de cargas de aplicaciones externo regional Balanceador de cargas de aplicaciones interno regional |
Convierte el balanceador de cargas de aplicaciones a IPv6 |
Balanceador de cargas de red de proxy externo global y SSL de los proxies TCP Balanceador de cargas de red de proxy interno entre regiones Balanceador de cargas de red de proxy externo regional Balanceador de cargas de red de proxy interno regional |
Convierte el balanceador de cargas de red del proxy a IPv6 |
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.