Jamulus Icon. Enlaces a inicio
Abrir navegación

Soporte para Registro DNS SRV

Contexto - conectar con un Servidor o Directorio

El puerto UDP en el que escucha un Servidor o Directorio de Jamulus por defecto es22124. Normalmente, cuando a un Cliente o Servidor se le da un hostname o una dirección IP para conectarse, como 198.51.100.46 o jamulus.example.com, utilizará 22124 como el número de puerto de destino.

Puesto que un único Servidor Jamulus solo ofrece una única “sala”, y un único Directorio Jamulus solo ofrece una única “lista”, a menudo es útil ejecutar múltiples instancias de Servidores o Directorios Jamulus en un único host, compartiendo una dirección IP. Para ello, cada instancia debe escuchar en un puerto UDP distinto. Esto se hace especificando el número de puerto en la línea de comandos, utilizando -p NNNNN o --port NNNNN.

Si tal Servidor está registrado en un Directorio Jamulus estándar, por ej. Cualquier Género 1, el número de puerto en uso es automáticamente detectado por el Directorio en el momento de registrarse, y se guarda en la lista que se envía a un Cliente. El Cliente Jamulus del usuario puede entonces conectarse al Servidor de modo normal a través de la lista en la Ventana de Conexión.

Sin embargo, una instancia de Jamulus que desea conectarse directamente a un Servidor o Directorio a travñes de IP o hostname debe conocer qué número de puerto utilizar. Esto se puede especificar tras la dirección IP o hostname de este modo: 198.51.100.46:22123 o jamulus.example.com:22120. Estos números de puerto no son fáciles de recordar, ¡así que suele ser necesario consultarlos! La solución es que el operador del Servidor publique el número de puerto utilizando un registro SRV en DNS.

Utilizar DNS SRV para publicar números de puerto

Un registro DNS SRV (registro de “servicio”) es un registro DNS especial que se puede utilizar para publicar el número de puerto y hostname que se debe usar para conectarse a un servicio específico.

Versiones recientes de Clientes y Servidores Jamulus pueden hacer uso de tales registros. Dependiendo de la versión de Jamulus (ver abajo), si encuentra un registro DNS SRV asociado al dominio proporcionado, tratará de conectarse al endpoint host y el puerto listado en el registro SRV. El usuario no tiene que especificar el número de puerto explícitamente.

Si no se encuentran registros SRV en el servidor DNS para el hostname dado, Jamulus intentará conectarse a la dirección del Directorio o Servidor en el puerto por defecto, 22124.

Versiones de Jamulus con soporte SRV

Los Clientes versión 3.10.0 o posterior tienen soporte de registros SRV para un hostname dado en los siguientes contextos:

  • En la ventana de Conexión como “Dirección de Servidor”.
  • En la línea de comandos con -c, para especificar una conexión directa inmediata a un Servidor.

Además de lo anterior, tanto Clientes como Servidores versión 3.12.0 o posterior también ofrecen soporte de registros SRV para un hostname dado para especificar un Directorio, en los siguientes contextos:

  • Servidor: la opción de línea de comandos -e o --directoryaddress.
  • Servidor: (GUI) en el campo “Dirección Directorio Personalizado” bajo “Opciones”.
  • Cliente: (GUI) en la lista de Directorios personalizados bajo “Configuración Avanzada” en “Configuración”.

Crear registros DNS SRV

Los registros SRV son creados por el administrador del dominio DNS utilizado para alojar el Servidor Jamulus. Los registros SRV se añaden a través del portal de administración (o API si está disponible) del servicio de hosting DNS del dominio. El formato del registro SRV puede variar entre servicios de hosting DNS, pero en general tendrá este aspecto:

  _service._proto.name. ttl IN SRV priority weight port target.

Notese que los hostnames name y target hostnames pueden ser iguales o diferentes. name es el hostname que utilizará el usuario sin número de puerto para la consulta SRV, ytarget es el hostname que Jamulus utilizará junto con el número de puerto descubierto para conectarse al Servidor o Directorio Jamulus.

En el caso de Jamulus, service debe serjamulus y proto debe serudp, para que el registro tenga este aspecto (para un número de puerto 12345):

  _jamulus._udp.miservidor.ejemplo.com. 60 IN SRV 0 5 12345 mihost.ejemplo.com.

Esta técnica te permite alojar muchos Servidores o Directorios Jamulus en diferentes puertos en un único host con diferentes hostnames dándole a cada uno su propio registro SRV. Esto evita que debas dar a los usuarios el número de puerto, que puede ser más difícil de recordar que un nombre. En el ejemplo de arriba, el usuario especificará miservidor.ejemplo.com y Jamulus se conectará a mihost.ejemplo.com:12345.

Consulta la documentación de tu proveedor de DNS para instrucciones sobre cómo crear un registro SRV.

Ejemplo - registros SRV para los Directorios públicos principales de Jamulus

En el dominio jamulus.io, se han creado los registros SRV para especificar el puerto correcto para cada uno de los Directorios públicos estándares:

DIRECTORIOREGISTRO DNS SRVSERVIDOR JAMULUS
anygenre1.jamulus.io_jamulus._udp.anygenre1.jamulus.io. 60 IN SRV 0 0 22124 anygenre1.jamulus.io.anygenre1.jamulus.io:22124
anygenre2.jamulus.io_jamulus._udp.anygenre2.jamulus.io. 60 IN SRV 0 0 22224 anygenre2.jamulus.io.anygenre2.jamulus.io:22224
anygenre3.jamulus.io_jamulus._udp.anygenre3.jamulus.io. 60 IN SRV 0 0 22624 anygenre3.jamulus.io.anygenre3.jamulus.io:22624
rock.jamulus.io_jamulus._udp.rock.jamulus.io. 60 IN SRV 0 0 22424 rock.jamulus.io.rock.jamulus.io:22424
jazz.jamulus.io_jamulus._udp.jazz.jamulus.io. 60 IN SRV 0 0 22324 jazz.jamulus.io.jazz.jamulus.io:22324
classical.jamulus.io_jamulus._udp.classical.jamulus.io. 60 IN SRV 0 0 22524 classical.jamulus.io.classical.jamulus.io:22524
choral.jamulus.io_jamulus._udp.choral.jamulus.io. 60 IN SRV 0 0 22724 choral.jamulus.io.choral.jamulus.io:22724

Esto significa que un Servidor Jamulus versión 3.12.0 o posterior puede simplemente pasar el hostname del Directorio a la opción -e o --directoryaddress, sin necesidad de encontrar y especificar el número de puerto.

Un administrador de servidores puede utilizar la misma técnica para publicar un registro SRV para su propio Servidor o Directorio.