[dns-operations] resolvers considered harmful

Mark Andrews marka at isc.org
Thu Oct 23 01:51:07 UTC 2014


In message <20141023010708.28BF611FC3E1 at lawyers.icir.org>, Mark Allman writes:
> Let me try to take care of both of these related points together:
> 
> Joe Greco <jgreco at ns.sol.net>:
> > Then we merely move on to the issue of cache poisoning individual
> > clients.
> > 
> > Assuming that the CPE is a NAT (effectively firewalling clients from
> > poisoning attacks) and/or that the individual clients have well-
> > designed, impervious resolvers is likely to be a fail.
> 
> David Conrad <drc at virtualized.org>:
> > As I understand it, you're proposing pushing the resolvers out to the
> > edges 
> 
> That is not what we are proposing.  We are not suggesting resolvers be
> *moved*, but rather *removed*.  That is, clients simply do name lookup
> on their own.
> 
> Name lookup at an endpoint is different from name lookup in an
> intermediate resolver.  
> 
> An intermediate resolver looks up a name on behalf of other hosts.  It
> therefore *must* listen for lookup requests that roll in from the
> network.  This is fundamental to a resolver's operation---it simply
> *must* accept requests from other hosts.  Don't get me wrong.... it
> doesn't have to accept all requests and as we know, too many resolvers
> accept requests they should not.  All I am saying is that the resolver
> cannot do its job without accepting requests from other hosts.
> 
> On the other hand, an endpoint can look up a name without listening for
> any request from the network.  We suggest this be an entirely local
> operation.  Think of it like this: just because I want to load the
> cnn.com web page I don't have to run httpd.  Well, just because I want
> to look up an A record for cnn.com doesn't mean I have to run bind.

Firstly it isn't "bind" it is "BIND".  

Secondly why not run BIND?  It works fine only listening on 127.0.0.1 and
::1.

It actually does do DNSSEC validation and everything else you would want
a iterative resolver to do with sensible defaults.

	options {
		listen-on { 127.0.0.1; };
		listen-on-v6 { ::1; };
		dnssec-validation auto;
		directory "/var/named";
	};

It also isolates all your clients from the big bad world of broken
authoritative servers.  It's also easier to upgrade than every
application that makes a DNS lookup.

> Could there be attacks against the internal lookup process on a host?
> Of course.  But, those are attacks that require some sort of access to
> the end host first.
> 
> David Conrad <drc at virtualized.org>:
> > if you're not doing DNSSEC at the edges,
> 
> Let me be clear.... I am not arguing against DNSSEC.  A crypto signed
> record is always better than a clear text record.  But, DNSSEC is still
> not here and it seems to me that factoring out some of the
> intermediaries that we know sometimes both play games and have games
> played on them may well be a useful path.
>
> allman
-- 
Mark Andrews, ISC
1 Seymour St., Dundas Valley, NSW 2117, Australia
PHONE: +61 2 9871 4742                 INTERNET: marka at isc.org



More information about the dns-operations mailing list