¿Qué es un registro SRV de DNS?

El registro SRV se usa para servicios especiales como la VoIP.

Objetivos de aprendizaje

Después de leer este artículo podrás:

  • Entender el objetivo de un registro SRV.
  • Más información acerca de que datos están incluidos en un registro SRV
  • Entender los puertos

Copiar enlace del artículo

El DNS gratuito se incluye con cualquier plan de Cloudflare

¿Qué es un registro SRV de DNS?

El registro de "servicio" DNS (SRV) especifica un servidor y un puerto para servicios específicos como voz sobre IP (VoIP), mensajería instantánea, etc. La mayoría del resto de registros DNS solo especifican un servidor o una dirección IP, pero los registros SRV incluyen también un puerto en esa dirección IP. Algunos protocolos de Internet requieren el uso de registros SRV para funcionar.

¿Qué es un puerto?

En redes, los puertos son lugares virtuales que designan a qué procesos va el tráfico de red en un ordenador. Los puertos permiten que los ordenadores puedan diferencia con facilidad entre distintos tipos de tráfico: por ejemplo, los flujos de VoIP van a un puerto diferente que los mensajes de correo electrónico, aunque ambos lleguen a un ordenador a través de la misma conexión a Internet. Como las direcciones IP, todos los puertos tienen asignado un número.

Ciertos protocolos de Internet, como IMAP, SIP y XMPP, necesitan conectarse a un puerto específico, además de conectarse con un servidor concreto. Los registros SRV son la forma de especificar un puerto dentro del DNS.

¿Qué contiene un registro SRV?

Un registro SRV incluye la siguiente información. A continuación, enumeramos valores de ejemplo para cada campo.

servicio XMPP
proto* TCP
nombre** example.com
TTL 86400
class IN
Escriba SRV
Prioridad 10
peso 5
puerto 5223
Destino server.example.com

*Abreviación para "protocolo", como en protocolo de transporte.
**Nombre de dominio.

Sin embargo, los registros SRV están formateados realmente de esta manera:

_service._proto.name. Tipo de clase TTL de registro prioridad peso puerto objetivo.

Así que nuestro ejemplo de registro SRV tendría el siguiente aspecto

_xmpp._tcp.example.com. 86400 IN SRV 10 5 5223 server.example.com.

En el ejemplo anterior, "_xmpp" indica el tipo de servicio (el protocolo XMPP) y "_tcp" indica el protocolo de transporte TCP, mientras que "example.com" es el servidor, o el nombre de dominio. "Server.example.com" es el servidor de destino y "5223" indica el puerto en ese servidor.

Los registros SRV deben apuntar a un registro A (en IPv4) o a un registro AAAA (en IPv6). El nombre del servidor que enumeran no puede ser un CNAME. De modo que "server.example.com" debe llevar directamente a un registro A o AAAA con ese nombre.

¿Cuál es la diferencia entre prioridad y peso en los registros SRV?

Los registros SRV indican la "prioridad" y el "peso" de los distintos servidores que enumeran. El valor de "prioridad" de un registro SRV permite que los administradores den prioridad a un servidor compatible con un determinado servicio sobre otro. Un servidor con un valor de prioridad más bajo recibirá más tráfico que otros servidores. Sin embargo, el valor de "peso" es similar: un servidor con un peso mayor recibirá más tráfico que otros servidores con la misma prioridad.

La principal diferencia entre ellos es que se mira primero la prioridad. Si hay tres servidores, el Servidor A, el Servidor B y el Servidor C, y tienen unas prioridades de 10, 20 y 30 respectivamente, su "peso" no importa. El servicio siempre consultará primero al Servidor A.

Pero supongamos que los Servidores A, B y C tienen todos una prioridad de 10: ¿cómo elegirá un servicio entre ellos? Aquí es donde el peso se convierte en un factor: si el Servidor A tiene un valor 5 de "peso", y los Servidores B y C tienen un valor de 3 y 2 de "peso", el Servidor A recibirá la mayor cantidad de tráfico, el Servidor B recibirá la segunda mayor cantidad de tráfico y el Servidor C la tercera mayor cantidad.