BIND 10 #454: Zone cut handling in MemoryZone

BIND 10 Development do-not-reply at isc.org
Tue Dec 28 09:31:18 UTC 2010


#454: Zone cut handling in MemoryZone
--------------------------+-------------------------------------------------
  Reporter:  jinmei       |            Owner:  jinmei               
      Type:  task         |           Status:  new                  
  Priority:  major        |        Milestone:  y2 12 month milestone
 Component:  data source  |         Keywords:                       
 Sensitive:  0            |   Estimatedhours:  0                    
     Hours:  0            |         Billable:  1                    
Totalhours:  0            |         Internal:  0                    
--------------------------+-------------------------------------------------
 Copied from the sprint page:

 This is not trivial because we need to separate the delegation case and
 the glue case for names at or under a zone cut (see the review discussion
 for trac #447).  What BIND 9 does is as follows:
  - the RBT is created with a special callback function
  - when loading a zone, mark a zone cut node (detecting it by seeing a
 DNAME or non-origin NS RR) to indicate the need for calling the callback
  - when finding an RRset (or rdataset in the BIND 9 terminology), if the
 rbt search reaches a marked node, it calls the callback function.  The
 callback searches the node for NS or DNAME, and if found, records the fact
 in a search state.
  - if the RBT search is performed in the normal (= not "GLUE OK") mode,
 and if the callback found a delegation RR, the search stops at that node
  - the "zone find" function (that performed the RBT search) recognizes the
 callback is called, and simply returns the callback result with the code
 of "DELEGATION"
  - on the other hand, if we need to find a glue A/AAAA RRs, the "zone
 find" function performs the RBT search in the "GLUE OK" mode.  In that
 mode, even if the search encounters a callback node, the search is
 continued for a best match.  If an exact match node is found and it has
 the requested type of RRs, these RRs will be returned; otherwise the found
 delegation will be returned.
 If we can come up with a better idea quickly we can do that.  Otherwise,
 we'll port this logic for our initial implementation.  I'd also separate
 the "GLUE OK" case and pure delegation case into separate sub tasks to
 keep the amount of development/review minimal.

-- 
Ticket URL: <http://bind10.isc.org/ticket/454>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development


More information about the bind10-tickets mailing list