[Dnsmasq-discuss] About 127.0.0.1 in resolv.conf [WAS: Web hang ups after repeated access to one site - dnsmasq related?]
Max Barry
mythtv at maxbarry.com
Thu Oct 22 23:05:41 BST 2009
Simon Kelly wrote:
> Max Barry wrote:
>> Simon Kelley wrote:
>>> Hugo Heden wrote:
>>>> But what happens if dnsmasq then
>>>> forwards a ("non-local") dns-query to 127.0.0.1, i.e to itself? Could
>>>> that not result in some kind of infinite loop weirdness?
>>> dnsmasq knows that it's listening on 127.0.0.1 so it's clever enough not
>>> to forward requests there.
>>
>> Hello! Sorry to gravedig, but I'm having this problem: dnsmasq listens
>> on 127.0.0.1 and forwards requests to itself.
>>
>> From /var/log/daemon.log:
>>
>> Oct 15 09:24:35 eve dnsmasq[2396]: started, version 2.47 cachesize 150
>> Oct 15 09:24:35 eve dnsmasq[2396]: compile time options: IPv6 GNU-getopt
>> DBus I18N TFTP
>> Oct 15 09:24:35 eve dnsmasq[2396]: no servers found in /etc/resolv.conf,
>> will retry
>> Oct 15 09:24:35 eve dnsmasq[2396]: read /etc/hosts - 16 addresses
>> Oct 15 09:24:41 eve NetworkManager: <info> starting...
>> ...snip...
>> Oct 15 09:24:49 eve NetworkManager: <info> address 192.168.0.2
>> Oct 15 09:24:49 eve NetworkManager: <info> prefix 24 (255.255.255.0)
>> Oct 15 09:24:49 eve NetworkManager: <info> gateway 192.168.0.1
>> Oct 15 09:24:49 eve NetworkManager: <info> nameserver '127.0.0.1'
>> Oct 15 09:24:49 eve NetworkManager: <info> nameserver '61.9.134.49'
>> Oct 15 09:24:49 eve NetworkManager: <info> nameserver '61.9.133.193'
>> Oct 15 09:24:49 eve NetworkManager: <info> nameserver '208.67.222.222'
>> Oct 15 09:24:49 eve NetworkManager: <info> nameserver '208.67.220.220'
>> Oct 15 09:24:49 eve NetworkManager: <info> nameserver '192.168.0.1'
>> Oct 15 09:24:49 eve NetworkManager: <info> domain name
>> 'vic.bigpond.net.au'
>> Oct 15 09:24:49 eve NetworkManager: <info> Activation (wlan1) Stage 5
>> of 5 (IP Configure Commit) scheduled...
>> Oct 15 09:24:49 eve NetworkManager: <info> Activation (wlan1) Stage 4
>> of 5 (IP Configure Get) complete.
>> Oct 15 09:24:49 eve NetworkManager: <info> Activation (wlan1) Stage 5
>> of 5 (IP Configure Commit) started...
>> Oct 15 09:24:51 eve NetworkManager: <info> (wlan1): device state
>> change: 7 -> 8
>> Oct 15 09:24:51 eve dnsmasq[2396]: reading /etc/resolv.conf
>> Oct 15 09:24:51 eve dnsmasq[2396]: using nameserver 208.67.220.220#53
>> Oct 15 09:24:51 eve dnsmasq[2396]: using nameserver 208.67.222.222#53
>> Oct 15 09:24:51 eve dnsmasq[2396]: using nameserver 61.9.133.193#53
>> Oct 15 09:24:51 eve dnsmasq[2396]: using nameserver 61.9.134.49#53
>> Oct 15 09:24:51 eve dnsmasq[2396]: using nameserver 127.0.0.1#53
>>
>> Note the line above. If I manually restart dnsmasq, that line instead
>> looks like "dnsmasq[3853]: ignoring nameserver 127.0.0.1 - local
>> interface". But each time I turn on my computer each day, and dnsmasq
>> starts automatically, it's as per the above, and it listens to the local
>> interface:
>>
>> Oct 15 09:25:49 eve dnsmasq[2396]: query[A] www.bom.gov.au from 127.0.0.1
>> Oct 15 09:25:49 eve dnsmasq[2396]: forwarded www.bom.gov.au to 127.0.0.1
>> Oct 15 09:25:49 eve dnsmasq[2396]: query[A] weather.noaa.gov from 127.0.0.1
>> Oct 15 09:25:49 eve dnsmasq[2396]: forwarded weather.noaa.gov to 127.0.0.1
>> Oct 15 09:25:49 eve dnsmasq[2396]: query[A] ntp.ubuntu.com from 127.0.0.1
>> Oct 15 09:25:49 eve dnsmasq[2396]: forwarded ntp.ubuntu.com to 127.0.0.1
>> Oct 15 09:25:49 eve dnsmasq[2396]: query[A] imap.gmail.com from 127.0.0.1
>> Oct 15 09:25:49 eve dnsmasq[2396]: forwarded imap.gmail.com to 127.0.0.1
>> Oct 15 09:25:49 eve dnsmasq[2396]: query[A] ntp.ubuntu.com from 127.0.0.1
>> Oct 15 09:25:49 eve dnsmasq[2396]: forwarded ntp.ubuntu.com to 127.0.0.1
>>
>> These requests time out, making everything very slow.
>>
>> $ more /etc/resolv.conf
>> # Generated by NetworkManager
>> domain vic.bigpond.net.au
>> search vic.bigpond.net.au
>> nameserver 127.0.0.1
>> nameserver 61.9.134.49
>> nameserver 61.9.133.193
>> # NOTE: the libc resolver may not support more than 3 nameservers.
>> # The nameservers listed below may not be recognized.
>> nameserver 208.67.222.222
>> nameserver 208.67.220.220
>>
>> This problem only began after I started using NetworkManager on Ubuntu
>> (previously I had manually configured /etc/network/interfaces).
>>
>> Any help appreciated!
>>
>
> It would be useful to get to the bottom of this.
>
> I guess it's something to do with the order in which things happen at
> startup. Dnsmasq doesn't treat 127.0.0.1 specially: when it starts up
> is enumerates all the interfaces on the machine and notes those with the
> "loopback" flag set. If an address turns up later in /etc/resolv.conf
> which matches one which was owned by a loopback interface during the
> enumeration, then it is rejected.
>
> So, if, at the time dnsmasq is started, the "lo" interface either 1)
> doesn't exist, 2) doesn't have the loopback flag set or 3) doesn't have
> address 127.0.0.1 then the address 127.0.0.1 will not be weeded out.
>
> Could you add something like
>
> ip addr show >/tmp/interface-state
>
> to the /etc/init.d dnsmasq start script, reboot, and post the results here?
>
>
> Cheers,
>
> Simon.
Thanks for the help! Results:
1: lo: <LOOPBACK> mtu 16436 qdisc noop state DOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth2: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
link/ether 00:1f:c6:85:29:28 brd ff:ff:ff:ff:ff:ff
3: wmaster0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
link/ieee802.11 00:24:01:12:87:8d brd ff:ff:ff:ff:ff:ff
4: wlan1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
link/ether 00:24:01:12:87:8d brd ff:ff:ff:ff:ff:ff
For comparison, this is what it looks like if I then restart dnsmasq
manually:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth2: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state
UNKNOWN qlen 1000
link/ether 00:1f:c6:85:29:28 brd ff:ff:ff:ff:ff:ff
3: wmaster0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast
state UNKNOWN qlen 1000
link/ieee802.11 00:24:01:12:87:8d brd ff:ff:ff:ff:ff:ff
4: wlan1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1492 qdisc pfifo_fast
state UP qlen 1000
link/ether 00:24:01:12:87:8d brd ff:ff:ff:ff:ff:ff
inet 192.168.0.2/24 brd 192.168.0.255 scope global wlan1
inet6 fe80::224:1ff:fe12:878d/64 scope link
valid_lft forever preferred_lft forever
I will see if I can get dnsmasq-2.52test3 working as per your other post.
Thanks again!
Max.
More information about the Dnsmasq-discuss
mailing list