Saltar al contenido principal

Integración domótica Unbound, gratuita y de código abierto

Integración Unbound para Gladys Assistant

Resolutor DNS Unbound: consultas, caché, tiempo de recursión, SERVFAIL, alertas, vaciar caché.

Siga su resolutor DNS Unbound desde Gladys, en su red local: consultas por minuto, tasa de aciertos de caché, tiempo medio de recursión, respuestas SERVFAIL y NXDOMAIN, tiempo de funcionamiento, y una alerta cuando deja de responder, falla demasiado o recibe una avalancha de consultas. Unbound suele ser el resolutor recursivo situado detrás de Pi-hole, AdGuard Home o Blocky: ellos bloquean la publicidad, Unbound responde al resto. Esta integración vigila el resolutor, no el bloqueo.

Probada con un Unbound 1.25.2 real (paquete Alpine, en Docker, con los certificados de unbound-control-setup y consultas dig reales), aún no con una instalación real de Gladys: sus comentarios son bienvenidos. Si algo no funciona como se describe, dígalo en el foro de Gladys o en las issues.

Lo que necesita​

  • Gladys Assistant 5.1.0 o posterior.
  • Unbound con su control remoto activado, el canal que usa unbound-control. Gladys envía los mismos comandos que unbound-control stats_noreset y unbound-control status: solo lee, y nunca ejecuta stats, que pone los contadores a cero.
  • Para las cifras SERVFAIL y NXDOMAIN, las estadísticas ampliadas.

En unbound.conf:

server:
extended-statistics: yes

remote-control:
control-enable: yes
# Una dirección de la máquina Unbound que Gladys pueda alcanzar (no
# 127.0.0.1: Gladys ejecuta la integración en su propio contenedor).
control-interface: 192.168.1.2
control-port: 8953

Cree después los certificados una vez, en la máquina Unbound, y reinicie Unbound:

sudo unbound-control-setup
sudo systemctl restart unbound

unbound-control-setup escribe tres archivos, normalmente en /etc/unbound: unbound_server.pem, unbound_control.pem y unbound_control.key (más la clave del servidor, que se queda allí). Compruebe que sudo unbound-control status funciona en la máquina antes de continuar.

Si statistics-interval está configurado en unbound.conf, configure también statistics-cumulative: yes: si no, Unbound pone sus contadores a cero en cada intervalo y las tasas son erróneas.

Configuración​

En Gladys, Integraciones → Unbound → Configuración:

  1. Dirección: la dirección IP o el nombre de la máquina Unbound, con :puerto si el puerto de control no es 8953.
  2. Nombre: el nombre del dispositivo en Gladys (opcional).
  3. Conexión: TLS con certificados (por defecto en Unbound), o TCP simple si unbound.conf indica control-use-cert: no. El TCP simple no tiene ninguna contraseña: cualquiera que alcance el puerto puede detener Unbound. Úselo solo con un puerto cerrado al resto de la red.
  4. Certificados: abra cada archivo con un editor de texto (sudo cat /etc/unbound/unbound_control.pem) y pegue todo su contenido, de -----BEGIN a -----END, en Certificado del servidor (unbound_server.pem), Certificado de cliente (unbound_control.pem) y Clave de cliente (unbound_control.key). El campo solo conserva una línea: es normal, la integración vuelve a poner los saltos de línea. La clave se guarda como secreto, no se vuelve a mostrar ni se escribe en los registros.
  5. Opciones: el intervalo de actualización (1 minuto por defecto), los dos umbrales de alerta, Permitir vaciar la caché (desactivado por defecto) y el idioma de los nombres de funciones.
  6. Guarde y pulse Probar la conexión: muestra la versión de Unbound, la conexión usada, su tiempo de funcionamiento y si las estadísticas ampliadas están activas.
  7. En la pestaña Descubrimiento, añada el dispositivo.

El dispositivo​

Un dispositivo para el servidor, con estas funciones:

FunciónLo que muestra
Accesible1 cuando el control remoto responde, 0 si no
Consultas DNS por minutoConsultas recibidas, entre las dos últimas lecturas
Tasa de aciertos de cachéParte de las consultas respondidas desde la caché, últimos 15 min (%)
Tiempo medio de recursiónTiempo para resolver un nombre ausente de la caché, últimos 15 minutos
SERVFAIL por minutoResoluciones fallidas (estadísticas ampliadas)
NXDOMAIN por minutoNombres que no existen (estadísticas ampliadas)
Tiempo de funcionamientoHoras desde el arranque de Unbound
VersiónVersión de Unbound

Sin las estadísticas ampliadas, el dispositivo no tiene SERVFAIL ni NXDOMAIN; actívelas y Gladys propone Actualizar en la pestaña Descubrimiento. Las tasas aparecen a partir de la segunda lectura. Tras un reinicio de Unbound, sus contadores vuelven a cero: las tasas regresan una lectura más tarde.

Panel de control​

El widget Unbound muestra tres mosaicos (consultas por minuto, tasa de caché, tiempo de recursión) y una lista: el estado del resolutor, SERVFAIL y NXDOMAIN por minuto (SERVFAIL en naranja por encima de su umbral de alerta), tiempo de funcionamiento y versión. Cuando Permitir vaciar la caché está activado, también tiene un botón Vaciar la caché.

Escenas​

Disparadores​

  • Unbound ya no responde: dos lecturas seguidas sin respuesta (la segunda 15 segundos después de la primera). Variables: nombre del servidor, dispositivo, error.
  • Unbound vuelve a responder: de vuelta tras una caída, con los minutos sin respuesta.
  • SERVFAIL de Unbound por encima del umbral: las respuestas SERVFAIL por minuto alcanzan Alerta SERVFAIL de la configuración (20 por defecto, 0 la desactiva). Se activa una vez, y de nuevo solo tras volver por debajo del umbral. Requiere las estadísticas ampliadas.
  • Consultas de Unbound desbocadas: las consultas por minuto alcanzan Alerta de avalancha (2000 por defecto, 0 la desactiva), para un dispositivo en bucle o un malware. Misma regla de una sola vez.

Acciones​

  • Leer las estadísticas de Unbound: lee Unbound ahora. Da una frase («Unbound: 120 consultas por minuto, 85 % respondidas desde la caché, 32 ms por recursión.») para un mensaje o un anuncio de voz, y las cifras para una condición.
  • Vaciar la caché de Unbound: vacía la caché, de un dominio y todo lo que está debajo, o entera cuando el campo está vacío. Rechazada mientras Permitir vaciar la caché no esté activado. Útil tras modificar un registro DNS en casa.

Ideas de escenas​

  • Unbound ya no responde → enviar un mensaje: «El DNS de la casa está caído». Añada Unbound vuelve a responder para la buena noticia.
  • SERVFAIL de Unbound por encima del umbral → un mensaje con la tasa: el enlace a Internet o los servidores superiores tienen un problema.
  • Cada mañana a las 8:00 → Leer las estadísticas de Unbound → enviar la frase.
  • Consultas de Unbound desbocadas → una notificación, para buscar el dispositivo desbocado.

Solución de problemas​

  • «no responde»: dirección o puerto erróneos, Unbound detenido, o control-interface todavía en 127.0.0.1 (por defecto). Gladys ejecuta la integración en un contenedor: necesita una dirección de la red, y un cortafuegos abierto en el puerto 8953 para la máquina de Gladys.
  • «TLS rechazado»: uno de los tres campos de certificados no corresponde a los archivos de este Unbound (cambian con cada unbound-control-setup -r), o Unbound está en modo simple (control-use-cert: no): elija TCP simple.
  • «conexión cerrada: ¿se espera TLS?»: TCP simple está elegido pero Unbound espera TLS: elija TLS con certificados.
  • «pegue el archivo completo»: un campo de certificado solo contiene una parte del archivo; copie todo, líneas -----BEGIN y -----END incluidas.
  • Ni SERVFAIL ni NXDOMAIN: añada extended-statistics: yes bajo server:, reinicie Unbound y después actualice el dispositivo en la pestaña Descubrimiento.
  • Tasas extrañas o ausentes: otra herramienta ejecuta unbound-control stats (que pone los contadores a cero), o statistics-interval está configurado sin statistics-cumulative: yes.
  • Registros: Integraciones → Unbound → Registros. Añada LOG_LEVEL=debug para ver cada lectura.

Límites​

  • Un solo servidor Unbound por instalación de la integración.
  • Desarrollada con un Unbound real en Docker, sin una instalación real de Gladys: sus comentarios son bienvenidos.
  • Las tasas por minuto se miden entre dos lecturas: un pico más corto que el intervalo de actualización se suaviza.
  • La tasa de caché y el tiempo de recursión cubren los últimos 15 minutos; justo tras el arranque de la integración, cubren el tiempo desde el arranque de Unbound.
  • Solo por un socket Unix (control-interface: /run/unbound.ctl), Unbound no es accesible desde el contenedor de Gladys: use una dirección de red.
  • Sin relación con NLnet Labs.

Parámetros de configuración​

Estos son los parámetros que Unbound te pide en su pantalla de configuración en Gladys.

ParámetroTipoObligatorioDescripción
Su servidor UnboundsectionNoGladys lee Unbound mediante su control remoto (remote-control: en unbound.conf, puerto 8953): control-enable: yes, y control-interface en una dirección que Gladys alcance.
DirecciónstringSíDirección IP o nombre del servidor, con :puerto si no es 8953.
NombrestringNoNombre del dispositivo en Gladys. Vacío: «Unbound» seguido de la dirección.
ConexiónselectNoTLS con los certificados de unbound-control-setup (por defecto en Unbound), o TCP simple si unbound.conf indica control-use-cert: no.
Certificados (TLS)sectionNoAbra cada archivo creado por unbound-control-setup (a menudo en /etc/unbound) y pegue todo su contenido, de -----BEGIN a -----END. No es necesario en TCP simple.
Certificado del servidor (unbound_server.pem)stringNo
Certificado de cliente (unbound_control.pem)stringNo
Clave de cliente (unbound_control.key)secretNoGladys la guarda, no se vuelve a mostrar ni se escribe en los registros.
OpcionessectionNo
Intervalo de actualizaciónselectNoCon qué frecuencia se lee Unbound. Las tasas por minuto se miden entre dos lecturas.
Alerta SERVFAIL (por minuto)numberNoEl evento de escena se activa cuando las respuestas SERVFAIL alcanzan este ritmo (requiere extended-statistics: yes). 0: desactivado.
Alerta de avalancha (consultas por minuto)numberNoEl evento de escena se activa cuando las consultas alcanzan este ritmo: un dispositivo desbocado, un bucle. 0: desactivado.
Permitir vaciar la cachébooleanNoDesactivado por defecto: Gladys solo lee Unbound. Activado: la acción de escena y el botón del widget pueden vaciar la caché (flush_zone).
Idioma de los nombres de funcionesselectNoNombres de las funciones al añadir el dispositivo y textos de los eventos y acciones de escena.

Cómo instalar Unbound en Gladys​

  1. En Gladys, abre Integraciones: Unbound aparece en el catálogo junto a las integraciones nativas, con una insignia de comunidad.
  2. Haz clic en Instalar. Gladys descarga la imagen Docker (ghcr.io/guim31/gladys-unbound:1.0.0), la ejecuta en un entorno aislado del núcleo y genera la interfaz de la integración (dispositivos, descubrimiento y configuración).
  3. Abre la pantalla de Configuración de la integración, rellena los parámetros y guarda.
  4. También puedes instalarla directamente desde la URL de su repositorio: https://github.com/guim31/gladys-unbound.

Unbound requiere Gladys >=5.1.0. El catálogo de Gladys se actualiza cada hora, así que una nueva versión está disponible como máximo una hora después de publicarse.

¿Todavía no usas Gladys? Es gratuito y de código abierto: sigue la guía de instalación para empezar.

Sobre las integraciones externas​

Unbound es una integración externa: una integración comunitaria empaquetada como contenedor Docker y publicada en GitHub. Gladys la instala con un clic y la ejecuta en un entorno aislado del núcleo. La publica y mantiene guim31, no el equipo principal de Gladys.

Suscríbete a la newsletter de Gladys Assistant

Unos pocos correos al mes sobre nuevas versiones y novedades del proyecto. Enviados por Pierre-Gilles Leymarie, fundador del proyecto. Puedes darte de baja cuando quieras 🙂