On 1/7/2020 6:01 PM, Wessels, Duane wrote:
On Jan 6, 2020, at 6:15 PM, Michael StJohns <m...@nthpermutation.com> wrote:
5) 3.1.2 - This is I believe different than how DNSSEC does it? If it's the
same, then this is fine, otherwise this protocol should be calculating the
RRSet wire representation the same as DNSSEC does it.
In my experience, duplicates are suppressed either when a zone is loaded or
when it is signed. ZONEMD matches DNSSEC.
Here's how named-checkzone behaves:
$ named-checkzone -i none -o /dev/fd/1 example.com /dev/fd/0
$ORIGIN example.com.
@ 60 SOA a b 1 2 3 4 5
@ 60 NS ns
NS 60 A 192.168.1.1
@ 60 A 127.0.0.1
@ 60 A 127.0.0.1
zone example.com/IN: loaded serial 1
example.com. 60 IN SOA a.example.com.
b.example.com. 1 2 3 4 5
example.com. 60 IN NS ns.example.com.
example.com. 60 IN A 127.0.0.1
NS.example.com. 60 IN A 192.168.1.1
OK
And in ldns_dnssec_rrs_add_rr() at
https://github.com/NLnetLabs/ldns/blob/develop/dnssec_zone.c#L46 you can see at
the end that equal RRs are silently ignored.
Can you provide a cite? Not disagreeing - just curious if its been written
down in an RFC somewhere.
RFC2181 (cited in ZONEMD) says:
Each DNS Resource Record (RR) has a label, class, type, and data. It
is meaningless for two records to ever have label, class, type and
data all equal - servers should suppress such duplicates if
encountered.
DW
And then you have RFC4034 which has
[RFC2181] specifies that an RRset is not allowed to contain duplicate
records (multiple RRs with the same owner name, class, type, and
RDATA). Therefore, if an implementation detects duplicate RRs when
putting the RRset in canonical form, it MUST treat this as a protocol
error. If the implementation chooses to handle this protocol error
in the spirit of the robustness principle (being liberal in what it
accepts), it MUST remove all but one of the duplicate RR(s) for the
purposes of calculating the canonical form of the RRset.
Which I think is the better cite. So basically, the RRSet encoding for
ZONEMD is the same RRSet encoding for DNSSEC. Which answers my question.
Thanks - Mike
_______________________________________________
DNSOP mailing list
DNSOP@ietf.org
https://www.ietf.org/mailman/listinfo/dnsop