AXFR response has IXFR in question
Mark.Andrews at nominum.com
Mark.Andrews at nominum.com
Fri Jul 7 22:31:20 UTC 2000
Thanks Jeff,
we already have this one in a pool awaiting inclusion
in 8.2.3-T6B / 8.2.3-REL.
Mark
> A problem was reported to me from a user with a Windows NT 4.0 SP5
> secondary. When the secondary tried to do a zone transfer from my
> 8.2.3 T5B server, the secondary rejected the transfer with the message:
>
> Invalid response from master DNS server at 10.0.0.1 during
> attempted zone transfer of zone aitsi.com. Check DNS Server at
> 10.0.0.1 and insure it is properly authoritative for this zone.
>
> After looking into it, it was quite apparent with a trace:
>
> Query:
> 19af 0100 0001 0000 0000 0000 ..J+............
> 0130 0130 0331 3237 0769 6e2d 6164 6472 .0.0.127.in-addr
> 0461 7270 6100 00fc 0001 .arpa.....
>
> Reply:
>
> 005e 19af 8400 0001 0001 0000 ..I at .^..........
> 0000 0130 0130 0331 3237 0749 4e2d 4144 ...0.0.127.IN-AD
> 4452 0441 5250 4100 00fb 0001 c00c 0006 DR.ARPA.........
> 0001 0009 3a80 002c 094c 4f43 414c 484f ....:..,.LOCALHO
> 5354 000a 506f 7374 6d61 7374 6572 c032 ST..Postmaster.2
> 0000 0001 0000 1c20 0000 0e10 00b8 9200 ....... ........
> 0001 5180 0037 19af 8000 0000 0001 0000 ..Q..7..........
> 0000 0130 0130 0331 3237 0769 6e2d 6164 ...0.0.127.in-ad
> 6472 0461 7270 6100 0002 0001 0009 3a80 dr.arpa.......:.
> 000b 094c 4f43 414c 484f 5354 00 ...LOCALHOST.
>
>
> The Question is type 0xFC (AXFR). The Question in the reply is type
> 0xFB (IXFR). The NT 4.0 SP5 zone transfer process is checking that.
>
> The problem appears to be tied into the STREAM_AXFRIXFR flag. If I'm
> reading correctly, that flag is intended to be used if an IXFR isn't
> available, so we know to change the type to AXFR during our processing,
> then back to IXFR before we send the response. However the code never
> bothers to check if the requestor _wanted_ an IXFR query in the first
> place. So if there isn't IXFR data available, regardless of if the
> requestor asked for an IXFR or an AXFR, we return that the Question
> was an IXFR.
>
> Fix seemed simple enough. [I apologize about the dates, our source
> files got copied to a new location and the dates aren't the same as
> the distribution anymore]. I know it fixes the problem I was seeing,
> but I've not tested it with IXFR yet to be sure it still does what
> it's supposed to do.
>
> -Jeff
>
> *** ns_req.c~ Fri Jul 7 10:06:55 2000
> --- ns_req.c Fri Jul 7 10:27:49 2000
> ***************
> *** 1146,1152 ****
> if (qsp == NULL)
> return (Finish);
> else {
> ! if (!ixfr_found) {
> qsp->flags |= STREAM_AXFRIXFR;
> hp->qdcount = htons(1);
> }
> --- 1146,1152 ----
> if (qsp == NULL)
> return (Finish);
> else {
> ! if (!ixfr_found && type == ns_t_ixfr) {
> qsp->flags |= STREAM_AXFRIXFR;
> hp->qdcount = htons(1);
> }
>
> --
> Jeff Schreiber, Process Software Corp.
> schreiber at mx.process.com http://www.process.com
> TCPware & MultiNet: Stronger than Ever
>
>
--
Mark Andrews, Nominum Inc.
1 Seymour St., Dundas Valley, NSW 2117, Australia
PHONE: +61 2 9871 4742 INTERNET: Mark.Andrews at nominum.com
More information about the bind-workers
mailing list