mumble-voip / mumble

Mumble is an open-source, low-latency, high quality voice chat software.
https://www.mumble.info
Other
6.41k stars 1.12k forks source link

No longer have option to connect #3163

Closed DArcMattr closed 7 years ago

DArcMattr commented 7 years ago

I run my own Mumble server, and with the 2465 update to the Mumble 1.3 beta, I no longer have the option to connect to my Mumble server (as shown in the list of Servers).

The server is:

voice.centuria-guild.com:64378, and feel free to contact me for the password

davidebeatrici commented 7 years ago

What's your Mumble version? Have you tried connecting to the server directly?

DArcMattr commented 7 years ago

> apt show mumble-server

Package: mumble-server
Version: 1.2.12-1ubuntu1
Priority: optional
Section: universe/sound
Source: mumble
Origin: Ubuntu
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Christopher Knadle <Chris.Knadle@coredump.us>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 2,798 kB
Depends: libavahi-compat-libdnssd1 (>= 0.6.16), libc6 (>= 2.14), libcap2 (>= 1:2.10), libgcc1 (>= 1:3.0), libiceutil35v5, libprotobuf9v5, libqt4-dbus (>= 4:4.5.3), libqt4-network (>= 4:4.5.3), libqt4-sql (>= 4:4.5.3), libqt4-xml (>= 4:4.5.3), libqtcore4 (>= 4:4.8.0), libssl1.0.0 (>= 1.0.0), libstdc++6 (>= 5.2), libzeroc-ice35v5, debconf (>= 0.5) | debconf-2.0, adduser, libqt4-sql-sqlite
Suggests: dbus, mumble-django
Homepage: http://mumble.sourceforge.net/
Download-Size: 597 kB
APT-Manual-Installed: yes
APT-Sources: http://mirrors.digitalocean.com/ubuntu xenial/universe amd64 Packages
Description: Low latency encrypted VoIP server
 Murmur is the VoIP server component for Mumble. Murmur is installed
 in a system-wide fashion, but can also be run by individual users.
 Each murmur process supports multiple virtual servers, each with their
 own user base and channel list.

I'm able to connect to the server with an older client.

Kissaki commented 7 years ago

The connect button is disabled if server pings (updates the user count and ping values as well) can not reach the server.

The new 1.3 snapshots now support SRV records (DNS records pointing to/redirecting to address and port combination) (see #1242).

Using a tool I am not familiar with; your DNS does not seem to have SRV records, but a CNAME record. I am not sure if we interpret those.

Using http://ismyportopen.com/ tells me the port you say 64378 is not open, but the default mumble port 64738 is, although using Mumble neither seems to respond with a ping (also on neither (sub)domain).

Are you sure the port you named is the one the server listens on?

Do you have shell access to the server and can check whether mumbles TCP ping packets are received on your server?

DArcMattr commented 7 years ago

That 64378 was a typo, I'm using the default port. My server configuration is pretty much all the Ubuntu defaults.

I removed the CNAME record for 'voice.centuria-guild.com', and added A, AAAA, and SRV records pointing to the IPv4 and IPv6. The server itself is pingable.

I need to head to work, where outgoing port 22 is blocked, so I won't be able to poke around the server's configuration until I get back home.

DArcMattr commented 7 years ago

I checked over my configuration, and have this result from nmap for a port scan:

> nmap -A voice.centuria-guild.com -p 64738

Starting Nmap 7.40 ( https://nmap.org ) at 2017-07-12 22:17 PDT
Nmap scan report for voice.centuria-guild.com (159.203.217.180)
Host is up (0.037s latency).
PORT      STATE SERVICE    VERSION
64738/tcp open  ssl/murmur Murmur 1.2.12 (control port; users: 0; max. users: 100; bandwidth: 72000 b/s)

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 25.91 seconds
mkrautz commented 7 years ago

Hmmm....

We still use QHostInfo to do the lookup, like we did before in ConnectDialog, so I am very confused if we somehow dropped CNAME support in there because of the new resolver.

However, I'd like to add that I don't think we've ever really fully supported CNAMEs for Mumble servers. The registration server, for example, doesn't handle them. That's why I didn't make a big effort testing it. At least, that's my excuse. :-)

mkrautz commented 7 years ago

Alright, I've added a test to ServerResolver which resolves a CNAME. It works...

@DArcMattr Yours was just a simple CNAME pointing to an A-ish record, or what?

mkrautz commented 7 years ago

https://github.com/mumble-voip/mumble/pull/3166 for the test.

mkrautz commented 7 years ago

Just to clarify: for me, adding "cname.serverresolver.mumble.info" also works in the connect dialog for me. (It resolves to cnamea.serverresolver.mumble.info, which is 127.0.0.1 or [::1].)

Kissaki commented 7 years ago

The two domains resolve to the same IP anyway, so that shouldn't be a problem here.

mkrautz commented 7 years ago

@Kissaki What do you mean? Why do you think it's not the problem here? I'm very confused.

mkrautz commented 7 years ago

To be clear, in the test, the following happens:

cname.serverresolver.mumble.info is a CNAME, that resolves to cnamea.serverresolver.mumble.info There is both an A and an AAAA record for cnamea.serverresolver.mumble.info. They resolve to 127.0.0.1, and [::1] respectively.

DArcMattr commented 7 years ago

@mkrautz originally, I had the CNAME pointing voice.centuria-guild.com to centuria-guild.com. Now I have A, AAAA and SRV records for that subdomain, and it's still not showing up.

mkrautz commented 7 years ago

Thanks, I can reproduce this.

mkrautz commented 7 years ago

It seems to me that your server is lying? :-)

I assume that the addition of the SRV record hasn't propagated yet... When I try a SRV lookup against it, I get the following:

$ dig SRV _mumble._tcp.voice.centuria-guild.com

; <<>> DiG 9.10.3-P4-Debian <<>> SRV _mumble._tcp.voice.centuria-guild.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46944
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;_mumble._tcp.voice.centuria-guild.com. IN SRV

;; ANSWER SECTION:
_mumble._tcp.voice.centuria-guild.com. 5 IN CNAME centuria-guild.com.

;; Query time: 2 msec
;; SERVER: 192.168.252.2#53(192.168.252.2)
;; WHEN: Thu Jul 13 11:27:59 EDT 2017
;; MSG SIZE  rcvd: 69

So it's responding with the CNAME record when I look up the SRV record. (And I get NOERROR). Right now we trust the DNS server to do the right thing. We probably shouldn't.

The fix for this seems to me to (besides checking for NoError), is to also ensure that we actually received SRV records in response -- if not, also treat that as an error... PR coming up...

mkrautz commented 7 years ago

PR at https://github.com/mumble-voip/mumble/pull/3172

DArcMattr commented 7 years ago

I didn't know that exact domain name is the one that gets queried. I'll add some A & AAAA rules for that sub-sub-domain.

I have a * DNS rule that is a CNAME pointing to centuria-guild.com, so that _mumble._tcp.voice.centuria-guild.com will get captured by that.

mkrautz commented 7 years ago

That's only the name that gets queried for SRV. What puzzled me was the fact that I asked for a SRV record, but got the CNAME instead.

DArcMattr commented 7 years ago

@mkrautz is there documentation for this feature, so people who do things on their own will know what arcane incantations to enter into the DNS, and not end up like me?