PDA

View Full Version : Resource Record Abfrage mit TeamSpeak 3


Elradon
31-03-2008, 20: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, 23:09
Meinst du mittels RR-Typ SRV (http://de.wikipedia.org/wiki/SRV_Resource_Record)?

Elradon
31-03-2008, 23: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, 23: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, 23: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, 23: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, 23: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
01-04-2008, 00: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.

Proteus
31-12-2008, 00:15
Hallo,

mit TS2 gibt es eine Möglichkeit, diese ist allerdings nicht immer umsetzbar.

Man braucht einen Root Server auf dem Webseite sowie Teamspeak Server laufen. So machen wir bei Team Bielefeld (http://www.team-bielefeld.de/). Wenn man team-bielefeld.de eingibt kommste direkt zu uns auf den Server - da ist allerdings seit neuestem nen PW drauf :rolleyes:

Elradon
31-12-2008, 00:32
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.


Das was du ansprichst, ist sicherlich richtig und machen auch einige Leute. Aber gerade um Lastspitzen zu vermeiden, ist es nicht sinnvoll. Schließlich willst ja net, dass es auf allen Servern laggt, nur weil übern Webserver von 100 Leuten ne größere Datei runtergeladen wird...

Hook88
31-12-2008, 01:23
Das Problem, das hier angesprochen wird ist nicht, dass man nicht über eine Domain connecten könnte.... Dies ist eigentlich bei allen Programmen der Fall.

Das Problem ist vielmehr, dass man den TeamSpeakserver auf einen anderen Server legen möchte als auf den die Domain eigentlich weiterleitet und man auf Subdomains connecten können soll, ohne dass man einen Port angeben braucht, der Server aber nicht auf Port 8767 laufen muss.

Diese Funktion wäre auf jeden Fall ein gutes Feature für TeamSpeak3 :)

Bastian
31-12-2008, 07:25
Zur Erläuterung:

http://de.wikipedia.org/wiki/SRV_Resource_Record

Im Prinzip sind diese Einträge eine ziemlich coole Variante um festzustellen, welche Dienste unter einer bestimmten Domain angeboten werden.

Wenn ein Client diese Technik unterstützt, braucht er nur den DNS-Server zu fragen: "Ey du. Gehört zu dieser Domain ein TeamSpeak-Server und wenn ja, wo?"

Das Prinzip ist vergleichbar mit den älteren und besser bekannten MX-Records, die angeben welcher Mailserver für eine Domain zuständig ist.

Nur sind die SRV Resource Records nicht auf den E-Mail-Dienst beschränkt.

Einige Jabber-Server und Clients unterstützen diese Technik bereits.

Wenn ich das falsch erklärt habe dürft ihr mich jetzt gerne erschießen.

Elradon
31-12-2008, 14:06
Hook möchte das ja sogar noch weiter treiben - und das hört sich auch gut an. Nämlich, dass man auch gleich den Port bei der Domain hinterlegt.

Hook88
31-12-2008, 14:19
Das hat Germeshausen doch schon vor mir erklärt und ist ja auch die Funktion des SRV-Resource Records ;)

Elradon
31-12-2008, 16:57
aso, auch Ports Oo; hab net mitbekommen...

Germeshausen.de
31-12-2008, 20:41
Mhh, dachte schon ich hätte Verkalkung. :rolleyes: Siehe die Beispiele für die Einträge etwas weiter oben