llmnr - Servicio mDNS estándar en Windows
mdns windows (5)
¿Windows (algunas versiones modernas) tiene un servidor mDNS instalado y / o ejecutándose de manera predeterminada? Si es así, ¿cómo se le dice a uno, preferiblemente de forma dinámica, que comience / detenga la publicidad de un nuevo servicio?
Si no existe un estándar, ¿cómo se puede resolver el problema de los conflictos al intentar ejecutar múltiples servidores mDNS en ese entorno?
Básicamente, quiero implementar un servicio que se ejecute en Linux, Windows y Mac OS X y que necesite anunciar su ubicación de servidor web zeroconf utilizando mDNS. En Linux solo uso avahi-publish (o instalo un archivo de configuración). Supongo que la respuesta será sencilla para OS X. Estoy luchando para encontrar información para Windows.
A partir de Windows 10, Microsoft parece avanzar hacia una implementación nativa de Windows de mDNS y dns-sd.
Su primera iteración resultó en una inundación de la red mDNS :
Windows 10, en su configuración predeterminada, enviará correo basura a sus redes locales respondiendo a todas las solicitudes de mDNS con paquetes de respuesta nula.
Y siguiendo:
Este problema se solucionó en Windows 10 1511 (10586) y superior
Las construcciones recientes han visto mejoras en todo el lugar y Windows ahora ofrece una biblioteca de descubrimiento de servicios dns-sd que actualmente está limitada a aplicaciones UWP.
La última vez que necesité uno, los servicios de impresión Bonjour para Windows de Apple fue el cliente mDNS más conveniente para Windows que pude encontrar. Sólo 5MB.
La respuesta corta es apoyar tanto a Avahi como a Bonjour. Necesitará el soporte de Bonjour para ejecutarse en OSX de todos modos, y si un usuario de Windows ha instalado iTunes, ya lo estará ejecutando.
Como una alternativa para los usuarios de Windows que no ejecutan iTunes, puede compilar Avahi como una biblioteca para Windows (con un poco de esfuerzo) y agruparlo. Este es un paquete no trivial, pero la alternativa es que los usuarios de Windows instalen iTunes para usar su aplicación.
No, Microsoft no soporta directamente el DNS de multidifusión.
Sin embargo, parece haber varias alternativas de terceros:
También he utilizado con éxito C ++ / WinRT para el descubrimiento de dnssd directamente desde C ++ ahora. Desde nuestra perspectiva, parece ser más rápido y más confiable para los servicios de consulta y le permitirá instalar fácilmente un observador para recibir notificaciones cuando lleguen los dispositivos, etc. Por supuesto, esto está limitado a las versiones de Windows 10 con soporte para C ++ / WinRT, que comienza con 10.0.17134.0 (Windows 10, versión 1803).
Una advertencia: hemos notado que no proporciona, ni reconoce, un FQDN (punto final). Así que para un dispositivo que Bonjour O Avahi daría una dirección de mydevice.local.
, Windows en su lugar da mydevice.local
. Intentando hacer ping a mydevice.local.
bajo Windows 10 (1809) falla.