BIND 10 #1460: Define system-level tests for DDNS

BIND 10 Development do-not-reply at isc.org
Tue Jun 5 08:48:54 UTC 2012


#1460: Define system-level tests for DDNS
-------------------------------------+-------------------------------------
                   Reporter:  jelte  |                 Owner:  jelte
                       Type:  task   |                Status:  closed
                   Priority:         |             Milestone:
  medium                             |  Sprint-20120612
                  Component:  DDNS   |            Resolution:  complete
                   Keywords:         |             Sensitive:  0
            Defect Severity:  N/A    |           Sub-Project:  DNS
Feature Depending on Ticket:  DDNS   |  Estimated Difficulty:  5
        Add Hours to Ticket:  0      |           Total Hours:  6
                  Internal?:  0      |
-------------------------------------+-------------------------------------
Changes (by jelte):

 * status:  reviewing => closed
 * resolution:   => complete


Comment:

 See below for final additions and comments, I'm going to assume it is ok
 now and close the ticket :)

 (if not we can update live or if there is something seriously wrong you
 are free to reopen the ticket)


 Replying to [comment:12 jinmei]:
 > Replying to [comment:11 jelte]:
 >
 > >
 > > So what this does is refuse the addition of NS records that need glue
 but don't have it? Is this specified somewhere or just a useful feature
 that bind implements?
 >
 > I believe it's the latter.  RFC2136 also has this:
 >
 >    7.14. No semantic checking is required in the primary master server
 >    when adding new RRs.
 >

 which is, depending on how broadly one defines 'semantic', already
 contradicted by the very RFC itself :) But anyway, right, noted, leaving
 it as possible future enhancement

 >
 > - if the update handling requires to get the zone's current SOA, the
 >   whole update should fail with SERVFAIL
 > - adding a fresh SOA to a half-broken zone without any SOA can succeed
 >
 > But it would also be okay if we fail any update action on such a
 > broken zone.
 >

 Added that as a test, I suspect that we'll also need to change the
 difference-generation code if we want to be able to fully recover from
 such a case, and I'm not quite convinced it is worth it (and quite sure it
 is not at this point).

 > > Replying to [comment:9 jinmei]:
 > > > A couple of more BIND 10 specific things:
 > > >
 > > > - It's worth testing what happens b10-ddns once started but stops
 > > >   running, then restarts again.  update requests will have to be
 > > >   forwarded to and processed by b10-ddns after restart.  Note that
 the
 > > >   first request after restart will probably fail with SERVFAIL
 because
 > > >   b10-auth still keeps the socket with the now-stale connection, and
 > > >   it can only detect the failure in the next push() operation (#1986
 > > >   could solve this)
 > >
 > > I was kind of thinking that if the system notices ddns is down it
 would always return SERVFAIL until it has been restarted and is answering
 again. Are you suggesting it should buffer the updates?
 >
 > No what I meant is:
 >
 > - b10-auth and b10-ddns establishes a connection (and probably handles
 >   an update request successfully)
 > - kill and restart b10-ddns
 > - *after the restart* send another update to b10-auth.  In the current
 >   implementation, it will result in SERVFAIL but it's suboptimal (with
 >   a more sophisticated implementation, the auth should be able to
 >   detect the ddns's death immediately after it happens and behave
 >   accordingly).

 ah, ok, incorporated it into the module tests.

 BTW, I am reasonably certain that this document contains more tests that
 would currently fail.

 >
 > One more thing: the current behavior for "zone section test 6" is to
 > return NOTIMP, not NOTAUTH.  NOTIMP seemed to be most compatible to
 > the BIND 9's behavior in a similar case.  And, in any case, NOTAUTH
 > wouldn't be a good code in this case because the server is actually
 > authoritative for the zone.

 Ah, for some reason I though NOTAUTH was redefined to 'not-primary' in the
 RFC, don't know where I got the idea. I didn't understand why it would be
 NOTIMP instead REFUSED then, but it is not the DDNS that is 'notimp' but
 the forwarding. Changed (and added a note about forwarding).

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


More information about the bind10-tickets mailing list