[Dnsmasq-discuss] local=/lan/127.0.0.1 behavior
Simon Kelley
simon at thekelleys.org.uk
Tue May 1 19:57:46 BST 2007
David Ehrmann wrote:
> If I sent this already, I apologize. I checked, but couldn't find it in
> the archive. I had a little trouble signing up for the mailing list.
> Anyway...
>
> I have two networks that are connected via a vpn tunnel. I wanted both
> of them to be able to look up hosts in each other, so I played around
> with the dnsmasq config file, and this seemed to work:
>
> domain-needed
> bogus-priv
> filterwin2k
> localise-queries
>
> local=/lan/127.0.0.1
> local=/lan/10.16.1.1
>
> domain=lan
>
> expand-hosts
>
> dhcp-leasefile=/tmp/dhcpd.leases
>
> (on the other host, the 10.16.1.1 line has a different IP)
>
> First, why does the 127.0.0.1 work? I think I tried without that, and
> names on the other end didn't resolve. That, and should it cause an
> infinite loop, since dnsmasq is already my nameserver?
dnsmasq has code to detect when it's being asked to use itself as a
server and reject the server. This is mainly useful when people take a
shortcut and put 127.0.0.1 as the first nameserver in /etc/resolv.conf
so that everything else uses dnsmasq, and the real servers further down
which get used by dnsmasq.
I'm not quite sure what you're trying to do with the local= lines: local
is equivalent to address=, so that you'll be resolving everything in the
.lan domain to 127.0.0.1 or 10.16.1.1. It's not defined which one when
both match, so it's not particulary useful to have two.
> Why does it mostly work without the // entry? My guess is that since
> isc-dhcpd is set to tell hosts they're in .lan, they append it
> automatically when pinging.
> Is the order of the local statements the order servers are queried? I
> certainly want to query the local network's server first, especially if
> the tunnel is down.
>
> One host without a dhcp lease can't ping foo, it has to ping foo.lan.
> Would local=//127.0.0.1 and local=//10.16.1.1 entries fix that?
>
> Thanks-
>
The best way to do this is to have two domains, and redirect queries using
server=/domain1/<address of server on net1>
for net2
and
server=/domain2/<address of server on net2>
for net 1
You can use the search parameter in /etc/resolv.conf to make the
resolver try names on both domains if you don't want them to be visible.
HTH
Simon.
More information about the Dnsmasq-discuss
mailing list