Descripción general de grupos de extremos de red de Internet

Un grupo de extremos de red de Internet (NEG) define un backend externo para un balanceador de cargas. Un backend externo es un backend que reside fuera de Google Cloud. Puedes usar este tipo de backend con un balanceador de cargas HTTP(S) externo. Debes hacerlo cuando quieras entregar contenido desde un backend externo y desees que tu balanceador de cargas HTTP(S) externo sea el frontend.

Esto te permite hacer lo siguiente:

  • Usar la infraestructura de Google Edge para finalizar tus conexiones de usuario.
  • Dirige las conexiones a tu backend externo.
  • Usa Cloud CDN para almacenar en caché el contenido de tu backend externo.
  • Enviar tráfico a tu extremo público a través de la red troncal privada de Google, lo que mejora la confiabilidad y puede reducir la latencia entre el cliente y el servidor

En este documento, se analiza el uso de backends externos con balanceadores de cargas HTTP(S) externos. No puedes usar backends externos con balanceadores de cargas HTTP(S) regionales externos ni con ningún otro tipo de balanceador de cargas. Sin embargo, puedes usar backends externos con Traffic Director. Para obtener información sobre cómo hacerlo, consulta Traffic Director con grupos de extremos de red de Internet.

Para obtener información sobre los NEG zonales, consulta Descripción general de los grupos de extremos de red zonal.

Para obtener información sobre los NEG sin servidores, consulta Descripción general de los grupos de extremos de red zonal.

Terminología

Los siguientes términos a veces se usan indistintamente porque tienen el mismo significado o uno similar:

  • backend externo: Es un backend que reside fuera de Google Cloud y se puede acceder a él a través de Internet. El extremo en un NEG de Internet.
  • origen personalizado: Igual que un backend externo. En CDN, origen es el término estándar de la industria para una instancia de backend que entrega contenido web.
  • Grupo de extremos de red de Internet (NEG): el recurso de la API de Google Cloud que usas para especificar un backend externo.
  • extremo externo: Igual que un backend externo.

En este documento, se usa el término backend externo, excepto cuando se hace referencia al recurso de la API de NEG de Internet.

Descripción general

Los NEG de Internet son recursos globales que se alojan dentro de la infraestructura local o en la infraestructura proporcionada por terceros.

Tipos de extremos

Cuando creas un NEG de Internet, debes especificar el tipo de extremo de red de INTERNET_FQDN_PORT o INTERNET_IP_PORT:

Dirección del extremo Tipo Definición Cuándo usarla
Nombre de host y un puerto opcional INTERNET_FQDN_PORT Para el balanceo de cargas de HTTP(S) externo, un nombre de dominio completamente calificado que se puede resolver de forma pública y un puerto opcional, por ejemplo, backend.example.com:443 (puertos predeterminados: 80 para HTTP y 443 para HTTPS).

En Traffic Director, se usa el orden de resolución de nombres de la red de VPC para resolver el FQDN.
Usa este extremo con balanceo de cargas HTTP(S) externo cuando tu backend externo se pueda resolver mediante un nombre de dominio completamente calificado con DNS público.

Usa este extremo con Traffic Director para enviar tráfico a los servicios externos.
Dirección IP y un puerto opcional INTERNET_IP_PORT Una dirección IP de acceso público y un puerto opcional, por ejemplo 8.8.8.88.8.8.8:443 (puertos predeterminados: 80 para HTTP y 443 para HTTPS) Usa este extremo solo con el balanceo de cargas HTTP(S) externo a fin de especificar una dirección IP de acceso público y un puerto de conexión.

En un NEG de Internet, no puedes tener más de un extremo. Los grupos de extremos de red de Internet no admiten el tipo de extremo GCE_VM_IP_PORT.

En las siguientes secciones, se explica cómo se usan los backends externos con balanceadores de cargas de HTTP(S) externos. Cuando usas un backend externo con Traffic Director, DNS, la verificación de estado y el enrutamiento de tráfico, se comportan de manera diferente. Para obtener más información, consulta Traffic Director con grupos de extremos de red de Internet.

Componentes y especificaciones del balanceo de cargas

Puedes usar un backend externo en un balanceador de cargas con el nivel de servicio de red Premium.

Sin embargo, dado que solo se permite un extremo en cada NEG de Internet, el balanceo de cargas no se realiza realmente. Esto significa que no puedes usar ninguno de los modos de balanceo de cargas, como la tasa o el uso. El balanceador de cargas funciona solo como frontend y actúa como proxy para el tráfico al backend externo especificado.

La selección de reenvío se basa en un mapa de URL. Para los proxies HTTP(S) de destino, el servicio de backend que se usa se determina mediante la verificación del nombre del host de la solicitud y la ruta de acceso en el mapa de URL. Los balanceadores de cargas de HTTP(S) externos pueden tener varios servicios de backend a los que se hace referencia desde el mapa de URL.

  • Cada balanceador de cargas de HTTP(S) externo tiene su propia regla de reenvío externa global para dirigir el tráfico al objeto proxy de destino apropiado.

  • Si el mapa de URL envía la solicitud a un servicio de backend que contiene un NEG de Internet, el servicio de backend dirige el tráfico a ese backend externo.

En la siguiente ilustración, se muestra un balanceador de cargas de HTTP(S) externo con varios tipos de backend, uno de los cuales es un backend externo.

Grupos de extremos de red de Internet en el balanceo de cargas (haz clic para agrandar)
Grupos de extremos de red de Internet en el balanceo de cargas (haz clic para agrandar)

Servicio de backend

Como se mostró en la sección anterior, un NEG de Internet es un tipo de backend compatible con un servicio de backend de un balanceador de cargas de HTTP(S) externo. Te permite usar la infraestructura perimetral global de Google para finalizar las solicitudes de los usuarios frente a un backend externo.

Cuando agregas un NEG de Internet a un servicio de backend, ocurre lo siguiente:

  • El servicio de backend tampoco puede usar NEG zonales ni grupos de instancias como backends. Todos los backends de un servicio de backend deben ser del mismo tipo.

  • Solo puedes agregar un backend de NEG de Internet al mismo servicio de backend.

  • Puedes agregar solo un extremo a un NEG de Internet.

  • El servicio de backend no puede hacer referencia a una verificación de estado.

  • El esquema de balanceo de cargas del servicio de backend debe ser EXTERNAL y su protocolo debe ser HTTP, HTTPS o HTTP2.

  • Las funciones del servicio de backend son compatibles cuando se usa un NEG de Internet. Se incluyen las siguientes funciones:

Verificaciones de estado

Un servicio de backend con un NEG de Internet no admite una verificación de estado. Google Cloud no proporciona la verificación de estado para ningún backend externo.

Si tu backend externo se vuelve inaccesible o si el nombre de host configurado (FQDN) no se puede resolver, el balanceador de cargas de HTTP(S) externo muestra una respuesta HTTP 502 (puerta de enlace incorrecta) a sus clientes.

Autentica solicitudes

Para permitir que un balanceador de cargas HTTP(S) externo envíe solicitudes a tu backend externo, sigue estos pasos:

  • Consulta el registro TXT _cloud-eoips.googleusercontent.com de DNS con una herramienta como dig o nslookup. Toma nota de los CIDR (después de ip4:) y asegúrate de que se permitan esos rangos en el firewall o la lista de control de acceso (LCA) en la nube. Para ver un ejemplo, consulta Permite la lista de rangos de IP necesarios.
  • Puedes configurar un encabezado personalizado para indicar que la solicitud provino de un balanceador de cargas de HTTP(S) externo de Google Cloud mediante un encabezado de solicitud personalizado.
    • Por ejemplo, puedes usar 16 o más bytes criptográficos aleatorios como clave compartida.
  • También puedes habilitar Identity-Aware Proxy (IAP) y verificar que el JWT firmado en el encabezado de la solicitud esté firmado por Google y que la reclamación aud (público) contenga el número de proyecto en el que se define el balanceador de cargas de HTTP(S) externo. Ten en cuenta que IAP no es compatible con Cloud CDN.

Validación de certificación del servidor SSL y validación de SAN

Si usas HTTPS o HTTP/2 como protocolo de backend, te recomendamos que uses INTERNET_FQDN_PORT para crear tu extremo de backend.

Cuando se crea un backend externo mediante INTERNET_FQDN_PORT, el balanceador de cargas valida el certificado del servidor SSL que presenta el backend externo y verifica que se cumpla lo siguiente:

  • El certificado esté firmado por CA conocidas.
  • El certificado no haya caducado.
  • La firma del certificado sea válida.
  • El FQDN configurado coincida con uno de los nombres alternativos de sujeto (SAN) en el certificado.

Compatibilidad con la extensión de indicación de nombre del servidor (SNI) de SSL

La SNI solo se admite cuando usas INTERNET_FQDN_PORT con HTTPS o HTTP/2 como protocolo de backend. En este caso, el FQDN configurado recibe una SNI en la bienvenida del cliente durante el protocolo de enlace SSL entre el balanceador de cargas y el extremo externo. La SNI no se envía cuando configuras el extremo como INTERNET_IP_PORT, porque los literales de dirección IP no están permitidos en el campo HostName de una carga útil de SNI.

Resolución de dirección IP para extremos FQDN

Cuando un extremo INTERNET_FQDN_PORT apunta a un registro DNS que muestra varias direcciones IP, la dirección IP se resuelve de la siguiente manera:

  • El balanceador de cargas de HTTP(S) externo intenta conectarse a la primera dirección IP en la respuesta DNS. Si no se puede acceder a esa dirección IP, el balanceador de cargas muestra una respuesta HTTP 502 (Puerta de enlace incorrecta). Esto es así incluso si están disponibles otras direcciones IP de la respuesta de DNS.

  • El balanceador de cargas de HTTP(S) externo usa un agente de resolución de DNS en una región de Google Cloud que está más cerca de su cliente en Internet. Si el registro DNS de tu extremo INTERNET_FQDN_PORT muestra direcciones IP diferentes según la ubicación del cliente, asegúrate de que el balanceador de cargas pueda acceder a cada una de esas direcciones IP.

Para obtener más información sobre las ubicaciones y los rangos de IP que usa la infraestructura del agente de resolución de DNS de Google, consulta la documentación de DNS público de Google.

Registros

Las solicitudes enviadas mediante proxy a un backend externo se registran en Cloud Logging de la misma manera que las solicitudes de otros backends de balanceo de cargas de HTTP(S). Para obtener más información, consulta Registro y supervisión del balanceo de cargas de HTTP(S) interno.

Si habilitas Cloud CDN para un backend externo, también se registrarán los aciertos de caché.

Procesamiento del encabezado

Cuando un balanceador de cargas de HTTP(S) externo envía solicitudes mediante un proxy a un backend externo, ajusta los encabezados HTTP de las siguientes maneras:

  • Algunos encabezados se combinan. Cuando hay varias instancias de la misma clave de encabezado (por ejemplo, Via), el balanceador de cargas combina sus valores en una lista separada por comas para una sola clave de encabezado. Solo se agrupan los encabezados cuyos valores se pueden representar como una lista separada por comas. Otros encabezados, como Set-Cookie, nunca se combinan.

  • Los encabezados son correctos cuando el protocolo del servicio de backend es HTTP o HTTPS:

    • La primera letra de la clave del encabezado y todas las letras que siguen a un guion (-) se escriben en mayúsculas para preservar la compatibilidad con clientes HTTP/1.1. Por ejemplo, user-agent se cambia a User-Agent, y content-encoding se cambia a Content-Encoding.

    • Ciertos encabezados (como TE (codificación de transferencia) y Accept-CH (sugerencias de cliente)) se convierten para coincidir con la representación de letras mixtas estándar.

  • Algunos encabezados se agregan o se les agregan valores. Los balanceadores de cargas de HTTP(S) externos siempre agregan o modifican determinados encabezados, como Via y X-Forwarded-For.

Limitaciones

  • No puedes usar NEG de Internet como backends para balanceadores de cargas HTTP(S) regionales externos.
  • Un backend externo con un FQDN definido debe poder resolverse con el DNS público de Google. Los nombres que el sistema DNS público no puede resolver no se podrán usar como backend externo.
  • Un backend externo debe ser una dirección IPv4 de enrutamiento público o resolverse en una:
    • Un backend externo no puede ser una dirección RFC 1918.
    • Debe ser accesible a través de Internet. No se puede acceder al extremo solo desde Cloud VPN o Cloud Interconnect.
    • Si el backend externo hace referencia a una API o servicio de Google, se debe poder acceder a estos mediante el puerto TCP 80 o 443 con el protocolo HTTP, HTTPS o HTTP/2.
  • Solo puedes usar NEG de Internet en el nivel de servicio de red Premium, que es el nivel predeterminado. Para obtener más información, consulta la documentación de niveles de servicio de red.
  • Debes usar la IP:{puerto opcional} para el extremo INTERNET_IP_PORT o FQDN:{puerto opcional} para INTERNET_FQDN_PORT.
  • Cuando se usa un NEG con el tipo de extremo INTERNET_FQDN_PORT o INTERNET_IP_PORT, solo se puede agregar un extremo al NEG. Esto significa que cuando se usa un NEG con un tipo de extremo de red INTERNET_FQDN_PORT o INTERNET_IP_PORT en un backendService, no puedes adjuntar varios NEG al backendService.
  • Por el momento, el balanceo de cargas no es compatible con los backends externos; las solicitudes solo se envían mediante proxy al extremo. La infraestructura de Google Edge interrumpe las conexiones de usuario y, luego, dirige las conexiones a tu backend externo.
  • Puedes usar NEG de Internet sin Cloud CDN habilitado. Con esta configuración, aún no puedes adjuntar varios NEG de Internet al servicio de backend. Es decir, la restricción de un solo extremo permanece.
  • No se realiza ninguna verificación de estado para el backend externo. Si tu backend externo se vuelve inaccesible o si se especifica como un FQDN, pero no se puede resolver, Cloud CDN envía un mensaje 502 (Puerta de enlace incorrecta) como respuesta a las solicitudes de usuarios.
  • Cuando se usa un backend externo que espera un valor particular para el encabezado Host de la solicitud HTTP, debes configurar el servicio de backend a fin de establecer el encabezado Host en ese valor esperado. Si no configuras un encabezado de solicitud personalizado, un servicio de backend conserva el encabezado Host que el cliente usó para conectarse al balanceador de cargas HTTP(S) externo de Google Cloud. Para obtener información general sobre los encabezados de solicitud personalizados, consulta Crea encabezados de solicitud personalizados. Para ver un ejemplo específico, consulta Configura un balanceador de cargas con un backend externo.

Cuota

Puedes configurar tantos NEG con extremos de red externos como lo permita la cuota de tu grupo de extremos de red existente. Para obtener más información, consulta Backends de NEG y Extremos por NEG.

Precios

El tráfico de salida al extremo de un NEG de Internet (tipo INTERNET_FQDN_PORT o INTERNET_IP_PORT) se cobra según las tarifas de salida de Internet para redes de nivel Premium.

La fuente se basa en la ubicación del cliente, y el destino se basa en la ubicación de tu extremo público.

Para obtener más información, consulta Precios de Cloud CDN para backends externos.

¿Qué sigue?