BIND 10 #772: Update xfrout to use ACL checking library

BIND 10 Development do-not-reply at isc.org
Fri Jul 15 18:35:23 UTC 2011


#772: Update xfrout to use ACL checking library
-------------------------------------+-------------------------------------
                   Reporter:         |                 Owner:  jinmei
  stephen                            |                Status:  reviewing
                       Type:         |             Milestone:
  enhancement                        |  Sprint-20110802
                   Priority:  major  |            Resolution:
                  Component:         |             Sensitive:  0
  xfrout                             |           Sub-Project:  DNS
                   Keywords:         |  Estimated Difficulty:  3.0
            Defect Severity:  N/A    |           Total Hours:  0
Feature Depending on Ticket:         |
        Add Hours to Ticket:  0      |
                  Internal?:  0      |
-------------------------------------+-------------------------------------

Comment (by jinmei):

 Replying to [comment:10 vorner]:

 I made one small change directly.  (Apparently I was not clear enough
 on this one in my previous comment, and the different part than I
 meant was changed.)

 > > '''general'''
 > > - I'm not sure if we should reject incoming AXFR request by default.
 > >   At least it's different from BIND 9's default.  It will also break
 > >   current deployment of BIND 10 (although I think it's acceptable at
 > >   the current maturity of BIND 10 as long as we warn it in a release
 > >   note or something).
 >
 > I'm not sure about that either. I'm OK with any reasonable default, I
 just thought this one is the safest one. What do you think should be the
 default?

 Personally, I'd accept by default because conceptually xfrout would be
 part of auth, and we'd accept queries by default in auth.  But I may
 be biased because while I know there are some paranoid people who
 never want to answer xfr queries except those from the "authorized
 secondaries", I never agree with them (I see some valid cases such as
 a very big zone where xfr queries could be a DoS, but that's an
 exceptional case, not a reason to set the default).

 But now that you're leaving, I'm okay, e.g., with leaving this open
 and deferring it to a separate ticket.

 > > - update_config_data: just checking, is it okay to not to protect it
 > >   by lock?  maybe we should add comment about that.
 >
 > To be honest, I have no idea here. XfrOut hits some kind of mental block
 in my mind when trying to understand what part of code does exactly what,
 what does run in which thread, etc. It wasn't in one before, though.
 >
 > I'm quite sure the update can happen only one at a time, since the CC
 loop runs only one, but it might be possible some other thread reads them
 while being updated. Should we open a ticket to investigate it?

 From a bit closer look at it, it's probably safe as ACL is always
 replaced as a whole and specific sessions have their own copy of the
 entire ACL.

 For longer term, as you indicated I also think the current design and
 implementation of xfrout are mess.  It's a naive mixture of threads
 and events, taking bad sides of these.  So, for a longer term, I'd
 rather redesign it (hopefully via incremental refactoring) than
 "investigating" each of these problems that come from the bad design.
 And, in either case, creating a ticket would be nice.
 >
 > > - As for this:
 > > {{{
 > >             # To make it work even on hosts without IPv6 support
 > >             # (Any idea how to simulate this in test?)
 > > }}}
 > >   It seems we can override socket.has_ipv6.  So a test could tweak it
 > >   before testing.  (but we might not bother to do this minor case -
 > >   today's many system already supports IPv6, and if we implement the
 > >   "longer term" solution in not far future, the problem will be gone
 > >   anyway)
 >
 > Overriding it doesn't really test anything. Such system still has IPv6
 support, I'd like to test it with something that really doesn't have IPv6
 support. Maybe we have a buildbot without IPv6?

 You can at least test the 'else' case (if I read it correctly that
 part isn't tested at all right now).  But I'd leave it to you.

 > And with the addresses for logs, I think it might be nice thing to have,
 but I'd rather like to put it into a different task.

 Fair enough.

 Other points look okay.

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


More information about the bind10-tickets mailing list