On Tue, Jul 28, 2020 at 10:58 AM John M. Harris Jr <johnmh(a)splentity.com> wrote:
On Tuesday, July 28, 2020 5:11:31 AM MST Lennart Poettering wrote:
> On Mo, 27.07.20 09:20, Neal Gompa (ngompa13(a)gmail.com) wrote:
>
>
> > That *is* what will happen. In this scenario, systemd-resolved creates
> > a file in /run that is populated with the required information for
> > applications to request name resolution from resolved through the
> > standard DNS protocol. The /etc/resolv.conf file becomes a symlink to
> > the file in /run so that the file in /etc is stable and regenerating
> > the file in /run won't cause issues for package management. This
> > system has been in use *already* for a while now in other
> > distributions (see Debian and resolvconf(8), which systemd-resolved
> > replaced in Ubuntu).
> >
> >
> >
> > The only thing this mechanism breaks is applications trying to *write*
> > to the resolv.conf file, because systemd-resolved will just blow away
> > those changes right after. If you want to modify DNS settings, you
> > need to configure systemd-resolved itself, either through
> > NetworkManager (as we will recommend) or directly through
> > systemd-resolved's configuration interface (if not using NetworkManager).
>
>
> That's not quit true: if you replace th /etc/resolv.conf symlink with
> a file of your own choosing, then resolved will not muck around with
> that, and not modify it anymore. instead, it will start to *read* it
> and use the data. i.e. depending on symlinks vs. file it either
> provides or consumes the data in it.
>
> Thus admin-provided configuration in /etc/resolv.conf takes precedence
> over the stuff systemd-resolved puts there, as long as the admin
> properly replaces the symlink. If the admin doesn't replace the
> symlink and writes to it naively, i.e. where it points then it will
> make changes to files in /run/systemd/ (because that's where the
> symlink points to), i.e. files clearly owned by systemd, and
> systemd-resolved will brutally overwrite them whenever it feels the
> need to.
To prevent brutally overwriting configuration, it would be best not to replace
/etc/resolv.conf with a symlink on upgrade, ignoring user configuration, but
to do so on all new installs.
We can be smart here and replace the file when we detect that it's
managed by NetworkManager. Otherwise we won't replace it.
--
真実はいつも一つ!/ Always, there's only one truth!