Zeroconf o Zero Configuration Networking es un conjunto de técnicas que permiten crear de forma automática una red IP sin configuración o servidores especiales. También conocida como Automatic Private IP Addressing o APIPA, permite a los usuarios sin conocimientos técnicos conectar ordenadores, impresoras de red u otros elementos y hacerlos funcionar. Sin Zeroconf, un usuario con conocimientos técnicos debe configurar servidores especiales, como DHCP y DNS, o bien configurar cada ordenador de forma manual.
Zeroconf fue explotado por Stuart Cheshire, empleado en Apple Computer, durante su migración de AppleTalk a IP.
Actualmente Zeroconf soluciona tres problemas:
Tanto IPv4 como IPv6 tienen formas estándar de escoger direcciones IP sin ayuda. A partir del RFC 3927, IPv4 utiliza el conjunto de direcciones 169.254.* (link-local).
Microsoft se refiere a esto como Automatic Private IP Addressing (APIPA).
Existen dos maneras muy similares de averiguar qué elemento de red tiene determinado nombre. Multicast DNS (mDNS) de Apple Computer goza de un uso extendido, y su publicación es accesible, aunque no está estandarizado por ninguna entidad. Link-local Multicast Name Resolution (LLMNR) de Microsoft se utiliza con menor frecuencia pero se encuentra en trámites de estandarización por el IETF.
Los dos protocolos tienen pequeñas diferencias. mDNS permite a un dispositivo de red seleccionar un nombre de dominio en el espacio de nombres ".local" y anunciarlo utilizando una dirección IP multicast especial. Esto introduce una semántica especial para el espacio de nombres .local, lo que se considera un problema por algunos miembros del IETF[1][2]. El borrador actual de LLMNR permite a un dispositivo de red seleccionar cualquier nombre de dominio, lo que se considera un riesgo de seguridad por algunos miembros del IETF[3]. mDNS es compatible con DNS-SD tal y como se describe en la próxima sección, mientras que LLMNR no lo es. Se pueden encontrar más detalles sobre las diferencias en [4]
DNS Service Discovery (DNS-SD) es un protocolo ligero de Apple, utilizado por los productos de Apple, y diferentes impresoras de red además de un considerable número de productos de terceras partes y aplicaciones sobre varios sistemas operativos. Se considera más simple y sencillo de implementar que SSDP porque utiliza DNS en lugar de HTTP. Utiliza los registros de DNS SRV (RFC 2782), TXT, y PTR para advertir los nombres de los servicios (Service Instance Names), que son informes sobre los servicios disponibles como instancia, tipo, nombre de dominio y parámetros opcionales de configuración. Los tipos de servicio se entregan de un modo informal tal y como llegan. DNS-SD.org mantiene y publica un registro de tipos de servicio.
Simple Service Discovery Protocol (SSDP) es un protocolo UPnP, utilizado en Windows XP y diferentes marcas de equipos de red. A pesar del nombre, se le considera complejo y requiere mayor esfuerzo para implementarse que DNS-SD. SSDP utiliza notificaciones HTTP que entregan una URI de tipo de servicio y un nombre de servicio único (Unique Service Name, USN). Los tipos de servicio se regulan por el Universal Plug and Play Steering Committee.
Service Location Protocol (SLP) es el único protocolo de detección de servicios que ha alcanzado el estatus de IETF RFC, y normalmente es ignorado por los grandes fabricantes excepto Novell. Se describe SLP en el RFC 2608; y todavía no es un estándar, o borrador de estándar, del IETF.
En marzo del 2005 el grupo de trabajo IETF Zeroconf publicó el RFC 3927, un estándar para elegir direcciones para los elementos de red, que incluía a partes como Apple, Sun y Microsoft.
El grupo de trabajo IETF DNSEXT está trabajando en la estandarización de LLMNR para descubrir el nombre de cada elemento de red.
El estándar SLP, RFC 2608, para adivinar dónde obtener los servicios, fue publicado por el grupo de trabajo IETF SVRLOC.
La solución Zeroconf más adoptada es Bonjour de Apple Computer, que no sigue SLP, el estándar del IETF para la detección de servicios, sino una combinación de otros estándares del IETF para obtener una aproximación más ligera a la detección de servicios. Bonjour utiliza el direccionamiento de enlace local (link-local), mDNS, y DNS-SD. Apple cambió de SLP a mDNS y DNS-SD entre Mac OS 10.1 y 10.2.
Hay varias implementaciones disponibles:
Todas las anteriores implementaciones son demonios que solo tratan con direcciones IP de enlace local. Otra aproximación consiste en modificar los cliente DHCP existentes.
Ninguna de estas implementaciones soluciona comportamientos del núcleo como la difusión de respuestas ARP o el cierre de las conexiones de red existentes.
Multicast DNS es un modo de utilizar las familiares interfaces de programación de DNS, los formatos de paquetes y el modo de operativo, en una pequeña red en la que no se ha instalado ningún servidor DNS convencional.
mDNS y DNS-SD con frecuencia se implementan juntos. La combinación más popular entre los programadores de aplicaciones es mDNSResponder de Apple, que tiene interfaces para C y Java y está disponible en BSD, Mac OS X, Linux, y otros sistemas operativos POSIX además de Windows. [6] [7]