Re: DNS from wifi not removed when switching to wire after suspend/resume



On Tue, 17 Nov 2009 14:34:16 -0800, Dan Williams wrote:

>> Looking at resolvconf's man page, I guess that NetworkManager only
>> calls networkmanager -a, which will add stuff to resolvconf, but does
>> not call resolvconf -d first to clean up the outdated entries.
>> 
>> This seems to happen in src/named-manager/nm-named-manager.c in
>> dispatch_resolvconf.
>> 
>> I can indeed reproduce the problem by running resolvconf -a
>> NetworkManager and then sending a new nameserver: it will simply be
>> added to resolv.conf without removing the old one.
> 
> Ah, maybe we should call -d unconditionally before calling -a.  That
> might explain a few things.

I did some more tests, and it seems I was totally wrong. resolvconf -a 
really overwrites the settings for the chosen interface. So it seems 
there is no problem in NetworkManager itself.

I guess the problem comes from an interaction problem with some Mandriva 
scripts, maybe from when I did not yet have all connections disabled in 
Mandriva's networking tools. I had a file
/var/run/resolvconf/interface/eth0 which contained the faulty resolv.conf 
entries. Removing this file, so that only
/var/run/resolvconf/interface/NetworkManager exists, fixes this.

>> Actually, I'm surprised to see that NM always calls resolvonf with the
>> name NetworkManager as INTERFACE name. I rather expected it to call it
>> with the UUID or interface name of the connection, so that it simply
>> calls resolvonf -a UUID (or IFNAME) for every connection which comes
>> online, and resolvconf -d UUID/IFNAME for every connection going down.
>> But I guess you don't want this because NM wants to take complete
>> control of resolv.conf instead of letting the contents be managed by
>> resolvconf?
> 
> It's mainly to kludge in support for resolvconf; I'm not sure the
> original patch had that in it it.  That sounds like a good improvement
> though, but we need to figure out a few things first...
> 
> Like VPNs.  If I connect wifi (and send those nameservers to resolvconf)
> then connect a VPN (and send those), then plug in a wired cable (and
> send those), aren't the VPN's nameservers now not used?  NM will ensure
> they do get used.

resolvonf will merge the different nameserver entries for all 
connections, and add all nameserver entries according to the order 
configured in /etc/resolvconf/interface-order. In Debian this files looks 
like this:
lo.inet*
lo.dnsmasq
lo.pdnsd
lo.!(pdns|pdns-recursor)
lo
tun*
tap*
hso*
eth*
ath*
wlan*
ppp*
*

In Mandriva it looks like this:
lo.inet*
lo.dnsmasq
lo.pdnsd
lo.!(pdns|pdns-recursor)
lo
tun*
tap*
*

They removed the entries for wired and wireless connections because they 
patched resolvconf to use the metric value for those interfaces to order 
the nameservers.

-- 
Frederik Himpe





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]