At Thu, 6 Feb 2014 14:13:05 -0500,
Warren Kumari <war...@kumari.net> wrote:

> At time T+3 the child sees that the parent has published the new key
> information ( and the standard keyroll stuff has all happened (records
> are signed with new key, waited for old TTLs to expire, etc)) and so
> wants to remove the old key.
> ** This is, as far as I understand, what you were  asking about)

Yes, and...

> The child now publishes just the new key info. They stop publishing the old 
> one.
> Parent:
>   example.com. 300  IN DS 31589 8 1 123456......
>   example.com. 300  IN DS 31589 8 1 789ABC......
> Child:
>   example.com. 300  IN CDS 31589 8 1 789ABC......
> [ Child is only publishing new record / they stop publishing the old one ]
>
> At time T+4 the parent checks agin (it polls, the human clicks the
> button on the web page, some other trigger happens, etc):
> It sees that what the child has published does not match what the
> parent currently has, and so it copies the contents from the child.
> Parent:
>   example.com. 300  IN DS 31589 8 1 789ABC......
> Child:
>   example.com. 300  IN CDS 31589 8 1 789ABC......
> [ The child and parent are back in sync. The old key (123456...) is no
> longer in use anywhere. ]

...this makes sense, and actually matches what I first thought was the
intent of the draft.  With this clarification I guess my confusion
mainly came from the first sentence of Section 4.1:

   Absence of CDS / CDNSKEY in child signals "No change" to the current
   DS set.

Now I understand this is intended to mean "absence of CDS / CDNSKEY
*RRset*", i.e., absence of any CDS / CDNSKEY.  But it was not super
clear when I first read it and it could also mean the absence
(removal) of this CDS at time T+4

  example.com. 300  IN CDS 31589 8 1 123456......

maybe I was the only person who was confused about this, but it
wouldn't do any harm to clarify the wording.

My original question is now resolved, but I have now another about the
"absence of CDS / CDNSKEY"...

> This means that you can use this to update / replace / remove existing
> DS records (if you have keys A, B, C and D and want to stop using C,
> you simply publish A, B, D), but you cannot remove *all* DS records /
> go unsigned.

This is fine, but technically doesn't it contradict Section 3?

   The CDS / CDNSKEY record is published in the child zone and gives the
   child control of what is published for it in the parental zone.  The
   CDS / CDNSKEY RRset expresses what the child would like the DS RRset
   to look like after the change;

In that, technically, an empty CDS / CDNSKEY RRset should mean the DS
RRset at the parent should be empty.  I have no problem with treating
an empty set as an exception, but I think it would help if the draft
explains that more explicitly.

I'd also note that "absence of CDS" (or CDNSKEY) cannot happen once
one such RR is published, and it should mean something erroneous (most
likely an operation error at the child or a bug in its tool).  I think
it's worth noting in Section 4.1.

Finally, I'd suggest explicitly clarifying that CDS / CDNSKEY cannot
be used for a child from signed to unsigned (since it would have to
remove all CDS / CDNSKEY records to do so).  And, I suspect this is a
"MUST NOT", unlike the case of initial enrollment described in Section
9, because this would break interoperability.

--
JINMEI, Tatuya
_______________________________________________
DNSOP mailing list
DNSOP@ietf.org
https://www.ietf.org/mailman/listinfo/dnsop

Reply via email to