Resolviendo problemas de Multicast DNS (mdns) en Linux @ YoVirtualizador | 2023-05-18T06:23:23+02:00 | 4 minutos de lectura | Actualizado en 2023-05-18T06:23:23+02:00

Avahi es un software libre y de código abierto que implementa el protocolo de descubrimiento de servicios de red mDNS/DNS-SD. Este protocolo permite a los dispositivos en una red local descubrir y anunciarse a sí mismos y a los servicios que ofrecen sin necesidad de configuración manual.

Avahi es un demonio en sistemas operativos Linux, y es compatible con otros sistemas operativos, incluidos macOS y Windows, y se integra con otros servicios de red para proporcionar un mecanismo de descubrimiento y resolución de nombres de servicio para dispositivos y aplicaciones en la red local. Avahi se utiliza comúnmente para la detección automática de impresoras, archivos compartidos, servicios de música y otros recursos de red en sistemas Linux y otros dispositivos integrados, sobre todo para las primeras instalaciones o cuando el dueño es lo suficientemente vago como para no terminar de configurarlo bien.

¿Y esto da problemas?

Pues la verdad es que sí, no solo por lo del dueño vago o del administrador descuidado, sobre todo cuando uso un TLD.

El servicio “Name Service Switch” y el archivo nsswitch.conf se utiliza para especificar qué fuentes de información se deben consultar primero para obtener información de nombres de usuario, DNS, contraseñas, grupos, hosts, etc…
El problema está en la prioridad que se le da en el orden de búsqueda de DNS dentro del fichero nsswitch.conf.

Habrá que configurarlo

La configuración de nsswitch.conf puede variar según la distribución de Linux y la versión del sistema operativo. La modificación incorrecta del archivo puede hacer que el sistema operativo no funcione correctamente, así que hay que saber lo que se toca.

En mi experiencia con los sistemas tipo red-hat (Fedora, Centos…) los paquetes que se instalan son avahi y sus dependencias, y nss-mdns.
En los armbian que tengo por casa, y me imagino que Debian y familia, son avahi-daemon y libnss-mdns.
Ojo, esto no está escrito en piedra y hay otras combinaciones.

Activar mDNS

Según lo clásico, lo que se nos enseña siempre en Unix, y Linux, es que el fichero /etc/nsswitch.conf contiene esta línea base:

hosts: files dns

Que quiere decir que primero se revisen los ficheros locales y luego se le pregunte al DNS.
Eso es el comportamiento esperado en una máquina normal.

Pero claro, esa funcionalidad se queda corta a la espera de DNS dinámico de mDNS y de los Service Discovery.

Tengo un micro pc basado en una BananaPi M2U que tiene Armbian, y está en una carcasa de un viejo router, muy escondidita.

En Armbian, basta por editar el fichero /etc/nsswitch.conf y en la línea 12, sustituir la línea:

hosts:          files mymachines dns myhostname

por la línea:

hosts:          files mymachines mdns4_minimal [NOTFOUND=return] resolve [!UNAVAIL=return] dns myhostname

Bien, eso es lo que dice la documentación y la inmensa mayoría de los foros que hay que poner para que zeroconf funcione.

De esta manera se harán resoluciones de nombres a través de mdns (IPv4).

¿Y en Fedora, Red-Hat y derivados?

Pero en Fedora no, no es así, y ahí vamos a tocar el hardening del sistema operativo, así que continuaré en un próximo artículo, pero dejo por aquí una pequeña muestra de como se ve esto:

Desde un cliente cualquiera, localizar la bbdd, y un par de máquinas vecinas, funciona bien, como se le espera al servicio mDNS y de paso, al DNS-SD.

[samquejo@fedora ~]$ getent hosts
127.0.0.1       localhost localhost.localdomain localhost4 localhost4.localdomain4
127.0.0.1       localhost localhost.localdomain localhost6 localhost6.localdomain6
[samquejo@fedora ~]$ getent hosts labsam-3.local
203.0.113.111  labsam-3.local
[samquejo@fedora ~]$ getent hosts cpe1704tks.local
203.0.113.115  cpe1704tks.local

En cambio, en un servidor DNS, que es propietario de la zona yovirtualizador.xyz resuelve las direcciones que tiene, y si no las encuentra, pasa directamente al CNAME del dominio. Es decir, que consulta antes DNS que mDNS, por seguridad.

root@petete:~# getent hosts fedora
100.127.255.255  labsam.duckdns.org fedora.yovirtualizador.xyz
root@petete:~# getent hosts fedora.local
100.127.255.255  labsam.duckdns.org fedora.local.yovirtualizador.xyz
root@petete:~# getent hosts cpe1704tks.local
100.127.255.255  labsam.duckdns.org cpe1704tks.local.yovirtualizador.xyz
root@petete:~# getent hosts cpe1704tks
100.127.255.255  labsam.duckdns.org cpe1704tks.yovirtualizador.xyz

Ahora toca seguir, con el hardening de linux, y corrigiendo este comportamiento por el bien del funcionamiento de mi red local


YoVirtualizador en formato podcast. Ahora también en Sospechosos Habituales: https://feedpress.me/sospechososhabituales
Y sin más, os dejo los enlaces:

Web: https://www.yovirtualizador.com
Grupo de telegram: https://t.me/grupovirtualizador
Podcast: https://www.ivoox.com/podcast-yovirtualizador_fg_f1563806_filtro_1.xml
Canal de youtube: https://www.youtube.com/channel/UC0R70cABSsmC6TFyXth0qPg
Enlace de afiliados de amazon: https://amzn.to/3gX3HmK
Enlace de referidos de la Asociación Podcast: https://www.asociacionpodcast.es/registrarse/socio/?coupon=SB6A70

© 2019 - 2024 YoVirtualizador

Powered by Hugo with theme Dream.

avatar

El blog de YoVirtualizadorTu podcast y blog de confianza

Acerca de YoVirtualizador

YoVirtualizador es la marca de varios proyectos

Podcast de informática profesional. Canal de Youtube sobre el blog, el podcast y de temática profesional. Blog de contenido diverso, con temática BOFH y técnica.

Gracias por la lectura.

Política de comentarios

En YoVirtualizador todos los comentarios serán bienvenidos pero moderados.

Respetos guardan respetos.

El contenido irrelevante u ofensivo será eliminado.

Galletas

Política de cookies

En YoVirtualizador no usamos cookies para nada, pero los servicios de discus y analytics recopilan datos en servidores ajenos a YoVirtualizador sin que yo pueda hacer nada.

Este aviso es sólo porque algún político tenía que justificar su existencia.

Si hace clic en un enlace de afiliado y compra un producto o servicio, es posible que ese comerciante nos pague una tarifa.