mullvad / mullvadvpn-app

The Mullvad VPN client app for desktop and mobile
https://mullvad.net/
GNU General Public License v3.0
4.97k stars 337 forks source link

problems with dns handling and priority, a follow up #3418

Closed xioren closed 2 years ago

xioren commented 2 years ago

Issue report

Operating system: Debian Testing

App version: 2022.1

Issue description

I previously opened an issue #3139 where the wireguard dns was getting tacked onto the end of the resolv.conf file and thus being ignored as there is a limit to the number of servers that are honored in that file. I run into this issue on my laptop but not my desktop and upon further inspection I noticed something interesting. On my pc, where I do not have this problem, Mullvad replaces the resolv.conf with a new file containing mullvads server and backs up the old file as resolv.conf.mullvadbackup. This file is not created on my laptop and instead the Mullvad server is appended to the end of the current resolv.conf and subsequently ignored. The os on both systems is identical, the Mullvad app version is identical as well. I am wondering why the discrepancy. What would cause Mullvad to not create the backup file, permission issue?

pinkisemils commented 2 years ago

The issue here is that on your laptop you have resolvconf package installed and our client is using it to configure DNS. You can force a particular way of managing DNS via setting an environment variable for our daemon, specifically the TALPID_DNS_MODULE.

In my experience, unless a distribution has gone out of it's way to deliver artisanal BOFH behavior for systemd-resolved, it seems to be able to handle per-interface DNS configurations most reliably. But if you don't want to use systemd-resolved, your best bet in this situation would be using static-file to have the same behavior as you have on desktop. I am presuming your laptop setup isn't using NetworkManager, is it?

xioren commented 2 years ago

Yes you're right, my laptop does have resolvconf installed. It is using network manager also. It's all default Debian, I haven't made any major changes.

Which option do you recommond for the environment variable?

static-file", "resolvconf", "systemd", "network-manager"

pinkisemils commented 2 years ago

Since the daemon is not using NetworkManager as is, I'd suggest you try static-file instead.

xioren commented 2 years ago

Okay that seems to have fixed the issue. I appreciate the help.