BIND 10 #1573: auth::Query needs to return DS for secure delegation
BIND 10 Development
do-not-reply at isc.org
Wed Jan 25 22:34:10 UTC 2012
#1573: auth::Query needs to return DS for secure delegation
-------------------------------------+-------------------------------------
Reporter: | Owner: jinmei
jinmei | Status: reviewing
Type: task | Milestone:
Priority: | Sprint-20120207
critical | Resolution:
Component: | Sensitive: 0
b10-auth | Sub-Project: DNS
Keywords: | Estimated Difficulty: 5
Defect Severity: N/A | Total Hours: 4
Feature Depending on Ticket: |
Add Hours to Ticket: 0 |
Internal?: 0 |
-------------------------------------+-------------------------------------
Comment (by jinmei):
First, I made a couple of trivial editorial fixes.
'''query.cc'''
- I'd suggest rename parameter name for `ZoneFinder` from "zone" to
"finder", partly for consistency, and partly because it's more
appropriate in terms of what it is.
- If DS isn't found (and the zone is signed with NSEC) we need to add
NSEC (maybe it was not clear from the ticket description, if so,
sorry about that). I cannot find normative text about this in
RFC4035 (it only provides an example in an appendix), but that's how
BIND 9 works, and apparently so do all root servers. Note also that
the header file documentation would also have to be updated.
- We should also probably handle a pathological case where find(DS)
results in neither SUCCESS or NXRRSET (return SERVFAIL?)
'''unittest'''
- This comment doesn't seem to be very correct. At least the answer
section is empty, and I don't think anything is omitted in this
case:
{{{#!c++
// find match rrset, omit additional data which has already been
provided
// in the answer section from the additional.
}}}
- We also need to test the case when DS isn't found (insecure
delegation)
- We also need to test the pathological case where find(DS) results in
neither SUCCESS or NXRRSET.
- As for the check for the additional section, we could at least
reduce the amount of hardcoding a bit:
{{{#!c++
(string("glue.delegation.example.com. 3600 IN RRSIG ") +
getCommonRRSIGText("A") + "\n" +
string(ns_addrs_txt) +
string("glue.delegation.example.com. 3600 IN RRSIG ") +
getCommonRRSIGText("AAAA") + "\n" +
string("noglue.example.com. 3600 IN RRSIG ") +
getCommonRRSIGText("A")).c_str());
}}}
(there's one tricky point, though: we need to place ns_addrs_txt
between the glue A RRSIG and AAAA RRSIG; otherwise masterLoad()
would be confused. However, I believe #1614 will solve this issue
too)
- Not really related to this branch, but I noticed one oddity in the
additional section: glue RRs should normally not have RRSIGs. But
it's probably okay for the Query class to include them if it happens
to be passed such odd RRSIGs.
'''other'''
maybe we need a changelog for this?
--
Ticket URL: <http://bind10.isc.org/ticket/1573#comment:6>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development
More information about the bind10-tickets
mailing list