Re: [netmod] WG Last Call for draft-ietf-netmod-syslog-model-11

Kent Watsen <kwatsen@juniper.net> Tue, 21 February 2017 21:29 UTC

Return-Path: <kwatsen@juniper.net>
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 2A500129CF2 for <netmod@ietfa.amsl.com>; Tue, 21 Feb 2017 13:29:10 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.919
X-Spam-Level:
X-Spam-Status: No, score=-1.919 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, MANY_SPAN_IN_TEXT=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=junipernetworks.onmicrosoft.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 Ovl2N3JnlQMj for <netmod@ietfa.amsl.com>; Tue, 21 Feb 2017 13:28:59 -0800 (PST)
Received: from NAM01-BY2-obe.outbound.protection.outlook.com (mail-by2nam01on0107.outbound.protection.outlook.com [104.47.34.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 41D2E129CEF for <netmod@ietf.org>; Tue, 21 Feb 2017 13:28:58 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=junipernetworks.onmicrosoft.com; s=selector1-juniper-net; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=kIrV/MXip4rlIDWjMbWbn8fbk2MDyTUWqs7t9cyuM9Y=; b=Anjdk7A2j+zFAowi+NquqcHJxEZ7XvECq7mnZGbsNjJH2SxsdASgK30gqz/q62fgxJXhlWzZie/jze7x9Kt28PSFHCL6GyXG5jwcr5euwFi4VN0I64BjXdSC4/Q6NLS9hQilL88Fmy7tUD9siCwcV+RqX0V3WGDUk93alXg6ets=
Received: from BN3PR0501MB1442.namprd05.prod.outlook.com (10.160.117.151) by BN3PR0501MB1441.namprd05.prod.outlook.com (10.160.117.150) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.919.10; Tue, 21 Feb 2017 21:28:57 +0000
Received: from BN3PR0501MB1442.namprd05.prod.outlook.com ([10.160.117.151]) by BN3PR0501MB1442.namprd05.prod.outlook.com ([10.160.117.151]) with mapi id 15.01.0919.018; Tue, 21 Feb 2017 21:28:57 +0000
From: Kent Watsen <kwatsen@juniper.net>
To: "Clyde Wildes (cwildes)" <cwildes@cisco.com>, "netmod@ietf.org" <netmod@ietf.org>
Thread-Topic: [netmod] WG Last Call for draft-ietf-netmod-syslog-model-11
Thread-Index: AQHSVaWfIiJK4a4BSkqW0KAWiGRnmqEGzUbWgBWyuYCABGZCgIABcw2AgBG2twCANNH3AIALMemA
Date: Tue, 21 Feb 2017 21:28:57 +0000
Message-ID: <FEF5A115-37CA-426E-A7AA-DD81BA840C36@juniper.net>
References: <19039254-973A-461A-8749-95F74C33DAD1@juniper.net> <1481689016940.22442@Aviatnet.com> <CABCOCHSXVrZG-kz2TMmptcQ3pZ76u+MWse=0NVNY0h4q5GzrKw@mail.gmail.com> <3F4C49C9-1A6A-4644-97C6-F9CDC2E4EB4B@cisco.com> <CABCOCHRAugaAcDN589AOUYW6J4dntuX_azouEtzxcu02_TfA4w@mail.gmail.com> <1CC274D2-72B9-4F79-A70F-3DF332C65A60@cisco.com> <44C50B18-8918-47E4-A9FE-F4A676E64AA1@cisco.com>
In-Reply-To: <44C50B18-8918-47E4-A9FE-F4A676E64AA1@cisco.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
user-agent: Microsoft-MacOutlook/f.1f.0.170216
authentication-results: spf=none (sender IP is ) smtp.mailfrom=kwatsen@juniper.net;
x-ms-exchange-messagesentrepresentingtype: 1
x-originating-ip: [66.129.241.13]
x-ms-office365-filtering-correlation-id: 7c74699f-0d97-48f1-cc51-08d45aa0a4f8
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(48565401081); SRVR:BN3PR0501MB1441;
x-microsoft-exchange-diagnostics: 1; BN3PR0501MB1441; 7:Lt//4RZfww5kWKIa7FWuwtX26jTiZuOLk4MqLlMm5GNmVDk2958jnUlzccULw4QFsSb04xlJRToj6myx4CnsE5+isMfhUxiM4/xmv1fwjRibwSPF0Z5+wEoAaGptgDTKzjt+pBjPenRCVxM/Lca85FGz4ZgtrgSN0ZXK9JO4+EIZ+8yil2N/hoOkR2fDF25m7Iu4T1APMb1altO8nEM+uBy1PIwA0ui+LgXuWyiNM0gRXU7OZcw3hrr7OAZGmRRbq9dZqUMBaqbGA3JhcGMd/IosKDyrJDeqwhLiZ6KlKOfDkBr+anZix3tZ8Cr7sbYVhKEQ3mRLows/oC5biDczag==
x-microsoft-antispam-prvs: <BN3PR0501MB14418F480F13EC18CBB4D8E2A5510@BN3PR0501MB1441.namprd05.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:(158342451672863)(72170088055959)(119710715008430)(138986009662008)(114627819485645)(95692535739014)(21748063052155)(35073007944872);
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(6040375)(601004)(2401047)(5005006)(8121501046)(10201501046)(3002001)(6055026)(6041248)(20161123555025)(20161123564025)(20161123558025)(20161123560025)(20161123562025)(6072148); SRVR:BN3PR0501MB1441; BCL:0; PCL:0; RULEID:; SRVR:BN3PR0501MB1441;
x-forefront-prvs: 0225B0D5BC
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(7916002)(39860400002)(39450400003)(39850400002)(39410400002)(39840400002)(189002)(24454002)(51914003)(377454003)(199003)(8936002)(6116002)(6246003)(77096006)(6436002)(2950100002)(86362001)(6506006)(3660700001)(25786008)(3280700002)(38730400002)(189998001)(6486002)(606005)(4001350100001)(53546006)(229853002)(8676002)(106116001)(102836003)(3846002)(68736007)(7906003)(7736002)(81156014)(2906002)(81166006)(2501003)(4326007)(575784001)(97736004)(83716003)(122556002)(101416001)(105586002)(83506001)(66066001)(106356001)(31430400001)(230783001)(50986999)(54356999)(93886004)(99286003)(53936002)(236005)(6512007)(53946003)(5660300001)(54906002)(966004)(76176999)(54896002)(2900100001)(6306002)(36756003)(33656002)(82746002)(92566002)(104396002)(559001)(579004); DIR:OUT; SFP:1102; SCL:1; SRVR:BN3PR0501MB1441; H:BN3PR0501MB1442.namprd05.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en;
received-spf: None (protection.outlook.com: juniper.net does not designate permitted sender hosts)
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: multipart/alternative; boundary="_000_FEF5A11537CA426EA7AADD81BA840C36junipernet_"
MIME-Version: 1.0
X-OriginatorOrg: juniper.net
X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Feb 2017 21:28:57.3327 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: bea78b3c-4cdb-4130-854a-1d193232e5f4
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN3PR0501MB1441
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/u2RDIXeQv7TdUNuB97XngEZMke8>
Subject: Re: [netmod] WG Last Call for draft-ietf-netmod-syslog-model-11
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.17
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: Tue, 21 Feb 2017 21:29:10 -0000

Thanks for the update you Clyde!

Alex/Andy, since this update was made per comments you made during Last Call, can you please confirm that it does indeed address your concerns, and doesn't add any new ones?

Thanks,
Kent

On 2/14/17, 8:31 AM, "netmod on behalf of Clyde Wildes (cwildes)" <netmod-bounces@ietf.org<mailto:netmod-bounces@ietf.org> on behalf of cwildes@cisco.com<mailto:cwildes@cisco.com>> wrote:

Hi,

I just posted draft-ietf-netmod-syslog-model-12 which addresses the concerns that Alex and Andy raised in their review of draft 11.

Changes from draft 11 to draft 12 can be seen at this link:
https://www.ietf.org/rfcdiff?url1=draft-ietf-netmod-syslog-model-11&url2=draft-ietf-netmod-syslog-model-12&difftype=--hwdiff

Please review and comment.

Thanks,

Clyde

From: "Clyde Wildes (cwildes)" <cwildes@cisco.com>
Date: Wednesday, January 11, 2017 at 2:54 PM
To: Andy Bierman <andy@yumaworks.com>
Cc: Alex Campbell <Alex.Campbell@aviatnet.com>, "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] WG Last Call for draft-ietf-netmod-syslog-model-11

Any

My comments inline as [clyde2]…

From: Andy Bierman <andy@yumaworks.com>
Date: Saturday, December 31, 2016 at 8:24 AM
To: "Clyde Wildes (cwildes)" <cwildes@cisco.com>
Cc: Alex Campbell <Alex.Campbell@aviatnet.com>, "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] WG Last Call for draft-ietf-netmod-syslog-model-11



On Fri, Dec 30, 2016 at 10:16 AM, Clyde Wildes (cwildes) <cwildes@cisco.com<mailto:cwildes@cisco.com>> wrote:
Hi Andy,

Thanks for taking the time to review the model.

My comments are inline as [clyde]…

From: netmod <netmod-bounces@ietf.org<mailto:netmod-bounces@ietf.org>> on behalf of Andy Bierman <andy@yumaworks.com<mailto:andy@yumaworks.com>>
Date: Tuesday, December 27, 2016 at 3:04 PM
To: Alex Campbell <Alex.Campbell@Aviatnet.com>
Cc: "netmod@ietf.org<mailto:netmod@ietf.org>" <netmod@ietf.org<mailto:netmod@ietf.org>>
Subject: Re: [netmod] WG Last Call for draft-ietf-netmod-syslog-model-11

Hi,

I am also considering an implementation.
I share the same concerns that Alex has brought up.

Some detailed comments:

1) /syslog/actions: seems like everything is in this container.
 Why is it needed?  Seems like it could be removed as it serves no purpose

[clyde] Although this model is currently designated as config only, we could add operational data and rpc leaves in the future. The actions container is to future-proof the model.

2) 8 features: the granularity seems wrong.  The main container for each section
 should have its own if-feature
      /console
      /buffer
      /file
      /remote

[clyde] We have gone back and forth on this…some have complained that there are too many features. I will be happy to add a feature for each action. Note that we studied the implementation of each action by six vendors including Linux and opted to not add features for actions implemented by at least 3 vendors. Vendors not implementing an action could create a deviation.


I prefer 1 mandatory-to-implement and a minimal number of additional options.

  /console
  /file
  /remote

These are all mandatory-to-implement..
IMO only /file should be mandatory-to-implement.

[clyde2] I will remove the buffer and session actions in the next draft and will make the remaining three features.


3) What is the 'buffer' container for?
  How is the internal memory accessed by the client?

[clyde] buffer is implemented by vendors typically for routers capable of generating many syslog messages in event-storm bursts. Logging to memory (aka buffer) allows the preservation of syslog messages which might otherwise be lost.



IMO it should be removed from the draft.
We certainly have changed the IETF NM focus.
In SNMP-land we routinely left the configuration out of scope
and standardized the monitoring.  Now we are standardizing
the configuration and leaving the monitoring out of scope?
I prefer complete standard solutions only.

There is no standard way to access the /console either.
Since the console provides "show log" I really do not see a need for
/buffer at all.

[clyde2] The buffer action will be removed.
A “show log” command is used to access the buffers. As this model is current designed as a configuration only model, there is no operational leaves for show log, or rpc leaves for clear log.

4) selector-facility: Seems like no-facilities servers the same purpose
    as an empty facility-list. The choice is not needed; just use the facility-list

[clyde] This was changed as a result of Alex’s feedback – please see my response to him. The model will be changed to the following:


    container selector {

      description

        "This container describes the log selector parameters

         for syslog.";

      list facility-list {

        key facility;

        description

          "This list describes a collection of syslog

           facilities and severities.";

        leaf facility {

          type union {

            type identityref {

              base syslogtypes:syslog-facility;

            }

            type enumeration {

              enum all {

                description

                  "This enum describes the case where all

                   facilities are requested.";

              }

            }

          }

          description

            "The leaf uniquely identifies a syslog facility.";

        }

        uses log-severity;

      }

      leaf pattern-match {

        if-feature select-match;

        type string;

        description

          "This leaf desribes a Posix 1003.2 regular expression

           string that can be used to select a syslog message for

           logging. The match is performed on the RFC 5424

           SYSLOG-MSG field.";

      }


5) pattern-match:


      leaf pattern-match {

        if-feature select-match;

        type string;

        description

          "This leaf desribes a Posix 1003.2 regular expression

           string that can be used to select a syslog message for

           logging. The match is performed on the RFC 5424

           SYSLOG-MSG field.";

      }


The field SYSLOG-MSG is referenced but never defined or listed in
the terminology section.

[clyde] This will be fixed in the next draft.

6) how are the syslog-facility identities mapped to SYSLOG messages?
6a) how to distinguish acme:foo-facility from example:foo-facility in a SYSLOG message?

[clyde] I do not understand your question. The current implementation of facilities was designed with the help of several Yang Doctors. The requirement is to support the facilities as called out in RFC 5424 as well as vendor specific facilities that can be added through augmentation. Vendor specific facilities are not meant to be used across multiple vendor implementations.



The filter is based on an identityref, which is a module-qualified name,
e.g., acme:foo-facility and example:foo-facility are different entities.
In the syslog message, only the string foo-facility will be present.
The draft claims to provide extensible facilities,(see A.1)  but it only
seems to work if the identities do not contain any duplicates.


[clyde2] In my experience looking at multiple vendor implementations I did not see any duplicates. If you have a suggestion on another way to extend facilities, I am all ears.

7) source-interface: what if the server does not let a source interface be used and instead
    normal routing determines the source interface (this leaf is very router-centric)

[clyde] source-interface is optional. If not specified normal routing flow would be used.

8) signing-options: are these widely deployed on all routers and Linux hosts?

[clyde] Alex Clemm asked that we include syslog signing-options. This is implemented by at least Linux rsyslog.

9) logrotate: there are several features related to log file cleanup allowing lots of
    server variability and forces the client to support all the options.  Can't this be simplified
   and all the micro-behavior YANG features removed?

[clyde] This was designed by merging the requirements from several vendors. All of the variants specified are with if-feature so that the client does not have to support all options.


There seems to be some procedures implied by these YANG objects,
but it is not specified.

The 4 different methods (each with its own feature), are in a container.
Since container 'file-rotation' is in list 'log-file', the rotation variant
can be different for every file.  Is this really how implementations work?

[clyde2] We consolidated the requirements from multiple vendors.

Juniper log file archiving is available via a global setting or on an individual file – both number of files and file size are supported. See https://www.juniper.net/documentation/en_US/junos12.3/information-products/topic-collections/syslog-messages/index.html?jd0e921.html

Cisco log file archiving is specified for an individual file. File size and optionally a hard code maximum number of bytes set aside for logging or a percent of total disk space available for logging may be specified.
http://www.cisco.com/c/en/us/td/docs/ios-xml/ios/esm/command/esm-cr-book/esm-cr-a1.html#wp8708534740

Alcatel-Lucent log file archiving is specified for an individual file and supports rollover in minutes and retention in hours.
https://infoproducts.alcatel-lucent.com/html/0_add-h-f/93-0071-10-01/7750_SR_OS_System_Management_Guide/Logcli.html#1038301

The server is free to support from none to all of the archiving features (note: they are specified as features).


Also, the different parameters in this container can interact if the server
supports more than 1 feature.  The draft does not say anything about
combining them.

E.g.:


           leaf number-of-files {

              if-feature file-limit-size;

              type uint32;

              description

                "This leaf specifies the maximum number of log

                 files retained. Specify 1 for implementations

                 that only support one log file.";

            }


How does the client know if the server only supports 1 file or not?
This should really be revisions, since these files are per log-file list entry.

[clyde2] Make the default 1?

If only 1 revision of the log-file is retained, then the meaning of the other
leafs is unclear. If there is only 1 log-file revision, then what happens
if the max-file-size # of megabytes, rollover # of minutes, or retention # of hours
is reached?  Does syslog monitoring stop for the log-file entry?

[clyde2] If one log-file is specified and max-file-size is specified, the single file is overwritten when max-file-size limit is encountered.

How does the client access different revisions of the log file? Or even list them?
How does the client know the current size of lifetime of the log-file
They do not have names. Is it assumed they will be the log-file/name field
appended with ".1", ".2", etc.?

[clyde2] There is no attempt to support oper data in this model.


Thanks,

Clyde
10) numeric limits: there is some odd usage of YANG types; some limits are uint64, some uint32,
some uint16.  Seems like uint32 is sufficient

[clyde]  The signing-options counts are as per the syslog-sign spec (RFC 5848) which is uint16. I will make all others uint32 except for the buffer size limit which I will leave at unit64.

Result:
<seven signing-options counters> uint16
buffer-limit-bytes uint64
buffer-limit-messages uint32 (was formally uint64)
number-of-files uint32
max-file-size uint32 (was formally uint64)
rollover unit32
retention unit32 (was formally uint16)


Thanks,

Clyde





Andy


Andy


On Tue, Dec 13, 2016 at 8:16 PM, Alex Campbell <Alex.Campbell@aviatnet.com<mailto:Alex.Campbell@aviatnet.com>> wrote:
I am considering to implement the data model in this draft.

I have reviewed this draft and found the following issues. In approximately decreasing order of severity:

* In the "selector-facility" choice statement the cases have misleading names - the case where no facility is matched is named "facility", and the case where specific facilities are matched is named "name". I suggest "no-facilities" and "specified-facilities", or similar.

* I disagree with the premise of the "no-facilities" case, which is that it can be used to disable a log action, according to the description:

     description
            "This case specifies no facilities will match when
             comparing the syslog message facility. This is a
             method that can be used to effectively disable a
             particular log-action (buffer, file, etc).";

  If an administrator wants to disable a log action they should do it by either removing it from the configuration, or by setting an "enabled" leaf to false.
  With that in mind, there is no reason for the "no-facilities" case to exist.

* What is the behaviour of a selector if neither "no-facilities" nor "facility-list" is present?
* In the "selector" grouping it is not clear how the facility and pattern conditions are combined to decide whether a message is selected.
  Must they both match the message, or is it sufficient for either one to match the message?
* Not all servers have a console; there should be a feature to indicate whether logging to the console is supported.
* Likewise, not all servers may support logging to user sessions.
* Likewise, not all servers may support a user-accessible filesystem.
* RFC 5424 states that the severity and protocol values are not normative.
* It's not clear to me why this needs to be split into two modules. Is it so that other modules can define logging parameters but still be usable on a device without syslog?
* "log-severity" defines a severity filter, not a severity, so its name is misleading.
* Perhaps the "severity" type and the facility identities should have "reference" statements referring to RFC 5424, rather than referring to it in the description.
* In section "8.2", "admisintrator" is a typo.

I assume that the means of accessing the memory buffer and log files are out of scope of this data model.

Alex

________________________________________
From: netmod <netmod-bounces@ietf.org<mailto:netmod-bounces@ietf.org>> on behalf of Kent Watsen <kwatsen@juniper.net<mailto:kwatsen@juniper.net>>
Sent: Wednesday, 14 December 2016 2:01 p.m.
To: netmod@ietf.org<mailto:netmod@ietf.org>
Subject: [netmod] WG Last Call for draft-ietf-netmod-syslog-model-11

This is a notice to start a two-week NETMOD WG last call for the document:

    A YANG Data Model for Syslog Configuration
    https://tools.ietf.org/html/draft-ietf-netmod-syslog-model-11

Please indicate your support or concerns by Tuesday, December 27, 2016.

We are particularly interested in statements of the form:
  * I have reviewed this draft and found no issues.
  * I have reviewed this draft and found the following issues: ...

As well as:
  * I have implemented the data model in this draft.
  * I am implementing the data model in this draft.
  * I am considering to implement the data model in this draft.
  * I am not considering to implement the data model in this draft.

Thank you,
NETMOD WG Chairs



_______________________________________________
netmod mailing list
netmod@ietf.org<mailto:netmod@ietf.org>
https://www.ietf.org/mailman/listinfo/netmod

_______________________________________________
netmod mailing list
netmod@ietf.org<mailto:netmod@ietf.org>
https://www.ietf.org/mailman/listinfo/netmod