Soluciona problemas de redes de Looker (Google Cloud Core)

Puedes diagnosticar y resolver problemas comunes de conectividad entrante y saliente para tu instancia de Looker (Google Cloud Core) en configuraciones de redes públicas, privadas e híbridas. Solucionar problemas relacionados con tus dominios personalizados, Private Service Connect, el acceso privado a servicios y la salida controlada te ayuda a restablecer el acceso de los usuarios a tu instancia y mantener las conexiones con proveedores de identidad, servicios externos y backends de bases de datos.

La verificación del dominio personalizado falla con el código de error 9

Cuando configuras un dominio personalizado para una instancia de Looker (Google Cloud Core) que usa conexiones públicas, es posible que la verificación del dominio falle y se muestre un error code: 9.

Síntomas

Cuando haces clic en VERIFICAR DOMINIO en la pestaña DOMINIO PERSONALIZADO de tu instancia de Looker (Google Cloud Core), la verificación falla y se muestra un mensaje de error similar al siguiente:

DNS record is not created or not the same as public IP address (code: 9)

El estado del dominio personalizado también permanece como Sin verificar o se muestra como No disponible.

Causa

Si bien el mensaje de error indica que falta el registro A de DNS o que es incorrecto, este error suele ocurrir por uno de los siguientes motivos:

  • Registros CAA restrictivos: La configuración de DNS de tu dominio incluye registros de autorización de la autoridad certificadora (CAA) que no autorizan a las autoridades certificadoras (AC) de Google a emitir certificados SSL/TLS. Debido a que Looker (Google Cloud Core) usa certificados administrados por Google para las instancias públicas, falla el aprovisionamiento de certificados.
  • CDN o proxy de terceros: Las instancias de Looker (Google Cloud Core) con conexiones públicas usan exclusivamente la autorización del balanceador de cargas (LB) para los certificados administrados por Google. La autorización del LB requiere que el registro A de DNS de tu dominio personalizado se resuelva directamente en la dirección IP pública de entrada de Looker (Google Cloud Core). Si enrutas el tráfico a través de una red de distribución de contenido (CDN), un firewall de aplicación web (WAF) o un proxy inverso (como Akamai o Cloudflare) de terceros, falla la autorización automática del LB.

Solución

Según la causa de la falla, usa los siguientes métodos para resolver el problema:

Autoriza a las autoridades certificadoras de Google en los registros de CAA

Si tu dominio usa registros de CAA, verifica y actualiza tus registros DNS para permitir los proveedores de certificados de Google:

  1. Verifica los registros de CAA existentes de tu dominio con una herramienta de búsqueda de DNS, como dig:

    dig CAA DOMAIN_NAME +short
    

    Reemplaza DOMAIN_NAME por el nombre de tu dominio personalizado (por ejemplo, example.com o looker.example.com).

  2. Agrega registros CAA para autorizar tanto a pki.goog como a letsencrypt.org:

    DOMAIN_NAME. IN CAA 0 issue "pki.goog"
    DOMAIN_NAME. IN CAA 0 issue "letsencrypt.org"
    

    Permitir ambas entidades de certificación garantiza el aprovisionamiento y la renovación automáticos confiables.

  3. Después de actualizar tus registros de CAA, espera a que se propague el DNS y, luego, vuelve a hacer clic en VERIFICAR DOMINIO en la consola de Google Cloud .

Usa Private Service Connect para CDN y proxies de terceros

Las CDN de terceros y los proxies inversos no se pueden colocar directamente delante de una instancia pública de Looker (Google Cloud Core) porque la autorización automática del balanceador de cargas requiere la resolución de DNS directa a la dirección IP pública de la instancia.

Para enrutar el tráfico entrante a través de una CDN o un WAF de terceros, implementa Looker (Google Cloud Core) con una arquitectura de Private Service Connect en lugar de conexiones públicas:

  1. Implementa una instancia de Looker (Google Cloud Core) con Private Service Connect habilitado.
  2. Configura un balanceador de cargas de aplicaciones externo con un backend de Private Service Connect en tu red de VPC.
  3. Aprovisiona y adjunta tu propio certificado SSL autoadministrado o administrado por Google al balanceador de cargas de aplicaciones externo. Esta arquitectura te permite controlar la finalización de TLS y enrutar el tráfico a través de tu CDN o WAF.

Falla de autenticación de OpenID Connect con salida controlada

Cuando configuras la autenticación de OpenID Connect en una instancia de Looker (Google Cloud Core) configurada con Private Service Connect y con la salida controlada habilitada, es posible que falle la autenticación.

Síntomas

Si falló la autenticación, es posible que experimentes uno de los siguientes síntomas:

  • El extremo /openidconnect de Looker se bloquea durante aproximadamente 60 segundos en el navegador antes de mostrar un error o agotarse el tiempo de espera con un error 504 Upstream Request Timeout o 504 Gateway Timeout.
  • Tu proveedor de identidad muestra un mensaje de error que indica que el URI de redireccionamiento no coincide, como el siguiente:

    AADSTS50011: The redirect URI specified in the request does not match the
    redirect URIs configured for the application
    

    Este mensaje de error es engañoso porque el URI de redireccionamiento que configuraste en tu proveedor de identidad podría ser correcto. La falla real se produce cuando Looker (Google Cloud Core) no puede comunicarse con el extremo del token del proveedor de identidad durante el intercambio de backend.

Causa

En ocasiones, el flujo de trabajo de aprovisionamiento automatizado para la salida controlada no puede crear la ruta de red de Secure Web Proxy (looker-swp-route) necesaria en el proyecto de usuario de Looker (Google Cloud Core).

Cuando falta esta ruta, se agota el tiempo de espera de las solicitudes de backend de Looker (Google Cloud Core) al endpoint de token del proveedor de identidad porque la instancia no puede enrutar el tráfico saliente a Internet pública a través del Secure Web Proxy.

Solución

Para resolver este problema, sigue estos pasos para restablecer la configuración de salida controlada y forzar al sistema a volver a crear la ruta de red faltante:

  1. En la consola de Google Cloud , ve a la página Looker:

    Ir a Looker

  2. Haz clic en el nombre de la instancia que deseas actualizar.

  3. Haz clic en Editar.

  4. Expande la sección Conexiones y ve a la sección Configurar conexiones salientes.

  5. Registra todos los nombres de dominio completamente calificados (FQDN) existentes que se enumeran en la sección FQDN global (como los extremos de tu proveedor de identidad).

  6. Borra todos los FQDN que se enumeran en la sección FQDN global.

  7. Desmarca la casilla de verificación Habilitar Looker para conectarse a servicios externos para inhabilitar la salida controlada.

  8. Haz clic en Guardar.

  9. Espera a que finalice la actualización de la instancia y a que se borren los cambios de configuración.

  10. Vuelve a hacer clic en Editar.

  11. Expande la sección Conexiones y selecciona la casilla de verificación Habilitar Looker para conectarse a servicios externos.

  12. En la sección FQDN global, vuelve a agregar los FQDN necesarios para tu proveedor de identidad y cualquier otro servicio externo.

  13. Haz clic en Guardar.

El restablecimiento de la salida controlada activa el proceso de aprovisionamiento automatizado para volver a crear la ruta de red looker-swp-route faltante. Una vez que se crea la ruta, se pueden completar las solicitudes de backend salientes al proveedor de identidad.

Error 504 de tiempo de espera de solicitud ascendente

Cuando realizas llamadas a la API, ejecutas consultas de larga duración o te autenticas con un servicio externo en una instancia de Looker (Google Cloud Core), es posible que la solicitud falle con un error de tiempo de espera HTTP 504.

Síntomas

Es posible que recibas un error 504 Upstream Request Timeout o 504 Gateway Timeout en cualquiera de las siguientes situaciones:

  • Llamadas o consultas entrantes a la API: Las llamadas a los extremos de Looker, como /result_format, o las consultas de larga duración en la IU de Looker fallan con un error 504 después de aproximadamente 30 segundos en una instancia que está frente a un balanceador de cargas.
  • Autenticación saliente o conexiones de servicios externos: Recibes un error 504 en tu navegador después de volver de la página de acceso de un proveedor de identidad o cuando te conectas a un servicio externo en una instancia con la salida controlada habilitada.

Causa

Por lo general, un error de tiempo de espera 504 ocurre por uno de los siguientes motivos:

  • Tiempo de espera del servicio de backend del balanceador de cargas para las solicitudes entrantes: Cuando se accede a tu instancia de Looker (Google Cloud Core) a través de un balanceador de cargas de Cloud Load Balancing, el servicio de backend del balanceador de cargas tiene un tiempo de espera del servicio de backend predeterminado de 30 segundos. Si el tiempo de ejecución combinado de la consulta de la base de datos y el tiempo de renderización de la carga útil de Looker superan este límite de tiempo de espera, el balanceador de cargas cierra la conexión y muestra un error HTTP 504.
  • Dominio saliente bloqueado con salida controlada: La instancia de Looker (Google Cloud Core) no puede acceder a un dominio externo a través de la salida controlada. A diferencia de los errores de ruta faltante, un error 504 durante las solicitudes salientes suele significar que existe la ruta de red, pero falta un dominio requerido en la lista de entidades permitidas del FQDN global y se está bloqueando, o bien la solicitud agota el tiempo de espera en la puerta de enlace.

Solución

Según la causa del error, completa los pasos de las siguientes secciones para resolver el problema.

Cómo resolver los tiempos de espera del balanceador de cargas en las llamadas o consultas a la API

Para resolver los errores 504 causados por el tiempo de espera del servicio de backend del balanceador de cargas, usa uno o ambos de los siguientes métodos:

  • Aumenta el tiempo de espera del servicio de backend del balanceador de cargas:

    1. En la consola de Google Cloud , ve a la página Balanceo de cargas:

      Ir a Balanceo de cargas

    2. Haz clic en Backends y, luego, en el nombre del servicio de backend asociado a tu instancia de Looker (Google Cloud Core).

    3. Haz clic en Editar.

    4. En el campo Tiempo de espera, aumenta el valor del tiempo de espera, por ejemplo, de 30 segundos a 300 segundos, para admitir las consultas y las solicitudes a la API de mayor duración.

    5. Haz clic en Guardar.

  • Usa un flujo de trabajo de API asíncrono: Si llamas a la API de Looker para recuperar datos de consultas y no puedes modificar el tiempo de espera del balanceador de cargas, usa extremos asíncronos en lugar de solicitudes síncronas. Llama a create_query_task para iniciar la consulta de forma asíncrona y, luego, sondea query_task_results para recuperar los resultados después de que finalice la consulta.

Cómo resolver los tiempos de espera de salida controlada

Para resolver los errores de 504 que se producen cuando Looker (Google Cloud Core) no se puede conectar a un servicio externo o a un proveedor de identidad con la salida controlada habilitada, sigue estos pasos:

  1. Verifica los FQDN obligatorios: En la consola de Google Cloud , verifica que todos los dominios que requiere tu servicio externo o proveedor de identidad se hayan agregado a la lista de FQDN global. Los flujos de autenticación de OIDC a menudo requieren varios extremos (como los extremos de autorización, token y de información del usuario) que pueden usar diferentes dominios.
  2. Captura un seguimiento de red: Si el error persiste, captura un seguimiento de red del navegador (archivo HAR) mientras reproduces el problema. Busca en el registro códigos de estado 504 o solicitudes HTTP fallidas para identificar los dominios con los que se estableció contacto durante el flujo, pero que no están incluidos en tu lista de FQDN globales.
  3. Restablece la configuración: Si los FQDN requeridos están presentes, pero las solicitudes siguen agotando el tiempo de espera, sigue los pasos de la Resolución para los errores de autenticación de OpenID Connect y restablece la configuración de salida controlada.

HttpClient:Se agotó el tiempo de espera de ConnectTimeoutError

Cuando se prueba una conexión de OpenID Connect o cualquier otra conexión de red externa en el panel de administración de Looker, es posible que la prueba de conexión falle y se muestre un error de tiempo de espera.

Síntomas

Cuando ejecutas una prueba de conexión en el panel de administrador de Looker (por ejemplo, en la página OpenID Connect Authentication), Looker devuelve el siguiente error:

HttpClient:ConnectTimeoutError execution expired

Causa

Este error indica que la instancia de Looker (Google Cloud Core) no tiene la ruta de red necesaria para comunicarse con el servicio externo o el proveedor de identidad. Por lo general, este problema ocurre cuando se cumple alguna de las siguientes condiciones:

  • Falta la propagación de rutas: Cloud Router usa la configuración predeterminada y no propaga las rutas de la red de VPC (como las rutas anunciadas personalizadas) a la instancia de Looker (Google Cloud Core).
  • Falta el NEG de Internet: No se configuró un grupo de extremos de red (NEG) de Internet en tu red de VPC para enrutar el tráfico al servicio externo.

Solución

Para resolver el problema, sigue estos pasos:

  1. Configura la propagación de rutas de Cloud Router: Verifica que Cloud Router esté configurado para propagar las rutas de red de VPC necesarias a tu instancia de Looker (Google Cloud Core) configurando rutas anunciadas personalizadas.
  2. Configura un NEG de Internet: Configura un NEG de Internet en tu red de VPC para permitir que la instancia de Looker (Google Cloud Core) enrute el tráfico de salida al proveedor de identidad externo o servicio.
  3. Verifica el acceso privado a servicios: En el caso de las instancias que usan el acceso privado a servicios, asegúrate de que tu red de VPC esté correctamente interconectada con los servicios de Google. Para obtener más información, consulta Accede a servicios externos con acceso privado a los servicios.

Problemas de conexión de Private Service Connect descendente

En el caso de las instancias de Looker (Google Cloud Core) que usan Private Service Connect para las conexiones salientes a back-ends de bases de datos o servicios publicados, es posible que encuentres errores de conexión incluso cuando el estado del extremo sea Accepted.

Estos son algunos de los problemas habituales:

  • Errores de resolución de nombres de host: Si Looker (Google Cloud Core) muestra un error Unknown host cuando se prueba una conexión, verifica que el nombre de host configurado coincida con el registro DNS de tu red privada y que el balanceador de cargas de backend esté en buen estado.
  • Agota el tiempo de espera de la conexión: Si se agota el tiempo de espera de las conexiones, verifica las reglas de firewall de la VPC para comprobar que se permita el tráfico de entrada desde la subred de NAT de Private Service Connect a los backends del balanceador de cargas.
  • Estado pendiente o cerrado: Si el estado del adjunto de servicio es Pending o Closed, verifica que el proyecto del consumidor esté en la lista de entidades permitidas del adjunto de servicio y que estén configuradas las verificaciones de estado de TCP obligatorias.
  • Fallas en la actualización con el error interno 13: Cuando actualizas las vinculaciones de servicios salientes con Terraform o la API, es posible que la actualización falle con un Internal error 13 si tu configuración entrante se encuentra en un estado de error. Para obtener más información, consulta Error interno 13 al actualizar adjuntos de servicio salientes.

Para ver flujos de trabajo de diagnóstico detallados y un árbol de decisiones, consulta Soluciona problemas de conexiones de Private Service Connect de salida.

Error interno 13 al actualizar adjuntos de servicio salientes

Cuando usas Terraform o la API de Looker (Google Cloud Core) para agregar, actualizar o quitar adjuntos de servicio salientes (de salida) de Private Service Connect en una instancia existente de Looker (Google Cloud Core), es posible que la actualización falle con un error interno.

Síntomas

Es posible que observes los siguientes síntomas:

  • Terraform o la actualización de la API fallan con un error similar al siguiente:

    Error: Error waiting for Updating Instance: Error code 13, message: an internal error has occurred
    
  • La instancia de Looker (Google Cloud Core) no puede establecer conexiones con los servicios de destino, incluso si el adjunto de servicio en la red de VPC del productor muestra un estado de conexión Accepted.

Causa

Este error ocurre cuando la configuración entrante de Private Service Connect de la instancia (allowed_vpcs) entra en un estado de error en el backend.

Cuando usas Terraform o un cliente de API para actualizar las vinculaciones de servicio salientes (psc_service_attachments), la carga útil de la solicitud suele incluir todo el bloque psc_config, que contiene el parámetro allowed_vpcs. La API de Looker (Google Cloud Core) intenta validar la configuración entrante durante la actualización. Como allowed_vpcs está en estado de error, falla la validación, lo que provoca que falle toda la actualización de la instancia con el código de error 13 y que no se apliquen los cambios salientes del adjunto de servicio.

Solución

Para omitir el error de validación de la configuración entrante y aplicar las actualizaciones de tu adjunto de servicio saliente, completa la siguiente solución alternativa:

  1. En tu configuración de Terraform o carga útil de la API, marca como comentario o quita temporalmente el parámetro allowed_vpcs del bloque psc_config.
  2. Aplica la configuración de Terraform o vuelve a enviar la solicitud a la API para actualizar tus vinculaciones de servicio salientes (psc_service_attachments).

    Como la carga útil de la solicitud omite allowed_vpcs, la API omite la validación de la configuración entrante y aplica los cambios en la vinculación del servicio saliente.

  3. Después de que se implementen los adjuntos de servicio salientes y se establezcan las conexiones, restablece el parámetro allowed_vpcs en la configuración de Terraform o en la carga útil de la API.

  4. Vuelve a aplicar la configuración de Terraform.

Problemas de conectividad y ruta de acceso privado a servicios

En el caso de las instancias de Looker (Google Cloud Core) que usan acceso privado a servicios, la comunicación saliente a servicios externos requiere una propagación de rutas y una infraestructura de red adecuadas:

  • Propagación de rutas: Verifica que Cloud Router esté configurado para propagar rutas de la red de VPC a la instancia de Looker (Google Cloud Core), como las rutas anunciadas personalizadas.
  • Grupos de extremos de red de Internet: Si tu instancia necesita llegar a extremos externos a través del acceso a servicios privados, asegúrate de que haya un grupo de extremos de red (NEG) de Internet configurado en tu red de VPC.

Si faltan estas rutas o grupos de extremos, las pruebas de conexión a extremos externos fallarán con un error de HttpClient:ConnectTimeoutError execution expired.

Para obtener más información, consulta Accede a servicios externos con acceso privado a los servicios.

Registros y herramientas de diagnóstico

Usa las siguientes herramientas y registros para diagnosticar problemas de redes:

  • Cloud Logging: Consulta los registros a nivel de la instancia en Cloud Logging para identificar fallas de conexión y eventos del sistema. Para obtener más información, consulta Visualiza los registros de la instancia.
  • Actividad del sistema de Looker: Si puedes acceder como administrador, revisa el panel Actividad del usuario en Actividad del sistema. En este panel, se muestran los errores de acceso recientes, el método de autenticación que se usó y los mensajes de error. Para obtener más información, consulta el panel de actividad del usuario.
  • Registros de flujo de VPC: Consulta los registros de flujo de VPC para determinar si el tráfico de red de Looker (Google Cloud Core) llega a tu subred de destino o si las reglas de firewall lo bloquean.
  • Atención al cliente de Cloud: Si completaste los pasos para solucionar problemas y el problema persiste, comunícate con Atención al cliente de Cloud para obtener ayuda.