PDA

View Full Version : Resource Record Abfrage mit TeamSpeak 3


Elradon
31-03-2008, 19:43
Hallöle,

eine sicherlich bequeme Art einen TeamSpeak Server zu joinen, ist eine Domain anstelle der IP zu benutzen.
Es bietet eigentlich jedermann vorteile:
ATHP: der Kunde kennt die Domain des Anbieters, er kann gleich auf den TeamSpeak Server kommen, um zu bestellen ;)
NPO: im Prinzip = ATHP
Clans: meine-clan-domain.de -> zack aufm TeamSpeak Server

Eine Sache, über die ich schon lange brüte, betrifft das Scenario, dass die Domain auf einen Webserver (only) leitet und der TeamSpeak Server ganz alleine auf einem großen Rootserver vor sich hindöst, klar, mit einer anderen IP.
In so einem Falle wäre nichts mehr mit: Zack Domain, Zack TeamSpeak.

Die Lösung ist eigentlich denkbar einfach, wie ich festgestellt habe. Als Synonym dafür kann man eigentlich mail.domain.de sehen. Diese Domain ist standardmäßig in die Zonefiles eingetragen und leitet standardmäßig auf die gleiche IP wie domain.de. Man kann allerdings auch einen externen Mailserver betreiben; in so einem Fall würde mail.domain.de auf diesen Mailserver verweisen.

So etwas könnte man nun auch für TeamSpeak nutzen. einfach 'teamspeak.domain.de' auf die IP des TS-Servers routen und fertig. Muss das bloß noch der Client von TeamSpeak wissen ;)

Client: hey domain.de. läuft bei dir n TS Server? Nein, schade. Schau ich mal bei teamspeak.domain.de nach. Zu welchem Server gehört die? Ah! Hallo, läuft bei dir ein TeamSpeak Server? ja, wunderbar, ich komme mal.

Germeshausen.de
31-03-2008, 22:09
Meinst du mittels RR-Typ SRV (http://de.wikipedia.org/wiki/SRV_Resource_Record)?

Elradon
31-03-2008, 22:25
Ich glaube nicht, dass ich genau das meine, aber es kommt dem schon nahe.
Meins is im Prinzip nichts anders, als dass der Client checkt, ob es eine "teamspeak"-Subdomain gibt, die auf eine andere IP verweist, als die Domain.

bibabu
31-03-2008, 22:31
Hallo,

die Idee ist richtig gut. Leider nicht mit TeamSpeak 2 machbar aber eine gute Idee für TeamSpeak 3. Die DNS Einträge einer Domain lassen sich ja ganz einfach erweitern. Ein Einfacher TXT eintrag würde schon reichen.

Elradon
31-03-2008, 22:35
Ganz genau!
Ich weiß nicht, ich habe dieses Dilemma (unterschiedliche Server) schon länger im Kopf gehabt. Aber die Lösung ist richtig einfach. Hoffentlich kann das umgesetzt werden =)

Germeshausen.de
31-03-2008, 22:42
Nun, ich denke, dass sich die Lösung mittels RR-Typ SRV wesentlich besser eignet. Ansonsten wäre es ja nur eine Abfrage von einer starren Liste von einer oder mehreren Subdomains.
Mit dem RR-Typ SRV kann man wesentlich flexibler arbeiten, da man nicht an starre Mechanismen gebunden ist und mit einer einzigen DNS-Abfrage die notwendigen Informationen abrufen kann, anstatt zig Subdomain-Varianten abzufragen.

Nachtrag: Damit könnte man auch Server einer Instanz ohne Portangabe erreichen, indem man einfach einen DNS-Record setzt. Beispiel:
_ts3._tcp.tsserver1.example.com 3600 IN SRV 10 0 8767 ts.example.com.
_ts3._tcp.tsserver2.example.com 3600 IN SRV 10 0 8768 ts.example.com.
_ts3._tcp.ts.clientdomain.com 3600 IN SRV 10 0 8769 ts.example.com.

So könnte man definieren, dass beim Aufruf der Adresse tsserver1.example.com der Client auf ts.example.com:8767 verbindet und bei tsserver2.example.com auf ts.example.com:8768.
In der Dritten Zeile, die bei dem Kunden mit der Domain clientdomain.com eingetragen ist, wird beim Aufruf von ts.clientdomain.com auf den Server ts.example.com:8769 verwiesen, ohne dass der Nutzer einen Port angeben muss.

Elradon
31-03-2008, 22:50
Ich kann dazu nicht viel sagen. Hab damit noch keine Erfahrungen gesammelt und auch noch nicht viel gelesen.
Aber ich bin ja 'Tanks God' nicht im Entwicklerteam XD

Aber du meinst, dass es durchaus sinnvoll ist, das in TeamSpeak 3 zu integrieren, Germeshausen? Oder lässt sich deine Variante auch jetzt schon umsetzten?

Germeshausen.de
31-03-2008, 23:08
Da TeamSpeak 2 die Abfrage nicht unterstützt, würde sich das zum aktuellen Zeitpunkt nicht realisieren lassen. Mit TeamSpeak 3 ließe sich das ohne weiteres realisieren.

Schau mal mein Beispiel, was ich in meinem vorherigen Beitrag ergänzt habe.

Nochmal ein Beispiel, wenn man nur die Domain example.com angibt.
_ts3._tcp.example.com 3600 IN SRV 10 1 8767 ts.example.com.
_ts3._udp.example.com 3600 IN SRV 10 0 8767 ts.example.com.
_ts3._tcp.example.com 3600 IN SRV 20 1 8767 ts-backup.example.com.
_ts3._udp.example.com 3600 IN SRV 20 0 8767 ts-backup.example.com.
So könnte man einen Backup Server einrichten und Nutzer werden dorthin automatisch verbunden, wenn der Hauptserver nicht verfügbar (oder vielleicht auch voll/ausgelastet) ist. Zudem wird priorisiert TCP als Protokoll für den Datentransfer verwendet, da dies eine höhere Gewichtung hat als UDP.

Die Verwendung der SRV Informationen bietet einige gute Optionen. Vorraussetzung allerdings ist, dass TeamSpeak 3 diese Option unterstützt und welche Möglichkeiten und Features die Entwickler in die Software integrieren.