Problem with DNS/SVR: on subdomain no icon upload possible (lost file transfer connection)

Hello guys,

yes, i am still using TS3 and i have a strange problem with my own little TS3 Server, which is hosted on my snology NAS via docker. I opened the ports 9987, 10011 and 30333, but i cant upload anything as long as i am connected via the subdomain. If i am connected via domain (standard port) or the internal IP the badges and icons are shown and i can upload anything. If i am connected via subdomain (ts.mydoamin.ending) i cant upload and see anything.

So the problem should be the svr for the subdomain.
here is how i config them:
_ ts3 . _ tcp IN SRV 2 5 10011 domain.de.
_ ts3 . _ udp IN SRV 0 5 9987 domain.de.
_ ts3 . _ tcp IN SRV 1 5 30033 domain.de.

(if this works, i will change the ports into random ports to set up the security :slight_smile: )

Best regards from germany!

Without knowing all records and the domain name it’s more like guessing than knowing.
But I’m trying to explain how to setup records correctly.

First of all creating SRV records for the filetransfer/query service isn’t needed nor supported as far as I know and doesn’t make sense.

I also wonder why would you use a lower priority on the filetransfer port?

The priority is mostly used for similar (multiple) services which are used as backup services for example.
The service with the lowest priority value always has the highest priority.
If you would have 2 TeamSpeak servers running, one as backup server, it would make sense to use the priority.

But these record are wrong anyway…
Keep in mind all records matter.


The base record

All of your SRV records will use your domain name as target.
By definition this target record requires to be a valid A(AAA) record.

example.com.                 IN A                  12.34.56.78

Any requests pointing to example.com will be resolved with 12.34.56.78.

As long as all the required ports are opened up, clients can now connect to your TeamSpeak using example.com as long as your TeamSpeak server is using the default port 9987.
Using a different port for your TeamSpeak server will end up with a connection failure.
The reason for this is only your IP address is known and be resolved but not the port - if it’s not the default port.

Service Resource Records

Let’s take a look at the SRV record(s) using _ts3 as service type.

_ts3._udp.example.com.       IN SRV   0 5 9987     example.com.

This defined record will bascially tell your TeamSpeak client the port for the UDP connection is 9987 and the target is example.com. After resolving example.com the client finished the lookup and connects to 12.34.56.78:9987.

Regarding to what I’ve said above about the default TeamSpeak server port this record wouldn’t make much sense and will slighty increase your connection time.

Conclusion:

If you don’t necessary need SRV records and have 1 TeamSpeak server running only use A(AAA) records instead for a faster connection to the server without the need to resolve multiple records.

example.com.                 IN A                  12.34.56.78
ts.example.com.              IN A                  12.34.56.78
ts3.example.com.             IN A                  12.34.56.78

If you somehow need to change the target IP address sometimes without willing to change all records always (which might also has a bad impact for clients using a longer TTL for the records) than using SRV records makes sense.


example.com.                 IN A                  12.34.56.78

_ts3._udp.example.com.       IN SRV   0 5 9987     example.com.
_ts3._udp.ts.example.com.    IN SRV   0 5 9987     example.com.
_ts3._udp.ts3.example.com.   IN SRV   0 5 9987     example.com.

As you can see all 3 SRV records have the target example.com.
Clients can connect to the TeamSpeak server using the domain names example.com, ts.example.com and ts3.example.com.

The hostnames for the SRV records example.com, ts.example.com and ts3.example.com don’t require an A(AAA) with the hostname. Just the target has to be a valid A(AAA) record - per definition.

Adding or removing SRV should be self explanatory…


Let’s assume you have a dynamic IP address which changes over time.

It’s only needed to edit your existing A(AAA) record since it is the target of all records.

Even after editing the record clients may not be able to connect to the server.
The reason for this is DNS resource caching.
To get rid of this issue you have to set a low value for time to live (TTL).
The value defines how long records being stored in the DNS cache.


PS.: If you wan’t to use the TCP based _tsdns service for your SRV records, take look at the documention, please. Doing so, please remember the list of required/optional ports to open the port 41144 TCP on your server.

3 Likes
twitch instagram twitter facebook