Presentamos PostScale -- API de correo para envíos transaccionales, recepción y direcciones enmascaradas. PostScale

    Qué es un registro SRV

    Aprende cómo los registros SRV permiten el descubrimiento de servicios especificando información de host y puerto. Incluye ejemplos para el panel de DNScale y la API.

    Un registro SRV (Service) especifica la ubicación de servidores para servicios específicos. A diferencia de los registros A que simplemente asocian nombres con IPs, los registros SRV proporcionan el nombre de host, puerto, prioridad y peso para un servicio, habilitando un descubrimiento de servicios sofisticado y balanceo de carga.

    Cómo funcionan los registros SRV

    Los registros SRV usan una convención de nombres especial:

    _servicio._protocolo.dominio.    TTL    SRV    prioridad peso puerto destino

    Ejemplo:

    _sip._tcp.example.com.    3600    SRV    10 60 5060 sipserver.example.com.

    Esto indica a los clientes: "Para alcanzar el servicio SIP sobre TCP para example.com, conéctate a sipserver.example.com en el puerto 5060."

    Componentes del registro

    ComponenteDescripciónEjemplo
    ServicioNombre del servicio (prefijado con _)_sip, _xmpp, _ldap
    ProtocoloProtocolo de red (prefijado con _)_tcp, _udp
    PrioridadValores menores = mayor prioridad10
    PesoDistribución de carga entre misma prioridad60
    PuertoNúmero de puerto TCP/UDP5060
    DestinoNombre de host del servidorsipserver.example.com.

    Casos de uso comunes

    VoIP / SIP

    _sip._tcp.example.com.     3600    SRV    10 100 5060 sip1.example.com.
    _sip._tcp.example.com.     3600    SRV    20 100 5060 sip2.example.com.
    _sip._udp.example.com.     3600    SRV    10 100 5060 sip1.example.com.

    Mensajería XMPP (Jabber)

    _xmpp-client._tcp.example.com.    3600    SRV    5 0 5222 xmpp.example.com.
    _xmpp-server._tcp.example.com.    3600    SRV    5 0 5269 xmpp.example.com.

    Microsoft 365 / Teams

    _sipfederationtls._tcp.example.com.    3600    SRV    100 1 5061 sipfed.online.lync.com.
    _sip._tls.example.com.                 3600    SRV    100 1 443 sipdir.online.lync.com.

    Servicios de directorio LDAP

    _ldap._tcp.example.com.        3600    SRV    0 100 389 ldap.example.com.
    _ldaps._tcp.example.com.       3600    SRV    0 100 636 ldap.example.com.
    _ldap._tcp.dc._msdcs.example.com.  3600    SRV    0 100 389 dc1.example.com.

    CalDAV / CardDAV

    _caldav._tcp.example.com.      3600    SRV    0 0 80 calendar.example.com.
    _caldavs._tcp.example.com.     3600    SRV    0 0 443 calendar.example.com.
    _carddav._tcp.example.com.     3600    SRV    0 0 80 contacts.example.com.
    _carddavs._tcp.example.com.    3600    SRV    0 0 443 contacts.example.com.

    Servidores Minecraft

    _minecraft._tcp.example.com.    3600    SRV    0 5 25565 mc.example.com.

    Chat Matrix/Element

    _matrix._tcp.example.com.    3600    SRV    10 0 8448 matrix.example.com.

    Prioridad y peso explicados

    Prioridad (Preferencia)

    Los valores más bajos se intentan primero:

    _sip._tcp.example.com.    SRV    10 50 5060 primary.example.com.
    _sip._tcp.example.com.    SRV    20 50 5060 backup.example.com.

    Los clientes intentan primary.example.com primero (prioridad 10), luego backup.example.com (prioridad 20) si el primario falla.

    Peso (Distribución de carga)

    Entre servidores con la misma prioridad, el peso determina la distribución:

    _sip._tcp.example.com.    SRV    10 70 5060 server1.example.com.
    _sip._tcp.example.com.    SRV    10 30 5060 server2.example.com.

    Server1 recibe ~70% del tráfico, server2 recibe ~30%.

    Formato del registro

    CampoDescripciónEjemplo
    Nombre_servicio._protocolo.dominio_sip._tcp.example.com
    TipoTipo de registroSRV
    PrioridadPreferencia del servidor (menor = preferido)10
    PesoPeso de balanceo de carga50
    PuertoPuerto del servicio5060
    ContenidoNombre de host destinosipserver.example.com.
    TTLTiempo de vida (segundos)3600

    Añadir un registro SRV

    Usando el panel de control

    1. Navega a tu zona en el panel de DNScale
    2. Haz clic en Add Record
    3. Configura el registro:
      • Name: Introduce _servicio._protocolo (ej., _sip._tcp)
      • Type: Selecciona SRV
      • Priority: Establece el valor de prioridad (ej., 10)
      • Weight: Establece el valor de peso (ej., 50)
      • Port: Establece el puerto del servicio (ej., 5060)
      • Value: Introduce el nombre de host destino
      • TTL: Establece la duración de caché (por defecto: 3600)
    4. Haz clic en Create Record

    Usando la API

    Crear un registro SRV:

    curl -X POST "https://api.dnscale.eu/v1/zones/{zone_id}/records" \
      -H "Authorization: Bearer YOUR_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "name": "_sip._tcp",
        "type": "SRV",
        "content": "sipserver.example.com",
        "ttl": 3600,
        "priority": 10,
        "weight": 50,
        "port": 5060
      }'

    Configurar registros XMPP:

    # Conexiones de cliente
    curl -X POST "https://api.dnscale.eu/v1/zones/{zone_id}/records" \
      -H "Authorization: Bearer YOUR_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "name": "_xmpp-client._tcp",
        "type": "SRV",
        "content": "xmpp.example.com",
        "ttl": 3600,
        "priority": 5,
        "weight": 0,
        "port": 5222
      }'
     
    # Federación servidor a servidor
    curl -X POST "https://api.dnscale.eu/v1/zones/{zone_id}/records" \
      -H "Authorization: Bearer YOUR_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "name": "_xmpp-server._tcp",
        "type": "SRV",
        "content": "xmpp.example.com",
        "ttl": 3600,
        "priority": 5,
        "weight": 0,
        "port": 5269
      }'

    Respuesta de la API:

    {
      "status": "success",
      "data": {
        "message": "Record created successfully",
        "record": {
          "id": "encoded-record-id",
          "name": "_sip._tcp.example.com.",
          "type": "SRV",
          "content": "10 50 5060 sipserver.example.com.",
          "ttl": 3600,
          "disabled": false
        }
      }
    }

    Mejores prácticas

    1. Usar prioridades significativas - Deja intervalos entre valores de prioridad (10, 20, 30) para flexibilidad futura

    2. El destino debe tener registros A/AAAA - Los destinos SRV deben resolverse a direcciones IP, no CNAMEs

    3. Usar peso para balanceo de carga - Distribuye el tráfico entre servidores de misma prioridad usando peso

    4. No usar puerto 0 - Un peso de 0 significa que el servidor debería usarse como último recurso

    5. Probar con las aplicaciones - No todas las aplicaciones respetan los registros SRV; verifica con tu software específico

    Deshabilitar un servicio

    Para indicar que un servicio no está disponible, usa un destino de .:

    _sip._tcp.example.com.    3600    SRV    0 0 0 .

    Probar registros SRV

    Verifica tus registros SRV con dig:

    dig SRV _sip._tcp.example.com
     
    # Con salida completa
    dig SRV _xmpp-client._tcp.example.com +short

    Tipos de registro relacionados

    • A - Dirección IPv4 del servidor destino
    • AAAA - Dirección IPv6 del servidor destino
    • HTTPS - Service binding moderno para HTTPS
    • SVCB - Service binding general

    Conclusión

    Los registros SRV son esenciales para el descubrimiento de servicios, permitiendo que las aplicaciones encuentren automáticamente los servidores, puertos y opciones de failover correctos. Son críticos para VoIP, mensajería instantánea y muchos protocolos empresariales. El soporte de DNScale para registros SRV te permite configurar arquitecturas de servicios sofisticadas con failover basado en prioridad y balanceo de carga ponderado.