Re: [Dots] [boucadair/draft-ietf-dots-data-channel] flagment bits representation questions in Figure 28, 29 (#2)

"Konda, Tirumaleswar Reddy" <TirumaleswarReddy_Konda@McAfee.com> Wed, 18 July 2018 09:14 UTC

Return-Path: <TirumaleswarReddy_Konda@mcafee.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 7D66B128BAC for <dots@ietfa.amsl.com>; Wed, 18 Jul 2018 02:14:06 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.309
X-Spam-Level:
X-Spam-Status: No, score=-4.309 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001, T_DKIMWL_WL_HIGH=-0.01, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=mcafee.com
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 lK97QEVHu_Ez for <dots@ietfa.amsl.com>; Wed, 18 Jul 2018 02:14:00 -0700 (PDT)
Received: from DNVWSMAILOUT1.mcafee.com (dnvwsmailout1.mcafee.com [161.69.31.173]) (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 3C775130EFF for <dots@ietf.org>; Wed, 18 Jul 2018 02:14:00 -0700 (PDT)
X-NAI-Header: Modified by McAfee Email Gateway (5500)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mcafee.com; s=s_mcafee; t=1531905233; h=From: To:CC:Subject:Thread-Topic:Thread-Index:Date: Message-ID:References:In-Reply-To:Accept-Language: Content-Language:X-MS-Has-Attach:X-MS-TNEF-Correlator: dlp-product:dlp-version:dlp-reaction:authentication-results: x-originating-ip:x-ms-publictraffictype:x-microsoft-exchange-diagnostics: x-ms-exchange-antispam-srfa-diagnostics:x-ms-office365-filtering-correlation-id: x-microsoft-antispam:x-ms-traffictypediagnostic: x-microsoft-antispam-prvs:x-exchange-antispam-report-test: x-ms-exchange-senderadcheck:x-exchange-antispam-report-cfa-test: x-forefront-prvs:x-forefront-antispam-report: received-spf:x-microsoft-antispam-message-info: spamdiagnosticoutput:spamdiagnosticmetadata: Content-Type:MIME-Version:X-MS-Exchange-CrossTenant-Network-Message-Id: X-MS-Exchange-CrossTenant-originalarrivaltime: X-MS-Exchange-CrossTenant-fromentityheader: X-MS-Exchange-CrossTenant-id:X-MS-Exchange-Transport-CrossTenantHeadersStamped: X-OriginatorOrg:X-NAI-Spam-Flag:X-NAI-Spam-Threshold: X-NAI-Spam-Score:X-NAI-Spam-Version; bh=5 qoNO+knvA/u8gCH5AJ4IjH6wZ1Xc+NI+OqS60tEtu M=; b=HimMtXuq1i/ELaPkGp0AKYGP/MFzFfd7qvreBJiWmKsG dXlPRE05WGtgyxmHMvf95S+Sz3qTVm3NAJ5Tv4IiXyPIjrpTTC YDW4Woq0Y1edaNtGJOIhKKHQqiveHSznvLUx7HJgSqZYVYdKc1 5mGLUGcYsrvW54tOqnCSsLgevyI=
Received: from DNVEXAPP1N04.corpzone.internalzone.com (unknown [10.44.48.88]) by DNVWSMAILOUT1.mcafee.com with smtp (TLS: TLSv1/SSLv3,256bits,ECDHE-RSA-AES256-SHA384) id 406f_4245_87cff317_61c1_46ce_8972_ca0cb578a008; Wed, 18 Jul 2018 04:13:52 -0500
Received: from DNVEXUSR1N08.corpzone.internalzone.com (10.44.48.81) by DNVEXAPP1N04.corpzone.internalzone.com (10.44.48.88) with Microsoft SMTP Server (TLS) id 15.0.1347.2; Wed, 18 Jul 2018 03:13:18 -0600
Received: from DNVO365EDGE2.corpzone.internalzone.com (10.44.176.74) by DNVEXUSR1N08.corpzone.internalzone.com (10.44.48.81) with Microsoft SMTP Server (TLS) id 15.0.1347.2 via Frontend Transport; Wed, 18 Jul 2018 03:13:19 -0600
Received: from NAM01-SN1-obe.outbound.protection.outlook.com (10.44.176.240) by edge.mcafee.com (10.44.176.74) with Microsoft SMTP Server (TLS) id 15.0.1347.2; Wed, 18 Jul 2018 03:13:15 -0600
Received: from BN6PR16MB1425.namprd16.prod.outlook.com (10.172.207.19) by BN6PR16MB1698.namprd16.prod.outlook.com (10.172.28.11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.952.18; Wed, 18 Jul 2018 09:13:14 +0000
Received: from BN6PR16MB1425.namprd16.prod.outlook.com ([fe80::ede9:2a31:940:db6c]) by BN6PR16MB1425.namprd16.prod.outlook.com ([fe80::ede9:2a31:940:db6c%9]) with mapi id 15.20.0952.021; Wed, 18 Jul 2018 09:13:14 +0000
From: "Konda, Tirumaleswar Reddy" <TirumaleswarReddy_Konda@McAfee.com>
To: "mohamed.boucadair@orange.com" <mohamed.boucadair@orange.com>, Jon Shallow <supjps-ietf@jpshallow.com>
CC: "dots@ietf.org" <dots@ietf.org>
Thread-Topic: [Dots] [boucadair/draft-ietf-dots-data-channel] flagment bits representation questions in Figure 28, 29 (#2)
Thread-Index: AQHUG49A5j1MOXyH10e+6kH9fjY9RAIP5AKvAlIMe30CaqEBEQDdLAhnAg076BMBiC9AVwI1p1rxAudI+IgCBib/WQG6+lRVArthoScBmHygqqP4r3UA/9dUHGCAASoRYA==
Date: Wed, 18 Jul 2018 09:13:14 +0000
Message-ID: <BN6PR16MB1425C6B308C8205D5F82C9F6EA530@BN6PR16MB1425.namprd16.prod.outlook.com>
References: <boucadair/draft-ietf-dots-data-channel/issues/2@github.com> <787AE7BB302AE849A7480A190F8B93302DF63424@OPEXCLILMA3.corporate.adroot.infra.ftgroup> <048001d41dab$00c23e10$0246ba30$@jpshallow.com> <BN6PR16MB14259AD91CFA0D445D884610EA5C0@BN6PR16MB1425.namprd16.prod.outlook.com> <04d001d41dc8$efb97340$cf2c59c0$@jpshallow.com> <BN6PR16MB142537AE987613663AB26210EA5C0@BN6PR16MB1425.namprd16.prod.outlook.com> <787AE7BB302AE849A7480A190F8B93302DF63BAE@OPEXCLILMA3.corporate.adroot.infra.ftgroup> <053e01d41dd8$dc2c01c0$94840540$@jpshallow.com> <787AE7BB302AE849A7480A190F8B93302DF63DB9@OPEXCLILMA3.corporate.adroot.infra.ftgroup> <058401d41ddb$1f30c440$5d924cc0$@jpshallow.com> <787AE7BB302AE849A7480A190F8B93302DF63E5A@OPEXCLILMA3.corporate.adroot.infra.ftgroup> <05ac01d41dde$ceace6d0$6c06b470$@jpshallow.com> <787AE7BB302AE849A7480A190F8B93302DF63EF8@OPEXCLILMA3.corporate.adroot.infra.ftgroup> <05cb01d41de1$82da03c0$888e0b40$@jpshallow.com> <787AE7BB302AE849A7480A190F8B93302DF63F88@OPEXCLILMA3.corporate.adroot.infra.ftgroup>
In-Reply-To: <787AE7BB302AE849A7480A190F8B93302DF63F88@OPEXCLILMA3.corporate.adroot.infra.ftgroup>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
dlp-product: dlpe-windows
dlp-version: 11.0.300.84
dlp-reaction: no-action
authentication-results: spf=none (sender IP is ) smtp.mailfrom=TirumaleswarReddy_Konda@McAfee.com;
x-originating-ip: [103.245.47.20]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; BN6PR16MB1698; 7:uuQWwFzcNjfFY5X4O1PqIeuGXDD+UHrxvPYM6M8lCdzNJtPluKsw/qhuxaxJ1iVDuwHolfBRRkWH3eqYKDxtxUgFBeKIOds6mxPzm390arqzSgXU7h0saA4gSRAV/4BEYOazZ7i/OMkDk07l2IuxkiAnVua33UisdTLsNrbli5bMhTcsNZ4vZ5gotjKska1i6DCDmscut7cb0HHJXQvWJiD3nTBal23g57etJi2xT7V31zMvMlpJtJANoWMjTIvD
x-ms-exchange-antispam-srfa-diagnostics: SOS;
x-ms-office365-filtering-correlation-id: d50eb418-d5de-42b2-c6f1-08d5ec8eb147
x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989117)(5600053)(711020)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(2017052603328)(7153060)(7193020); SRVR:BN6PR16MB1698;
x-ms-traffictypediagnostic: BN6PR16MB1698:
x-microsoft-antispam-prvs: <BN6PR16MB1698C53D6F2731F6F85416EFEA530@BN6PR16MB1698.namprd16.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:(28532068793085)(158342451672863)(166708455590820)(788757137089)(161740460382875)(18271650672692)(21748063052155)(123452027830198);
x-ms-exchange-senderadcheck: 1
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(3002001)(10201501046)(93006095)(93001095)(3231311)(944501410)(52105095)(149027)(150027)(6041310)(20161123560045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123562045)(6072148)(201708071742011)(7699016); SRVR:BN6PR16MB1698; BCL:0; PCL:0; RULEID:; SRVR:BN6PR16MB1698;
x-forefront-prvs: 0737B96801
x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(366004)(136003)(396003)(346002)(376002)(39860400002)(199004)(189003)(32952001)(21615005)(33656002)(68736007)(6306002)(54896002)(55016002)(229853002)(476003)(53546011)(99286004)(446003)(486006)(110136005)(86362001)(5660300001)(74316002)(316002)(256004)(733005)(14444005)(6506007)(236005)(2906002)(9686003)(19609705001)(7696005)(478600001)(6436002)(5024004)(4326008)(7736002)(11346002)(66066001)(5250100002)(14454004)(2501003)(966005)(18926415007)(606006)(93886005)(6116002)(25786009)(72206003)(53936002)(8676002)(105586002)(2900100001)(16200700003)(102836004)(81156014)(53946003)(3846002)(26005)(76176011)(6246003)(8936002)(186003)(80792005)(81166006)(97736004)(790700001)(106356001)(85282002)(579004)(569006); DIR:OUT; SFP:1101; SCL:1; SRVR:BN6PR16MB1698; H:BN6PR16MB1425.namprd16.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1;
received-spf: None (protection.outlook.com: McAfee.com does not designate permitted sender hosts)
x-microsoft-antispam-message-info: Phm2En/+LySYSAItDfD/IdnNt5VAyctWU6yBpYs3oDNrqdKYRku232UOfA2iCwMfYRiQoBPVf7BxHusf5tJqSV5tQh956gFwGJjlfFYjhCiEsFOSXtBAd+A/TRXANSmeaahr9aSDOAZYbP0bmev0CQX9s/4scIJ9PNH9QAejFKhJP1jEIY1ylmOnf2TktA6GD03iXTTaoQy/X4SQnFib2oHEeP52gZoQo2pkqdNt+uhy8s1hgfCYt8BEfhTBZ3kf5qgCAxidm4ZMu/XgcA0QmmziIQmzoK9oyf04WuEgtrev9uT+Jwrwvg/oHmAimjK7vFQJulCyk6yGNsFBw/sAyEbMGDFSSRSHHZ0C2GEQL8o=
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: multipart/alternative; boundary="_000_BN6PR16MB1425C6B308C8205D5F82C9F6EA530BN6PR16MB1425namp_"
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-Network-Message-Id: d50eb418-d5de-42b2-c6f1-08d5ec8eb147
X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Jul 2018 09:13:14.4573 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 4943e38c-6dd4-428c-886d-24932bc2d5de
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR16MB1698
X-OriginatorOrg: mcafee.com
X-NAI-Spam-Flag: NO
X-NAI-Spam-Threshold: 15
X-NAI-Spam-Score: 0
X-NAI-Spam-Version: 2.3.0.9418 : core <6331> : inlines <6757> : streams <1792888> : uri <2675401>
Archived-At: <https://mailarchive.ietf.org/arch/msg/dots/NbCQ5GKsAPd_GXkEFc_RUMmoQC4>
Subject: Re: [Dots] [boucadair/draft-ietf-dots-data-channel] flagment bits representation questions in Figure 28, 29 (#2)
X-BeenThere: dots@ietf.org
X-Mailman-Version: 2.1.27
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: Wed, 18 Jul 2018 09:14:07 -0000

Inline [TR]

From: Dots [mailto:dots-bounces@ietf.org] On Behalf Of mohamed.boucadair@orange.com
Sent: Tuesday, July 17, 2018 8:57 PM
To: Jon Shallow <supjps-ietf@jpshallow.com>
Cc: dots@ietf.org
Subject: Re: [Dots] [boucadair/draft-ietf-dots-data-channel] flagment bits representation questions in Figure 28, 29 (#2)


CAUTION: External email. Do not click links or open attachments unless you recognize the sender and know the content is safe.


________________________________
Re-,

Please see inline.

Cheers,
Med

De : Jon Shallow [mailto:supjps-ietf@jpshallow.com]
Envoyé : mardi 17 juillet 2018 11:19
À : BOUCADAIR Mohamed IMT/OLN
Objet : RE: [Dots] [boucadair/draft-ietf-dots-data-channel] flagment bits representation questions in Figure 28, 29 (#2)

Was not copying to the list intentional?
[Med] cced again. Sorry.

In Appendix A Figure 28, the first ACE catches any packet with the more bit set.  So this will catch any packet of a fragmented sequence apart from the last packet, including the first fragment which otherwise may match ACE #2

The second ACE allows through traffic through according to the layer 4 definition

The third ACE drops the last fragmented packet (and just about any other traffic as it happens).
[Med] Yes. This is OK for the example we have my comment is not specific to the example in the draft, but to the general use of it. If an action is required only on last fragment, but not at other packet types, this is challenging with the current netmod-acl.


This does rely on ACE #1 doing the right stuff.
It may be that there have to be a whole load more permit ACEs between #1 and #3.

Having the BGP equivalent of fragment matching would be a whole lot simpler…
[Med] Agree.

[TR] +1

-Tiru

Regards

Jon

From: mohamed.boucadair@orange.com<mailto:mohamed.boucadair@orange.com> [mailto: mohamed.boucadair@orange.com<mailto:mohamed.boucadair@orange.com>]
Sent: 17 July 2018 16:04
To: Jon Shallow
Subject: RE: [Dots] [boucadair/draft-ietf-dots-data-channel] flagment bits representation questions in Figure 28, 29 (#2)

Re-,

Agree, but this is not the point I was trying to make.

My point is that that match cannot allow to distinguish “non-fragmented packet vs. last fragment” if we need to do some actions only on last fragments, not non-fragmented packets.

Cheers,
Med

De : Jon Shallow [mailto:supjps-ietf@jpshallow.com]
Envoyé : mardi 17 juillet 2018 11:00
À : BOUCADAIR Mohamed IMT/OLN; dots@ietf.org<mailto:dots@ietf.org>; Konda, Tirumaleswar Reddy
Objet : RE: [Dots] [boucadair/draft-ietf-dots-data-channel] flagment bits representation questions in Figure 28, 29 (#2)

Hi Med,

Actually, on the last fragment of a fragmented packet sequence, the “more” bit is not set as there is no further data beyond this end packet.  So ”flags”:”” is stating the match is true if the “more” bit is not set (and “reserved” and “fragment” (bad name choice for netmod-acl – it should be “dontfragment”) are not set as well).

RFC791 2.3 Function Description
…
Fragmentation
…
    To assemble the fragments of an internet datagram, an internet
    protocol module (for example at a destination host) combines
    internet datagrams that all have the same value for the four fields:
    identification, source, destination, and protocol.  The combination
    is done by placing the data portion of each fragment in the relative
    position indicated by the fragment offset in that fragment's
    internet header.  The first fragment will have the fragment offset
    zero, and the last fragment will have the more-fragments flag reset
    to zero.

Regards

Jon

From: Dots [mailto: dots-bounces@ietf.org<mailto:dots-bounces@ietf.org>] On Behalf Of mohamed.boucadair@orange.com<mailto:mohamed.boucadair@orange.com>
Sent: 17 July 2018 15:48
To: Jon Shallow; dots@ietf.org<mailto:dots@ietf.org>; Konda, Tirumaleswar Reddy
Subject: Re: [Dots] [boucadair/draft-ietf-dots-data-channel] flagment bits representation questions in Figure 28, 29 (#2)

Re-,


That text says that clause is “a space-separated
   sequence of names of bits that are set.

A match on (flags: “”) (if we assume this is correct) does not allow to distinguish this is a non-fragmented packet vs. last fragment.

Cheers,
Med

De : Jon Shallow [mailto:supjps-ietf@jpshallow.com]
Envoyé : mardi 17 juillet 2018 10:33
À : BOUCADAIR Mohamed IMT/OLN; dots@ietf.org<mailto:dots@ietf.org>; Konda, Tirumaleswar Reddy
Objet : RE: [Dots] [boucadair/draft-ietf-dots-data-channel] flagment bits representation questions in Figure 28, 29 (#2)

Sorry – ‘RFC7951 6.5.  The “bits” Type’.  It is a simple string with the set bits’ name space delimited, not an array.

Regards

Jon

From: mohamed.boucadair@orange.com<mailto:mohamed.boucadair@orange.com> [mailto: mohamed.boucadair@orange.com<mailto:mohamed.boucadair@orange.com>]
Sent: 17 July 2018 15:28
To: Jon Shallow; dots@ietf.org<mailto:dots@ietf.org>; Konda, Tirumaleswar Reddy
Subject: RE: [Dots] [boucadair/draft-ietf-dots-data-channel] flagment bits representation questions in Figure 28, 29 (#2)

Re-,

Which part of 7951 are you referring to?

Thanks.

Cheers,
Med

De : Jon Shallow [mailto:supjps-ietf@jpshallow.com]
Envoyé : mardi 17 juillet 2018 10:17
À : BOUCADAIR Mohamed IMT/OLN; dots@ietf.org<mailto:dots@ietf.org>; Konda, Tirumaleswar Reddy
Objet : RE: [Dots] [boucadair/draft-ietf-dots-data-channel] flagment bits representation questions in Figure 28, 29 (#2)

Hi,

See inline Jon1.

Regards

Jon

From: Dots [mailto: dots-bounces@ietf.org<mailto:dots-bounces@ietf.org>] On Behalf Of mohamed.boucadair@orange.com<mailto:mohamed.boucadair@orange.com>
Sent: 17 July 2018 14:29
To: Konda, Tirumaleswar Reddy; Jon Shallow; dots@ietf.org<mailto:dots@ietf.org>
Subject: Re: [Dots] [boucadair/draft-ietf-dots-data-channel] flagment bits representation questions in Figure 28, 29 (#2)

Re-,

Please see inline.

Cheers,
Med

De : Konda, Tirumaleswar Reddy [mailto:TirumaleswarReddy_Konda@McAfee.com]
Envoyé : mardi 17 juillet 2018 09:18
À : Jon Shallow; dots@ietf.org<mailto:dots@ietf.org>; BOUCADAIR Mohamed IMT/OLN
Objet : RE: [Dots] [boucadair/draft-ietf-dots-data-channel] flagment bits representation questions in Figure 28, 29 (#2)

The IPv4 fragment defined in the container capabilities means “flags” is supported to filter IPv4 fragments.
[Med] Agree.
Jon1> A tenuous cross connection!

To avoid confusion, “fragment” in IPv4 container capabilities can be replaced with flags.
[Med] That is one possibility, but the point is that some fragment handling requires to manipulate other fragment-related fields (e.g., offset). For example, we cannot distinguish a last fragment vs non-fragmented packet. This can be easy if we had an op based on the offset, or we have a primitive that will say whether this is a fragment or not.
Jon1> Actually, “flags”:”” does do this for a final drop, so offset is not needed, but see caveat below.

We should try to use netmod-acl wherever possible and use “flags” to block IPv4 fragmentation attacks.
[Med] Yes, but what we have currently in the draft for the last fragment is broken:

==
                 "name": "drop-last-fragment",
                 "matches": {
                   "ipv4": {
                     "flags": {""}
                   }
==
Jon1> As per RFC7951, this should be
==
                 "name": "drop-last-fragment",
                 "matches": {
                   "ipv4": {
OLD                  "flags": {""}
NEW                  "flags": ""
                   }
==

However, if the “Do Not Fragment Packet” bit is also set in the packet as well as the More bit is not set (i.e. Last Fragment), then it will not match this ACE entry and will get through (bits tested are reserved, fragment and more) as per
    u_short ip_off;                     /* fragment offset field */
#define IP_RF 0x8000                    /* reserved fragment flag */
#define IP_DF 0x4000                    /* dont fragment flag */
#define IP_MF 0x2000                    /* more fragments flag */
#define IP_OFFMASK 0x1fff               /* mask for fragmenting bits */
as the “flags” field is defining which bits are set and which bits are not set, not a mask on bits.  Grr.

The same is also true for
==
               {
                 "name": "drop-all-except-last-fragment",
                 "matches": {
                   "ipv4": {
Updated        "flags": "more"
                   }
                 },
                 "actions": {
                   "forwarding": "drop"
                 }
               }
==
If the packet contains the Don’t Fragment or Reserved bit set.

~Jon1

-Tiru

From: Jon Shallow [mailto:supjps-ietf@jpshallow.com]
Sent: Tuesday, July 17, 2018 5:53 PM
To: Konda, Tirumaleswar Reddy <TirumaleswarReddy_Konda@McAfee.com<mailto:TirumaleswarReddy_Konda@McAfee.com>>; dots@ietf.org<mailto:dots@ietf.org>; mohamed.boucadair@orange.com<mailto:mohamed.boucadair@orange.com>
Subject: RE: [Dots] [boucadair/draft-ietf-dots-data-channel] flagment bits representation questions in Figure 28, 29 (#2)


CAUTION: External email. Do not click links or open attachments unless you recognize the sender and know the content is safe.


________________________________
Hi Tiru,

I created all this confusion when I thought that it was possible to replace the use of the DOTS addition (non netmod-acl) definition for “fragment” by using what was available in netmod-acl (which I thought would handle the dropping of all the fragments of IP packet sequence, including the initial fragment).

Timeline

. IPv4 and IPv6 use added keyword fragment
. Alternative to fragment – IPv4 uses “flags” : “more” in a convoluted configuration and IPv6 used flow label 44 (fragment label) to drop all fragments
. Netmod-acl confirms that flow label is only to be used for protocols (e.g. TCP), not fragment header – so fragment for IPv6 re-instated.

So

Should “fragment” be re-used for IPv4 fragments (for consistency across the 2 IP protocol types) instead of the convoluted “flags” : “more” configuration as “fragment” is supported for IPv6 again.

[Interestingly IPv4 fragment is defined in “container capabilities”, but not “container ipv4” – which does need to be fixed either way.]

Then, if we are going to include “fragment” again, should we make it more friendly as outlined by my YANG below.

Regards

Jon

From: Dots [mailto: dots-bounces@ietf.org<mailto:dots-bounces@ietf.org>] On Behalf Of Konda, Tirumaleswar Reddy
Sent: 17 July 2018 12:16
To: Jon Shallow; mohamed.boucadair@orange.com<mailto:mohamed.boucadair@orange.com>; dots@ietf.org<mailto:dots@ietf.org>
Subject: Re: [Dots] [boucadair/draft-ietf-dots-data-channel] flagment bits representation questions in Figure 28, 29 (#2)

Hi Jon and Med,

I don’t follow the discussion, we previously agreed that flags defined in netmod-acl-model can be used to drop IPv4 fragments (both initial and non-initial)  (see the thread https://www.ietf.org/mail-archive/web/dots/current/msg02220.html) .

Cheers,
-Tiru

From: Dots [mailto:dots-bounces@ietf.org] On Behalf Of Jon Shallow
Sent: Tuesday, July 17, 2018 2:19 PM
To: mohamed.boucadair@orange.com<mailto:mohamed.boucadair@orange.com>; dots@ietf.org<mailto:dots@ietf.org>
Subject: Re: [Dots] [boucadair/draft-ietf-dots-data-channel] flagment bits representation questions in Figure 28, 29 (#2)


CAUTION: External email. Do not click links or open attachments unless you recognize the sender and know the content is safe.


________________________________
Hi there,

If we are going to re-introduce fragment, should we not take the opportunity to extend the fragment definition so that it can be used by a DOTS mitigator to map into BGP FlowSpec?

[I do have a hard time working with the limited capability of the Cisco ACL fragments keyword.  For example the often quoted
  access-list 101 deny ip any host 171.16.23.1 fragments
  access-list 101 permit tcp any host 171.16.23.1 eq 80
  access-list 101 deny ip any any
will allow any non-fragmented or initial-fragment packets to 171.16.23.1:80.  All I need to do is send a high rate of initial-fragment packets to 171.16.23.1:80 and the server runs out of memory waiting for fragmentation re-assembly…]

The YANG update could look something like

    typedef fragment-operator {
    type bits {
      bit not {
        position 0;
        description
          "If set, logical negation of operation.";
      }
      bit match {
        position 1;
        description
          "Match bit.  If set, this is a bitwise match operation
           defined as "(data & value) == value"; if unset, (data &
           value) evaluates to TRUE if any of the bits in the value
           mask are set in the data.";
      }
    }
    description
      "How to apply the defined fragment type bits.";
  }

  typedef fragment-type {
    type bits {
      bit df {
        position 0;
        description
          "Don't fragment.";
      }
      bit isf {
        position 1;
        description
          "Is a fragment.";
      }
      bit ff {
        position 2;
        description
          "First fragment.";
      }
      bit lf {
        position 3;
        description
          "Last fragment.";
      }
    }
    description
      "Different fragmentation types to match against.";
  }

  grouping fragment-fields {
    leaf frag-operator {
      type fragment-operator;
      description
        "How to interpret the fragment type."
    }
    leaf frag-type {
      type fragment-type;
      description
        "What fragment types to look for."
    }
  }


.....

          leaf destination-prefix {
            type boolean;
            description
              "Support of filtering based on the destination prefix.";
          }
          container fragment {
            description
              "Indicates the capability of a DOTS server to
               enforce filters on IPv4 fragments.";
            uses fragment-fields;
          }


.....

          leaf destination-prefix {
            type boolean;
            description
              "Support of filtering based on the destination prefix.";
          }
          container fragment {
            description
              "Indicates the capability of a DOTS server to
               enforce filters on IPv6 fragments.";
            uses fragment-fields;
          }


Regards

Jon

From: Dots [mailto: dots-bounces@ietf.org<mailto:dots-bounces@ietf.org>] On Behalf Of mohamed.boucadair@orange.com<mailto:mohamed.boucadair@orange.com>
Sent: 16 July 2018 22:22
To: dots@ietf.org<mailto:dots@ietf.org>
Subject: Re: [Dots] [boucadair/draft-ietf-dots-data-channel] flagment bits representation questions in Figure 28, 29 (#2)

Sending this message to share with the WG the outcome of the discussion with the author of the issue.

As a reminder, the current version relies on netmod-acl for manipulating IPv4 fragments, but specifies a new behavior for IPv4.

The first change below on Figure 28 can be easily fixed, but the second one raised a serious issue on handling IPv4 last fragment. The current netmod-acl does not allow to assess whether a fragment is the last one. Things may be simple with flags but this requires the support of “operator”, for example, so that we can manipulate offset and so on. Unfortunately, I don’t think we can get those fixed in the netmod acl (refer to the discussion we had with the authors of netmod-acl) about the IPv6, hence my preference to reintroduce the “fragment” thing.

As a result, we will re-introduce fragment keyword for IPv4 to simplify handling of fragments.

Cheers,
Med

De : __kaname__ [mailto:notifications@github.com]
Envoyé : samedi 14 juillet 2018 12:25
À : boucadair/draft-ietf-dots-data-channel
Cc : Subscribed
Objet : [boucadair/draft-ietf-dots-data-channel] flagment bits representation questions in Figure 28, 29 (#2)

Figure 28

  1.  "flags": {"more"}

                   "ipv4": {

                     "flags": {"more"}

                   }

would be

                   "ipv4": {

                     "flags": "more"

                   }

according to
+--rw flags? bits
https://tools.ietf.org/html/rfc7951#section-6.5 The "bits" Type

  1.  "flags": {""}
Can it be used for representation of all bits are zero?

Figure 29

  1.  "fragment"

                   "ipv6": {

                     "fragment"

                   }

is

                   "ipv6": {

                     "fragment": [null]

                   }

according to
+--rw fragment? empty
https://tools.ietf.org/html/rfc7951#section-6.9 The "empty" Type

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub<https://github.com/boucadair/draft-ietf-dots-data-channel/issues/2>, or mute the thread<https://github.com/notifications/unsubscribe-auth/AO8fV9qHuUbLp5Gmso7XowEmDfCRftCOks5uGhtqgaJpZM4VP6Vz>.