Multicast DNS: la resolución de nombres para redes locales

El sistema de nombres de dominio (o DNS, del inglés domain name system) podría considerarse una extensa guía telefónica: mediante este servicio, los usuarios introducen la dirección web en el navegador y el propio sistema identifica la dirección IP relacionada. En este proceso de resolución de nombre, el propio dispositivo envía la solicitud al servidor DNS correspondiente, donde hay una lista en la que cada nombre de equipo (es decir, la dirección web) tiene asignada la dirección IP correcta. En cambio, el multicast DNS sigue otro sistema. ¿Cómo funciona esta alternativa al DNS clásico?

¿Cómo funciona el multicast DNS?

El multicast DNS (mDNS) es un servicio diseñado para llevar a cabo la resolución de nombres en redes más pequeñas. Para ello, mDNS sigue un sistema distinto al conocido DNS: en lugar de enviar la solicitud a un servidor de nombres, todos los participantes de la red reciben la solicitud. El cliente correspondiente envía un multicast a la red y, de este modo, pregunta con qué integrante de la red coincide el nombre del equipo. El multicast o multidifusión es una forma especial de comunicación en la que un solo mensaje se envía a un grupo de destinatarios. El grupo puede consistir, por ejemplo, en toda la red o en una subred.

De esta manera, la solicitud llega al integrante del grupo con el nombre de equipo que se está buscando. Este integrante responde a toda la red, también mediante multicast. Por lo tanto, se informa a todos los participantes sobre la conexión entre el nombre y la dirección IP, lo que les permite anotar los datos correspondientes en su caché mDNS. Mientras esta información sea válida, ningún integrante de la red necesitará volver a solicitar este nombre de host.

El multicast DNS genera mucho tráfico, aunque, para contrarrestarlo, siempre intenta ahorrar recursos de red de forma activa: para ello, el cliente solicitante envía la respuesta que considera correcta (es decir, de acuerdo con los datos del caché actual). El destinatario solo deberá responder en caso de que la respuesta ya no sea correcta o la información esté a punto de caducar. De esta manera, también se informa al resto de participantes de la red antes de dar una respuesta. Este método permite reducir el tráfico dentro de la red.

En general, en el multicast DNS solo se pueden utilizar los nombres de equipo con la extensión .local, lo que limita esta forma de resolución de nombres a las redes locales. Los nombres de equipo con otros dominios de nivel superior (TLD, del inglés top level domain), como .es o .com, no son procesados por el mDNS. Por lo tanto, las direcciones web no se pueden resolver con este método.

Nota

El multicast DNS se desarrolló a principios de 2010 y se describe en el RFC 6762.

MDNS se desarrolló en el contexto de Zeroconf (Zero Configuration Networking). La idea detrás de este conjunto de técnicas es que los ordenadores puedan comunicarse entre sí sin la necesidad de configurarlos previamente. El multicast DNS cumple con este requisito: el proceso de multidifusión forma parte del TCP/IP y, por lo tanto, también puede funcionar sin necesidad de configuración.

Ventajas del mDNS

El multicast DNS fue concebido para redes pequeñas y está destinado a aumentar la facilidad de uso en este ámbito. La idea es que los usuarios puedan conectar fácilmente dispositivos mediante la LAN de su hogar. En este caso, como todos los dispositivos intercambian información a través de su propia dirección IP, no es necesario configurar ningún servidor ni directorio, lo que significa que se pueden incorporar otros dispositivos de manera muy rápida y dinámica.

Una de las implementaciones más populares del mDNS es Bonjour, de Apple. Este servicio fue diseñado principalmente para conectar impresoras de red a un PC o Mac con facilidad. Como los dispositivos se informan entre sí acerca de sus direcciones IP, el usuario no tiene que configurar la conexión personalmente. Actualmente, además del servicio de Apple, se puede utilizar el software de código abierto Avahi como servicio mDNS: este también permite vincular diferentes dispositivos entre sí sin tener que realizar ninguna configuración de antemano. Desde el lanzamiento de Windows 10, mDNS también está disponible en el sistema operativo Microsoft.

Riesgos e inconvenientes del multicast DNS

La facilidad de uso, sin embargo, entraña algunos inconvenientes. El proceso de multidifusión en sí conlleva un problema: aunque el protocolo intenta reducir al mínimo el tráfico de la red, los ordenadores implicados deben supervisarla constantemente y procesar los mensajes entrantes, lo que puede provocar una disminución del rendimiento del sistema.

Además, la propia asignación de nombres de equipo puede considerarse problemática: en principio, se puede elegir libremente cualquier nombre para los dispositivos, siempre que tenga la extensión .local. Por este motivo, al menos en teoría, es posible que dos participantes de la red tengan el mismo nombre de equipo. Los desarrolladores de mDNS decidieron no implementar una solución para estas situaciones por dos razones: por un lado, suponían que rara vez debería ocurrir algo así y, por el otro, en algunos casos puede que los usuarios deseen repetir el nombre deliberadamente.

Al margen de lo anterior, el propio sistema puede suponer una fuente de peligro: en algunos casos, el mDNS está abierto, lo que significa que también responde a solicitudes externas (por Internet). De esta manera, los hackers pueden acceder a estos servicios y utilizarlos para llevar a cabo ataques DDoS. En estos casos, los dispositivos de la red se utilizan indebidamente para bombardear a un servidor de destino con solicitudes. Además, por el hecho de estar abiertos, los multicast DNS permiten obtener datos confidenciales. De esta manera, por ejemplo, los ciberdelincuentes podrían consultar las direcciones MAC de los dispositivos conectados y, a continuación, utilizar esta información para emprender más ataques.