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

    Cos'è un record SVCB

    Scopri come i record SVCB abilitano il service binding e la scoperta per qualsiasi protocollo. Include esempi per la dashboard e l'API di DNScale.

    Un record SVCB (Service Binding) è un tipo di record DNS generico che fornisce parametri di connessione per qualsiasi servizio. Consente ai client di scoprire gli endpoint del servizio insieme alla loro configurazione — versioni del protocollo, porte e suggerimenti IP — in un'unica query DNS.

    Come funzionano i record SVCB

    I record SVCB forniscono un framework flessibile per la scoperta dei servizi:

    _myservice._tcp.example.com.    3600    SVCB    1 . alpn="myproto" port=8080

    Questo dice ai client: "Per connettersi a myservice tramite TCP, usa il protocollo 'myproto' sulla porta 8080."

    SVCB vs record HTTPS

    RecordScopoCaso d'uso
    HTTPSService binding per HTTPSServer web, API
    SVCBService binding per qualsiasi protocolloProtocolli personalizzati, servizi non-HTTP

    I record HTTPS sono essenzialmente record SVCB con uno schema predefinito (https). Il formato del record è identico.

    Componenti del record

    Priority

    • 0 = Modalità alias (reindirizza a un altro nome)
    • 1-65535 = Modalità servizio (fornisce parametri di connessione)

    Target

    • . = Usa il nome della query
    • hostname = Usa un host diverso

    Parametri di servizio (SvcParams)

    ParametroDescrizioneEsempio
    alpnProtocolli applicativimyproto
    portPorta del servizio8080
    ipv4hintSuggerimenti indirizzo IPv4192.0.2.1
    ipv6hintSuggerimenti indirizzo IPv62001:db8::1
    no-default-alpnNessun protocollo predefinito(flag)
    mandatoryParametri obbligatori(lista)

    Casi d'uso comuni

    Protocollo applicativo personalizzato

    _myapp._tcp.example.com.    3600    SVCB    1 . alpn="myproto/1.0" port=9000

    DoH (DNS over HTTPS)

    _dns.example.com.    3600    SVCB    1 . alpn="h2" port=443 dohpath="/dns-query"

    DoT (DNS over TLS)

    _dns.example.com.    3600    SVCB    1 . alpn="dot" port=853

    Servizio WebSocket

    _websocket._tcp.example.com.    3600    SVCB    1 ws.example.com. alpn="h2,h3" port=443

    Servizio con endpoint multipli

    _api._tcp.example.com.    3600    SVCB    1 api1.example.com. port=443
    _api._tcp.example.com.    3600    SVCB    2 api2.example.com. port=443
    _api._tcp.example.com.    3600    SVCB    3 backup.example.com. port=8443

    Modalità alias (CNAME per servizi)

    _service._tcp.example.com.    3600    SVCB    0 _service._tcp.provider.com.

    Formato del record

    CampoDescrizioneEsempio
    NomeNome del servizio_service._tcp.domain
    TipoTipo di recordSVCB
    PriorityPriorità del servizio1
    TargetHostname di destinazione. o hostname
    ParamsParametri di servizioalpn="proto" port=8080
    TTLTime to live (secondi)3600

    Aggiungere un record SVCB

    Tramite la dashboard

    1. Naviga alla tua zona nella dashboard di DNScale
    2. Clicca su Add Record
    3. Configura il record:
      • Name: Inserisci il nome del servizio (es. _myservice._tcp)
      • Type: Seleziona SVCB
      • Priority: Imposta la priorità (1 per primario, 0 per modalità alias)
      • Target: Usa . per lo stesso nome o inserisci l'hostname di destinazione
      • ALPN: Inserisci i protocolli (opzionale)
      • Port: Inserisci la porta del servizio (opzionale)
      • IPv4 Hint: (Opzionale) Indirizzo IPv4
      • IPv6 Hint: (Opzionale) Indirizzo IPv6
      • TTL: Imposta la durata della cache (predefinito: 3600)
    4. Clicca su Create Record

    Tramite l'API

    Creare un record SVCB base:

    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": "_myservice._tcp",
        "type": "SVCB",
        "content": "1 . port=9000",
        "ttl": 3600
      }'

    Con ALPN e suggerimenti IP:

    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": "_api._tcp",
        "type": "SVCB",
        "content": "1 . alpn=\"myproto\" port=8443 ipv4hint=192.0.2.1",
        "ttl": 3600
      }'

    Priorità multiple per il failover:

    # Endpoint primario
    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": "_service._tcp",
        "type": "SVCB",
        "content": "1 primary.example.com. port=443",
        "ttl": 3600
      }'
     
    # Endpoint di backup
    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": "_service._tcp",
        "type": "SVCB",
        "content": "2 backup.example.com. port=443",
        "ttl": 3600
      }'

    Modalità alias:

    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": "_myservice._tcp",
        "type": "SVCB",
        "content": "0 _myservice._tcp.provider.com",
        "ttl": 3600
      }'

    Risposta API:

    {
      "status": "success",
      "data": {
        "message": "Record created successfully",
        "record": {
          "id": "encoded-record-id",
          "name": "_myservice._tcp.example.com.",
          "type": "SVCB",
          "content": "1 . alpn=\"myproto\" port=8443",
          "ttl": 3600,
          "disabled": false
        }
      }
    }

    Priorità e failover

    I record SVCB con priorità diverse abilitano il failover:

    _service._tcp.example.com.    SVCB    1 primary.example.com. port=443
    _service._tcp.example.com.    SVCB    2 secondary.example.com. port=443
    _service._tcp.example.com.    SVCB    10 backup.example.com. port=8443
    • I client provano prima la priorità 1
    • Se non disponibile, provano la priorità 2
    • La priorità 10 è l'ultima risorsa

    Stessa priorità = il client sceglie casualmente (bilanciamento del carico).

    Convenzioni di denominazione SVCB

    Per i servizi che seguono le convenzioni RFC:

    _servizio._protocollo.dominio
     
    Esempi:
    _https._tcp.example.com.     ; HTTPS (sebbene il record HTTPS sia preferito)
    _imaps._tcp.example.com.     ; IMAPS
    _submissions._tcp.example.com. ; Invio SMTP
    _dns._udp.example.com.       ; DNS su UDP

    Modalità alias vs modalità servizio

    Modalità alias (Priority 0)

    Reindirizza a un altro record SVCB/HTTPS:

    _service._tcp.example.com.    SVCB    0 _service._tcp.provider.com.
    • Come CNAME, ma per il service binding
    • Nessun parametro consentito
    • Deve avere un hostname di destinazione

    Modalità servizio (Priority 1+)

    Fornisce parametri di servizio diretti:

    _service._tcp.example.com.    SVCB    1 . port=8080
    • Contiene i dettagli di connessione
    • Può usare . per lo stesso nome
    • Supporta tutti i parametri

    Best practice

    1. Usa il record HTTPS per il web - Per i servizi HTTP/HTTPS, usa il tipo di record HTTPS

    2. Includi i parametri essenziali - Come minimo, specifica la porta se non standard

    3. Pianifica il failover - Usa priorità multiple per l'alta disponibilità

    4. Mantieni i record A/AAAA - SVCB integra ma non sostituisce i record di indirizzo

    5. Usa suggerimenti IP per le prestazioni - Riduci i round trip DNS con ipv4hint/ipv6hint

    6. Segui le convenzioni di denominazione - Usa il formato _servizio._protocollo.dominio

    Test dei record SVCB

    # Query dei record SVCB
    dig SVCB _myservice._tcp.example.com
     
    # Con output dettagliato
    dig SVCB _myservice._tcp.example.com +short
     
    # Controlla un nameserver specifico
    dig SVCB _myservice._tcp.example.com @ns1.dnscale.eu

    Tipi di record correlati

    • HTTPS - SVCB specifico per HTTPS
    • SRV - Scoperta servizi legacy
    • A - Indirizzi IPv4
    • AAAA - Indirizzi IPv6

    Conclusione

    I record SVCB forniscono un framework moderno e flessibile per la scoperta dei servizi che va oltre i tradizionali record SRV. Con il supporto per la negoziazione dei protocolli, la specifica delle porte e i suggerimenti IP, SVCB abilita connessioni efficienti ai servizi con round trip minimi. Mentre i record HTTPS sono preferiti per i servizi web, SVCB è ideale per protocolli personalizzati e servizi non-HTTP. Il supporto completo SVCB di DNScale ti permette di configurare una scoperta dei servizi sofisticata per qualsiasi applicazione.