Cos'è un record SRV
Scopri come i record SRV abilitano la scoperta dei servizi specificando host e porta per i servizi. Include esempi per la dashboard e l'API di DNScale.
Un record SRV (Service) specifica la posizione dei server per servizi specifici. A differenza dei record A che mappano semplicemente nomi a IP, i record SRV forniscono hostname, porta, priorità e peso per un servizio, abilitando la scoperta sofisticata dei servizi e il bilanciamento del carico.
Come funzionano i record SRV
I record SRV utilizzano una convenzione di denominazione speciale:
_servizio._protocollo.dominio. TTL SRV priorità peso porta targetEsempio:
_sip._tcp.example.com. 3600 SRV 10 60 5060 sipserver.example.com.Questo dice ai client: "Per raggiungere il servizio SIP tramite TCP per example.com, connettiti a sipserver.example.com sulla porta 5060."
Componenti del record
| Componente | Descrizione | Esempio |
|---|---|---|
| Servizio | Nome del servizio (con prefisso _) | _sip, _xmpp, _ldap |
| Protocollo | Protocollo di rete (con prefisso _) | _tcp, _udp |
| Priorità | Valori più bassi = priorità più alta | 10 |
| Peso | Distribuzione del carico tra stessa priorità | 60 |
| Porta | Numero porta TCP/UDP | 5060 |
| Target | Hostname del server | sipserver.example.com. |
Casi d'uso comuni
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.Messaggistica 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.Servizi directory 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.Server 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.Priorità e peso spiegati
Priorità (Preferenza)
I valori più bassi vengono provati per primi:
_sip._tcp.example.com. SRV 10 50 5060 primary.example.com.
_sip._tcp.example.com. SRV 20 50 5060 backup.example.com.I client provano primary.example.com per primo (priorità 10), poi backup.example.com (priorità 20) se il primario non è disponibile.
Peso (Distribuzione del carico)
Tra server con la stessa priorità, il peso determina la distribuzione:
_sip._tcp.example.com. SRV 10 70 5060 server1.example.com.
_sip._tcp.example.com. SRV 10 30 5060 server2.example.com.Server1 riceve ~70% del traffico, server2 riceve ~30%.
Formato del record
| Campo | Descrizione | Esempio |
|---|---|---|
| Nome | _servizio._protocollo.dominio | _sip._tcp.example.com |
| Tipo | Tipo di record | SRV |
| Priorità | Preferenza del server (più basso = preferito) | 10 |
| Peso | Peso per il bilanciamento del carico | 50 |
| Porta | Porta del servizio | 5060 |
| Contenuto | Hostname di destinazione | sipserver.example.com. |
| TTL | Time to live (secondi) | 3600 |
Aggiungere un record SRV
Tramite la dashboard
- Naviga alla tua zona nella dashboard di DNScale
- Clicca su Add Record
- Configura il record:
- Name: Inserisci
_servizio._protocollo(es._sip._tcp) - Type: Seleziona
SRV - Priority: Imposta il valore di priorità (es.
10) - Weight: Imposta il valore del peso (es.
50) - Port: Imposta la porta del servizio (es.
5060) - Value: Inserisci l'hostname di destinazione
- TTL: Imposta la durata della cache (predefinito: 3600)
- Name: Inserisci
- Clicca su Create Record
Tramite l'API
Creare un record 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
}'Configurare i record XMPP:
# Connessioni client
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
}'
# Federazione server-to-server
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
}'Risposta 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
}
}
}Best practice
-
Usa priorità significative - Mantieni intervalli tra i valori di priorità (10, 20, 30) per flessibilità futura
-
I target devono avere record A/AAAA - I target SRV dovrebbero risolvere a indirizzi IP, non CNAME
-
Usa il peso per il bilanciamento del carico - Distribuisci il traffico tra server con la stessa priorità usando il peso
-
Non usare porta 0 - Un peso di 0 significa che il server dovrebbe essere usato come ultima risorsa
-
Testa con le applicazioni - Non tutte le applicazioni rispettano i record SRV; verifica con il tuo software specifico
Disabilitare un servizio
Per indicare che un servizio non è disponibile, usa un target di .:
_sip._tcp.example.com. 3600 SRV 0 0 0 .Test dei record SRV
Verifica i tuoi record SRV con dig:
dig SRV _sip._tcp.example.com
# Con output completo
dig SRV _xmpp-client._tcp.example.com +shortTipi di record correlati
- A - Indirizzo IPv4 del server di destinazione
- AAAA - Indirizzo IPv6 del server di destinazione
- HTTPS - Service binding moderno per HTTPS
- SVCB - Service binding generico
Conclusione
I record SRV sono essenziali per la scoperta dei servizi, consentendo alle applicazioni di trovare automaticamente i server corretti, le porte e le opzioni di failover. Sono fondamentali per VoIP, messaggistica istantanea e molti protocolli enterprise. Il supporto di DNScale per i record SRV ti permette di configurare architetture di servizio sofisticate con failover basato sulla priorità e bilanciamento del carico ponderato.