NetworkManager never sets DNS from wifi adapter in /etc/resolv.conf

Hi all, I frequently use 3 different network connections at different times with my Tumbleweed laptop: wired LAN connection to my corporate network, VPN connection to my corporate network (usually over wifi), and my home wifi connection.

Both the LAN and VPN connections hand out the same 3 DNS nameservers, which are not publicly accessible. This works fine if I’m connected to one of those networks. The problem occurs if I undock my laptop.

Let’s say I was connected to my dock with wifi on and VPN off. The corporate DNS nameservers are set in /etc/resolv.conf by NetworkManager and the LAN connection is the default route as it has a lower metric. I undock my laptop, so now it’s only on my home wifi. At this point, I’m connected to wifi, but I get the “limited connectivity” pop up message, and I can’t ping websites by name. Toggling my wifi connection on/off doesn’t make any difference. The only solution I’ve found is to manually edit /etc/resolv.conf; it always has the 3 corporate DNS nameservers set, so I just replace the first one with 9.9.9.9. At this point, everything starts working normally.

At that point, I usually activate the VPN connection, which again sets the corporate DNS nameservers. This is fine until I disconnect the VPN, at which point /etc/resolv.conf is still not updated, so once again I have to replace the first entry with 9.9.9.9.

The only thing I’ve noticed that seems a bit odd are the permissions on resolv.conf:

lrwxrwxrwx 1 root root 26 Mar 14 09:45 /etc/resolv.conf -> /run/netconfig/resolv.conf

Could this be the problem? I can’t imagine I’m missing a package as this is a fairly new install, but I’m certainly open to suggestions. To be honest I’ve not been super impressed with NetworkManager but I haven’t been able to find any alternatives that seem better.

Which is correct - after you modified resolv.conf manually it stops being updated automatically.

Put your notebook on docking station, reboot. Provide the output of

cat /etc/resolv.conf
nmcli -t connection show

Now undock your notebook and provide the same output again (before doing anything else).

VPN connection

Is it defined in NetworkManager or you are using some third-party application to start it?