Neu: PostScale -- E-Mail-API für transaktionale, eingehende und maskierte Adressen. PostScale

    Was ist ein SRV-Eintrag

    Erfahren Sie, wie SRV-Einträge die Diensterkennung ermöglichen, indem sie Host- und Port-Informationen für Dienste angeben. Mit Beispielen für das DNScale-Dashboard und die API.

    Ein SRV-Eintrag (Service Record) gibt den Standort von Servern für bestimmte Dienste an. Anders als A-Einträge, die einfach Namen zu IPs zuordnen, liefern SRV-Einträge den Hostnamen, Port, die Priorität und Gewichtung für einen Dienst — und ermöglichen so eine ausgefeilte Diensterkennung und Lastverteilung.

    Wie SRV-Einträge funktionieren

    SRV-Einträge verwenden eine spezielle Namenskonvention:

    _service._protocol.domain.    TTL    SRV    priority weight port target

    Beispiel:

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

    Dies teilt Clients mit: „Um den SIP-Dienst über TCP für example.com zu erreichen, verbinden Sie sich mit sipserver.example.com auf Port 5060."

    Eintragskomponenten

    KomponenteBeschreibungBeispiel
    ServiceDienstname (mit _ vorangestellt)_sip, _xmpp, _ldap
    ProtocolNetzwerkprotokoll (mit _ vorangestellt)_tcp, _udp
    PriorityNiedrigere Werte = höhere Priorität10
    WeightLastverteilung bei gleicher Priorität60
    PortTCP/UDP-Portnummer5060
    TargetHostname des Serverssipserver.example.com.

    Häufige Anwendungsfälle

    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) Messaging

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

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

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

    Priorität und Gewichtung erklärt

    Priorität (Präferenz)

    Niedrigere Werte werden zuerst versucht:

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

    Clients versuchen zuerst primary.example.com (Priorität 10), dann backup.example.com (Priorität 20), wenn der primäre Server ausfällt.

    Gewichtung (Lastverteilung)

    Unter Servern mit gleicher Priorität bestimmt die Gewichtung die Verteilung:

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

    Server1 erhält ca. 70 % des Datenverkehrs, Server2 erhält ca. 30 %.

    Eintragsformat

    FeldBeschreibungBeispiel
    Name_service._protocol.domain_sip._tcp.example.com
    TypEintragstypSRV
    PrioritätServerpräferenz (niedriger = bevorzugt)10
    GewichtungLastverteilungsgewicht50
    PortService-Port5060
    InhaltZiel-Hostnamesipserver.example.com.
    TTLGültigkeitsdauer (Sekunden)3600

    SRV-Eintrag hinzufügen

    Über das Dashboard

    1. Navigieren Sie zu Ihrer Zone im DNScale-Dashboard
    2. Klicken Sie auf Add Record
    3. Konfigurieren Sie den Eintrag:
      • Name: Geben Sie _service._protocol ein (z. B. _sip._tcp)
      • Type: Wählen Sie SRV
      • Priority: Setzen Sie den Prioritätswert (z. B. 10)
      • Weight: Setzen Sie den Gewichtungswert (z. B. 50)
      • Port: Setzen Sie den Service-Port (z. B. 5060)
      • Value: Geben Sie den Ziel-Hostnamen ein
      • TTL: Setzen Sie die Cache-Dauer (Standard: 3600)
    4. Klicken Sie auf Create Record

    Über die API

    SRV-Eintrag erstellen:

    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-Einträge einrichten:

    # Client-Verbindungen
    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-zu-Server-Federation
    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-Antwort:

    {
      "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. Sinnvolle Prioritäten verwenden - Lassen Sie Lücken zwischen den Prioritätswerten (10, 20, 30) für zukünftige Flexibilität

    2. Ziel muss A/AAAA-Einträge haben - SRV-Ziele sollten in IP-Adressen auflösen, nicht in CNAMEs

    3. Gewichtung für Lastverteilung verwenden - Verteilen Sie den Datenverkehr unter Servern mit gleicher Priorität über die Gewichtung

    4. Port 0 nicht verwenden - Eine Gewichtung von 0 bedeutet, dass der Server nur als letzte Möglichkeit genutzt werden soll

    5. Mit Anwendungen testen - Nicht alle Anwendungen beachten SRV-Einträge; überprüfen Sie dies mit Ihrer jeweiligen Software

    Dienst deaktivieren

    Um anzuzeigen, dass ein Dienst nicht verfügbar ist, verwenden Sie ein Ziel von .:

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

    SRV-Einträge testen

    Überprüfen Sie Ihre SRV-Einträge mit dig:

    dig SRV _sip._tcp.example.com
     
    # Mit vollständiger Ausgabe
    dig SRV _xmpp-client._tcp.example.com +short

    Verwandte Eintragstypen

    • A - IPv4-Adresse für den Zielserver
    • AAAA - IPv6-Adresse für den Zielserver
    • HTTPS - Modernes Service Binding für HTTPS
    • SVCB - Allgemeines Service Binding

    Fazit

    SRV-Einträge sind unverzichtbar für die Diensterkennung und ermöglichen es Anwendungen, automatisch die richtigen Server, Ports und Failover-Optionen zu finden. Sie sind entscheidend für VoIP, Instant Messaging und viele Unternehmensprotokolle. DNScales Unterstützung für SRV-Einträge ermöglicht die Konfiguration ausgefeilter Service-Architekturen mit prioritätsbasiertem Failover und gewichteter Lastverteilung.