Re: [DNSOP] General comments on draft-kumari-ogud-dnsop-cds-01

Edward Lewis <ed.lewis@neustar.biz> Thu, 28 February 2013 08:11 UTC

Return-Path: <ed.lewis@neustar.biz>
X-Original-To: dnsop@ietfa.amsl.com
Delivered-To: dnsop@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 6CBBE21F8BA6 for <dnsop@ietfa.amsl.com>; Thu, 28 Feb 2013 00:11:22 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -100.283
X-Spam-Level:
X-Spam-Status: No, score=-100.283 tagged_above=-999 required=5 tests=[AWL=-1.084, BAYES_00=-2.599, HTML_MESSAGE=0.001, MIME_QP_LONG_LINE=1.396, TRACKER_ID=2.003, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([64.170.98.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id DefjJwqXJwNA for <dnsop@ietfa.amsl.com>; Thu, 28 Feb 2013 00:11:21 -0800 (PST)
Received: from eastrmfepo203.cox.net (eastrmfepo203.cox.net [68.230.241.218]) by ietfa.amsl.com (Postfix) with ESMTP id 69E9D21F8BA4 for <dnsop@ietf.org>; Thu, 28 Feb 2013 00:11:08 -0800 (PST)
Received: from eastrmimpo305 ([68.230.241.237]) by eastrmfepo203.cox.net (InterMail vM.8.01.04.00 201-2260-137-20101110) with ESMTP id <20130228081107.EVNV21186.eastrmfepo203.cox.net@eastrmimpo305> for <dnsop@ietf.org>; Thu, 28 Feb 2013 03:11:07 -0500
Received: from [127.0.0.1] ([68.98.141.167]) by eastrmimpo305 with cox id 5kB41l0033cuADQ01kB4Ad; Thu, 28 Feb 2013 03:11:07 -0500
X-CT-Class: Clean
X-CT-Score: 0.00
X-CT-RefID: str=0001.0A020209.512F111B.00DF,ss=1,re=0.000,fgs=0
X-CT-Spam: 0
X-Authority-Analysis: v=2.0 cv=IelZrxWa c=1 sm=1 a=d1qrA6Qzssd1VjKW2xnq3A==:17 a=27vuUybe-asA:10 a=hGBaWAWWAAAA:8 a=3D5Z4wfiauwA:10 a=48vgC7mUAAAA:8 a=8J2YExhBDe3U8LfEMcsA:9 a=wPNLvfGTeEIA:10 a=9k6G2--EmesA:10 a=lZB815dzVvQA:10 a=o5yLqAGLZ62R13-s:21 a=O3VQ5AZ1xsGssdBG:21 a=ddR1uikaDK-VElcf72oA:9 a=_W_S_7VecoQA:10 a=63RCkiJRISP8e4fW:21 a=d1qrA6Qzssd1VjKW2xnq3A==:117
X-CM-Score: 0.00
Authentication-Results: cox.net; none
Mime-Version: 1.0 (Apple Message framework v1283)
Content-Type: multipart/alternative; boundary="Apple-Mail=_1CD4422C-ADC1-4845-8D90-BF3B3A1921BA"
From: Edward Lewis <ed.lewis@neustar.biz>
In-Reply-To: <CAB0C4xO48fhbU46rFg_cj2xFMkoyurdhxpbDX+nHDUMbfuWPHw@mail.gmail.com>
Date: Thu, 28 Feb 2013 16:11:02 +0800
Message-Id: <FC30E747-F14A-4FEA-B128-E9896A71681E@neustar.biz>
References: <20130218210600.19691.97544.idtracker@ietfa.amsl.com> <31B601E4-AE9E-48B2-8D6F-5E8FE6044FE2@kumari.net> <alpine.LFD.2.03.1302191020390.7608@nohats.ca> <512BDC8B.3070602@ogud.com> <alpine.LFD.2.03.1302251722090.4548@nohats.ca> <512CCEB4.3040403@ogud.com> <4AAE2A31-DBD9-4D4D-B233-FFF5A44D4041@neustar.biz> <CAB0C4xO48fhbU46rFg_cj2xFMkoyurdhxpbDX+nHDUMbfuWPHw@mail.gmail.com>
To: Marc Lampo <marc.lampo.ietf@gmail.com>, "dnsop@ietf.org WG" <dnsop@ietf.org>
X-Mailer: Apple Mail (2.1283)
Cc: Edward Lewis <ed.lewis@neustar.biz>
Subject: Re: [DNSOP] General comments on draft-kumari-ogud-dnsop-cds-01
X-BeenThere: dnsop@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: IETF DNSOP WG mailing list <dnsop.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/dnsop>, <mailto:dnsop-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/dnsop>
List-Post: <mailto:dnsop@ietf.org>
List-Help: <mailto:dnsop-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/dnsop>, <mailto:dnsop-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 28 Feb 2013 08:11:22 -0000

Ahh, yes.  I went back to see your message.

I'll address the points in your message here

1)  Telling the parent "this is a new KSK and it will have a DS in the future" (code 0) is unnecessary.  This is state the parent should not track and not have the burden of tracking.  The other two states map to my "ADD" and "DELETE" but in mine I hide semantics (or reasons why).  So for the most part we agree.

2) All that is needed is the CDS be signed as any other RRSET.  When the parent elects to do so, it would do a query +DO to get the records and hope to see "ad" in the flags.

3) I don't think the parent ought to have to do a periodic check (it's up to the parent).  Either way, that doesn't belong in the document.

4) Good question - I would assume that a well-run zone would have in-sync servers.  Given that the document assumes the parent could "scrape" this, the concern is understood.  But my assumption is that this would be event driven (prompt up the tree somehow) and that lessens the concern of an out of sync server.  OTOH, I have the idea that there needs to be some way of tagging the request to get it's freshness. OYTOH (On yet the third hand), there's always out of band ways to ask for a retry.

5) Kind of agree - why not.  If the domain name is registered via a method that has a half-dozen pre-delegation checks and credit checks, what more armoring is needed?

6) Ahh, and I thought I was the only one that noticed.  (Sorry, Marc, evidently I hadn't read all of your message. ;))

What I have in mind is a smaller definition for CDS, but use it in a way where the client has the responsibility to check whether the parent has granted the request.


On Feb 28, 2013, at 15:23, Marc Lampo wrote:

> Hello,
> 
> somewhat more words but in line with what I was suggesting, a couple
> of days ago,
> about adding "operation code" to CDS RDATA.
> 
> This still feel like a good idea, worth elaborating, I'd see.
> I support this.
> 
> Kind regards,
> 
> Marc Lampo
> 
> 
> On Thu, Feb 28, 2013 at 7:56 AM, Edward Lewis <ed.lewis@neustar.biz> wrote:
>> Having quickly read the -01 for Automating DNSSEC delegation trust
>> maintenance:
>> 
>> I'd like to propose a twist.  Comparing to X.509, a CDS record is kinda
>> sorta like a key signing request.  For that reason I want to see an explicit
>> "request" in the RDATA and not have anything implied.
>> 
>> I would suggest that the RDATA of it *not* be the same as the DS record.
>> There should be an explicit RDATA element instructing the parent what to do
>> with the request.  Probably some other ancillary data will be needed too.
>> 
>> I would not specify how the parent "discovers" the CDS.  Just as for AXFR,
>> knowing how AXFR works is different from why it is called.  I say this
>> because in some scenarios I can see the parent scanning the children and in
>> others there will be an event driven reason to look for the CDS set at a
>> child.  In some cases "scraping" is optimal, in some cases "explicit" is
>> optimal.
>> 
>> The CDS has to do this:
>> 
>> 1. Let the parent know whether it is a request for new DS records or whether
>> this is a request to delete DS records.  (Plural referring to the fact that
>> a SEP might have more than one DS record.)
>> 
>> 2. Let the parent know when this request was first posted (so that the
>> parent can tell if it did this one before).  I.e., a 32 bit timestamp viewed
>> as a yyymm-etc. like the RRSIGs do.  Or it could be the serial number of the
>> zone when the request was added (although that might be hard for a tool to
>> determine).  But - goal is - something to let the parent know when this
>> request appeared so that the parent can guess whether it has already
>> responded to it.
>> 
>> 3. Let the parent know the RDATA of the DS records that are desired.
>> 
>> What #3 hints at is the case where DS records are requested for a DNSKEY
>> that is not (yet) published in the child zone.  There is a DS record in the
>> root zone for a ccTLD that points to no existing record - an example that
>> this is done.
>> 
>> I'd like to see one CDS per DNSKEY state change.  It is up to the child to
>> groom the CDS set, that is, once the parent has granted the request (which
>> can be seen by asking the parent) the child has the onus to remove the CDS -
>> but as protocol designers we have to account for the case where a child does
>> not remove a CDS (ever), and might in fact have a CDS to add a key and
>> another to delete the key.
>> 
>> Other considerations.  I left off "urgent" or "due time" because those
>> features generally are overkill.  For urgent matters, that falls under the
>> "why" category  and not the "how" category.  And "how" is what we need to
>> define.
>> 
>> For example, a zone has KSKs with footprints/ids of 11111 and 22222 and is
>> flipping to the latter:
>> 
>> zone.tld.   1800  IN  CDS   DELETE 20130201000000 11111 7 1
>> DFB91171CF0FB1DC48B2CEB8DD9A173CC1A28E55 2
>> 4052E3B1BF483C993C018AA3513065A61E7FE842C60C03F44B0ACCFFE011E0A7
>> zone.tld.   1800  IN  CDS   ADD 20130201000000 22222 7 1
>> DFB91171CF0FB1DC48B2CEB8DD9A173CC1A28E55 2
>> 4052E3B1BF483C993C018AA3513065A61E7FE842C60C03F44B0ACCFFE011E0A7
>> 
>> The hash in the DELETE is over kill.  Perhaps for that just the footprint is
>> needed (unless you want to delete one or the other hash only).
>> 
>> Here's a meltdown case that I want to smooth over (with hashes elided):
>> 
>> zone.tld.   1800  IN  CDS   ADD 20130201000000 22222 7 ...
>> zone.tld.   1800  IN  CDS   DELETE 20130301000000 22222 ...
>> 
>> In this case, the child forgot to remove the add request when it decided to
>> do the delete.  (No intention of allowing the timestamp to be a schedule -
>> even though I show a future date in the example, I did that just for
>> convenience.)  The parent should know then to delete what it has for 22222,
>> whether or not it ever added the DS.  (E.g., if the two records popped up
>> together with the same timestamp.)
>> 
>> PS - looking at the email addresses for the authors: so it is true, Warren
>> and George are the same person!
>> 
>> 
>> _______________________________________________
>> DNSOP mailing list
>> DNSOP@ietf.org
>> https://www.ietf.org/mailman/listinfo/dnsop
>> 

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Edward Lewis             
NeuStar                    You can leave a voice message at +1-571-434-5468

There are no answers - just tradeoffs, decisions, and responses.