Re: [BEHAVE] Comments on draft-sivakumar-behave-nat-logging-03

Dave Thaler <dthaler@microsoft.com> Sun, 13 November 2011 03:45 UTC

Return-Path: <dthaler@microsoft.com>
X-Original-To: behave@ietfa.amsl.com
Delivered-To: behave@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 2936A1F0C3E for <behave@ietfa.amsl.com>; Sat, 12 Nov 2011 19:45:35 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -110.604
X-Spam-Level:
X-Spam-Status: No, score=-110.604 tagged_above=-999 required=5 tests=[AWL=-0.005, BAYES_00=-2.599, RCVD_IN_DNSWL_HI=-8, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id uH5LhRa53M3x for <behave@ietfa.amsl.com>; Sat, 12 Nov 2011 19:45:34 -0800 (PST)
Received: from smtp.microsoft.com (mail2.microsoft.com [131.107.115.215]) by ietfa.amsl.com (Postfix) with ESMTP id 91ECE1F0C34 for <behave@ietf.org>; Sat, 12 Nov 2011 19:45:34 -0800 (PST)
Received: from TK5EX14MLTC104.redmond.corp.microsoft.com (157.54.79.159) by TK5-EXGWY-E802.partners.extranet.microsoft.com (10.251.56.168) with Microsoft SMTP Server (TLS) id 8.2.176.0; Sat, 12 Nov 2011 19:45:34 -0800
Received: from TK5EX14MLTW652.wingroup.windeploy.ntdev.microsoft.com (157.54.71.68) by TK5EX14MLTC104.redmond.corp.microsoft.com (157.54.79.159) with Microsoft SMTP Server (TLS) id 14.1.355.3; Sat, 12 Nov 2011 19:45:34 -0800
Received: from TK5EX14MBXW601.wingroup.windeploy.ntdev.microsoft.com ([169.254.1.162]) by TK5EX14MLTW652.wingroup.windeploy.ntdev.microsoft.com ([157.54.71.68]) with mapi id 14.01.0355.003; Sat, 12 Nov 2011 19:45:34 -0800
From: Dave Thaler <dthaler@microsoft.com>
To: ssenthil <ssenthil@cisco.com>, "behave@ietf.org" <behave@ietf.org>
Thread-Topic: [BEHAVE] Comments on draft-sivakumar-behave-nat-logging-03
Thread-Index: AcyfW5BCln8kX3wLSUicEd9FWWl3jQAfrm8OAAjyqmAAaZgjKwAEF8Lw
Date: Sun, 13 Nov 2011 03:45:33 +0000
Message-ID: <9B57C850BB53634CACEC56EF4853FF653B2FF7C6@TK5EX14MBXW601.wingroup.windeploy.ntdev.microsoft.com>
References: <9B57C850BB53634CACEC56EF4853FF653B2EBF5A@TK5EX14MBXW601.wingroup.windeploy.ntdev.microsoft.com> <CAE488F4.1B6D5%ssenthil@cisco.com>
In-Reply-To: <CAE488F4.1B6D5%ssenthil@cisco.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [157.54.51.43]
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Subject: Re: [BEHAVE] Comments on draft-sivakumar-behave-nat-logging-03
X-BeenThere: behave@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: mailing list of BEHAVE IETF WG <behave.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/behave>, <mailto:behave-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/behave>
List-Post: <mailto:behave@ietf.org>
List-Help: <mailto:behave-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/behave>, <mailto:behave-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 13 Nov 2011 03:45:35 -0000

> > This draft does not currently allow you to write apps that collect and
> > process them without having to deal with vendor specific
> > implementations.  To get that, you'd have to specify what protocol to
> > use.  Otherwise you have to deal with vendor specific protocol code
> > anyway so you haven't met your stated goal.
> 
> There are many choices of the protocol that can be used to transport the
> data. But we wanted to stay away from getting into exact recommendation
> of the protocol to use.

Then you should change your goal.   Personally I would be in favor of either
of two approaches:
a) be completely abstract, focus on requirements, and not protocol.
   This is what lsn-requirements draft does already.
b) be concrete, specifying a solution for a particular protocol.

Currently this draft does neither.  It's halfway in between, which is
the problem I have with it.

> >>> 4) Section 4 says:
> >>>> Prior to logging any events, the NAT device MUST send the template
> >>>> of the record to the collector to declare the format of the data
> >>>> record that it is using to send the events.
> >>>
> >>> The above MUST might make sense for a specific protocol, but since
> >>> this document currently doesn't require any specific protocol the
> >>> MUST
> >> doesn't
> >>> make sense.   For example, if the protocol is SNMP Traps or
> >> InformRequests,
> >>> then the format is specified in a MIB and there's no
> >>> need for the NAT device to send it a MIB.   Similarly for any other
> protocol
> >>> the collector might have some other way of getting the template from
> >>> somewhere other than the NAT device.
> >>
> >> I am not sure I see the connection between the protocol specification
> >> and the ability to send templates. The reason for sending the
> >> template is that the same device could be sending multiple templates
> >> (one for nat44 create event and the other for NAT64 delete event and
> >> another for a NAT44 quota exceeded event. All of them carry different
> >> data sets and hence the template is necessary.
> >
> > I understand you didn't follow what I said, so I'll try to rephrase.
> > A NAT device can send all of this information to a collector without
> sending any
> > "template" before sending the information.   Of course since you never
> defined
> > the term template, I'm assuming it means schema.   The collector might
> already
> > have the templates, and there's many examples of this today.
> >
> I will define what a template is in the next rev. Yes, schema and template are
> the same. The problem with the fixed templates is that it makes it difficult to
> change and adopt to different implementations. Let me give you an
> example.
> If the schema/template changes the data to be exported for example an
> previously optional field now becomes a part of the new template, then the
> collector device need to change its template too. Having the templates sent
> over dynamically provides a much greater benefit and ability to change the
> schema.

Defining a "template" and sending it to the server is specifying part of a
protocol (and would certainly not apply to some protocols) and is one of 
the reasons this draft is not currently in category (a) as I defined it above.  
Another reason where it is not abstract (i.e. not in category a) is that it
defines bit lengths of data items.   That implies that IP addresses and ports
are sent in binary format, not in (say) string format, and hence is specifying
part of a protocol.

My recommendation would be to pick (a) or (b) and not try to be somewhere
in between, which I find confusing.

-Dave