[Dnsmasq-discuss] dnsmasq-2.18: ignoring nameserver 127.0.0.1
- local interface
Simon Kelley
simon@thekelleys.org.uk
Sat, 27 Nov 2004 10:24:33 +0000
gypsy wrote:
>
> I _THINK_ I understand the docs correctly <g>. Herewith all the facts I
> believe are pertinent:
> /etc/resolv.conf:
> search chsoft.biz
> nameserver 127.0.0.1
>
> /etc/dnsmasq.conf:
> domain-needed
> bogus-priv
> filterwin2k
> server=206.72.64.80
> server=206.72.64.70
> address=/doubleclick.net/127.0.0.1
> except-interface=eth1
> domain=chsoft.biz
> local-ttl=86400
> bogus-nxdomain=12.158.80.10
> bogus-nxdomain=64.94.110.11
> log-queries
>
> The linux box has 2 NICs. eth0 faces the LAN and eth1 faces the
> internet. Its name is ns.chsoft.biz, from which you will correctly
> assume that it is the name server. There is a block of 5 usable IPs and
> this machine is on the last usable IP (.158). It runs axfrdns and
> tinydns but *not* dnscache because I believe dnscache is abusive of the
> root servers. I want dnsmasq to provide DNS for the entire LAN,
> including itself.
>
> I hope it is safe to ignore the fact that this machine uses proxyARP so
> that it listens to all 5 of the external IPs on eth1 and then forwards
> to the correct machine via a complex routing table on eth0. If we have
> to "go there", it really complicates this discussion. It should not be
> relevant, but what do I know?!!
>
> THE PROBLEM:
> When I put localhost ("nameserver 127.0.0.1") into /etc/resolv.conf
> (refer to the above resolv.conf) and start dnsmasq, dnsmasq reports this
> error:
> "ignoring nameserver 127.0.0.1 - local interface"
>
> Side note: a google search finds many instances of this error message.
>
> I cannot figure out how to configure dnsmasq to act as a cache for the
> host on which it is running. Frankly, this is not "a must" because this
> Linux box runs only sshd, axfrdns and tinydns. Nevertheless, I want
> this to work.
>
> Please advise.
>
So I think that you've already succeeded: have you looked in the log to
see if DNS queries from this host are passing through dnsmasq? My guess
is that they are.
The reason for the "ignoring nameserver" is that dnsmasq is looking in
/etc/resolv.conf for upstream nameservers, as well as in
/etc/dnsmasq.conf, so it ends up with the set of (127.0.0.1,
12.158.80.10, 64.94.110.11) as upstream nameservers. However, dnsmasq
also knows that it is listening on 127.0.0.1 for DNS queries, so it's
clever enough to ignore that - and tell you about it. This is quite
important, since looping-back queries will cause them to circulate
hundreds of times until tables are filled and the query gets thrown away.
To get rid of the warning, you can tell dnsmasq not to read
/etc/resolv.conf, by adding "no-resolv" to /etc/dnsmasq.conf
HTH
Simon.