Comment 7 for bug 923685

Revision history for this message
Thomas Hood (jdthood) wrote : Re: New resolver package overwrites manually created resolv.conf on server

Stefan Bader wrote in #2:
> Would it be an option to do nothing (not touch resolv.conf)
> if there is neither an active interface with dhcp nor
> dns-server lines in /etc/network/interfaces?

The aforementioned "link-tail-to-original" approximates this.

Stéphane Graber wrote in #5:
> the exact failing case is:
> 1) Installed system [...] using DHCP configuration [...]
> 2) Post-install, turned the system into static [...]
> 3) Upgraded [...] to Precise which added resolvconf

If this is the only case then we might be able to get away with (1) detecting this case and then (2) turning on link-tail-to-original, (3) assuming that the admin who manually switches from DHCP to static is competent to edit configuration files, (4) notifying the admin that information needs to be moved from /etc/resolvconf/resolv.conf.d/original to /etc/network/interfaces.

Stéphane Graber continued:
> I'd be against a link-tail-to-original by default as it'd mostly be confusing on systems where the DNS configuration is dynamic

Agreed. It's something to do only in the case described. It was designed for exactly that case.

Stéphane Graber also wrote:
> An option would be to use link-tail-to-original but only if we
> detect that we have interfaces in /etc/network/interfaces
> that are marked as auto but don't have dns- fields
> (easy to check with ifquery) and that we don't have
> Network Manager on the system.

and Stefan Bader wrote in #6:
> If I understand correctly things are bad if
> 1. there is no active/auto [logical] interface [...] that uses dhcp, and
> 2. there is no active/auto [logical] interface [...] with dns-nameservers, and
> 3. there are nameservers defined in resolv.conf

Worry: Physical interfaces are marked "auto" but the "dns-" fields are in logical interface stanzas. So we have to assume that only logical interface stanzas are used that are named like the corresponding physical interface.

Worry: Configuration can be split across multiple files by means of the "source" feature.

Can we boil the proposal down to this?:

If there is nameserver information in the original /etc/resolv.conf and there is no physical interface marked "auto" in /e/n/i for which there is a logical interface definition in /e/n/i that could supply nameserver information dynamically (i.e., either a logical interface with the "dhcp" method or a logical interface with the "static" method and "dns-" lines) then adjust link-tail-to-original's default value to "true" and its priority to "critical" ("will probably break the system without user intervention").