Forum


Notice to all users

We are migrating towards a new forum system located at community.teamspeak.com, as such this forum will become read-only on January 29, 2020

Results 1 to 12 of 12
  1. #1
    Join Date
    April 2011
    Location
    Germany
    Posts
    1,266

    SRV Record implementation in Client faulty

    The implementation of SRV record handling in Teamspeak client beta 3.0.14 is faulty. I assume all previous versions of the client share the same misbehaviour.

    While trying to connect to a Teamspeak server the client generates quite a number of DNS query, as discussed in other thread around this forum. In this special case I refer to the SRV "_tsdns._tcp" queries.

    The client sends out DNS queries for:
    • _tsdns._tcp.ts.example.org
    • _tsdns._tcp.example.org


    As answer to both queries the client gets:
    • _tsdns._tcp.ts.example.org 86400 IN SRV 0 0 0 .
    • _tsdns._tcp.example.org 86400 IN SRV 0 0 0 .


    Which accoring to RFC 2782 means that there is on purpose no such service!
    Quote Originally Posted by RFC 2782
    A Target of "." means that the service is decidedly not available at this domain.
    So the correct behaviour would be to terminate any further tries to determine if there is a TSDNS server, because the client was told that there is non! But in the next step the client tries to get an A record for the host "." that's ridiculous! That's one further step in DNS pollution done by the Teamspeak client.

    Even the client log tells:
    Code:
    2014-03-08 09:21    TSDNS    Info    SRV TSDNS found at "_tsdns._tcp.example.org"=>".:0", but could not find TSDNS server there    
    2014-03-08 09:21    TSDNS    Info    SRV TSDNS found at "_tsdns._tcp.ts.example.org"=>".:0", but could not find TSDNS server there
    (all testing was done with four perfectly working TLDs and was mearly reduced to "example.org" for documentation.

    I would propose and hope that you fix this faulty implementation of interpreting an absolute clearly SRV answer!

    If you need any further information or counselling you can contact me. I can supply you with wire-captured traces and other information that have recorded the misbehaviour.

    Thank you very much!

  2. #2
    Join Date
    October 2003
    Location
    Germany
    Posts
    2,527
    I cannot reproduce this issue on my end. Here are my SRV records for planetteamspeak.com:

    Code:
    Hermiod:~ scp$ host -t SRV _tsdns._tcp.planetteamspeak.com.
    _tsdns._tcp.planetteamspeak.com has SRV record 10 25 41144 node3.tsdns.de.
    _tsdns._tcp.planetteamspeak.com has SRV record 10 25 41144 node2.tsdns.de.
    _tsdns._tcp.planetteamspeak.com has SRV record 10 25 41144 node4.tsdns.de.
    _tsdns._tcp.planetteamspeak.com has SRV record 10 25 41144 node1.tsdns.de.
    So I have four SRV records leading to different servers... still no redundancy, but at least some kind of DNS load-balancing. Anyway... here's what the client does during two connection attempts to voice.planetteamspeak.com:

    Code:
    08.03.14 11:00    ClientUI    Info    Connect to server: voice.planetteamspeak.com
    08.03.14 11:00    ClientUI    Info    Trying to resolve voice.planetteamspeak.com    
    08.03.14 11:00    TSDNS       Info    DNS resolve successful, "voice.planetteamspeak.com"=82.211.30.12    
    08.03.14 11:00    TSDNS       Info    SRV DNS resolve unsuccessful for "_ts3._udp.voice.planetteamspeak.com"    
    08.03.14 11:00    TSDNS       Info    SRV TSDNS found at "_tsdns._tcp.planetteamspeak.com"=>"node3.tsdns.de:41144" and queried successfully. Result: 82.211.30.15:9987    
    08.03.14 11:00    ClientUI    Info    Lookup finished: 82.211.30.15 9987 voice.planetteamspeak.com 1 0    
    08.03.14 11:00    ClientUI    Info    Resolve successful: 82.211.30.15:9987
    
    ...
    
    08.03.14 11:00    ClientUI    Info    Connect to server: voice.planetteamspeak.com    
    08.03.14 11:00    ClientUI    Info    Trying to resolve voice.planetteamspeak.com    
    08.03.14 11:00    TSDNS       Info    DNS resolve successful, "voice.planetteamspeak.com"=82.211.30.12    
    08.03.14 11:00    TSDNS       Info    SRV DNS resolve unsuccessful for "_ts3._udp.voice.planetteamspeak.com"
    08.03.14 11:00    TSDNS       Info    SRV TSDNS found at "_tsdns._tcp.planetteamspeak.com"=>"node4.tsdns.de:41144" and queried successfully. Result: 82.211.30.15:9987    
    08.03.14 11:00    ClientUI    Info    Lookup finished: 82.211.30.15 9987 voice.planetteamspeak.com 1 0    
    08.03.14 11:00    ClientUI    Info    Resolve successful: 82.211.30.15:9987
    As you can see, the A record for voice.planetteamspeak.com resolves to 82.211.30.12, which is where my web server with a webinterface is running. I have not set a SRV record for the voice server as I like the simplicity of TSDNS. Still, the client correctly resolves the SRV record to one of the four TSDNS nodes I've configured (random as they all share the same priority and weight), queries the TSDNS server correctly and connects to the voice server on 82.211.30.15:9987.

    I've tested this on OS X and Windows with client 3.0.14. Are you sure you've configured your SRV records correctly? Here's how you can query them:

    Code:
    // Linux and OS X
    host -t SRV _ts3._udp.domain.tld.
    host -t SRV _tsdns._tcp.domain.tld.
    
    // Windows
    nslookup -querytype=SRV _ts3._udp.domain.tld.
    nslookup -querytype=SRV _tsdns._tcp.domain.tld.
    Last edited by ScP; March 8th, 2014 at 11:18 AM.

  3. #3
    Join Date
    June 2011
    Location
    Germany
    Posts
    4,368
    He said that an SRV record must point to . instead of an A record in order to test this.

  4. #4
    Join Date
    October 2003
    Location
    Germany
    Posts
    2,527
    Quote Originally Posted by numma_cway View Post
    He said that a SRV record must point to . instead of an A record.
    Right... I think I misunderstood his posting. The title of this thread is not very meaningful tho...



    Anyway... while I agree that this is a faulty implementation, I don't see a valid reason for setting a specific "no such service" record. Why not simply deleting it? If there's no SRV record for the TSDNS server set, the client won't even spit out a log message. So why even bother with it?
    Last edited by ScP; March 8th, 2014 at 11:43 AM.

  5. #5
    Join Date
    April 2011
    Location
    Germany
    Posts
    1,266
    Because it is the clean and standard conform way to tell the client that this domain does not use/support tsdns.

    Aand that the client should stop immediately to bother any dns server or server with quering for a service that is not provided. It's quite a difference to have no SRV _tsdns record or to have one that clearly tells you "Sorry, we don't use/support tsdns!".

    If you don't have a record it may be that you havn't DNS access so it might be worth a try to simply try a TCP-SYN on port 41144. Hence this was one of the proposed reasons to implement tsdns... for those who don't have DNS access. But to those who have and tell teamspeak to stop trying tsdns it would be a nice and according to the RFC rules of the internet.

    That would eliminate the need for the client to do any A record search and also it would eliminate any further tries to find a tsdns server on the start port with blindly sending TCP-SYN on port 41144 to my hosts.

    And also the client will "spit out" a log message if there is no SRV _tsdns... then it will tell you that it found no record. Good would and right would be a log message like: "Found an SRV DNS _tsdns with target '.' stopping any further tsdns tries."

    P.S.: And what's wrong with the thread title? The implementation of SRV record is clearly faulty according to RFC 2782!

  6. #6
    Join Date
    June 2008
    Posts
    18,513
    I made a ticket for this.
    I leave the thread on status [Evaluation].
    When sending me private messages: Please make sure to include reference link to your forum thread or post.

    TeamSpeak FAQ || What should i report, when i open a client thread?

  7. #7
    Join Date
    April 2011
    Location
    Germany
    Posts
    1,266
    Any news on that issue? With Client 3.1.6 the implementation is still faulty.

    The clients correctly get's the TSDNS SRV record with just the "." as target. In the client log is logged "TSDNS SRV resulution successfull h: p:41144" ... You might notice the empty string afer the h: ... but the client still does send 6 !!! SYN to the server on port 41144 (3x IPv6 and 3x IPv4). All of those are immediatly answers with "TCP RST", but two additional tries even with the TSDNS SRV telling there is NO TSDNS and also even as the IP stack replies with TCP RST to TCP SYN the server is bothered.

  8. #8
    Join Date
    June 2011
    Location
    Germany
    Posts
    4,368
    Quote Originally Posted by Barungar View Post
    The clients correctly get's the TSDNS SRV record with just the "." as target. In the client log is logged "TSDNS SRV resulution successfull h: p:41144" ... You might notice the empty string afer the h: ... but the client still does send 6 !!! SYN to the server on port 41144 (3x IPv6 and 3x IPv4).
    Who exactly does it contact? I mean what server is empty string? Like localhost?

  9. #9
    Join Date
    April 2011
    Location
    Germany
    Posts
    1,266
    No, it gets the A and AAAA record for the domain... and bothers that server... even if it is told that there is no TSDNS at that domain!

    Below is an exemplary, anonymized client log of the connect sequences:

    Code:
    21.08.2017 15:35:27    ClientUI    Info    Connect to server: ts3.<domain>.de    
    21.08.2017 15:35:27    ClientUI    Info    Trying to resolve ts3.<domain>.de    
    21.08.2017 15:35:27    TSDNS    Info    A/AAAA DNS resolve for possible TSDNS successful, "<domain>.de" =(h: x:y:z:1000:b01c:143e:100:10 p:0), (h: x.y.20.65 p:0)    
    21.08.2017 15:35:27    TSDNS    Info    SRV DNS resolve successful, "_tsdns._tcp.<domain>.de" =(h:  p:41144)    
    21.08.2017 15:35:27    TSDNS    Info    SRV DNS resolve successful, "_ts3._udp.ts3.<domain>.de" =(h: mimir.<domain>.de p:20022), (h: hugin.<domain>.de p:20022)    
    21.08.2017 15:35:27    TSDNS    Info    A/AAAA DNS resolve unsuccessful, "ts3.<domain>.de" Domain name not found    
    21.08.2017 15:35:27    TSDNS    Info    A/AAAA DNS resolve unsuccessful, "ts3.<domain>.de" Domain name not found    
    21.08.2017 15:35:27    TSDNS    Info    A/AAAA DNS resolve successful, "mimir.<domain>.de" =(h: x:y:z:1000:b01c:143e:0:1 p:0), (h: x.y.20.62 p:0)    
    21.08.2017 15:35:27    TSDNS    Info    A/AAAA DNS resolve successful, "hugin.<domain>.de" =(h: x:y:z:6600:6b56:c3b6:dada:2c31 p:0), (h: x.y.202.111 p:0)    
    21.08.2017 15:35:27    ClientUI    Info    Lookup finished: ip=x:y:z:1000:b01c:143e:0:1 port=20022 query=ts3.<domain>.de error=0    
    21.08.2017 15:35:27    ClientUI    Info    Resolve successful: [x:y:z:1000:b01c:143e:0:1]:20022 x.y.20.62:20022 [x:y:z:6600:6b56:c3b6:dada:2c31]:20022 x.y.202.111:20022    
    21.08.2017 15:35:27    ClientUI    Info    Initiating connection: [x:y:z:1000:b01c:143e:0:1]:20022
    The fourth line is the successful TSDNS revolve... the "." is translated to an empty host, nevertheless the server at the domain (line three) is bothered with many TCP SYN on port 41144!

  10. #10
    Join Date
    June 2011
    Location
    Germany
    Posts
    4,368
    A and AAAA have nothing to do with SRV (unless looked up as the SRV's target address). Where does it say it should?

  11. #11
    Join Date
    April 2011
    Location
    Germany
    Posts
    1,266
    Quote Originally Posted by numma_cway View Post
    A and AAAA have nothing to do with SRV (unless looked up as the SRV's target address). Where does it say it should?
    "Valid targets of a SRV record are A records, AAAA records or . (no service). There is an "no service" SRV for TSDNS, which is resolved successfully (see line 4). There is a total unnecessary DNS query A/AAAA for domain.de (see line 3). After line 4 is evaluated... no TSDNS service at domain available. The unnecessaryly resolved host at domain.de is bothered with stupid TCP SYN requests on port 41144... there is no TSDNS at that Domain (remember line 4) so why, bother the host... this is outright network pollution.

  12. #12
    Join Date
    June 2011
    Location
    Germany
    Posts
    4,368
    Legacy TSDNS lookup is completely independent from SRV lookups, is that what you are complaining about?

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. TS3 Client randomely ignores SRV record
    By masteerjvdw in forum Server Support
    Replies: 2
    Last Post: February 1st, 2015, 09:03 AM
  2. How is the _tsdns SRV Record managed by the client?
    By PotaBlava in forum General Questions
    Replies: 2
    Last Post: January 8th, 2014, 07:11 PM
  3. [bug] TS3 Client isn't reading SRV record properly.
    By willy_sunny in forum Bug Reports [EN/DE]
    Replies: 1
    Last Post: March 26th, 2013, 06:33 AM
  4. Log files should record client moves
    By PatPeter in forum Suggestions and Feedback
    Replies: 0
    Last Post: February 19th, 2013, 08:07 AM
  5. client security level too low-faulty?
    By oden1234 in forum Client Support
    Replies: 1
    Last Post: July 12th, 2012, 09:36 AM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •