rfc1034 3rd step question.

William Stacey staceyw at mvps.org
Mon May 17 18:23:02 UTC 2004


Trying to figure out the 3rd step and running into some mental blocks.
Assume the following:
Non-RD Query: www.sub1.test.com. A

;;test.com.db
; no record for www.sub1.test.com.
sub1.test.com.  NS ns1.test.com.
....

1) label www.sub1.test.com. does not exist.  look to see if "*" exists.
2) "*" does not exist.  QName equals orig qName so set nxdomain and exit.

Q1)  This does not seem right.  It seems like 2 about will reply with
nxdomain instead of continuing marching down looking for next lable to find
the NS record for sub1.test.com.  What am I missing here.

Q2)  Seems to gloss over what "exit" means here in two spots in 3c.
"...error in the response and exit.  Otherwise just exit.".  What do these
"exists" mean?  Exit just step 3 and goto 4?  Or exit whole process by
returning current reply to client?  Or  other?

Q3)  At start of 3a.  Assume we found a label match.  If Type matches
"...copy all RRs which match QTYPE into the answer section and go to step
6.".  What happens if label matches, but Type does not match?  Is that
nxdomain right there and return to client or continue matching down labels?

TIA for your insights!


4.3.2. Algorithm
"3c. If at some label, a match is impossible (i.e., the
   corresponding label does not exist), look to see if a
   the "*" label exists.

   If the "*" label does not exist, check whether the name
   we are looking for is the original QNAME in the query
   or a name we have followed due to a CNAME.  If the name
   is original, set an authoritative name error in the
   response and exit.  Otherwise just exit.

  If the "*" label does exist, match RRs at that node
  against QTYPE.  If any match, copy them into the answer
  section, but set the owner of the RR to be QNAME, and
  not the node with the "*" label.  Go to step 6."

-- 
William Stacey




More information about the bind-users mailing list