Maak kennis met PostScale -- e-mail-API voor transactionele, inkomende en gemaskeerde adressen. PostScale

    Wat is een SRV-record

    Leer hoe SRV-records servicedetectie mogelijk maken door host- en poortinformatie voor diensten te specificeren. Inclusief voorbeelden voor het DNScale-dashboard en de API.

    Een SRV (Service) record specificeert de locatie van servers voor specifieke diensten. In tegenstelling tot A-records die simpelweg namen aan IP's koppelen, bieden SRV-records de hostnaam, poort, prioriteit en gewicht voor een dienst — waardoor geavanceerde servicedetectie en load balancing mogelijk zijn.

    Hoe SRV-records werken

    SRV-records gebruiken een speciale naamgevingsconventie:

    _service._protocol.domein.    TTL    SRV    prioriteit gewicht poort doel

    Voorbeeld:

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

    Dit vertelt clients: "Om de SIP-dienst via TCP voor example.com te bereiken, maak verbinding met sipserver.example.com op poort 5060."

    Recordcomponenten

    ComponentBeschrijvingVoorbeeld
    ServiceServicenaam (voorafgegaan door _)_sip, _xmpp, _ldap
    ProtocolNetwerkprotocol (voorafgegaan door _)_tcp, _udp
    PrioriteitLagere waarden = hogere prioriteit10
    GewichtVerdeling bij dezelfde prioriteit60
    PoortTCP/UDP-poortnummer5060
    DoelHostnaam van de serversipserver.example.com.

    Veelvoorkomende toepassingen

    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.

    XMPP (Jabber) berichten

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

    LDAP Directory Services

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

    Minecraft-servers

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

    Matrix/Element Chat

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

    Prioriteit en gewicht uitgelegd

    Prioriteit (voorkeur)

    Lagere waarden worden eerst geprobeerd:

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

    Clients proberen eerst primary.example.com (prioriteit 10), dan backup.example.com (prioriteit 20) als de primaire niet beschikbaar is.

    Gewicht (verkeersverdeling)

    Tussen servers met dezelfde prioriteit bepaalt het gewicht de verdeling:

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

    Server1 ontvangt ~70% van het verkeer, server2 ontvangt ~30%.

    Recordformaat

    VeldBeschrijvingVoorbeeld
    Naam_service._protocol.domein_sip._tcp.example.com
    TypeRecordtypeSRV
    PrioriteitServervoorkeur (lager = voorkeur)10
    GewichtLoad balancing gewicht50
    PoortServicepoort5060
    InhoudDoelhostnaamsipserver.example.com.
    TTLTime to live (seconden)3600

    Een SRV-record toevoegen

    Via het dashboard

    1. Navigeer naar je zone in het DNScale-dashboard
    2. Klik op Add Record
    3. Configureer het record:
      • Name: Voer _service._protocol in (bijv. _sip._tcp)
      • Type: Selecteer SRV
      • Priority: Stel de prioriteitswaarde in (bijv. 10)
      • Weight: Stel de gewichtswaarde in (bijv. 50)
      • Port: Stel de servicepoort in (bijv. 5060)
      • Value: Voer de doelhostnaam in
      • TTL: Stel de cacheduur in (standaard: 3600)
    4. Klik op Create Record

    Via de API

    Een SRV-record aanmaken:

    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
      }'

    XMPP-records instellen:

    # Client-verbindingen
    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
      }'
     
    # Server-naar-server federatie
    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
      }'

    API-respons:

    {
      "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 practices

    1. Gebruik zinvolle prioriteiten - Houd gaten tussen prioriteitswaarden (10, 20, 30) voor toekomstige flexibiliteit

    2. Doel moet A/AAAA-records hebben - SRV-doelen moeten resolven naar IP-adressen, niet naar CNAME's

    3. Gebruik gewicht voor load balancing - Verdeel verkeer over servers met dezelfde prioriteit met behulp van gewicht

    4. Gebruik geen poort 0 - Een gewicht van 0 betekent dat de server als laatste optie moet worden gebruikt

    5. Test met applicaties - Niet alle applicaties respecteren SRV-records; verifieer met je specifieke software

    Een dienst uitschakelen

    Om aan te geven dat een dienst niet beschikbaar is, gebruik een doel van .:

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

    SRV-records testen

    Verifieer je SRV-records met dig:

    dig SRV _sip._tcp.example.com
     
    # Met volledige output
    dig SRV _xmpp-client._tcp.example.com +short

    Gerelateerde recordtypen

    • A - IPv4-adres voor de doelserver
    • AAAA - IPv6-adres voor de doelserver
    • HTTPS - Moderne service binding voor HTTPS
    • SVCB - Algemene service binding

    Conclusie

    SRV-records zijn essentieel voor servicedetectie en stellen applicaties in staat om automatisch de juiste servers, poorten en failover-opties te vinden. Ze zijn cruciaal voor VoIP, instant messaging en veel bedrijfsprotocollen. DNScale's ondersteuning voor SRV-records laat je geavanceerde service-architecturen configureren met op prioriteit gebaseerde failover en gewogen load balancing.