[sf-lug] pdns-recursor

Alex Kleider a_kleider at yahoo.com
Sun May 16 15:19:59 PDT 2010


Once again: thank you, Rick.
I thought I had it all figured out and almost didn't post the question; ..glad I did. 
cheers, alex


--- On Sun, 5/16/10, Rick Moen <rick at linuxmafia.com> wrote:

> From: Rick Moen <rick at linuxmafia.com>
> Subject: Re: [sf-lug] pdns-recursor
> To: "Linux userGroup" <sf-lug at linuxmafia.com>
> Date: Sunday, May 16, 2010, 2:50 PM
> Quoting Alex Kleider (a_kleider at yahoo.com):
> 
> > 
> > A bit more clarification please: 
> > 
> > dns queries can be iterative ('polite') or recursive
> ('demand' a definitive answer vs just a referral.) Assuming
> the foregoing to be correct, what exactly is ment by a
> "recursive dns server?"
> 
> A recursive DNS server is one that honours the intended
> meaning of the
> 'recursion desired' (RD) bit, when that bit is set on an
> arriving query.
> 
> The RD bit means 'I, the system originating this query,
> would like you,
> the nameserver receiving it, to follow delegation chains on
> my behalf as
> far as necessary, and respond only when you have the
> ultimate answer,
> rather than just an intermediate one.'
> 
> A query that has the RD bit UNset is dubbed an iterative
> query.
> 
> A functional definition of 'recursive DNS server' thus
> might be 'any DNS
> nameserver to which you send a query with the RD bit, and
> for which the
> server doesn't already have the ultimate answer in cache,
> which
> thereupon comes back with the desired answer after pursuing
> the
> delegation chain'.
> 
> 
> > From what I've read, the implication is that a
> 'recursive server'
> > (e.g. unbound) is a name server that is willing to
> _accept_ recursive
> > requests but itself uses _iteration_ (so in that sense
> is
> > 'iterative') to get the answer to the recursive
> request. 
> 
> No, that is not right.
> 
> Let's say you asked for resolution of
> uncle-enzo.linuxmafia.com using a
> query with the RD bit set.  Let's suppose your query
> goes to a
> nameserver that is unwilling/unable to do recursion, ie.,
> that is an
> iterative server.  Also, let's suppose the nameserver
> has a depleted
> cache (because, e.g., it's just been fired up).
> 
> Put in English-language terms, your conversation would go
> like this:
> 
> Q:  What is uncle-enzo.linuxmafia.com?  [Query
> would have the RD bit set.]
> A:  I don't know.   [Answer would have
> the 'recursion available' = RA
>     bit UNset.]
> 
> Q:  OK, then can you get the root nameservers? 
> A:  Sure:  [list of 13 nameservers including
> a.root-servers.net]
> 
> Q:  OK, then can you get from that set the nameservers
> for .com ?
> A:  Sure:  [list of 13 nameservers including
> a.gtld-servers.net]
> 
> Q:  OK, then can you get from that set the nameservers
> for linuxmafia.com?
> A:  Sure:  [list of 5 nameservers including
> ns1.linuxmafia.com]
> 
> Q:  OK, can you ask ns1.linuxmafia.com what
> uncle-enzo.linuxmafia.com is?
> A:  198.144.195.186
> 
> 
> The same conversion with a recursive nameserver is
> shorter:
> 
> Q:  What is uncle-enzo.linuxmafia.com?  [Query
> would have the RD bit set.]
> A:  198.144.195.186  [Answer would have the RA
> bit set.]
> 
> 
> 
> If you direct that same query at a machine doing
> authoritative DNS only,
> and you're asking about _anything other than_ the domains
> it's publishing
> authoritative DNS for, then you get a whole lot of no
> information.
> 
> Q:  What is uncle-enzo.linuxmafia.com?  [Query
> would have the RD bit set.]
> A:  I don't know that. [Answer would have the RA bit
> UNset.]
> 
> Q:  OK, then can you get the root nameservers?
> A:  I don't know that.  [Answer would have the RA
> bit UNset.]
> 
> 
> Here's an example of the latter.  First, I find out
> which three
> nameservers Bank of America uses for its own
> bankofamerica.com domain. 
> For security and performance reasons, those three
> authoritative servers
> answer _only_ queries about the domain for which it's
> authoritative.  
> Notice the 'I don't know that' answer I get when I ask one
> of them about
> uncle-enzo.linuxmafia.com:
> 
> 
> $ dig -t ns bankofamerica.com +short
> ns1.bankofamerica.com.
> ns3.bankofamerica.com.
> ns4.bankofamerica.com.
> 
> $ dig uncle-enzo.linuxmafia.com @ns1.bankofamerica.com.
> ;; Got answer:
> ;; ->>HEADER<<- opcode: QUERY, status: NOERROR,
> id: 38605
> ;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 13,
> ADDITIONAL: 0
> ;; WARNING: recursion requested but not available
> 
> ;; AUTHORITY SECTION:
> .               
>        3600000 IN   
>   NS      H.ROOT-SERVERS.NET.
> .               
>        3600000 IN   
>   NS      F.ROOT-SERVERS.NET.
> .               
>        3600000 IN   
>   NS      G.ROOT-SERVERS.NET.
> .               
>        3600000 IN   
>   NS      I.ROOT-SERVERS.NET.
> .               
>        3600000 IN   
>   NS      M.ROOT-SERVERS.NET.
> .               
>        3600000 IN   
>   NS      L.ROOT-SERVERS.NET.
> .               
>        3600000 IN   
>   NS      C.ROOT-SERVERS.NET.
> .               
>        3600000 IN   
>   NS      J.ROOT-SERVERS.NET.
> .               
>        3600000 IN   
>   NS      E.ROOT-SERVERS.NET.
> .               
>        3600000 IN   
>   NS      B.ROOT-SERVERS.NET.
> .               
>        3600000 IN   
>   NS      D.ROOT-SERVERS.NET.
> .               
>        3600000 IN   
>   NS      A.ROOT-SERVERS.NET.
> .               
>        3600000 IN   
>   NS      K.ROOT-SERVERS.NET.
> $
> 
> 
> _______________________________________________
> sf-lug mailing list
> sf-lug at linuxmafia.com
> http://linuxmafia.com/mailman/listinfo/sf-lug
> Information about SF-LUG is at http://www.sf-lug.org/
> 


      




More information about the sf-lug mailing list