BIND 10 #506: Analysis of Wildcard Processing

BIND 10 Development do-not-reply at isc.org
Wed Jan 26 08:35:48 UTC 2011


#506: Analysis of Wildcard Processing
-------------------------------------+-------------------------------------
                 Reporter:  stephen  |                Owner:  jinmei
                     Type:           |               Status:  accepted
  enhancement                        |            Milestone:  A-Team-
                 Priority:  major    |  Sprint-20110126
                Component:           |           Resolution:
  b10-auth                           |            Sensitive:  0
                 Keywords:           |  Add Hours to Ticket:  0
Estimated Number of Hours:  3.0      |          Total Hours:  0
                Billable?:  1        |
                Internal?:  0        |
-------------------------------------+-------------------------------------

Comment (by jinmei):

 I've been looking at BIND 9's wildcard handling.

 I still need to read more for relatively minor cases, but
 the basic ideas are:

 '''When loading'''

 If the owner name is a wildcard (e.g. *.foo.example.com) and the RR type
 is
 !NS && !NSEC3, enable callback for the parent node (e.g. foo.example.com),
 and mark that node as "wild".

 '''When finding'''
  - The search context (FindState in our implementation) has a new
 (boolean) field, "wild"
  - in the zone cut callback, if no NS/DNAME is found and the node
     is marked as "wild", set the context's 'wild' field to 'true'.
     the callback shouldn't stop the search, because the wildcard
     may not be the best match.
  - when rbtree search completes with "PARTIALMATCH", and the search
    context indicates there has been a possible wildcard match
    (from the 'wild' field), find the wildcard node in the tree.
    it's has complicated logic due to various minor cases, but
    the common case is to follow the search chain (which we'd also
    use for empty node processing) and if a chain node is a
    wildcard, use it as a wildcard match.
  - once a wildcard match is found, use it as a normal match, except
    the owner name must be dynamically created.

 My proposal is to estimate this simple scenario as an initial task
 and add it to the task list.

 The analysis should continue to cover minor cases.

-- 
Ticket URL: <http://bind10.isc.org/ticket/506#comment:2>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development


More information about the bind10-tickets mailing list