TS3 SRV DNS Einträge statt TeamSpeak Domain Name System (TSDNS)

    • Offizieller Beitrag

    Hallo,


    das Thema TSDNS habe ich bereits in diesem Thema erklärt: Das TeamSpeak Domain Name System (TSDNS)


    Alternativ zu TSDNS gibt es auch SRV DNS Einträge, die letztendlich das selbe Ziel erfüllen: Eine Domain (z.B. ts.mein-clan.de) statt IP Adresse und Port (z.B. 84.200.62.59:9935).


    Was ist der Unterschied von SRV DNS Einträgen zu TSDNS?


    Der TSDNS ist ein Service, welcher aktiv auf einem Server (Client geht auch, macht man aber in der Regel nicht) Betriebssystem (Windows oder Linux) laufen muss. So wie ein Web- oder Gameserver zum Beispiel. Läuft dieser Server nicht, kann dieser auch entsprechend nicht genutzt werden.


    Der TSDNS Service ist zudem nicht gerade für den dauerhaften Einsatz gemacht. Es gibt keine integrierte Autostart-Lösungen. Es gibt keine Fehlererkennung, damit der Service entsprechend neugestartet wird / werden kann, da auch keine Log Einträge geschrieben werden.


    TeamSpeak selbst hat zudem den TSDNS Service mit der Client Version 3.1.0 (2017) als "deprecated" (= veraltet) bezeichnet. Insofern sollte der Support von TSDNS sowieso bald eingestellt werden:


    Ein SRV DNS Eintrag (kurz einfach "SRV") dagegen ist ein normaler DNS Eintrag des Typs "SRV". DNS Einträge haben den Vorteil, dass diese auf einem sogenannten Nameserver (auch DNS Server genannt) konfiguriert werden. Diese Nameserver sind ebenfalls wie Web- und Gameserver Services, die entsprechend laufen müssen, damit man diese nutzen kann.


    Ein Nameserver, also ein DNS Server ist in der Regel jedoch redundant. Sprich deine Domain und somit dein SRV DNS Eintrag wird auf einem Server konfiguriert und mindestens ein anderer DNS Server kopiert sich diese Einstellungen auf sich selbst. Dadurch sind alle Einstellungen mehrfach auf verschiedenen Servern vorhanden. In der Regel bestehen öffentlich bekannte DNS Server aus drei oder mehr Servern, um eine entsprechende Ausfallsicherheit zu gewährleisten.


    Das Tool "NAST" von der DENIC kann dir z.B. sagen, wie viele DNS Server hinter deiner Domain hängen:

    1. Öffne das NAST Tool der DENIC: https://www.denic.de/service/tools/nast/
    2. Gib deine Domain bei "Domain" ein: z.B. "teamspeak-connection.de"
    3. Klicke auf "Nameserver ermitteln" oder drücke einfach die "Enter" Taste
    4. Das Tool wird dir dann alle Nameserver zurückliefern, die für deine Domain zuständig sind und die Daten (DNS Einträge) deiner Domain haben

    Was sollte ich nun verwenden? SRV oder TSDNS?


    Kurz und knapp: SRV


    Begründung: SRV DNS Einträge benötigen keinen extra Service, welcher auf einem extra Server laufen muss. Zudem ist die Verfügbarkeit von SRV DNS Einträgen deutlich höher als bei TSDNS und zudem werden SRV DNS Einträge als erstes von TS3 Clients abgefragt, wenn man sich versucht, auf einen Server zu verbinden. :)


    Quelle für DNS Abfrage-Reihenfolge der TS3 Clients: https://support.teamspeakusa.c…amspeak-3-dns-srv-records


    Wie kann ich einen SRV DNS Eintrag nutzen? So konfigurierst du ihn!


    Damit TeamSpeak die SRV Einträge korrekt auflösen kann, sind folgende DNS Einträge notwendig:

    • 1x DNS Eintrag des Typs "A" (IPv4)
    • 1x DNS Eintrag des Types "AAAA" (IPv6; optional und NUR, wenn dein TS3 Server über IPv6 erreichbar ist)
    • 1x DNS Eintrag des Typs "SRV"

    Hinweis: Bitte beachte, dass ich hier nur beispielhaft erkläre und zeige, wie man das ganze einrichtet. Jeder Domain Anbieter hat ein anderes Webinterface zur Konfiguration von DNS Einträge. Es kann daher sein, dass du vielleicht gar keine SRV Einträge konfigurieren kannst und du daher deinem Anbieter eine E-Mail bzw. ein Ticket schreiben musst, damit er das für dich macht. Gerne kannst du hier im Forum nach Hilfe fragen, aber teile uns dann bitte immer den Domain Anbieter mit und zeig uns am besten einen Ausschnitt von der Konfigurationsseite deiner Domain.


    Der SRV Eintrag zeigt später auf die IP Adresse und den Port deines TeamSpeak 3 Servers. Wichtig ist, dass du beide DNS Einträge (A und AAAA) identisch benennst, den du solltest im besten Fall nur einen einzigen SRV Eintrag pro Server haben.


    Erfahrungsgemäß führen zwei identisch namige SRV Einträge bei TS3 Servern zu Problemen, wenn einer davon auf eine IPv4 (A-Record) und der andere auf eine IPv6 (AAAA-Record) zeigt.


    Verbindet sich ein Client auf einen TS3 Server, ruft dieser die entsprechenden DNS Einträge ab und nimmt den erst besten, den er bekommt - mal ist das dann der IPv4 und mal der IPv6 DNS Eintrag. Je nachdem, ob der Client selbst IPv6 unterstützt oder auch nicht, kann er sich mal auf den TS3 Server verbinden oder auch mal nicht.


    Die Best Practice Empfehlung lautet daher wie folgt:

    • 1x A-Record, welcher auf die IPv4 Adresse zeigt
    • 1x AAAA-Record mit identischem Namen zum A-Record, welche aber auf die IPv6 Adresse zeigt
    • 1x SRV-Record, welcher auf den identischen Namen des A und AAAA-Records zeigt

    Ich werde hier nur die relevanten und wichtigsten DNS Einstellungen erklären. Neben den von mir jeweils erwähnten DNS Einstellungen wirst du höchst wahrscheinlich auch noch die "Priorität" und "Gewichtung" finden. Hier kannst du z.B. jeweils 0, 5, 10 oder 15 eintragen. Das macht in unserem Fall keinen Unterschied, da wir keine Redundanz abbilden werden. TeamSpeak unterstützt nämlich die Funktion, dass man im DNS sagt: Nutze diesen TS3 Server und wenn dieser nicht erreichbar ist, dann bitte alternativ diesen oder diesen hier. Das ist jedoch ein anderes und etwas komplizierteres Thema.


    Der A-Record für IPv4 Adressen (optional)


    Wenn du deinen TS3 Server bei einem Hoster (ATHP) gemietet hast, hat dieser in der Regel bereits einen A-Record, welcher auf die IP Adresse deines Servers zeigt. In diesem Fall kannst du einfach dessen A-Record verwenden. :)


    Ist dies nicht der Fall, musst du einen entsprechenden DNS Eintrag erstellen.


    Erstelle bitte folgenden DNS Eintrag bei deinem Domain Anbieter:

    • Name: ts3-srv (für ts3-srv.mein-clan.de)
    • Typ: A-Record (IPv4)
    • TTL: 300 (5 Minuten)
    • Wert: 84.200.62.59 (die IPv4 Adresse deines TeamSpeak 3 Servers)

    Welchen Namen du nutzt, ist dir überlassen. Der wird später nur als Verweis verwendet - damit verbindet sich später KEIN Client. Du könntest ihn also auch sehr seltsam benennen - ein logischer Name macht nur Sinn, um ihn später leichter wo zuordnen zu können.


    Wir bei 4G-Server haben diese Einträge z.B. wie folgt benannt:

    • TS3 Instanz #1: ts3-srv-athp01
    • TS3 Instanz #2: ts3-srv-athp02
    • TS3 Instanz #3: ts3-srv-athp03
    • ...


    Der AAAA-Record für IPv6 Adressen (optional)


    Wenn du deinen TS3 Server bei einem Hoster (ATHP) gemietet hast, hat dieser in der Regel bereits einen AAAA-Record, welcher auf die IP Adresse deines Servers zeigt. In diesem Fall kannst du einfach dessen AAAA-Record verwenden. :)


    Ist dies nicht der Fall, musst du einen entsprechenden DNS Eintrag erstellen.


    Erstelle bitte folgenden DNS Eintrag bei deinem Domain Anbieter:

    • Name: ts3-srv (für ts3-srv.mein-clan.de)
    • Typ: AAAA-Record (IPv6)
    • TTL: 300 (5 Minuten)
    • Wert: 2001:1608:10:3:0:0:8:1f (die IPv6 Adresse deines TeamSpeak 3 Servers)

    Auch hier gelten die selben Regeln wie beim A-Record bzgl. des Namens. Wichtig ist, dass der Name des A-Records mit dem vom AAAA-Record und anders herum identisch ist, da es sonst zu DNS Problemen bei den Clients führen kann.


    Der SRV-Record für TeamSpeak


    Nun kommen wir zum eigentlichen und wohl interessantesten Teil der Anleitung: Der SRV-Record. :)


    Ein SRV-Record ist ein spezieller DNS Eintrag, denn er zeigt auf einen bestimmten Dienst. In unserem Fall auf einen TS3 Server. Wir müssen daher im Wert immer "_ts3._udp." als führenden Text zum eigentlichen Wert angeben.


    Nachfolgend ein paar Beispiele:

    • _ts3._udp.mein-clan.de => Client kann sich über die Adresse "mein-clan.de" verbinden
    • _ts3._udp.ts3.mein-clan.de => Client kann sich über die Adresse "ts3.mein-clan.de" verbinden
    • _ts3._udp.ts.mein-clan.de => Client kann sich über die Adresse "ts.mein-clan.de" verbinden
    • _ts3._udp.teamspeak.mein-clan.de => Client kann sich über die Adresse "teamspeak.mein-clan.de" verbinden
    • _ts3._udp.voice.mein-clan.de => Client kann sich über die Adresse "voice.mein-clan.de" verbinden

    Gibt man den führenden Text "_ts3._udp." NICHT mit an, ist der SRV-Record ungültig und funktioniert entsprechend nicht. Korrekt und gut programmierte Webinterfaces von Domain Anbieter erkennen dies auch und lehnen beim Speichern dann diesen DNS Eintrag ab.


    In unserem Beispiel möchten wir, dass man sich über "ts.mein-clan.de" auf den TS3 Server verbinden kann.


    Wir erstellen daher folgenden DNS Eintrag beim Domain Anbieter:

    • Name: _ts3._udp.ts (Dienst + Protokoll + Domain-Name)
    • Typ: SRV-Record
    • TTL: 300 (5 Minuten)
    • Wert: 9935 ts3-srv.mein-clan.de (Port deines TS3 Servers + A/AAAA-Record)

    Hinweis: Sollte es bei deinem Anbieter keine extra Einstellmöglichkeit für "Priorität" und/oder "Gewichtung" geben, musst du diese Einstellungen entsprechend mit in den Wert eintragen - das kommt vor die Port-Angabe.


    Beispiel:

    • Wert: 5 9935 ts3-srv.mein-clan.de (Gewichtung + Port deines TS3 Servers + A/AAAA-Record)
    • Wert: 0 5 9935 ts3-srv.mein-clan.de (Priorität + Gewichtung + Port deines TS3 Servers + A/AAAA-Record)

    Da SRV-Records in der Regel sofort verfügbar und nutzbar sind, solltest du dich nach dem Speichern des SRV-Records auch sofort mit der konfigurierten Domain auf deinen TS3 Server verbinden können. In diesem Fall wäre das z.B. "ts.mein-clan.de". (PS: Das war nur eine beispielhafte Domain, die ich verwendet habe!)


    Kann ich auch mehrere unterschiedliche Adressen auf meinen Server zeigen lassen?


    Natürlich kannst du auch mehrere verschiedene Adressen auf deinen TS3 Server zeigen lassen:

    • ts3.mein-clan.de
    • ts.mein-clan.de
    • teamspeak.mein-clan.de
    • voice.mein-clan.de
    • ...

    Für jede Adresse legst du einen weiteren SRV-Record an, welcher jedoch die selbe Konfiguration wie der zuvor angelegte hat: Selber Port und selber A/AAAA-Record Name.


    Ein Blick in die DNS Einträge mittels dig


    dig ist ein DNS Lookup Tool, welches es auf Linux Betriebssystemen gibt. Damit kann man DNS Einträge abfragen, um z.B. zu prüfen, ob denn mein neulich gesetzter DNS Eintrag a) inzwischen aktiv ist und b) korrekt (wie erwartet) gesetzt ist oder nicht.


    Basierend auf unserem obigen Beispiel prüfen wir nun die DNS Einträge:


    Wie sieht mein SRV DNS Eintrag aus?

    Code
    $ dig +noall +answer _ts3._udp.ts.mein-clan.de SRV
    _ts3._udp.ts.mein-clan.de. 299 IN SRV   0 5 9935 ts3-srv.mein-clan.de.

    Gut - sieht genau so aus, wie wir es konfiguriert haben.


    Nun prüfen wir noch, was hinter diesem ts3-srv.mein-clan.de steht. Hier sollte einmal ein A-Record und optional - falls möglich / verfügbar - noch ein AAAA-Record hinterlegt sein:

    Code
    $ dig +noall +answer ts3-srv.mein-clan.de A
    ts3-srv.mein-clan.de. 299 IN     A       84.200.62.59

    Ja, der A-Record stimmt - er zeigt auf die richtige IPv4 Adresse.

    Code
    $ dig +noall +answer ts3-srv.mein-clan.de AAAA
    ts3-srv.mein-clan.de. 299 IN     AAAA    2001:1608:10:3:0:0:8:1f

    Und auch der AAAA-Record zeigt auf die korrekte IPv6 Adresse. Sehr gut!


    Ich hoffe, ich konnte dir damit das Thema SRV-Record gut und verständlich erklären, sodass du dir nun deinen eigenen entsprechend einrichten kannst. :)


    Wenn du Fragen hierzu haben solltest, erstelle gerne ein neues Thema hierzu im Forum oder stelle Sie direkt unter diesem Thema. 8)

    Viele Grüße,
    Sebbo

    ---

    DevOps Engineer <3