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

Eliot Lear <lear@cisco.com> Mon, 22 January 2018 21:55 UTC

Return-Path: <lear@cisco.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 CC1C412D7EE for <netmod@ietfa.amsl.com>; Mon, 22 Jan 2018 13:55:24 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -14.51
X-Spam-Level:
X-Spam-Status: No, score=-14.51 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_HI=-5, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.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 4OseMBUIiln8 for <netmod@ietfa.amsl.com>; Mon, 22 Jan 2018 13:55:21 -0800 (PST)
Received: from aer-iport-4.cisco.com (aer-iport-4.cisco.com [173.38.203.54]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 62E9D12D7E9 for <netmod@ietf.org>; Mon, 22 Jan 2018 13:55:20 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=39042; q=dns/txt; s=iport; t=1516658120; x=1517867720; h=subject:to:cc:references:from:message-id:date: mime-version:in-reply-to; bh=z0jgHX2W98b3e4YbXIdh3Zcboi2BNceuAK5ecnq6bG4=; b=QVAIaqm4YFZG96IoeuRJp0gzKQH4NYKQK+qlJfmcq1PF9IqlDKf7gZMu /A6drszOQUmCWU0p4mKxJOdelbxKPGUjnJuU3sGyn+bx1RTyXK9jWU384 CPEFqPOLn/CfYjAJjZI5MAN0Q/ShWOL+Xdpk/mHdmuoiLlXuxf1QdzTQB s=;
X-Files: signature.asc : 488
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0DCAQBfXGZa/xbLJq1eGQEBAQEBAQEBAQEBAQcBAQEBAYQodCeDXYsYj0IyiQ+ORIICBwMYAQyBNwGDD08CGoUuFAEBAQEBAQEBAWsohSQBAQQBASFLCxAJAg4KIAcDAgICHwYfEQYNBgIBAYoXAxUQlyCdcIInJoceDYJoAQEBAQEBAQEBAQEBAQEBAQEBAQEBDgoFhEmFfYMFgmtEAQECgTwBEgE2FQqCYYJlBaM9PYRdgjGBBYhEhQSCG4Yfg3GHdI1RQ4kzgTw2ImBwMhoIGxU9giqEWEA3BYgogjwBAQE
X-IronPort-AV: E=Sophos;i="5.46,398,1511827200"; d="asc'?scan'208,217";a="1540674"
Received: from aer-iport-nat.cisco.com (HELO aer-core-2.cisco.com) ([173.38.203.22]) by aer-iport-4.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 22 Jan 2018 21:55:18 +0000
Received: from [10.61.198.231] ([10.61.198.231]) by aer-core-2.cisco.com (8.14.5/8.14.5) with ESMTP id w0MLtHoq030030; Mon, 22 Jan 2018 21:55:17 GMT
To: Mahesh Jethanandani <mjethanandani@gmail.com>
Cc: Kent Watsen <kwatsen@juniper.net>, "netmod@ietf.org" <netmod@ietf.org>
References: <8C19AD4C-0DCA-4D96-A070-0D76BE92BFA4@juniper.net> <1e5da232-82cd-5a1a-930e-555796bd2ef7@cisco.com> <0480E3FD-BFAC-41F5-8408-3DAB117A8625@gmail.com>
From: Eliot Lear <lear@cisco.com>
Message-ID: <171620d8-1f64-cf62-4dc2-5790f133da33@cisco.com>
Date: Mon, 22 Jan 2018 22:55:16 +0100
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:52.0) Gecko/20100101 Thunderbird/52.5.2
MIME-Version: 1.0
In-Reply-To: <0480E3FD-BFAC-41F5-8408-3DAB117A8625@gmail.com>
Content-Type: multipart/signed; micalg="pgp-sha256"; protocol="application/pgp-signature"; boundary="aIRAjPNwBhBvBsmIkrWkdSvS9Dw0F92jI"
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/zzqQm6hg5IlJ--VBzPJez0VW3Io>
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:55:25 -0000

I'm ok with this as well, Mahesh.

Thanks,

Eliot


On 22.01.18 22:48, Mahesh Jethanandani wrote:
> 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
>> <mailto: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
>>> https://www.ietf.org/mailman/listinfo/netmod
>>>
>>
>> *** ietf-packet-fields@2018-01-16.yang.orig
>> <mailto:ietf-packet-fields@2018-01-16.yang.orig>Mon Jan 22 12:58:08 2018
>> --- ietf-packet-fields@2018-01-16.yang
>> <mailto: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
>> <mailto:ietf-access-control-list@2018-01-16.yang.orig>Mon Jan 22
>> 10:16:17 2018
>> --- ietf-access-control-list@2018-01-16.yang
>> <mailto: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 <mailto:netmod@ietf.org>
>> https://www.ietf.org/mailman/listinfo/netmod
>
> Mahesh Jethanandani
> mjethanandani@gmail.com <mailto:mjethanandani@gmail.com>
>