Los di­s­po­si­ti­vos dentro de una red solo pueden co­mu­ni­car­se entre sí si están in­te­r­co­ne­c­ta­dos. Para ello no se necesita el nombre del di­s­po­si­ti­vo, sino la dirección IP o la dirección MAC que en grandes redes, por lo general, es asignada au­to­má­ti­ca­me­n­te por un servidor central DHCP (Dynamic Host Co­n­fi­gu­ra­tion Protocol) a los pa­r­ti­ci­pa­n­tes. A tal efecto, este trabaja en conjunto con el servidor DNS, encargado de convertir el nombre de dominio en una dirección IP y viceversa. La al­te­r­na­ti­va a esta asi­g­na­ción au­to­má­ti­ca es adaptar los archivos de alo­ja­mie­n­to de todos los pa­r­ti­ci­pa­n­tes en la red y añadir los nombres y las di­re­c­cio­nes IP ma­nua­l­me­n­te, una tarea casi imposible en el caso de una red de gran tamaño. Sin embargo, ninguna de estas opciones resulta ideal durante la in­s­ta­la­ción de redes locales. Por un lado, la co­n­fi­gu­ra­ción de los se­r­vi­do­res DHCP y DNS es compleja y demanda co­no­ci­mie­n­tos básicos y, por otro, la variante manual requiere el ajuste constante de todos los archivos de alo­ja­mie­n­to, es­pe­cia­l­me­n­te si se añade un nuevo di­s­po­si­ti­vo a la red o es necesario aplicar cambios a los sistemas ya in­te­gra­dos. La solución al problema se llama Zero Co­n­fi­gu­ra­tion Ne­t­wo­r­ki­ng (Zeroconf) y consiste en una red IP que conecta di­fe­re­n­tes di­s­po­si­ti­vos sin que haya que co­n­fi­gu­rar­la ma­nua­l­me­n­te. Este concepto de red fue de­sa­rro­lla­do entre 1999 y 2003 por el Grupo de Trabajo de In­ge­nie­ría de Internet (Internet En­gi­nee­ri­ng Task Force, IETF) y se realizó bajo las im­ple­me­n­ta­cio­nes Bonjour y Avahi.

¿En qué consiste Zeroconf?

En 1999, cuando el IETF comenzó con el proyecto Zero Co­n­fi­gu­ra­tion Ne­t­wo­r­ki­ng, se sentaron las si­guie­n­tes ca­ra­c­te­rí­s­ti­cas como objetivo para un trabajo en red sin co­n­fi­gu­ra­ción:

  • Re­so­lu­ción de nombres integrada
  • Asi­g­na­ción au­to­má­ti­ca de la máscara de subred de la dirección IP local y del router
  • Función de búsqueda para encontrar servicios de red di­s­po­ni­bles
  • Asi­g­na­ción au­to­má­ti­ca de di­re­c­cio­nes mu­l­ti­di­fu­sión para co­ne­xio­nes mu­l­ti­pu­n­to
  • Mismo nivel de seguridad que las redes sin Zeroconf

El grupo de trabajo IETF no pudo llegar a un consenso, por lo que tampoco publicó un documento con los re­qui­si­tos del Zero Co­n­fi­gu­ra­tion Ne­t­wo­r­ki­ng. En lugar de ello, se decidió a de­sa­rro­llar junto con Apple, Microsoft y Sun Mi­cro­s­y­s­te­ms una es­pe­ci­fi­ca­ción para el protocolo de Internet publicado bajo el nombre “Dynamic Co­n­fi­gu­ra­tion of IPv4 Link Local Adresses” (RFC 3927). IPv4LL asigna au­to­má­ti­ca­me­n­te di­re­c­cio­nes IP alea­to­rias con el prefijo 169.254/16, es decir, entre 169.254.0.x y 169.254.255.x, aunque las primeras y últimas 256 di­re­c­cio­nes están re­se­r­va­das para futuras apli­ca­cio­nes. El estándar RFC también requiere que el generador de números alea­to­rios tenga en cuenta in­fo­r­ma­cio­nes es­pe­cí­fi­cas del equipo como, por ejemplo, la dirección MAC de la interfaz de red, mi­ni­mi­za­n­do la po­si­bi­li­dad de que dos di­s­po­si­ti­vos tengan la misma IP.

Cómo funciona la asi­g­na­ción au­to­má­ti­ca de di­re­c­cio­nes IPv4

Mientras que IPv4 utiliza el Address Re­so­lu­tion Protocol (ARP) para la asi­g­na­ción au­to­má­ti­ca de di­re­c­cio­nes sin el protocolo DHCP, su nueva versión, el IPv6, utiliza el Neighbor Discovery Protocol (NDP).

  1. En primer lugar se genera la dirección IP.
  2. A co­n­ti­nua­ción, IPv4LL pro­po­r­cio­na pruebas ARP, en las que se comprueba si la dirección IP generada ya es utilizada por otro di­s­po­si­ti­vo en la red. Con este fin, se envían como receptor tres paquetes ARP con la dirección de origen 0.0.0.0 y con la dirección a comprobar.
  3. Si durante este periodo se recibe un paquete ARP en el que la dirección del emisor se co­rre­s­po­n­de con la dirección IP creada, quiere decir que esta ya fue asignada dentro de la red y el proceso tendrá que comenzar desde cero.
  4. Si se recibe una prueba ARP externa que incluye la dirección a comprobar, al menos un di­s­po­si­ti­vo está usando esta IP para intentar unirse a la red, razón por la cual el pro­ce­di­mie­n­to se repetirá desde el primer paso.
  5. Si no se presenta ningún conflicto, el di­s­po­si­ti­vo de conexión reclama la dirección como suya y envía dos de los llamados ARP An­nou­n­ce­me­nts (“anuncios”), donde se co­rre­s­po­n­den el remitente y el de­s­ti­na­ta­rio de las di­re­c­cio­nes IP generadas.

Debido a que la dirección IP asignada es dinámica, esta se comprueba siempre después de cada reinicio, ac­ti­va­ción después del modo de reposo, conexión del cable de Ethernet o inicio de sesión en la red in­alá­m­bri­ca. Para prevenir una so­bre­ca­r­ga de la red como co­n­se­cue­n­cia de una gran cantidad de co­n­fli­c­tos (si, por ejemplo, un gran número de equipos quiere co­ne­c­tar­se a la red al mismo tiempo), el número de re­in­te­n­tos por unidad se reduce a un minuto por equipo.

Zeroconf: re­so­lu­ción de nombres y detección au­to­má­ti­ca de di­s­po­si­ti­vos

Por otra parte, el equipo de Zeroconf de­sa­rro­lló con el grupo de trabajo DNS Ex­te­n­sio­ns so­lu­cio­nes para la tra­du­c­ción au­to­má­ti­ca de di­re­c­cio­nes y para la gestión de di­s­po­si­ti­vos en las redes IPv4 sin co­n­fi­gu­ra­ción. En lugar de de­sa­rro­llar co­m­ple­ta­me­n­te un nuevo protocolo, de­ci­die­ron ofrecer estas ca­ra­c­te­rí­s­ti­cas mediante sencillos ajustes del protocolo DNS estándar. Para ello, el equipo trabajó en estrecha co­la­bo­ra­ción con Apple, pues la in­no­va­do­ra empresa ya contaba con AppleTalk, un conjunto propio de pro­to­co­los adecuado a sus propios di­s­po­si­ti­vos y tra­n­s­fe­ri­do, po­s­te­rio­r­me­n­te, a la familia de pro­to­co­los en Internet. El resultado obtenido fueron las es­pe­ci­fi­ca­cio­nes Multicast DNS (RFC 6762) y DNS Based Service Discovery (RFC 6763).

Multicast DNS (mDNS) describe cómo los di­s­po­si­ti­vos pueden enviar consultas DNS a di­re­c­cio­nes IP mu­l­ti­di­fu­sión. Con este fin, en el protocolo mDNS, el dominio de nivel superior .local se define como enlace local. Además, todas las pe­ti­cio­nes que terminen en .local tienen que ser enviadas a la dirección IPv4LL mu­l­ti­di­fu­sión 224.0.0.251 (en IPv6 la dirección es FF02::FB). Todas las so­li­ci­tu­des DNS que no terminan en .local también son enviadas a la dirección mu­l­ti­di­fu­sión si la red no cuenta con un servidor DNS. Ge­ne­ra­l­me­n­te, los mensajes mDNS también pueden ser tra­n­s­mi­ti­dos a través de UDP y TCP. En este caso, en lugar del puerto 53 habitual, se utiliza el puerto mu­l­ti­di­fu­sión 5353. Si uno de los equipos de la red quiere resolver el nombre de host de otro miembro de la red, envía una solicitud al mDNS pidiendo la ide­n­ti­fi­ca­ción. El di­s­po­si­ti­vo de destino responde entonces con un paquete mu­l­ti­di­fu­sión revelando así su dirección IP. De esta forma, todos los di­s­po­si­ti­vos de red reciben esta in­fo­r­ma­ción y la incluyen de forma au­to­má­ti­ca en su caché DNS.

El DNS Based Service Discovery (DNS-SD) define cómo los servicios pueden hacerse visibles y di­s­po­ni­bles para todos los pa­r­ti­ci­pa­n­tes de una red Zeroconf. Para ga­ra­n­ti­zar la si­n­to­ni­za­ción, primero es necesario registrar estos servicios en la IANA (Internet Assigned Numbers Authority), quien asigna un nombre de servicio cla­ra­me­n­te ide­n­ti­fi­ca­ble. Dicho nombre es co­m­pa­r­ti­do por las apli­ca­cio­nes con cada uno de los pa­r­ti­ci­pa­n­tes de la red por medio de una no­ti­fi­ca­ción mu­l­ti­di­fu­sión, sin que se genere problema alguno en caso de que varios di­s­po­si­ti­vos ofrezcan el mismo servicio. Esto es así debido, pri­n­ci­pa­l­me­n­te, a que el cliente que accede a la red tiene la po­si­bi­li­dad de se­le­c­cio­nar uno de los hosts. 

La IETF lanzó ofi­cia­l­me­n­te ambos RFC en febrero de 2013, sin embargo Apple ya comenzó en 2002 a integrar las normas en sus di­s­po­si­ti­vos. El software de­sa­rro­lla­do para este propósito se conoce hoy en día como Bonjour (an­te­rio­r­me­n­te Re­n­de­z­vous) y, al ser de código abierto, es hoy en día una de las so­lu­cio­nes Zeroconf más ex­te­n­di­das. Así, esta ar­qui­te­c­tu­ra de red sin co­n­fi­gu­ra­ción no solo está di­s­po­ni­ble para macOS y iOS, sino también para Windows.

Bonjour: la respuesta de Apple a las co­n­fi­gu­ra­cio­nes de red pro­ble­má­ti­cas

En 2001, cuando Apple se cambió al kernel XNU híbrido con su Mac OS X 10.0, la compañía decidió no integrar en su sistema operativo los hasta la fecha típicos pro­to­co­los de red AppleTalk. El hecho de que el gigante in­fo­r­má­ti­co no intentara encontrar un sucesor adecuado para estos pro­to­co­los no cupo en la cabeza del usuario Stuart Cheshire, quien decidió iniciar una discusión por correo ele­c­tró­ni­co en la que, en forma conjunta con otros usuarios, intentó abordar los in­co­n­ve­nie­n­tes de co­n­fi­gu­rar ma­nua­l­me­n­te una red. Esto llevó a Apple a re­pla­n­tear­se la situación: la compañía empleó a Stuart Cheshire y le confió el de­sa­rro­llo de una variante del protocolo para el nuevo sistema operativo, lo que re­su­l­ta­ría entonces en una coope­ra­ción con la Internet En­gi­nee­ri­ng Task Force.

Con el la­n­za­mie­n­to del Mac OS X 10.2 en agosto del 2002, Apple lanzó la primera versión de las nuevas es­pe­ci­fi­ca­cio­nes del protocolo bajo el nombre de Re­n­de­z­vous. Debido a ciertos problemas legales fue necesario encontrar un nuevo nombre para el proyecto, por lo que desde la versión 4.10 este se llamaría Bonjour. El co­m­po­ne­n­te principal del paquete es un mD­N­S­Re­s­po­n­der, un programa de arranque que se ejecuta de fondo y se encarga de im­ple­me­n­tar el DNS mu­l­ti­di­fu­sión y el DNS Based Service Discovery. Adi­cio­na­l­me­n­te, la es­pe­ci­fi­ca­ción del protocolo de Internet IPv4LL (o IPv6LL) también forma parte de sus co­m­po­ne­n­tes pri­n­ci­pa­les. Con esto, Apple cubre las tres áreas básicas de las redes sin co­n­fi­gu­ra­ción:

  • Di­re­c­cio­na­mie­n­to
  • Re­so­lu­ción de nombres
  • Servicio de de­s­cu­bri­mie­n­to de redes

Esta ar­qui­te­c­tu­ra permite a los usuarios conectar su equipo fá­ci­l­me­n­te y sin co­m­pli­ca­cio­nes a otros co­m­po­ne­n­tes de una red local que también recurren a Bonjour –in­de­pe­n­die­n­te­me­n­te de si se trata de un pc, una impresora o una apli­ca­ción. Entre otras cosas, el servicio de música iTunes de Apple utiliza esta te­c­no­lo­gía para ayudar a los usuarios a encontrar a aquellos usuarios que ponen su música li­bre­me­n­te a di­s­po­si­ción en la red. Por defecto, Bonjour viene instalado en los sistemas macOS y iOS más populares. Los usuarios de Windows pueden utilizar una versión es­pe­cí­fi­ca para los servicios de impresión o, al­te­r­na­ti­va­me­n­te, instalar una apli­ca­ción que incluye el software. Aquí se incluyen, entre otros, iTunes, Skype y Adobe Photoshop (desde el CS3).

Una al­te­r­na­ti­va a la solución Zeroconf de Apple que también funciona en sistemas Linux, está di­s­po­ni­ble bajo la licencia LGPL y está instalada por defecto en Debian y Ubuntu, es Avahi. Ini­cia­l­me­n­te, la apli­ca­ción encontró apoyo en la ini­cia­ti­va sin ánimo de lucro free­de­s­k­top.org, pero con el tiempo se ha co­n­ve­r­ti­do en un proyecto in­de­pe­n­die­n­te.

Ir al menú principal