Re: [netmod] WG Last Call: draft-ietf-netmod-acl-model-15

Mahesh Jethanandani <mjethanandani@gmail.com> Mon, 22 January 2018 21:49 UTC

Return-Path: <mjethanandani@gmail.com>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 4DCA112D7E2 for <netmod@ietfa.amsl.com>; Mon, 22 Jan 2018 13:49:06 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.999
X-Spam-Level:
X-Spam-Status: No, score=-1.999 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.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 egX9ZqIk7BHT for <netmod@ietfa.amsl.com>; Mon, 22 Jan 2018 13:49:03 -0800 (PST)
Received: from mail-pg0-x230.google.com (mail-pg0-x230.google.com [IPv6:2607:f8b0:400e:c05::230]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id A28BA127137 for <netmod@ietf.org>; Mon, 22 Jan 2018 13:49:03 -0800 (PST)
Received: by mail-pg0-x230.google.com with SMTP id 136so8120049pgd.8 for <netmod@ietf.org>; Mon, 22 Jan 2018 13:49:03 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:message-id:mime-version:subject:date:in-reply-to:cc:to :references; bh=QkPv8s2VzDhzREeXtbXbQad4/fsgICd3ChTpIRWp70M=; b=NKiHA0KY0QgNERjIFJM2oAS1RFlSOg1F3zFcviXN2HD2VWbdDe3o+Ot/LXr3ov4RsV 3A1DR9gybKaGS9reLipQKlz6qcQnodl6Vs2uDwf8xkLGdSs6m9jrFh9KIewEfSmxbntX pfTTfKTlT+3+Je6F3h7w3HBhk6c9Ee9Va6jEdMWSnryuRMyDzK9G6dd5NrMg+2Pw6kuJ lnDpx0s6ITJ3gXi1GO97hhmy02Mk23ASgJkLKywfDTVf2FUp82xbccqo8ZcfHCwx8GZ8 xwZ9xxJmvU/9lvWijJ4R83Vy0sJmp4vb13EDqmznMIsd63qmjNTNeZb82zO7NmBfqh0b yfiA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:message-id:mime-version:subject:date :in-reply-to:cc:to:references; bh=QkPv8s2VzDhzREeXtbXbQad4/fsgICd3ChTpIRWp70M=; b=Iw6uE1yWpZ5H6AGvoGJ5MCi2v05VKYTIkzj7mrtPpGFC4xynfm/jpCgyZPBTnGOWrt /hyioosjgHDPy2jSUlIsyzAI2EOJvxN7rIpIzrTcI3ypoBFaa4bRsdE7Jh3nJcq2HbWN rINYVkCaPBk2502GJcRMrZDCqIbWKHkOL66Ca6YO1e9vRFJqcl2XQHWsxnhBjmJgWa70 IPKqLYuKXc4SjPIjH44ufkXLpn2ly8YpQGAad8t7Yqi3T1H9g3GnwMwz3cM28m80gKc3 JnxowSNrQ54jxGTw09KZE3DUIur9XPH5tRAqD/vuQzfGrQHufQSRRoHGc5JZr04dmC8G TPbw==
X-Gm-Message-State: AKwxytcpVCagZiWdbxoe10efKbDyoLsrjz6c5b1zhrjGR6gTZ93JqX0K bLfsLIbv7hK8u3BSU/4FHNfCX2Ul
X-Google-Smtp-Source: AH8x226+1iOO2VvLyESaFnI+ncOMUQ1Yt/Ug1iji1nIwHSWLYlQH6Por4OJzDdVecsCPEdLsyPvzzA==
X-Received: by 2002:a17:902:7244:: with SMTP id c4-v6mr4329889pll.414.1516657742914; Mon, 22 Jan 2018 13:49:02 -0800 (PST)
Received: from mahesh-m-m8d1.attlocal.net ([2600:1700:edb0:8fd0:b1fb:ae:6399:a3f3]) by smtp.gmail.com with ESMTPSA id q67sm2835056pfi.164.2018.01.22.13.49.00 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 22 Jan 2018 13:49:02 -0800 (PST)
From: Mahesh Jethanandani <mjethanandani@gmail.com>
Message-Id: <0480E3FD-BFAC-41F5-8408-3DAB117A8625@gmail.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_1BCB1FD8-6B19-4CE1-810F-7903B0CA4283"
Mime-Version: 1.0 (Mac OS X Mail 11.2 \(3445.5.20\))
Date: Mon, 22 Jan 2018 13:48:59 -0800
In-Reply-To: <1e5da232-82cd-5a1a-930e-555796bd2ef7@cisco.com>
Cc: Kent Watsen <kwatsen@juniper.net>, "netmod@ietf.org" <netmod@ietf.org>
To: Eliot Lear <lear@cisco.com>
References: <8C19AD4C-0DCA-4D96-A070-0D76BE92BFA4@juniper.net> <1e5da232-82cd-5a1a-930e-555796bd2ef7@cisco.com>
X-Mailer: Apple Mail (2.3445.5.20)
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/9sNML_N9H6mQihIYOKvryHKMh8E>
Subject: Re: [netmod] WG Last Call: draft-ietf-netmod-acl-model-15
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 22 Jan 2018 21:49:06 -0000

Eliot,

I am not sure about what is a basic function, and what is not. Tomorrow, somebody can argue that TCP SYN flag is a basic function and should be broken out from under the TCP header.

I would rather that port definition remain under TCP/UDP with the feature statement ‘match-on-tcp’ and ‘match-on-udp’. The proposed change then looks like what is here <https://github.com/netmod-wg/acl-model/pull/23/commits/dc4ed556bd71cb9e648b0babdebe05a3a5b7bf68>, and all the changes in the PR are captured here <https://github.com/netmod-wg/acl-model/pull/23>.

Thanks

> On Jan 22, 2018, at 11:14 AM, Eliot Lear <lear@cisco.com> wrote:
> 
> Hi Kent and Mahesh and Sonal,
> 
> Thanks very much for working on this draft.  I have noted one problem that I think needs correcting.  I come prepared with a diff.
> 
> The current model has {source,dest}-port-or-range hanging off ipv4 or ipv6.  This is a transport parameter and is not appropriate for protocols that do not use ports (ie, ICMP, ESP, etc).  A better locale would be to hang these components underneath l4 underneath their respective tcp and udp branches.
> 
> Because this is so basic a function, I propose that this not be included in match-on-tcp or match-on-udp.  Instead, the contents of both tcp and udp be moved to new containers "tcp-all" and "udp-all", respectively, and the ports hang as peers to that.  Thus, if a very simple device can understand TCP and UDP ports but cannot understand more detailed information, that is supported.
> 
>  And so from a tree perspective, it would look like this:
> 
>        |        |  +--rw (l4)?
>        |        |  |  +--:(tcp)
>        |        |  |  |  +--rw tcp
>        |        |  |  |     +--rw source-port-range-or-operator
>        |        |  |  |     |  +--rw (port-range-or-operator)?
>        |        |  |  |     |     +--:(range)
>        |        |  |  |     |     |  +--rw lower-port    inet:port-number
>        |        |  |  |     |     |  +--rw upper-port    inet:port-number
>        |        |  |  |     |     +--:(operator)
>        |        |  |  |     |        +--rw operator?     operator
>        |        |  |  |     |        +--rw port          inet:port-number
>        |        |  |  |     +--rw destination-port-range-or-operator
>        |        |  |  |     |  +--rw (port-range-or-operator)?
>        |        |  |  |     |     +--:(range)
>        |        |  |  |     |     |  +--rw lower-port    inet:port-number
>        |        |  |  |     |     |  +--rw upper-port    inet:port-number
>        |        |  |  |     |     +--:(operator)
>        |        |  |  |     |        +--rw operator?     operator
>        |        |  |  |     |        +--rw port          inet:port-number
>        |        |  |  |     +--rw tcp-all {match-on-tcp}?
>        |        |  |  |        +--rw sequence-number?          uint32
>        |        |  |  |        +--rw acknowledgement-number?   uint32
>        |        |  |  |        +--rw data-offset?              uint8
>        |        |  |  |        +--rw reserved?                 uint8
>        |        |  |  |        +--rw flags?                    bits
>        |        |  |  |        +--rw window-size?              uint16
>        |        |  |  |        +--rw urgent-pointer?           uint16
>        |        |  |  |        +--rw options?                  uint32
>        |        |  |  +--:(udp)
>        |        |  |  |  +--rw udp
>        |        |  |  |     +--rw source-port-range-or-operator
>        |        |  |  |     |  +--rw (port-range-or-operator)?
>        |        |  |  |     |     +--:(range)
>        |        |  |  |     |     |  +--rw lower-port    inet:port-number
>        |        |  |  |     |     |  +--rw upper-port    inet:port-number
>        |        |  |  |     |     +--:(operator)
>        |        |  |  |     |        +--rw operator?     operator
>        |        |  |  |     |        +--rw port          inet:port-number
>        |        |  |  |     +--rw destination-port-range-or-operator
>        |        |  |  |     |  +--rw (port-range-or-operator)?
>        |        |  |  |     |     +--:(range)
>        |        |  |  |     |     |  +--rw lower-port    inet:port-number
>        |        |  |  |     |     |  +--rw upper-port    inet:port-number
>        |        |  |  |     |     +--:(operator)
>        |        |  |  |     |        +--rw operator?     operator
>        |        |  |  |     |        +--rw port          inet:port-number
>        |        |  |  |     +--rw udp-all {match-on-udp}?
>        |        |  |  |        +--rw length?   uint16
> 
> A diff ietf-packet-fields.yang and ietf-access-control-lists.yang is attached.
> 
> Eliot
> 
> 
> 
> On 17.01.18 22:55, Kent Watsen wrote:
>> All,
>> 
>> This starts a two-week working group last call on
>> draft-ietf-netmod-acl-model-15.
>> 
>> This working group last call ends on January 31st.
>> Please send your comments to the NETMOD mailing list.
>> 
>> Positive comments, e.g., "I've reviewed this document
>> and believe it is ready for publication", are welcome!
>> This is useful and important, even from authors.
>> 
>> Also, could the authors, explicitly CC-ed on this email,
>> please confirm at this time that they are unaware of
>> any IPR related to this draft.
>> 
>> Thank you,
>> NETMOD Chairs
>> 
>> _______________________________________________
>> netmod mailing list
>> netmod@ietf.org <mailto:netmod@ietf.org>
>> https://www.ietf.org/mailman/listinfo/netmod <https://www.ietf.org/mailman/listinfo/netmod>
>> 
> 
> *** ietf-packet-fields@2018-01-16.yang.orig	Mon Jan 22 12:58:08 2018
> --- ietf-packet-fields@2018-01-16.yang	Mon Jan 22 13:10:57 2018
> ***************
> *** 190,205 ****
>           payload. In IPv6, this field is known as 'next-header.";
>        reference "RFC 719, RFC 2460.";
>      }
> -     container source-port-range-or-operator {
> -       uses port-range-or-operator;
> -       description
> -         "Source port definition.";
> -     }
> -     container destination-port-range-or-operator {
> -       uses port-range-or-operator;
> -       description
> -         "Destination port definition.";
> -     }
>    }
> 
>    grouping acl-ipv4-header-fields {
> --- 190,195 ----
> *** ietf-access-control-list@2018-01-16.yang.orig	Mon Jan 22 10:16:17 2018
> --- ietf-access-control-list@2018-01-16.yang	Mon Jan 22 13:09:06 2018
> ***************
> *** 440,457 ****
> 
>              choice l4 {
>                container tcp {
> !                 if-feature match-on-tcp;
>                  uses packet-fields:acl-tcp-header-fields;
> !                   description
>                      "Rule set that matches TCP headers.";
> !               }
> ! 
>                container udp {
> !                 if-feature match-on-udp;
> !                 uses packet-fields:acl-udp-header-fields;
> !                 description
> !                   "Rule set that matches UDP headers.";
> !               }
> 
>                container icmp {
>                  if-feature match-on-icmp;
> --- 440,482 ----
> 
>              choice l4 {
>                container tcp {
> ! 		container source-port-range-or-operator {
> ! 		   uses packet-fields:port-range-or-operator;
> ! 		      description
> ! 		        "Source port definition.";
> !                 }			
> ! 		container destination-port-range-or-operator {
> ! 		   uses packet-fields:port-range-or-operator;
> ! 		   description
> !  		     "Destination port definition.";
> ! 		}
> ! 		container tcp-all {
> !                    if-feature match-on-tcp;
>                  uses packet-fields:acl-tcp-header-fields;
> !                    description
>                      "Rule set that matches TCP headers.";
> !                 }
> ! 	      	description "TCP matchable characteristics";
> ! 	      }
>                container udp {
> ! 		container source-port-range-or-operator {
> ! 		   uses packet-fields:port-range-or-operator;
> ! 		      description
> ! 		        "Source port definition.";
> !                 }			
> ! 		container destination-port-range-or-operator {
> ! 		   uses packet-fields:port-range-or-operator;
> ! 		   description
> !  		     "Destination port definition.";
> ! 		}
> ! 		container udp-all {
> !                    if-feature match-on-udp;
> !                    uses packet-fields:acl-udp-header-fields;
> !                    description
> !                      "Rule set that matches UDP headers.";
> !                 }
> ! 	      	description "UDP matchable characteristics";
> ! 	      }
> 
>                container icmp {
>                  if-feature match-on-icmp;
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod

Mahesh Jethanandani
mjethanandani@gmail.com