Why does the first lookup fail so often? Am I being dumb? (8.2.1, linux)

Mark_Andrews at isc.org Mark_Andrews at isc.org
Tue Jul 27 01:42:10 UTC 1999


> We're running BIND 8.2.1, on Redhat Linux 5.2, upgraded to kernel 2.2.10 with
> the other ancillary packages. 
> 
> What I'm seeing is something that I have seen on ISPs too... an awful lot of
> the time, the first lookup for a given name will fail, but later lookups for
> the same name succeed.  I get the impression that something is timing out a
> bit too soon, and that the answer arrives shortly thereafter.  I'm not sure,
> though, where that timeout is occurring, and I don't know if it's fixable.  
> 
> Are there any configuration changes I can make that will improve the
> first-lookup hit rate?   Any ideas where I might look for the source of the
> problem, if this isn't common?  
> 
> Some history: we used to run BIND 4.9.something on NT 4.0, running on a
> different provider's network, and it seemed to be better about getting names
> on the first try.   Before that, we were running Microsoft DNS (bleagh)... bu
> t
> that was so long ago that I don't remember how it behaved.  It didn't handle
> reverse delegation properly for our subnetted Cs, so I tossed it.  
> 
> I'm thinking one possibility might be that our provider's net is overloaded -
> -
> does that seem at all likely?
> 
> Thanks in advance for any ideas,
> 
> <<RON>>
> 
> 
	Try the following patch, especially if you are using a forward-only.

	Mark

Index: src/bin/named/ns_forw.c
===================================================================
RCS file: /proj/cvs/isc/bind/src/bin/named/ns_forw.c,v
retrieving revision 8.61
diff -c -r8.61 ns_forw.c
*** ns_forw.c	1999/06/20 23:44:54	8.61
--- ns_forw.c	1999/07/03 00:56:49
***************
*** 205,211 ****
  	qp->q_msgsize = msglen;
  	memcpy(qp->q_msg, msg, qp->q_msglen = msglen);
  	hp = (HEADER *) qp->q_msg;
! 	hp->rd = (qp->q_addr[n].forwarder ? 1 : 0);
  	qp->q_addr[0].stime = tt;
  
  #ifdef SLAVE_FORWARD
--- 205,211 ----
  	qp->q_msgsize = msglen;
  	memcpy(qp->q_msg, msg, qp->q_msglen = msglen);
  	hp = (HEADER *) qp->q_msg;
! 	hp->rd = (qp->q_addr[0].forwarder ? 1 : 0);
  	qp->q_addr[0].stime = tt;
  
  #ifdef SLAVE_FORWARD
--
Mark Andrews, Internet Software Consortium
1 Seymour St., Dundas Valley, NSW 2117, Australia
PHONE: +61 2 9871 4742                 INTERNET: marka at isc.org


More information about the bind-users mailing list