DNS

SRV-Record im DNS verständlich erklärt: Service-Discovery

Der SRV-Record (kurz für Service Record) ist ein spezialisierter DNS-Eintrag, der zur Service-Discovery (Dienste-Erkennung) im Netzwerk dient. Im Gegensatz zu A-Records, die lediglich einen Namen mit einer IP-Adresse verknüpfen, definiert ein SRV-Record, unter welchem Port, mit welchem Protokoll (TCP/UDP) und auf welchem konkreten Ziel-Server ein bestimmter Dienst (z. B. LDAP oder SIP) für eine Domain erreichbar ist.

Während ein MX-Record nur für E-Mail eine vergleichbare Priorisierung kennt, verallgemeinert der SRV-Record dieses Prinzip auf beliebige Dienste – inklusive Portangabe. Das macht ihn zum zentralen Baustein der automatischen Dienste-Erkennung in der gesamten DNS-Hierarchie.

Aufbau und Syntax eines SRV-Records

Der Aufbau eines SRV-Records ist streng standardisiert und weicht vom Schema einfacher DNS-Einträge ab. Das offizielle Format lautet:

_[Service]._[Protokoll].[Domain].   [TTL]   IN   SRV   [Priorität] [Gewicht] [Port] [Ziel]

Ein reales Beispiel für einen SIP-Telefonie-Dienst:

_sip._tcp.example.com.      3600    IN    SRV    10 60 5060 sipserver.example.com.
  • Service (_sip): Der Name des Dienstes, immer eingeleitet mit einem Unterstrich.
  • Protokoll (_tcp): Das Transportprotokoll (meist _tcp oder _udp), ebenfalls mit Unterstrich.
  • Domain (example.com.): Die Domain, für die der Dienst angeboten wird.
  • Time to Live (TTL - 3600): Die Cache-Dauer.
  • Klasse (IN): Internet.
  • Typ (SRV): Der Eintragstyp.
  • Priorität (10): Legt fest, welcher Server bevorzugt werden soll. Niedrigere Werte werden zuerst kontaktiert.
  • Gewicht (60): Ein Wert zur Lastverteilung bei gleicher Priorität.
  • Port (5060): Der Port, auf dem der Dienst lauscht (z. B. 5060 für SIP).
  • Ziel (sipserver.example.com.): Der Hostname des physischen Servers, der den Dienst bereitstellt (muss einen A- oder AAAA-Record besitzen).

SRV-Record im Vergleich zu verwandten Einträgen

Der SRV-Record wird häufig mit anderen DNS-Einträgen verwechselt, die ebenfalls auf einen Server verweisen. Die folgende Tabelle grenzt sie ab:

RecordVerweist aufKennt Port?Kennt Priorität/Gewicht?Typischer Einsatz
SRVHostname + PortjajaService-Discovery (SIP, LDAP, XMPP)
MXHostname (Mailserver)nein (fest 25)nur PrioritätE-Mail-Zustellung
AIPv4-AdresseneinneinHostname → IP
CNAMEanderer HostnameneinneinAlias auf anderen Namen

Wichtig: Der SRV-Record ist der einzige Standard-Record, der Port, Priorität und Gewicht zugleich transportiert. Genau das macht ihn für Dienste interessant, die nicht auf dem Standardport laufen oder über mehrere Server verteilt sind.


Typische SRV-Record-Fehler und ihre Folgen

Fehlerhafte SRV-Records sind tückisch, weil betroffene Dienste oft ohne klare Fehlermeldung einfach «nicht gefunden» werden. Diese Tabelle zeigt die häufigsten Fehlkonfigurationen:

FehlerSymptomLösung
Ziel ist ein CNAMEsporadische AuflösungsfehlerZiel direkt auf A-/AAAA-Hostname setzen
Fehlender Unterstrich (sip statt _sip)Record wird nie gefundenService & Protokoll immer mit _ einleiten
Falscher PortVerbindung wird abgewiesenPort mit dem real lauschenden Dienst abgleichen
Ziel ohne A-RecordClient findet Dienst, aber keine IPA-/AAAA-Record für den Ziel-Host anlegen
Zu hohe TTL bei UmzugClients nutzen alten Server weiterTTL vor Migration absenken

Praxisbeispiel: Microsoft 365 Autodiscover

Ein häufiger realer Einsatz ist die automatische Konfiguration von E-Mail-Clients (Autodiscover) für einen Mailserver, der nicht auf der Hauptdomain liegt:

_autodiscover._tcp.example.com. 3600 IN SRV 0 0 443 autodiscover.outlook.com.
  • Vorher (ohne SRV): Outlook sucht die Konfiguration nur unter autodiscover.example.com. Liegt dort kein passender Eintrag, scheitert die automatische Einrichtung und Nutzende müssen Server, Port und Protokoll manuell eintragen.
  • Nachher (mit SRV): Der Client liest den SRV-Record aus, erfährt Ziel-Host (autodiscover.outlook.com) und Port (443) und richtet das Postfach vollautomatisch ein. Das Zusammenspiel mit korrekten MX-Records sorgt dafür, dass sowohl Zustellung als auch Client-Konfiguration reibungslos funktionieren.

Die Lehre: Der SRV-Record entkoppelt den «Dienstnamen» von der konkreten Server-Adresse. Wandert der Dienst auf einen anderen Host oder Port, genügt eine Änderung am SRV-Record – die Clients folgen automatisch.


Lastverteilung und Ausfallsicherheit

Das Zusammenspiel von Priorität und Gewicht im SRV-Record ermöglicht ein ausgeklügeltes Traffic-Management direkt auf DNS-Ebene:

_service._tcp.example.com.  IN  SRV  10 70 8080 host1.example.com.
_service._tcp.example.com.  IN  SRV  10 30 8080 host2.example.com.
_service._tcp.example.com.  IN  SRV  20  0 8080 backup.example.com.
  1. Ein Client filtert zuerst nach der niedrigsten Priorität (10).
  2. Er sieht zwei Server (host1 und host2) mit Priorität 10. Er verteilt die Anfragen gemäss dem Gewicht: host1 erhält 70 % des Traffics, host2 erhält 30 %.
  3. Fallen sowohl host1 als auch host2 aus, weicht der Client auf die nächsthöhere Priorität 20 aus und sendet alle Anfragen an backup.example.com.

[!TIP] Fehler in SRV-Records blockieren das automatische Auffinden von VoIP-Telefonen oder Active-Directory-Diensten. Prüfen Sie die DNS-Auflösung Ihrer Service-Einträge bequem mit dem DNS Check auf balou.tools.

Häufig gestellte Fragen (FAQ)

Wofür wird ein SRV-Record in der Praxis verwendet?

Typische Einsatzbereiche sind IP-Telefonie (SIP), Chat-Server (XMPP), Minecraft-Gameserver oder das automatische Auffinden von Domänen-Controllern (LDAP) in Microsoft Active Directory Netzwerken.

Was ist der Unterschied zwischen Priorität und Gewicht im SRV-Record?

Die Priorität legt fest, welcher Server zuerst kontaktiert wird (niedrigerer Wert gewinnt). Das Gewicht steuert die Lastverteilung (Load Balancing) bei identischer Priorität: Ein Server mit Gewicht 60 erhält statistisch 60 % des Datenverkehrs, ein Server mit Gewicht 40 nur 40 %.

Darf das Ziel eines SRV-Records ein CNAME sein?

Nein. Laut RFC 2782 muss das Ziel-Feld eines SRV-Records auf einen Hostnamen zeigen, der direkt einen A- oder AAAA-Record besitzt. Ein Verweis auf einen CNAME-Record ist nicht erlaubt und führt bei vielen Resolvern zu Auflösungsfehlern.

Warum erscheint bei manchen SRV-Records der Wert „0 0 0 .“?

Ein SRV-Record mit Ziel „.“ (einzelner Punkt) signalisiert explizit, dass der betreffende Dienst für diese Domain nicht verfügbar ist. So lässt sich gezielt verhindern, dass Clients einen Dienst per automatischer Erkennung suchen, den es gar nicht gibt.