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 destinoEjemplo:
_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
| Componente | Descripción | Ejemplo |
|---|---|---|
| Servicio | Nombre del servicio (prefijado con _) | _sip, _xmpp, _ldap |
| Protocolo | Protocolo de red (prefijado con _) | _tcp, _udp |
| Prioridad | Valores menores = mayor prioridad | 10 |
| Peso | Distribución de carga entre misma prioridad | 60 |
| Puerto | Número de puerto TCP/UDP | 5060 |
| Destino | Nombre de host del servidor | sipserver.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
| Campo | Descripción | Ejemplo |
|---|---|---|
| Nombre | _servicio._protocolo.dominio | _sip._tcp.example.com |
| Tipo | Tipo de registro | SRV |
| Prioridad | Preferencia del servidor (menor = preferido) | 10 |
| Peso | Peso de balanceo de carga | 50 |
| Puerto | Puerto del servicio | 5060 |
| Contenido | Nombre de host destino | sipserver.example.com. |
| TTL | Tiempo de vida (segundos) | 3600 |
Añadir un registro SRV
Usando el panel de control
- Navega a tu zona en el panel de DNScale
- Haz clic en Add Record
- 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)
- Name: Introduce
- 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
-
Usar prioridades significativas - Deja intervalos entre valores de prioridad (10, 20, 30) para flexibilidad futura
-
El destino debe tener registros A/AAAA - Los destinos SRV deben resolverse a direcciones IP, no CNAMEs
-
Usar peso para balanceo de carga - Distribuye el tráfico entre servidores de misma prioridad usando peso
-
No usar puerto 0 - Un peso de 0 significa que el servidor debería usarse como último recurso
-
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 +shortTipos 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.