BIND 10 #1298: don't do xfrin upon notify when address is unknown

BIND 10 Development do-not-reply at isc.org
Fri Nov 4 18:32:24 UTC 2011


#1298: don't do xfrin upon notify when address is unknown
-------------------------------------+-------------------------------------
                   Reporter:  jelte  |                 Owner:  jinmei
                       Type:         |                Status:  reviewing
  defect                             |             Milestone:
                   Priority:  major  |  Sprint-20111108
                  Component:         |            Resolution:
  Unclassified                       |             Sensitive:  0
                   Keywords:         |           Sub-Project:  DNS
            Defect Severity:  N/A    |  Estimated Difficulty:  0
Feature Depending on Ticket:         |           Total Hours:  0
        Add Hours to Ticket:  0      |
                  Internal?:  0      |
-------------------------------------+-------------------------------------

Comment (by jinmei):

 Replying to [comment:8 jelte]:

 > Proposal:
 > [func?] Check master address upon NOTIFY
 > b10-xfrin now checks the address a NOTIFY packet came from, and only
 > performs xfrin when the address and port match those from the master
 > address in the xfrin configuration.

 > But perhaps I need to discuss with jeremy on how to phrase this, as the
 > functionality really was already in the previous release

 We could say something like "the main fix appeared in release XXX, but
 there was deferred cleanups".  But I'd leave it to you and Jeremy.

 As for the category, I'd say it's [bug], and explain what was wrong
 before (more clearly).

 > > - As you also seem to have noticed, I'm not sure if it makes sense to
 > >   compare two tuples of address information:
 > > {{{
 > >                     if notify_addr == master_addr:
 > > }}}
 > >   Note also that we should probably consider the case where the
 > >   address matches but the ports don't.
 >
 > one thing that certainly didn't make sense is comparing the ports as
 > well, but only reporting the address on error, but the above change
 > with the format strings should at least fix the disconnect.

 I'm still not sure if tuple match is the best way.  For example, if
 and when we support IXFR/UDP, comparing socktype will cause confusion.
 But maybe it's too minor and doesn't matter in practice, so I'd leave
 it to you.

 Some other comments:

 - I fixed a minor error and made an editorial change. (btw without the
   fix it didn't pass tests)

 - format_zone_str() looks good, but now I have another suggestion:
   maybe it looks nicer if we omit the final dot in the zone name,
   i.e., instead of 'example.com./IN', 'example.com/IN'.  (but
   apparently we need to update the isc.dns wrapper so that it accepts
   the optional argument for Name.to_text()).

 - I think we need tests for format_zone_str() and format_addrinfo(),
   especially for the latter due to its complexity.

 - For the same reason for UNKNOWN_MASTER, I'd use 'info' (not error) for
   XFRIN_RETRANSFER_UNKNOWN_ZONE.
 - the number of arguments doesn't match between the message and code:
 {{{
                         logger.info(XFRIN_NOTIFY_UNKNOWN_MASTER, zone_str,
                                     notify_addr_str, master_addr_str)

 % XFRIN_NOTIFY_UNKNOWN_MASTER got notification to retransfer zone %1 from
 %2/%3, expected %4/%5
 }}}

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


More information about the bind10-tickets mailing list