Re: [Dots] AD review of draft-ietf-dots-signal-channel-25 (3rd Part)
<mohamed.boucadair@orange.com> Thu, 17 January 2019 09:10 UTC
Return-Path: <mohamed.boucadair@orange.com>
X-Original-To: dots@ietfa.amsl.com
Delivered-To: dots@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 8E8F4128D0C; Thu, 17 Jan 2019 01:10:10 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.6
X-Spam-Level:
X-Spam-Status: No, score=-2.6 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001, UNPARSEABLE_RELAY=0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Ue3i2_KNM5hg; Thu, 17 Jan 2019 01:10:08 -0800 (PST)
Received: from orange.com (mta135.mail.business.static.orange.com [80.12.70.35]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 049D3126DBF; Thu, 17 Jan 2019 01:10:08 -0800 (PST)
Received: from opfednr06.francetelecom.fr (unknown [xx.xx.xx.70]) by opfednr25.francetelecom.fr (ESMTP service) with ESMTP id 43gJFB3kZhzCr36; Thu, 17 Jan 2019 10:10:06 +0100 (CET)
Received: from Exchangemail-eme2.itn.ftgroup (unknown [xx.xx.31.32]) by opfednr06.francetelecom.fr (ESMTP service) with ESMTP id 43gJFB2ml0zDq7l; Thu, 17 Jan 2019 10:10:06 +0100 (CET)
Received: from OPEXCAUBM5E.corporate.adroot.infra.ftgroup (10.114.13.82) by OPEXCLILM32.corporate.adroot.infra.ftgroup (10.114.31.32) with Microsoft SMTP Server (TLS) id 14.3.408.0; Thu, 17 Jan 2019 10:10:06 +0100
Received: from OPEXCAUBMA2.corporate.adroot.infra.ftgroup ([fe80::e878:bd0:c89e:5b42]) by OPEXCAUBM5E.corporate.adroot.infra.ftgroup ([fe80::849f:f804:b713:d99a%21]) with mapi id 14.03.0415.000; Thu, 17 Jan 2019 10:10:05 +0100
From: mohamed.boucadair@orange.com
To: "Konda, Tirumaleswar Reddy" <TirumaleswarReddy_Konda@McAfee.com>, Benjamin Kaduk <kaduk@mit.edu>
CC: "draft-ietf-dots-signal-channel@ietf.org" <draft-ietf-dots-signal-channel@ietf.org>, "dots@ietf.org" <dots@ietf.org>
Thread-Topic: AD review of draft-ietf-dots-signal-channel-25 (3rd Part)
Thread-Index: AdStnwkIYLnL/STeQyWYhz1QpkBSPgAA8dOQABXjZoAADfjEUAAEBe6w
Date: Thu, 17 Jan 2019 09:10:05 +0000
Message-ID: <787AE7BB302AE849A7480A190F8B93302EA08F88@OPEXCAUBMA2.corporate.adroot.infra.ftgroup>
References: <787AE7BB302AE849A7480A190F8B93302EA08355@OPEXCAUBMA2.corporate.adroot.infra.ftgroup> <BYAPR16MB279046AB082091B80046808CEA820@BYAPR16MB2790.namprd16.prod.outlook.com> <20190117001952.GN91727@kduck.mit.edu> <BYAPR16MB279047EDC85C68C9479F1708EA830@BYAPR16MB2790.namprd16.prod.outlook.com>
In-Reply-To: <BYAPR16MB279047EDC85C68C9479F1708EA830@BYAPR16MB2790.namprd16.prod.outlook.com>
Accept-Language: fr-FR, en-US
Content-Language: fr-FR
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [10.114.13.247]
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/dots/kGP2aHFIiAMXbdNiUTOI2ULSX7E>
Subject: Re: [Dots] AD review of draft-ietf-dots-signal-channel-25 (3rd Part)
X-BeenThere: dots@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "List for discussion of DDoS Open Threat Signaling \(DOTS\) technology and directions." <dots.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/dots>, <mailto:dots-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/dots/>
List-Post: <mailto:dots@ietf.org>
List-Help: <mailto:dots-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/dots>, <mailto:dots-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 17 Jan 2019 09:10:10 -0000
Re-, Please see inline. Cheers, Med > -----Message d'origine----- > De : Konda, Tirumaleswar Reddy [mailto:TirumaleswarReddy_Konda@McAfee.com] > Envoyé : jeudi 17 janvier 2019 08:21 > À : Benjamin Kaduk > Cc : BOUCADAIR Mohamed TGI/OLN; draft-ietf-dots-signal-channel@ietf.org; > dots@ietf.org > Objet : RE: AD review of draft-ietf-dots-signal-channel-25 (3rd Part) > > > -----Original Message----- > > From: Benjamin Kaduk <kaduk@mit.edu> > > Sent: Thursday, January 17, 2019 5:50 AM > > To: Konda, Tirumaleswar Reddy <TirumaleswarReddy_Konda@McAfee.com> > > Cc: mohamed.boucadair@orange.com; draft-ietf-dots-signal- > > channel@ietf.org; dots@ietf.org > > Subject: Re: AD review of draft-ietf-dots-signal-channel-25 (3rd Part) > > > > This email originated from outside of the organization. Do not click links > or > > open attachments unless you recognize the sender and know the content is > > safe. > > > > On Wed, Jan 16, 2019 at 01:58:30PM +0000, Konda, Tirumaleswar Reddy > > wrote: > > > > -----Original Message----- > > > > From: Dots <dots-bounces@ietf.org> On Behalf Of > > > > mohamed.boucadair@orange.com > > > > Sent: Wednesday, January 16, 2019 6:56 PM > > > > To: Benjamin Kaduk <kaduk@mit.edu>; draft-ietf-dots-signal- > > > > channel@ietf.org > > > > Cc: dots@ietf.org > > > > Subject: Re: [Dots] AD review of draft-ietf-dots-signal-channel-25 > > > > (3rd Part) > > > > > > > > > > > > > > > > Re-, > > > > > > > > Please see inline. > > > > > > > > Cheers, > > > > Med > > > > > > > > > -----Message d'origine----- > > > > > De : Benjamin Kaduk [mailto:kaduk@mit.edu] Envoyé : mercredi 16 > > > > > janvier 2019 01:14 À : draft-ietf-dots-signal-channel@ietf.org > > > > > Cc : dots@ietf.org > > > > > Objet : AD review of draft-ietf-dots-signal-channel-25 > > > > > > > > > > > > > > > To avoid > maintaining a > > > > > long list of overlapping mitigation requests (i.e., requests with > the > > > > > same 'trigger-mitigation' type and overlapping scopes) from a DOTS > > > > > client and avoid error-prone provisioning of mitigation requests > from > > > > > a DOTS client, the overlapped lower numeric 'mid' MUST be > > > > > automatically deleted and no longer available at the DOTS server. > > > > > For example, if the DOTS server receives a mitigation request > which > > > > > overlaps with an existing mitigation with a higher numeric 'mid', > the > > > > > DOTS server rejects the request by returning 4.09 (Conflict) to > the > > > > > DOTS client. [...] > > > > > > > > > > This seems to be internally inconsistent -- first we hear that the > > > > > overlapped mitigation request with lower 'mid' MUST be deleted > > > > > (BTW, note my rewording), but at the end we are hearing that a > > > > > request to create an overlapping mitgiation must be rejected > > > > > > > > > The example is discussing out of order delivery of mitigation requests > > > (DOTS client sends lower numeric 'mid' followed by higher numeric 'mid' > > but the DOTS server receives the higher numeric 'mid' first and accepts the > > request. At a later point of time, when the server receives the lower > numeric > > 'mid', the request is rejected by the server with 4.09 error response. > > > > Ah, I guess I was reading too fast; this is already clearly spelled out. > > > > > -Tiru > > > > > > > > > > > [Med] It is rejected because it has a lower numeric 'mid'. > > > > > > > > .. (A couple pages > > > > > later we also say "can be achieved by sending a PUT request [...] > > > > > that will override the existing one with overlapping mitigation > scopes" > > > > > > > > [Med] Yes, the new one will have a higher 'mid'. > > > > > > > > , > > > > > which suggests a resolution of the conflict. > > > > > > > > [Med] I don't see any inconsistency. Please clarify if I missed your > point. > > > > Tiru got it -- error on my part. > > > > > > > > > > > > The response includes enough information for a DOTS > > > > > client to recognize the source of the conflict as described below: > > > > > > > > > > conflict-information: Indicates that a mitigation request is > > > > > [...] > > > > > > > > > > I'm not entirely sure what encoding to infer from just this > > > > > description > > > > > -- conflict-information/-cause/-scope are in the YANG model, but > > > > > do we need to say that the response contains a CBOR representation > > > > > of the subtree starting at conflict-information (or something like > > > > > that), or is this implicitly specified elsewhere in the document? > > > > > For example, Figure 9 has an explicit JSON diagnostic notation for > > > > > a message response. > > > > > > > > [Med] This is covered by this text: > > > > > > > > Thhis document specifies a YANG module for > > > > representing DOTS mitigation scopes, DOTS signal channel session > > > > configuration data, and DOTS redirected signalling (Section 5). > > > > Representing these data as CBOR data is assumed to follow the rules > > > > in [I-D.ietf-core-yang-cbor] or those in [RFC7951] combined with > > > > JSON/CBOR conversion rules in [RFC7049]. All parameters in the > > > > ^^^^^^^^^^^^^^^^^^^^^^ > > > > payload of the DOTS signal channel are mapped to CBOR types as > > > > > > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > > > > specified in Section 6. > > > > ^^^^^^^^^^^^^^^^^^^^^^ > > > > I would still prefer to see something like "as described below in the > 'conflict- > > information' subtree with only the relevant nodes listed", to try to > forestall > > any other comments from directorate reviews. [Med] Done. > > > > > > > > > > > > conflict-scope: Indicates the conflict scope. It may include > a > > > > > list of IP addresses, a list of prefixes, a list of port > > > > > numbers, a list of target protocols, a list of FQDNs, a list > of > > > > > URIs, a list of alias-names, or a 'mid'. > > > > > > > > > > This feels a little under-specified -- do we need to include > > > > > exactly the conflicting entries? Or would we just say something > > > > > like "this conflicts with 'mid' 8; figure it out"? > > > > > > > > [Med] This clause indicates the exact conflict scope. It may be for > > example: > > > > - a conflict of IP addresses. Then, the target addresses in conflict > > > > are returned. > > > > - a conflict with another request, then the mid of that request is > > > > returned > > > > - etc. > > > > > > > > We can update the text as follows: > > > > > > > > conflict-scope: Characterizes the exact conflict scope. It may > include > > a > > > > ^^^^^^^^^^^^^^^^^^^^^^^^ > > > > list of IP addresses, a list of prefixes, a list of port > > > > numbers, a list of target protocols, a list of FQDNs, a list > of > > > > URIs, a list of alias-names, or a 'mid'. > > > > That's probably a clarification worth making, thanks. > > > > > > > > > > > > > > > > 3: CUID Collision. This code is returned when a DOTS > client > > > > > uses a 'cuid' that is already used by another DOTS > client. > > > > > This code is an indication that the request has been > > > > > rejected and a new request with a new 'cuid' is to be > re- > > > > > sent by the DOTS client. Note that 'conflict-status', > > > > > 'conflict-scope', and 'retry-timer' are not returned in > the > > > > > error response. > > > > > > > > > > (Do we want "MUST NOT" 2119 language to prevent their inclusion or > > > > > is the current descriptive language sufficient?) > > > > > > > > > > > > > [Med] OK. > > > > > > > > > conflict-scope: Indicates the conflict scope. It may include > a > > > > > list of IP addresses, a list of prefixes, a list of port > > > > > numbers, a list of target protocols, a list of FQDNs, a list > of > > > > > URIs, a list of alias-names, or references to conflicting > ACLs. > > > > > > > > > > How do I reference an ACL? > > > > > > > > [Med] By an acl-name. I updated the text to hint this: > > > > > > > > "(by an 'acl-name', typically [I-D.ietf-dots-data-channel])" > > > > Ah, thanks. > > > > > > > > > > > > This can be achieved by sending a PUT > request > > > > > with a new 'mid' value that will override the existing one with > > > > > overlapping mitigation scopes. > > > > > > > > > > Do we want to reiterate that the existing one will be deleted? > > > > > > > > [Med] The text you quoted reminds that the new request will delete > > > > the existing one. > > > > I was thinking that sometimes the word "override" means that two items are > > both present, but one takes precedence over the other during processing; > > "deleted" would then mean that only one of the items is present. [Med] You are right. Even if both are maintained, we do already have this text: To avoid maintaining a long list of overlapping mitigation requests (i.e., requests with the same 'trigger-mitigation' type and overlapping scopes) from a DOTS client and avoid error-prone provisioning of mitigation requests from a DOTS client, the overlapped lower numeric 'mid' MUST be automatically deleted and no longer available at the DOTS server. No need to repeat it again, IMO. > > > > > > > > > > > > For a mitigation request to continue beyond the initial negotiated > > > > > lifetime, the DOTS client has to refresh the current mitigation > > > > > request by sending a new PUT request. This PUT request MUST use > > the > > > > > same 'mid' value, and MUST repeat all the other parameters as sent > > in > > > > > the original mitigation request apart from a possible change to > the > > > > > lifetime parameter value. > > > > > > > > > > If the server did not have a check that the other parameters > > > > > match, what would happen? > > > > > > > > [Med] A request may be for example inadvertently transitioned from > > > > pre- configured to immediate and vice versa. To avoid such issues, > > > > the spec mandates the following: > > > > > > > > * a client can adjust its mitigation scope by sending a new one that > > > > will override an existing one. > > > > * a client can update an existing mitigation by echoing the same > > > > parameters as those in the initial mitigation request. > > > > > > > > But leave it to the server to decide how to handle the refresh: > > > > > > > > If the DOTS server finds the 'mid' parameter value conveyed in the > > > > PUT request in its configuration data bound to that DOTS client, it > > > > MAY update the mitigation request, and a 2.04 (Changed) response is > > > > returned to indicate a successful update of the mitigation request. > > > > That seems consistent with what we do elsewhere, so sounds good. > > > > > > (Do we need normative language that the server MUST > > > > > verify the other parameters when the 'mid' matches?) > > > > > > > > > > Section 4.4.2 > > > > > > > > > > If the representation of all the active > > > > > mitigation requests associated with the DOTS client does not fit > > > > > within a single datagram, the DOTS server MUST use the Block2 > > Option > > > > > with NUM = 0 in the GET response. [...] > > > > > > > > > > I'm not very familiar with CoAP blockwise transfers; is this in > > > > > conflict with some normal feature-negotiation scheme or is it okay > > > > > to assume that the client will be able to handle this even if the > > > > > client has not explictly indicated support? > > > > > > > > [Med] RFC7959 indicates the following: > > > > > > > > A CoAP implementation that does not support these options generally > > > > is limited in the size of the representations that can be exchanged, > > > > see Section 4.6 of [RFC7252]. Even though the options are Critical, > > > > a server may decide to start using them in an unsolicited way in a > > > > response. No effort was expended to provide a capability indication > > > > mechanism supporting that decision: since the block-wise transfer > > > > mechanisms are so fundamental to the use of CoAP for representations > > > > larger than about a kilobyte, there is an expectation that they are > > > > very widely implemented. > > > > Ah, that's quite decisive. Thanks for pointing me to the reference. > > > > > > > > > > > > This is a mandatory attribute when an attack mitigation is > > > > > triggered. Particularly, 'mitigation-start' is not returned > for a > > > > > mitigation with 'status' code set to 8. > > > > > > > > > > Is this better as "triggered" or as "active"? > > > > > > > > [Med] Changed the text to "when an immediate attack mitigation is > > > > triggered". > > > > That takes care of the disambiguation I was hoping for -- thanks :) > > The above change does not look complete, mitigation-start is also a mandatory > attribute when a pre-configured mitigation request is triggered after > the DOTS signal channel session is lost. [Med] I changed the text to "an attack mitigation is active." to avoid any confusion. > > > > > > > > > > > > > bps-dropped and pps-dropped "SHOULD be a five-minute average", but > > > > > that does not seem quite well-defined. Is it a rolling > > > > > five-minute average over bins of one second, or a binned > > > > > five-minute average for the last five-minute interval that ends on > > > > > a multiple of '5', or something > > > > else? > > > > > > > > [Med] What is meant in an average over 5-minute intervals. Updated > > > > the text accordingly. > > > > > > > > > > > > > > Upon receipt of a conflict notification message indicating that a > > > > > mitigation request is deactivated because of a conflict, a DOTS > > > > > client MUST NOT resend the same mitigation request before the > > expiry > > > > > of 'retry-timer'. It is also recommended that DOTS clients > support > > > > > means to alert administrators about mitigation conflicts. > > > > > > > > > > Do we need to say anything regarding the server behavior when a > > > > > retransmit or similar was in flight already when the conflict > > > > > notification was generated? (That is, the server's enforcement of > > > > > the MUST NOT may need to be restrained.) > > > > > > > > [Med] The MUST NOT is intended to avoid overloading the server, > > because: > > > > > > > > "Any retransmission of the same > > > > mitigation request before the expiry of this timer is likely > to > > > > be rejected by the DOTS server for the same reasons." > > > > > > > > The text leave it to the server to decide which action to take when > > > > MUST NOT is not followed by a client. The server may decide the > > > > silently ignore those, etc. > > > > > > > > We can add some text if needed. > > > > Let's leave it alone for now. > > > > > > > > > > > > Alternatively, the DOTS client can explicitly deregister itself by > > > > > issuing a GET request that has the Token field set to the token of > > > > > the observation to be cancelled and includes an Observe Option > with > > > > > the value set to '1' (deregister). > > > > > > > > > > This seems like the more "polite" behavior (as opposed to just > > > > > "forgetting" -- why is the polite behavior not the default behavior? > > > > > > > > [Med] Done in my local copy. > > > > > > > > > > > > > > Does the GET in Figure 13 need to have a ".well-known" and other > > > > > path components? > > > > > > > > > > > > > [Med] Don't think so. Actually, we are mimicking figure 2 in RFC7641. > > > > Ah, thanks for the reference. > > > > -Ben
- Re: [Dots] AD review of draft-ietf-dots-signal-ch… Konda, Tirumaleswar Reddy
- Re: [Dots] AD review of draft-ietf-dots-signal-ch… mohamed.boucadair
- Re: [Dots] AD review of draft-ietf-dots-signal-ch… Konda, Tirumaleswar Reddy
- Re: [Dots] AD review of draft-ietf-dots-signal-ch… Benjamin Kaduk
- Re: [Dots] AD review of draft-ietf-dots-signal-ch… Konda, Tirumaleswar Reddy
- Re: [Dots] AD review of draft-ietf-dots-signal-ch… mohamed.boucadair