Vi presentiamo PostScale -- API email per invii transazionali, ricezione e indirizzi mascherati. PostScale

    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 target

    Esempio:

    _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

    ComponenteDescrizioneEsempio
    ServizioNome del servizio (con prefisso _)_sip, _xmpp, _ldap
    ProtocolloProtocollo di rete (con prefisso _)_tcp, _udp
    PrioritàValori più bassi = priorità più alta10
    PesoDistribuzione del carico tra stessa priorità60
    PortaNumero porta TCP/UDP5060
    TargetHostname del serversipserver.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

    CampoDescrizioneEsempio
    Nome_servizio._protocollo.dominio_sip._tcp.example.com
    TipoTipo di recordSRV
    PrioritàPreferenza del server (più basso = preferito)10
    PesoPeso per il bilanciamento del carico50
    PortaPorta del servizio5060
    ContenutoHostname di destinazionesipserver.example.com.
    TTLTime to live (secondi)3600

    Aggiungere un record SRV

    Tramite la dashboard

    1. Naviga alla tua zona nella dashboard di DNScale
    2. Clicca su Add Record
    3. 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)
    4. 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

    1. Usa priorità significative - Mantieni intervalli tra i valori di priorità (10, 20, 30) per flessibilità futura

    2. I target devono avere record A/AAAA - I target SRV dovrebbero risolvere a indirizzi IP, non CNAME

    3. Usa il peso per il bilanciamento del carico - Distribuisci il traffico tra server con la stessa priorità usando il peso

    4. Non usare porta 0 - Un peso di 0 significa che il server dovrebbe essere usato come ultima risorsa

    5. 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 +short

    Tipi 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.