[232] in Hesiod

home help back first fref pref prev next nref lref last post

Re: huge printcap entries

daemon@ATHENA.MIT.EDU (Randall S. Winchester)
Fri Jul 29 16:30:47 1994

From: "Randall S. Winchester" <rsw@Glue.umd.edu>
Date: Fri, 29 Jul 1994 16:23:50 -0400
To: dean@hi.com, greg@duke.CS.UNLV.EDU
Cc: bind-workers@vix.com, db74+@andrew.cmu.edu, hesiod@MIT.EDU,
        walsh@athena.tay.dec.com

> From greg@duke.CS.UNLV.EDU Fri Jul 29 15:58:32 1994
> To: dean@hi.com
> Cc: Dan Walsh <walsh@athena.tay.dec.com>,
>         "Derrick J. Brashear" <db74+@andrew.cmu.edu>, hesiod@MIT.EDU,
>         bind-workers@vix.com
> Subject: Re: huge printcap entries 
> From: Greg Wohletz <greg@duke.CS.UNLV.EDU>
> 
> >I think Derrick already has equivalent changes to is hesiod
> >library to do VC and large responses.
> >
> >I'm not quite sure what the change to ns_main does and I haven't had time to
> >look at it...  However, with the changes I recently posted, I did not have
> >problems with Bind 4.8.3 actually retrieving multiple record responses as
> >large as 2k, and they will work up to 8K.  I think in my next round, I 
> >will make the buffer dynamically allocated.
> >
> >I think Derricks current problem is related to loading individual TXT records
> >that are each greater than 256 bytes of text.
> >
> 
> Hmm, well  the problem I'm  having is with  multiple record responces.
> For instance test.cluster.ns.unlv.edu has 20 TXT records, however when
> I try to look  them up via hesinfo  (with Derricks mods to  the hesiod
> code) I get:
> 
> test string 5
> test string 6
> test string 7
> test string 8
> test string 9
> test string 10
> test string 11
> test string 112
> test string 13
> test string 14
> test string 15
> test string 16
> test string 17
> test string 18
> test string 19
> test string 20
> test string 1
> 
> 
> strings  2-4 are missing (the  strange order of  the strings is due to
> the round  robin code in  named  which I think I'm  going  to turn off
> since I   can't   think of any   reason  I  need it,   and  it can  be
> annoying...).  If you look at the debug output from the named you will
> see that magic-sam.cs.unlv.edu  (the host hesinfo was  run on) gets  a
> truncated  responce  back   from  one  of  the  authoritative  servers
> (eddie.CS.UNLV.EDU in  this case) which  it then  passes on to hesinfo
> (courtesy of the RES_IGNTC flag that the hesiod lib sets):
> 
> Debug turned ON, Level 1
> Debug turned ON, Level 2
> Debug turned ON, Level 3
> Debug turned ON, Level 4
> TCP connection from [127.0.0.1].1247 (fd 8)
> streamq = 0x1001ebc0
> ns_req(from=[127.0.0.1].1247)
> ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 1
> ;; flags: rd; Ques: 1, Ans: 0, Auth: 0, Addit: 0
> ;; QUESTIONS:
> ;;	test.cluster.ns.UNLV.EDU, type = TXT, class = HS
> 
> req: nlookup(test.cluster.ns.UNLV.EDU) id 256 type=16
> req: found 'test.cluster.ns.UNLV.EDU' as 'ns.UNLV.EDU' (cname=0)
> findns: 3 NS's added for 'ns'
> ns_forw()
> nslookup(nsp=0x7fffb1a4, qp=0x1001f800, "test.cluster.ns.UNLV.EDU")
> nslookup: NS "eddie.CS.UNLV.EDU" c=4 t=2 (0x0)
> store_name_addr:s:eddie.CS.UNLV.EDU, a:[131.216.16.8]
> nslookup: NS "bessie.CS.UNLV.EDU" c=4 t=2 (0x0)
> store_name_addr:s:bessie.CS.UNLV.EDU, a:[131.216.18.2]
> nslookup: NS "jimi.CS.UNLV.EDU" c=4 t=2 (0x0)
> store_name_addr:s:jimi.CS.UNLV.EDU, a:[131.216.22.2]
> nslookup: 3 ns addrs total
> retrytime: nstime0ms t4 nretry0 u4 : v4
> schedretry(0x1001f800, 4 sec)
> forw: forw -> [131.216.16.8].53 ds=7 nsid=9 id=1 0ms retry 4sec
> free_nsp: eddie.CS.UNLV.EDU rcnt 2
> free_nsp: bessie.CS.UNLV.EDU rcnt 2
> free_nsp: jimi.CS.UNLV.EDU rcnt 2
> 
> datagram from [131.216.16.8].53, fd 5, len 496; now Fri Jul 29 12:25:49 1994
> ns_req(from=[131.216.16.8].53)
> ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 9
> ;; flags: qr aa tc ra; Ques: 1, Ans: 17, Auth: 3, Addit: 0
> ;; QUESTIONS:
> ;;	test.cluster.ns.UNLV.EDU, type = TXT, class = HS
> 
> ;; ANSWERS:
> test.cluster.ns.UNLV.EDU.	43200	HS	TXT	"test string 6"
> test.cluster.ns.UNLV.EDU.	43200	HS	TXT	"test string 7"
> test.cluster.ns.UNLV.EDU.	43200	HS	TXT	"test string 8"
> test.cluster.ns.UNLV.EDU.	43200	HS	TXT	"test string 9"
> test.cluster.ns.UNLV.EDU.	43200	HS	TXT	"test string 10"
> test.cluster.ns.UNLV.EDU.	43200	HS	TXT	"test string 11"
> test.cluster.ns.UNLV.EDU.	43200	HS	TXT	"test string 112"
> test.cluster.ns.UNLV.EDU.	43200	HS	TXT	"test string 13"
> test.cluster.ns.UNLV.EDU.	43200	HS	TXT	"test string 14"
> test.cluster.ns.UNLV.EDU.	43200	HS	TXT	"test string 15"
> test.cluster.ns.UNLV.EDU.	43200	HS	TXT	"test string 16"
> test.cluster.ns.UNLV.EDU.	43200	HS	TXT	"test string 17"
> test.cluster.ns.UNLV.EDU.	43200	HS	TXT	"test string 18"
> test.cluster.ns.UNLV.EDU.	43200	HS	TXT	"test string 19"
> test.cluster.ns.UNLV.EDU.	43200	HS	TXT	"test string 20"
> test.cluster.ns.UNLV.EDU.	43200	HS	TXT	"test string 1"
> test.cluster.ns.UNLV.EDU.	43200	HS	TXT	"test string 2"
> 
> ;; AUTHORITY RECORDS:
> .	0	0	0	?0?
> .	0	0	0	?0?
> 
> ;; ...malformed
> qfindid(9)
> Response (USER NORMAL -) nsid=9 id=1
> stime 775509949/700798  now 775509949/716422 rtt 15
> NS #0 addr [131.216.16.8] used, rtt 15
> NS #1 [131.216.18.2] rtt now 0
> NS #2 [131.216.22.2] rtt now 0
> resp: ancount 17, aucount 3, arcount 0
> dovalidate(zone 0, flags 19)
> dovalidate: dname test.cluster.ns.UNLV.EDU type 16 class 4 ttl 43200
> 
> [rest of validation/credibilty testing deleted]
> 
> 
> 
> Turning  off the  RES_IGNTC flag  causes the caching  server  to never
> respond (since  it   never gets  a   non-truncated  responce from  the
> authoritative  server).  If you  edit   resolv.conf such that  hesinfo
> queries the  authoritative server directly  then it works fine (IF you
> use a VC).
> 
> 
> So it would  appear that large answers do  not work  unless the client
> queries the authoritative server directly.   Correct?  Again I'd  like
> to suggest that a non-authoritative server should use a VC to get data
> from the authoritative server if it finds that  the answer it gets via
> UDP is truncated.  Comments?
> 
> 						--Greg
> 

Actually, even if you turned off the ROUNDROBIN code, BIND does not 
even can not gaurentee that those 20 packets of yours will arrive in the order
you placed them in the file. You can not rely on the order. You would have
to imbed the number in the strings and sort them later.


home help back first fref pref prev next nref lref last post