Re: [Dots] DOTS telemetry Issues picked up in Interop Testing
Jon Shallow <supjps-ietf@jpshallow.com> Tue, 21 April 2020 10:56 UTC
Return-Path: <supjps-ietf@jpshallow.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 57DC53A0835 for <dots@ietfa.amsl.com>; Tue, 21 Apr 2020 03:56:36 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.898
X-Spam-Level:
X-Spam-Status: No, score=-1.898 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=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 Q0oFHTp7Vtc7 for <dots@ietfa.amsl.com>; Tue, 21 Apr 2020 03:56:33 -0700 (PDT)
Received: from mail.jpshallow.com (mail.jpshallow.com [217.40.240.153]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 1254C3A082C for <dots@ietf.org>; Tue, 21 Apr 2020 03:56:30 -0700 (PDT)
Received: from mail2.jpshallow.com ([192.168.0.3] helo=N01332) by mail.jpshallow.com with esmtp (Exim 4.92.3) (envelope-from <jon.shallow@jpshallow.com>) id 1jQqZo-0003M8-7k; Tue, 21 Apr 2020 11:56:28 +0100
From: Jon Shallow <supjps-ietf@jpshallow.com>
To: mohamed.boucadair@orange.com, dots@ietf.org
References: <102501d6170c$2be45900$83ad0b00$@jpshallow.com> <787AE7BB302AE849A7480A190F8B933031499776@OPEXCAUBMA2.corporate.adroot.infra.ftgroup> <105901d6171a$1a132860$4e397920$@jpshallow.com> <114601d617bb$21c1cac0$65456040$@jpshallow.com> <787AE7BB302AE849A7480A190F8B93303149B39C@OPEXCAUBMA2.corporate.adroot.infra.ftgroup>
In-Reply-To: <787AE7BB302AE849A7480A190F8B93303149B39C@OPEXCAUBMA2.corporate.adroot.infra.ftgroup>
Date: Tue, 21 Apr 2020 11:56:21 +0100
Message-ID: <118601d617cb$7e394250$7aabc6f0$@jpshallow.com>
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="----=_NextPart_000_1187_01D617D3.E0023E30"
X-Mailer: Microsoft Outlook 14.0
Thread-Index: AQIP9ThI7DkLoYVsg/jsxFxzT+JmLAHYmGmaAtdF3C8CKMkxNwGSYnaRp8xQ6fA=
Content-Language: en-gb
Archived-At: <https://mailarchive.ietf.org/arch/msg/dots/aY32HNSVYW8qaSgAC2sGGQKAfgo>
Subject: Re: [Dots] DOTS telemetry Issues picked up in Interop Testing
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: Tue, 21 Apr 2020 10:56:37 -0000
Please see inline. Regards Jon From: Dots [mailto: -dots-bounces@ietf.org] On Behalf Of mohamed.boucadair@orange.com Sent: 21 April 2020 11:04 To: Jon Shallow; dots@ietf.org Subject: Re: [Dots] DOTS telemetry Issues picked up in Interop Testing Hi Jon, Please see inline. Cheers, Med De : Jon Shallow [mailto:supjps-ietf@jpshallow.com] Envoyé : mardi 21 avril 2020 10:59 À : BOUCADAIR Mohamed TGI/OLN; dots@ietf.org Objet : RE: [Dots] DOTS telemetry Issues picked up in Interop Testing Hi all, A further thought on the use of Uri-Queries to clarify the AND/OR usage. If you only allow one query per query type and put the match list in an array, then this will be an OR of the array list (the same as we do for the target* definitions right now. E.G. :- Uri-Query: target_prefix=[1.2.3.4/32,4.3.2.1/32] Gives either 1.2.3.4 or 4.3.2.1 as a valid match. And Uri-Query: target-prefix=[1.2.3.4/32,4.3.2.1/32] Uri-Query: lower-port=[80,443] Gives (either 1.2.3.4 or 4.3.2.1) and (either port 80 or 443) [] should not include spaces and comma used as a separator. [Med] The issue I have with this is that we will need to handle cases where both lower-port and upper-port are present. Not sure what would be the benefit of allowing multiple key values, compact uris? If thats a concern, we may consider shortened names in the query (e.g., s/target-prefix/tp, s/lower-port/lp, ..). Jon> fair point about lower and upper ports. Uri-Query: target-port[80-85,443] works for me and covers both ranges and individual ports. Jon> As this would be options on a GET request that has no body data, I dont think that I am too worried about using shortened names at this point. Not sure about :- If [] are not used, then it should be treated as a single item to match. The list of valid Uri-Queries may need to be extended. A Uri-Query option can include the following parameters: target-prefix, lower-port, upper-port, target-protocol, target-fqdn, target-uri, alias-name. should include mid and content (c). [Med] OK. Please note that c wasnt listed because we do have the following: The DOTS server follows the same considerations discussed in Section of 4.5.3 of [I-D.ietf-dots-signal-channel] for managing DOTS telemetry configuration freshness and notification. Likewise, a DOTS client may control the selection of configuration and non- configuration data nodes when sending a GET request by means of the 'c' Uri-Query option and following the procedure specified in Section of 4.4.2 of [I-D.ietf-dots-signal-channel]. These considerations are not re-iterated in the following sections. I added a pointer to that section. Do we need to be able to filter on source attributes as well? [Med] What would be the usage? Is it the case of an administrator that is aware (using some means) that some sources are involved an attacks on other networks, then sends a request to its server to filter telemetry data bound to these source? Filtering in this case may be problematic as some attacks may be observed but are hidden by the filter on the source. Or do we want to focus on very few talkers? For example, the client would instruct the server to send data only related to the top-talker, 3 first top-talkers, etc.? Jon> Source-port= could be useful especially when being subjected to a reflected type attach where all the traffic is coming from, say, source port 53 Jon> Otherwise, it may help to filter on top-talkers, vendor specific attack types etc. Jon> Which then leads me on to something else. If we asking for telemetry for 2 (or more) different target IPs and the server is returning vendor specific attack details. For attack-detail, keyed by attack-id, if the same attack is hitting more than 1 target IP, can I display this information per IP or does it have to be aggregated? ~Jon Regards Jon From: Dots [mailto: dots-bounces@ietf.org] On Behalf Of Jon Shallow Sent: 20 April 2020 14:47 To: mohamed.boucadair@orange.com; dots@ietf.org Subject: Re: [Dots] DOTS telemetry Issues picked up in Interop Testing Hi Med, See inline. Regards Jon From: Dots [mailto: dots-bounces@ietf.org] On Behalf Of iemohamed.boucadair@orange.com Sent: 20 April 2020 13:54 To: Jon Shallow; dots@ietf.org Subject: Re: [Dots] DOTS telemetry Issues picked up in Interop Testing Hi Jon, Thank you for sharing the comments. Please see De : Dots [mailto:dots-bounces@ietf.org] De la part de Jon Shallow Envoyé : lundi 20 avril 2020 14:07 À : dots@ietf.org Objet : [Dots] DOTS telemetry Issues picked up in Interop Testing Hi All, 1) DOTS agents MUST NOT send pre-or-ongoing-mitigation telemetry messages to the same peer more frequently than once every 'telemetry- notify-interval' (Section 6.1). If I do a PUT /tm-setup, followed immediately by a GET /tm-setup, should the GET fail based on the telemetry-notify-interval, or should telemetry-notify-interval apply individually to PUT. GET and DELETE? [I may want to do a DELETE (no tsid) followed by a GET to get suitable max/min information and telemetry-notify-interval can easily be more than 1 second. ] [Med] This rate limit does not apply to these messages; it applies only for notifications; == leaf telemetry-notify-interval { type uint32 { range "1 .. 3600"; } must '. >= ../../min-config-values/telemetry-notify-interval' { error-message "The value must be greater than or equal to the telemetry-notify-interval in the min-config-values"; } units "seconds"; description "Minimum number of seconds between successive telemetry notifications."; } === We can make the text clear: OLD: DOTS agents MUST NOT send pre-or-ongoing-mitigation telemetry messages to the same peer more frequently than once every 'telemetry- notify-interval' (Section 6.1 <https://tools.ietf.org/html/draft-ietf-dots-telemetry-07#section-6.1> ). If a telemetry notification is sent using a block-like transfer mechanism (e.g., [I-D..bosh-core-new-block <https://tools.ietf.org/html/draft-ietf-dots-telemetry-07#ref-I-D.bosh-core- new-block> ]), this rate limit policy MUST NOT consider these individual blocks as separate notifications, but as a single notification. NEW: DOTS agents MUST NOT send pre-or-ongoing-mitigation telemetry notifications to the same peer more frequently than once every 'telemetry- notify-interval' (Section 6.1 <https://tools.ietf.org/html/draft-ietf-dots-telemetry-07#section-6.1> ). If a telemetry notification is sent using a block-like transfer mechanism (e.g., [I-D..bosh-core-new-block <https://tools.ietf.org/html/draft-ietf-dots-telemetry-07#ref-I-D.bosh-core- new-block> ]), this rate limit policy MUST NOT consider these individual blocks as separate notifications, but as a single notification. Jon> This change works for me. 2) Use of multiple Uri-Query: Uri-Query: target_prefix=[1.2...3.4] Uri-Query: target_prefix=[2.3...4.5] I think this should be OR [Med] Yes, this is the same interpretation when we include target-prefix in the message body. Uri-Query: target_prefix=[1.2...3.4] Uri-Query: target_port=[80] I think this should be an AND. [Med] Yes, because the target-port is specifying a subset of ports bound to the target-prefix. Perhaps we should have operator queries Uri-Query: target_prefix=[1.2...3.4] Uri-Query: op=OR Uri-Query: target_prefix=[2.3...4.5] Uri-Query: target_prefix=[1.2...3.4] Uri-Query: op=AND Uri-Query: target_port=[80] [Med] I dont think this is needed. We dont specify the operator when we include the target clauses in the message body. The same rules apply. We can clarify this in the text If you think this is needed. Jon> I think that it is worth stating that the same rules apply for clarification. Thoughts? 3) What happens if a Query cannot be supported. E.g. Uri-Query: target_port=[80] and statistics on the server by a port basis is not supported. Do we want to either error out with a 4.0X responses, or should we include a (new additional) YANG body response indicating which Uri-Query is not supported? [Med] Good point. The client can retrieve during telemetry setup the supported query types + server replies with 4.00 when an invalid query type is used. Jon> I think the server stating what Queries are supported is a good idea. Regards Jon
- [Dots] DOTS telemetry Issues picked up in Interop… Jon Shallow
- Re: [Dots] DOTS telemetry Issues picked up in Int… mohamed.boucadair
- Re: [Dots] DOTS telemetry Issues picked up in Int… Jon Shallow
- Re: [Dots] DOTS telemetry Issues picked up in Int… mohamed.boucadair
- Re: [Dots] DOTS telemetry Issues picked up in Int… Jon Shallow
- Re: [Dots] DOTS telemetry Issues picked up in Int… mohamed.boucadair
- Re: [Dots] DOTS telemetry Issues picked up in Int… Jon Shallow