In ubuntu there are two solutions that provide dns cache and configure functionality. One is resolvconf.service (part of resolvconf package). Another is systemd-resolved.service (part of systemd package). Under some circumstances one solution gets activated and under some another. Both solutions are part of ubuntu system core. Does smbd know why it is so?
I was investigating why the documentations for NetworkManager, systemd-resolved, and resolvconf are all inconsistent with regards to how Ubuntu does DNS.
It appears that Ubuntu uses both resolvconf and systemd-resolved together to handle DNS resolution, which I discovered in a small comment on a GitHub issue:
/etc/resolv.conf -> /run/resolvconf/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8) # DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN # 127.0.0.53 is the systemd-resolved stub resolver. # run "systemd-resolve --status" to see details about the actual nameservers. nameserver 127.0.0.53 search lan
The top comment in the Github PR that fixes that above issue states that this behavior is the default for systemd-resolved and resolvconf on Ubuntu starting on 17.10+:
... It is used by default on Ubuntu 17.10+