Avahi (Zeroconf) en Linux: Para que leches sirve?

ubuntudebianavahi se instala por defecto en los sistemas Debian y Ubuntu, pero muy poca gente parece que lo usa.. Se supone que es un servicio de autodescubrimiento, pero ¿que servicios esta preparado para descubrir?

avahi corre mDNS más DNS-SD: ¿que es esto?, multicast DNS mas un servicio de descubrimiento DNS (DNS service discovery). Multicast DNS significa que cada máquina almacena sus propios registros DNS. Una dirección multicast (224.0.0.251) es usada por clientes que desean obtener la dirección IP de un nombre de máquina dado, y esa máquina responde a la petición del cliente con su dirección IP. DNS-SD usa la misma tecnología, pero adicionalmente a la informacion estándar DNS, las máquinas también publican informacion de las instancias de servicios: anuncian que servicios proporcionan y cómo contactar con esos servicios. Todo esto lo que pretende es que las máquinas puedan conectarse a los servicios sin la necesidad de que el usuario intervenga: esto se conoce como compartición sin configuración previa (Zeroconf sharing). Muy interesante para aquellos no se sienten cómodos realizando ajustes manuales o bien para aquellos que son un poco zánganos.

En verdad, hasta el momento no existe demasiado software que use realmente mDNS. Apple es el que mas ha hecho uso de él: el software de Apple se llama Bonjour, y gestiona impresoras, compartición de música mediante iTunes, compartición de fotografías mediante iPhoto, Skype, iChat, y un amplio abanico de servicios de software. No obstante, en términos de implementación técnica, avahi es un elemento de software excelente, y es capaz de hacer todo lo que hace Bonjour. Alguien ha sugerido que los equipos de desarrollo de Debian/Ubuntu dev teams están intentando estimular un poco mDNS con la inclusión de avahi en el sistema.

Por lo tanto, que puedes hacer con avahi en tu máquina Linux? Pues una posibilidad es usarla para compartir música a través de la red local. Particularmente, si tenemos algo de música en algún portátil que aparece o desaparece a medida que enchufamos o desenchufamos la máquina de la LAN, la opción del descubrimiento de fuentes de música puede ser una opción particularmente interesante. De hecho esta es la misma tecnología que Apple usa para iTunes.

Desafortunadamente, este sistema solo funciona en una dirección: rhythmbox puede conectar con la compartición de iTunes pero no puede descargarse nada de música (debido a un cambio en el protocolo desde iTunes 7.0). Esto es realmente frustrante y ademas es única y exclusivamente culpa de Apple. La compartición en la otra dirección funciona correctamente: si usamos el menú de “Plugins” para configurar la compartición vía DAAP (acuérdate de pulsar el botón de configuracion y habilitar el check box de compartir mi música), veras pronto disponible el contenido compartido.

Incluso se puede hacer que las máquinas en la LAN aparezcan como nombremáquina.local (esto puede ser util si no tienes un server DNS corriendo en la LAN). Como ejemplo para echar un vistazo a todos los servicios disponibles en la LAN podemos ejecutar avahi-browse -a -r -t (-a todos los servicios, -r resolución de los detalles del servicio, and -t finaliza una vez que tiene la lista completa)

Aquí tenéis un pantallazo de la orden anterior:avahi01

De forma similar a como CUPS gestiona el setup de una impresora, avahi debe en teoría por lo menos facilitar la labor de configuracion estableciendo la impresora como remota (mediante la configuración de la impresora en la máquina en la que esta conectada y con avahi instalado y corriendo). No obstante, parece que esto en la actualidad es problemático: necesitas picarte tu propio fichero ipp.service y añadirlo al directorio /etc/avahi/services/. La página man de avahi.services (5) es comprensible, pero desafortunadamente no existen ejemplos para las impresoras.

Por otro lado, para avahi existen otras posibilidades como escritorio remoto compartido y compartición de documentos.

Realmente parece interesante lo de establecer los nombres de host a nombrehost.local, pero no tiene mucho sentido que los compartidos de la librería de música no sean autodetectados (y menos sentido aun que no funcione para iTunes, pero esto realmente no es un problema de avahi). Igualmente, parece que la detección de impresoras no funciona todo lo bien que debiera. Si tenemos la posibilidad de comparar con la implementación que Apple hace de esta funcionalidad, podremos darnos cuenta de que la infraestructura necesaria parece que si que esta presente, pero el interfaz de usuario parece que no esta completo.

Por lo tanto y resumiendo, si, existen multitud de buenas opciones para explortar avahi, pero de momento parece que es un proyecto que necesita bastante trabajo por completar. Se puede entender que en el caso de Debian/Ubuntu estén haciendo una instalación por defecto para intentar animar la creación de mas software de usuario que pueda explotar las capacidades de avahi. Estoy seguro de que a muchos de nosotros nos gustará ver y usar las funcionalidades descritas en este artículo. El objetivo no es mas que ser tan útil como sea posible (especialmente para aquellos mas zánganos, o simplemente que tienen en uso un entorno LAN basado en Mac/Linux).

No obstante, y solo como comentario para la gente de Ubuntu, ¿merece la pena que miles de usuarios tengan instalado avahi en este momento cuando no existe software que realmente aprovecha sus capacidades?, no se….Desde mi punto de vista se podría haber planificado la funcionalidad para versiones sucesivas del Sistema Operativo y demás se podría por lo menos, haber dado la opción de que el usuario seleccionase la instalación o no del servicio ¿no es lo mas normal?

Saludos a todos y hasta la próxima.

You must be logged in to post a comment.