[BEHAVE] Comments on draft-sivakumar-behave-nat-logging-05

Julia Renouard <J.Renouard@F5.com> Wed, 02 January 2013 22:28 UTC

Return-Path: <J.Renouard@F5.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 A74D421F87D4 for <behave@ietfa.amsl.com>; Wed, 2 Jan 2013 14:28:32 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -9.668
X-Spam-Level:
X-Spam-Status: No, score=-9.668 tagged_above=-999 required=5 tests=[AWL=0.929, BAYES_00=-2.599, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-8]
Received: from mail.ietf.org ([64.170.98.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id QBYHel2mp5CY for <behave@ietfa.amsl.com>; Wed, 2 Jan 2013 14:28:29 -0800 (PST)
Received: from mail.f5.com (mail.f5.com [208.85.209.139]) by ietfa.amsl.com (Postfix) with ESMTP id 810AB21F8767 for <behave@ietf.org>; Wed, 2 Jan 2013 14:28:29 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=f5.com; i=J.Renouard@f5.com; q=dns/txt; s=seattle; t=1357165709; x=1388701709; h=from:to:subject:date:message-id:mime-version; bh=hpLwSE1VhB5kEXJ2M2JnAtGcfOHguQ1aJKrXLJFJzjo=; b=KplGvcRKtMYCuvYR1WWR4xsBv3taQdaHw+i6ZEHHZcUo4F8ClZhEjMS1 P0HrtXcih639OcY1xks7XjZN4/8yqUm93FmdPdTow7kX9yQHyO9H8eysX m9060AhlDh/UZXUXzcNaZNxaHU7FuB33oYAm07s1xg5kIxJmRmhpfoA+v g=;
X-IronPort-AV: E=Sophos; i="4.84,398,1355097600"; d="scan'208,217"; a="59582409"
Received: from unknown (HELO exchmail.f5net.com) ([192.168.10.240]) by mail.f5.com with ESMTP/TLS/AES128-SHA; 02 Jan 2013 22:28:28 +0000
Received: from SEAEMBX01.olympus.F5Net.com ([fe80::3440:4256:38f6:d3a0]) by SEAECAS03.olympus.F5Net.com ([::1]) with mapi id 14.02.0283.003; Wed, 2 Jan 2013 14:28:27 -0800
From: Julia Renouard <J.Renouard@F5.com>
To: "Reinaldo Penno (repenno)" <repenno@cisco.com>, "Senthil Sivakumar (ssenthil)" <ssenthil@cisco.com>, "behave@ietf.org" <behave@ietf.org>
Thread-Topic: Comments on draft-sivakumar-behave-nat-logging-05
Thread-Index: Ac3pM+wgT/qoVm2nTy6+PuaNjoLN5Q==
Date: Wed, 02 Jan 2013 22:28:26 +0000
Message-ID: <04B0EA2BFC1C91479AD86F776659AE7530B6B81E@SEAEMBX01.olympus.F5Net.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [192.168.16.200]
Content-Type: multipart/alternative; boundary="_000_04B0EA2BFC1C91479AD86F776659AE7530B6B81ESEAEMBX01olympu_"
MIME-Version: 1.0
Subject: [BEHAVE] Comments on draft-sivakumar-behave-nat-logging-05
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: Wed, 02 Jan 2013 22:28:32 -0000

Hi Reinaldo & Senthil -

Thank you for your work here.  I know this has been through a few iterations .  I do think this is needed minimally as guidance.   This was the only thing we found, save for section 4 in behave-lsn-requirements that gave guidance on CGN logging.  And your justification is spot-on.   Now for feedback...

Summary:
First, we are very concerned about the re-enumeration of natEvent values in section 4.2.  It is not good practice and is disruptive to implementers to re-enumerate published values.  Also the values created here are too specific and make this not-easily extended.    The only exception I might make here is to change the existing "Pool Exhausted" value to be "Translation Failure" or simply add a new enum for this.  I think generic events are better than specific.  More on this below.

I would like to see this draft reference and be consistent with draft-ietf-behave-lsn-requirements-x which does describe, in section 4, logging requirements for a CGN.  I think this document needs align with the logging requirements here in the overall goals and constraints.  Namely, the primary goal for NAT logging is to enable the ability to identify a subscriber - often for legal reasons.  The constraint that we need to be mindful of is logging resource consumption.  Many CGN features are specifically designed to minimize log size while still maintaining the ability to identify subscribers - Port block allocation for example.

CGN logging for the purposes of identifying subscribers and with the goal of minimizing data consumption, needs to focus on the NAT translations (bindings) and be as minimalistic as possible.  Flow logging or session logging has a different purpose - statistical, data usage analysis, quality analysis, security, billing...  There may be some overlap of use-cases but this document doesn't really speak to them.  It might be interesting to look at typical/traditional NetFlow/IPFIX Flow logging and see how that might be different for a NAT.   But there are at least 2 different use-cases - if this document wants to address both, I think it would be useful to distinguish them.  But flow/session logging needs to be discrete because administrators may only choose translation logging for data conservation purposes.  It seems to me that your session create/delete events fall into this camp, although I'm interested in your intent here.  Minimally I'd be interested in a comparison.


My high level recommendations:
1.       Don't renumber IANA defined enums.  Reasons cited above.
2.       Keep high level events generic.  This makes them more extensible.  "Create", "Delete" and "Translation Failure" - with more data as additional (optional) IE's.  For example, keeping the "error" event generic allows collectors to universally identify an error, even as more error types are created.
3.       Be careful about error logging recommendations.  I would set these as MAY with comments about limiting how often these are emitted in a pool exhaustion case so as not to DoS the source or target system.
4.       Consider DSLite in your recommendations - what IE's should be used to report a DSLite subscriber?
5.       Make the Port Block Allocation extensions part of the "Create" and "Delete" event templates.
6.       Call out specifically which IE's are new.  Section 7 is not complete or accurate.  portRange* ID's have been defined.  You also have IE's identified which do not exist and are not called out in section 7.
7.       Section 4 - Event based Logging:  "Each of these events SHOULD be logged, unless they are administratively prohibited" - This is a problematic recommendation and is contrary to the need to minimize logging (i.e. logging every session )
8.       Bring this into alignment with draft-behave-lsn-requirements.   E.g. REQ-12. Destination addresses SHOULD NOT be logged.  That said, a mapping event MAY have a destination address if administrator requires it.  In which case I would recommend only 1 IE - destinationIPxAddress or postNATDestinationIPvxAddress - both seems redundant.
9.       Separate out session logging from translation logging.  Session logging bloats the data set and is unnecessary just for identifying subscribers
10.   Describe the difference between session logging and BIB(translation) logging and when to use them.  IMHO session logging looks a lot more like flow logging.  I'd be interested in a description of the differences and a separate of the two cases.  Perhaps flow logging for NAT's is a separate use-case.
11.   Look at using natPoolName optionally in more events - I think it will be useful, minimally for errors
12.   Can we find an IE to send a "subscriber identity"?  I'm wondering about #371, "userName" - for a mobile service provider this might actually be an IMSI or IMEI numbers.  This would be optional.
13.   Be mindful of the need for data conservation and to minimize logging in your MUST and SHOULD requirements.  MUST and SHOULD requirements should be minimalistic to achieve the base use-case and nothing more.  E.g. look to the data elements identified in behave-lsn-requirements.  But ideally it also gives guidance on some typical use-cases and how to achieve them.


One more nit:   [NAT-EVENT-LOG-IANA] - this link does not exist.  You should update this to be the IANA IPFIX IE registry.


Thanks again for this.  I hope this feedback is helpful.  We look forward to the next draft.

Happy New Year,

Julia Renouard