Internet Engineering Task Force (IETF)                         B. Claise
Request for Comments: 6759                                     P. Aitken
Category: Informational                                     N. Ben-Dvora
ISSN: 2070-1721                                      Cisco Systems, Inc.
                                                          November 2012


          Cisco Systems Export of Application Information in
                  IP Flow Information Export (IPFIX)

Abstract

  This document specifies a Cisco Systems extension to the IPFIX
  information model specified in RFC 5102 to export application
  information.

Status of This Memo

  This document is not an Internet Standards Track specification; it is
  published for informational purposes.

  This document is a product of the Internet Engineering Task Force
  (IETF).  It represents the consensus of the IETF community.  It has
  received public review and has been approved for publication by the
  Internet Engineering Steering Group (IESG).  Not all documents
  approved by the IESG are a candidate for any level of Internet
  Standard; see Section 2 of RFC 5741.

  Information about the current status of this document, any errata,
  and how to provide feedback on it may be obtained at
  http://www.rfc-editor.org/info/rfc6759.

Copyright Notice

  Copyright (c) 2012 IETF Trust and the persons identified as the
  document authors.  All rights reserved.

  This document is subject to BCP 78 and the IETF Trust's Legal
  Provisions Relating to IETF Documents
  (http://trustee.ietf.org/license-info) in effect on the date of
  publication of this document.  Please review these documents
  carefully, as they describe your rights and restrictions with respect
  to this document.  Code Components extracted from this document must
  include Simplified BSD License text as described in Section 4.e of
  the Trust Legal Provisions and are provided without warranty as
  described in the Simplified BSD License.





Claise, et al.                Informational                     [Page 1]

RFC 6759              Export of App. Info. in IPFIX        November 2012


Table of Contents

  1. Introduction ....................................................3
     1.1. Application Information Use Cases ..........................5
     1.2. Conventions Used in This Document ..........................5
  2. IPFIX Documents Overview ........................................5
  3. Terminology .....................................................6
     3.1. New Terminology ............................................6
  4. applicationId Information Element Specification .................6
     4.1. Existing Classification Engine IDs .........................7
     4.2. Selector ID Length per Classification ID ..................11
     4.3. Application Name Options Template Record ..................12
     4.4. Resolving IANA L4 Port Discrepancies ......................13
  5. Grouping Applications with Attributes ..........................13
     5.1. Options Template Record for Attribute Values ..............15
  6. Application ID Examples ........................................15
     6.1. Example 1: Layer 2 Protocol ...............................15
     6.2. Example 2: Standardized IANA Layer 3 Protocol .............16
     6.3. Example 3: Proprietary Layer 3 Protocol ...................17
     6.4. Example 4: Standardized IANA Layer 4 Port .................18
     6.5. Example 5: Layer 7 Application ............................19
     6.6. Example 6: Layer 7 Application with Private
          Enterprise Number (PEN) ...................................21
     6.7. Example: Port Obfuscation .................................22
     6.8. Example: Application Name Mapping Options Template ........23
     6.9. Example: Attributes Values Options Template Record ........24
  7. IANA Considerations ............................................25
     7.1. New Information Elements ..................................25
          7.1.1. applicationDescription .............................25
          7.1.2. applicationId ......................................26
          7.1.3. applicationName ....................................26
          7.1.4. classificationEngineId .............................26
          7.1.5. applicationCategoryName ............................29
          7.1.6. applicationSubCategoryName .........................29
          7.1.7. applicationGroupName ...............................29
          7.1.8. p2pTechnology ......................................29
          7.1.9. tunnelTechnology ...................................30
          7.1.10. encryptedTechnology ...............................30
     7.2. Classification Engine ID Registry .........................30
  8. Security Considerations ........................................30
  9. References .....................................................31
     9.1. Normative References ......................................31
     9.2. Informative References ....................................32
  10. Acknowledgements ..............................................33
  Appendix A. Additions to XML Specification of IPFIX Information
              (Non-normative) .......................................34
  Appendix B. Port Collisions Tables (Non-normative) ................39
  Appendix C. Application Registry Example (Non-normative) ..........43



Claise, et al.                Informational                     [Page 2]

RFC 6759              Export of App. Info. in IPFIX        November 2012


List of Figures

  Figure 1: applicationId Information Element .......................7
  Figure 2: Selector ID Encoding ...................................12

List of Tables

  Table 1: Existing Classification Engine IDs .......................7
  Table 2: Selector ID Default Length per Classification
           Engine ID ...............................................11
  Table 3: Application ID Static Attributes ........................13
  Table 4: Different Protocols on UDP and TCP ......................39
  Table 5: Different Protocols on SCTP and TCP .....................40

1.  Introduction

  Today, service providers and network administrators are looking for
  visibility into the packet content rather than just the packet
  header.  Some network devices' Metering Processes inspect the packet
  content and identify the applications that are utilizing the network
  traffic.  Applications in this context are defined as networking
  protocols used by networking processes that exchange packets between
  them (such as web applications, peer-to-peer applications, file
  transfer, e-mail applications, etc.).  Applications can be further
  characterized by other criteria, some of which are application
  specific.  Examples include: web application to a specific domain,
  per-user specific traffic, a video application with a specific codec,
  etc.

  The application identification is based on several different methods
  or even a combination of methods:

  1. L2 (Layer 2) protocols (such as ARP (Address Resolution Protocol),
     PPP (Point-to-Point Protocol), LLDP (Link Layer Discovery
     Protocol))

  2. IP protocols (such as ICMP (Internet Control Message Protocol),
     IGMP (Internet Group Management Protocol), GRE (Generic Routing
     Encapsulation)

  3. TCP or UDP ports (such as HTTP, Telnet, FTP)

  4. Application layer header (of the application to be identified)

  5. Packet data content

  6. Packets and traffic behavior




Claise, et al.                Informational                     [Page 3]

RFC 6759              Export of App. Info. in IPFIX        November 2012


  The exact application identification methods are part of the Metering
  Process internals that aim to provide an accurate identification and
  minimize false identification.  This task requires a sophisticated
  Metering Process since the protocols do not behave in a standard
  manner.

  1. Applications use port obfuscation where the application runs on a
     different port than the IANA assigned one.  For example, an HTTP
     server might run on TCP port 23 (assigned to telnet in
     [IANA-PORTS]).

  2. IANA port registries do not accurately reflect how certain ports
     are "commonly" used today.  Some ports are reserved, but the
     application either never became prevalent or is not in use today.

  3. The application behavior and identification logic become more and
     more complex.

  For that reason, such Metering Processes usually detect applications
  based on multiple mechanisms in parallel.  Detection based only on
  port matching might wrongly identify the application.  If the
  Metering Process is capable of detecting applications more
  accurately, it is considered to be stronger and more accurate.

  Similarly, a reporting mechanism that uses L4 port based applications
  only, such as L4:<known port>, would have similar issues.  The
  reporting system should be capable of reporting the applications
  classified using all types of mechanisms.  In particular,
  applications that do not have any IANA port definition.  While a
  mechanism to export application information should be defined, the L4
  port being used must be exported using the destination port
  (destinationTransportPort at [IANA-IPFIX]) in the corresponding IPFIX
  record.

  Applications could be identified at different OSI layers, from layer
  2 to layer 7.  For example, the Link Layer Distribution Protocol
  (LLDP) [LLDP] can be identified in layer 2, ICMP can be identified in
  layer 3 [IANA-PROTO], HTTP can be identified in layer 4 [IANA-PORTS],
  and Webex can be identified in layer 7.

  While an ideal solution would be an IANA registry for applications
  above (or inside the payload of) the well-known ports [IANA-PORTS],
  this solution is not always possible.  Indeed, the specifications for
  some applications embedded in the payload are not available.  Some
  reverse engineering as well as a ubiquitous language for application
  identification would be required conditions to be able to manage an
  IANA registry for these types of applications.  Clearly, these are
  blocking factors.



Claise, et al.                Informational                     [Page 4]

RFC 6759              Export of App. Info. in IPFIX        November 2012


  This document specifies the Cisco Systems application information
  encoding (as described in Section 4) to export the application
  information with the IPFIX protocol [RFC5101].  However, the layer 7
  application registry values are out of scope of this document.

1.1.  Application Information Use Cases

  There are several use cases for application information:

  1. Application Visibility

     This is one of the main cases for using application information.
     Network administrators are using application visibility to
     understand the main network consumers, network trends, and user
     behavior.

  2. Security Functions

     Application knowledge is sometimes used in security functions in
     order to provide comprehensive functions such as Application-based
     firewall, URL filtering, parental control, intrusion detection,
     etc.

  All of the above use cases require exporting application information
  to provide the network function itself or to log the network function
  operation.

1.2.  Conventions Used in This Document

  The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
  "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
  document are to be interpreted as described in RFC 2119 [RFC2119].

2.  IPFIX Documents Overview

  The IPFIX protocol [RFC5101] provides network administrators with
  access to IP Flow information.

  The architecture for the export of measured IP Flow information out
  of an IPFIX Exporting Process to a Collecting Process is defined in
  the IPFIX Architecture [RFC5470], per the requirements defined in RFC
  3917 [RFC3917].

  The IPFIX Architecture [RFC5470] specifies how IPFIX Data Records and
  Templates are carried via a congestion-aware transport protocol from
  IPFIX Exporting Processes to IPFIX Collecting Processes.





Claise, et al.                Informational                     [Page 5]

RFC 6759              Export of App. Info. in IPFIX        November 2012


  IPFIX has a formal description of IPFIX Information Elements, their
  names, types, and additional semantic information, as specified in
  the IPFIX information model [RFC5102].

  In order to gain a level of confidence in the IPFIX implementation,
  probe the conformity and robustness, and allow interoperability, the
  Guidelines for IPFIX Testing [RFC5471] presents a list of tests for
  implementers of compliant Exporting Processes and Collecting
  Processes.

  The Bidirectional Flow Export [RFC5103] specifies a method for
  exporting bidirectional flow (biflow) information using the IPFIX
  protocol, representing each biflow using a single Flow Record.

  "Reducing Redundancy in IP Flow Information Export (IPFIX) and Packet
  Sampling (PSAMP) Reports" [RFC5473] specifies a bandwidth-saving
  method for exporting Flow or packet information, by separating
  information common to several Flow Records from information specific
  to an individual Flow Record: common Flow information is exported
  only once.

3.  Terminology

  IPFIX-specific terminology used in this document is defined in
  Section 2 of the IPFIX protocol specification [RFC5101].  As in
  [RFC5101], these IPFIX-specific terms have the first letter of a word
  capitalized when used in this document.

3.1.  New Terminology

  Application ID

     A unique identifier for an application.

  When an application is detected, the most granular application is
  encoded in the Application ID.

4.  applicationId Information Element Specification

  This document specifies the applicationId Information Element, which
  is a single field composed of two parts:

  1. 8 bits of Classification Engine ID.  The Classification Engine can
     be considered as a specific registry for application assignments.

  2. n bits of Selector ID.  The Selector ID length varies depending on
     the Classification Engine ID.




Claise, et al.                Informational                     [Page 6]

RFC 6759              Export of App. Info. in IPFIX        November 2012


   0                   1                   2                   3
   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  | Class. Eng. ID|         Selector ID  ...                      |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                             ...                               |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

            Figure 1: applicationId Information Element

  Classification Engine ID

     A unique identifier for the engine that determined the Selector
     ID.  Thus, the Classification Engine ID defines the context for
     the Selector ID.

  Selector ID

     A unique identifier of the application for a specific
     Classification Engine ID.  Note that the Selector ID length varies
     depending on the Classification Engine ID.

  The Selector ID term is a similar concept to the selectorId
  Information Element, specified in the PSAMP Protocol
  [RFC5476][RFC5477].

4.1.  Existing Classification Engine IDs

  The following Classification Engine IDs have been allocated:

  Name         Value  Description

               0      Invalid.

  IANA-L3      1      The Assigned Internet Protocol
                      Number (layer 3 (L3)) is exported
                      in the Selector ID.
                      See [IANA-PROTO].

  PANA-L3      2      Proprietary layer 3 definition.
                      An enterprise can export its own
                      layer 3 protocol numbers.  The
                      Selector ID has a global
                      significance for all devices from
                      the same enterprise.






Claise, et al.                Informational                     [Page 7]

RFC 6759              Export of App. Info. in IPFIX        November 2012


  IANA-L4      3      The IANA layer 4 (L4) well-known
                      port number is exported in the
                      Selector ID.  See [IANA-PORTS].
                      Note: as an IPFIX flow is
                      unidirectional, it contains the
                      destination port.

  PANA-L4      4      Proprietary layer 4 definition.
                      An enterprise can export its own
                      layer 4 port numbers.  The
                      Selector ID has global
                      significance for devices from the
                      same enterprise.  Example: IPFIX was
                      pre-assigned the port 4739 using the IANA
                      early allocation process [RFC4020] years
                      before the document was published as an RFC.
                      While waiting for the RFC and its associated
                      IANA registration, Selector ID 4739
                      was used with this PANA-L4.

               5      Reserved.

  USER-        6      The Selector ID represents
  Defined             applications defined by the user
                      (using CLI, GUI, etc.) based on
                      the methods described in Section
                      1.  The Selector ID has a local
                      significance per device.

               7      Reserved.

               8      Reserved.

               9      Reserved.

               10     Reserved.

               11     Reserved.

  PANA-L2      12     Proprietary layer 2 (L2)
                      definition.  An enterprise can
                      export its own layer 2
                      identifiers.  The Selector ID
                      represents the enterprise's
                      unique global layer 2
                      applications.  The Selector ID has
                      a global significance for all




Claise, et al.                Informational                     [Page 8]

RFC 6759              Export of App. Info. in IPFIX        November 2012


                      devices from the same enterprise.
                      Examples include Cisco Subnetwork
                      Access Protocol (SNAP).

  PANA-L7      13     Proprietary layer 7 definition.
                      The Selector ID represents the
                      enterprise's unique global ID for
                      layer 7 applications.  The
                      Selector ID has a global
                      significance for all devices from
                      the same enterprise.  This
                      Classification Engine ID is used
                      when the application registry is
                      owned by the Exporter
                      manufacturer (referred to as the
                      "enterprise" in this document).

               14     Reserved.

               15     Reserved.

               16     Reserved.

               17     Reserved.

  ETHERTYPE    18     The Selector ID represents the
                      well-known Ethertype.  See
                      [ETHERTYPE].

  LLC          19     The Selector ID represents the
                      well-known IEEE 802.2 Link Layer
                      Control (LLC) Destination Service
                      Access Point (DSAP).  See [LLC].


  PANA-L7-     20     Proprietary layer 7 definition,
  PEN                 including a Private Enterprise
                      Number (PEN) [IANA-PEN] to identify
                      that the application registry
                      being used is not owned by the
                      Exporter manufacturer or to
                      identify the original
                      enterprise in the case of a
                      mediator or 3rd party device.  The
                      Selector ID represents the
                      enterprise unique global ID for
                      the layer 7 applications.  The




Claise, et al.                Informational                     [Page 9]

RFC 6759              Export of App. Info. in IPFIX        November 2012


                      Selector ID has a global
                      significance for all devices from
                      the same enterprise.

               21 to
                255   Available (255 is the maximum
                      Engine ID)

      Table 1: Existing Classification Engine IDs

  "PANA = Proprietary Assigned Number Authority".  In other words, an
  enterprise specific version of IANA for internal IDs.

  The PANA-L7 Classification Engine ID SHOULD be used when the
  application registry is owned by the Exporter manufacturer.  Even if
  the application registry is owned by the Exporter manufacturer, the
  PANA-L7-PEN MAY be used, specifying the manufacturer.

  For example, if Exporter A (from enterprise-A) wants to export its
  enterprise-A L7 registry, then it uses the PANA-L7 Classification
  Engine ID.  If Exporter B (from enterprise-B) wants to export its
  enterprise-B L7 registry, then it also uses the PANA-L7
  Classification Engine ID.

  The mechanism for the Collector to know about the Exporter PEN is out
  of scope of this document.  Possible tracks are SNMP polling, an
  Options Template exporting the privateEnterpriseNumber Information
  Element [IANA-IPFIX], hardcoded value, etc.

  An Exporter may classify the application according to another
  vendor's application registry.  For example, an IPFIX Mediator
  [RFC6183] may need to re-export applications received from different
  Exporters using different PANA-L7 application registries.  For
  example, if Exporter C (from enterprise-C) wants to reuse enterprise-
  D's application registry, then it uses PANA-L7-PEN with enterprise-
  D's PEN.

  When reporting application information from multiple Exporters from
  different enterprises (different PENs), the PANA-L7-PEN
  Classification Engine MUST be used in exported Flow Records, which
  allows the original enterprise ID to be reported.  The ID of the
  enterprise that defined the Application ID is identified by the
  enterprise's PEN.  For example, an IPFIX Mediator aggregates traffic
  from some Exporters which report enterprise-E applications and other
  Exporters that report enterprise-F applications.

  An example is displayed in Section 6.6.




Claise, et al.                Informational                    [Page 10]

RFC 6759              Export of App. Info. in IPFIX        November 2012


  Note that the PANA-L7 Classification Engine ID is also used for
  resolving IANA L4 port Discrepancies (see Section 4.4).

  The list in Table 1 is maintained by IANA thanks to the registry
  within the classificationEngineId Information Element.  See the IANA
  Considerations section.  The Classification Engine ID is part of the
  Application ID encoding, so the classificationEngineId Information
  Element is currently not required by the specifications in this
  document.  However, this Information Element was created for
  completeness, as it was anticipated that this Information Element
  will be required in the future.

4.2.  Selector ID Length per Classification ID

  As the Selector ID part of the Application ID is variable based on
  the Classification Engine ID value, the applicationId SHOULD be
  encoded in a variable-length Information Element [RFC5101] for IPFIX
  export.

  The following table displays the Selector ID default length for the
  different Classification Engine IDs.

     Classification               Selector ID default
     Engine ID Name               length (in bytes)

     IANA-L3                      1

     PANA-L3                      1

     IANA-L4                      2

     PANA-L4                      2

     USER-Defined                 3

     PANA-L2                      5

     PANA-L7                      3

     ETHERTYPE                    2

     LLC                          1

     PANA-L7-PEN                  3 (*)

              Table 2: Selector ID Default Length
                 per Classification Engine ID




Claise, et al.                Informational                    [Page 11]

RFC 6759              Export of App. Info. in IPFIX        November 2012


  (*) There are an extra 4 bytes for the PEN.  However, the PEN is not
  considered part of the Selector ID.

  If a legacy protocol such as NetFlow version 9 [RFC3954] is used, and
  this protocol doesn't support variable-length Information Elements,
  then either multiple Template Records (one per applicationId length),
  or a single Template Record corresponding to the maximum sized
  applicationId MUST be used.

  Application IDs MAY be encoded in a smaller number of bytes,
  following the same rules as for IPFIX Reduced Size Encoding
  [RFC5101].

  Application IDs MAY be encoded with a larger length.  For example, a
  normal IANA L3 protocol encoding would take 2 bytes since the
  Selector ID represents the protocol field from the IP header encoded
  in one byte.  However, an IANA L3 protocol encoding may be encoded
  with 3 bytes.  In this case, the Selector ID value MUST always be
  encoded in the least significant bits as shown in Figure 2.

   0                   1                   2                   3
   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |Class. Eng. ID |zero-valued upper-bits ... Selector ID         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                   Figure 2: Selector ID Encoding

4.3.  Application Name Options Template Record

  For Classification Engines that specify locally unique Application
  IDs (which means unique per engine and per router), an Options
  Template Record (see [RFC5101]) MUST be used to export the
  correspondence between the Application ID, the Application Name, and
  the Application Description.

  For Classification Engines that specify globally unique Application
  IDs, an Options Template Record MAY be used to export the
  correspondence between the Application ID, the Application Name and
  the Application Description, unless the mapping is hardcoded in the
  Collector, or known out of band (for example, by polling a MIB).

  An example Options Template is shown in Section 6.8.

  Enterprises may assign company-wide Application ID values for the
  PANA-L7 Classification Engine.  In this case, a possible optimization
  for the Collector is to keep the mappings between the Application IDs
  and the Application Names per enterprise, as opposed to per Exporter.



Claise, et al.                Informational                    [Page 12]

RFC 6759              Export of App. Info. in IPFIX        November 2012


4.4.  Resolving IANA L4 Port Discrepancies

  Even though IANA L4 ports usually point to the same protocols for
  both UDP, TCP or other transport types, there are some exceptions, as
  mentioned in Appendix B.

  Instead of imposing the transport protocol (UDP/TCP/SCTP/etc.) in the
  scope of the "Application Name Options Template Record" (Section 6.8)
  for all applications (in addition to having the transport protocol as
  a key-field in the Flow Record definition), the convention is that
  the L4 application is always TCP related.  So, whenever the Collector
  has a conflict in looking up IANA, it would choose the TCP choice.
  As a result, the UDP L4 applications from Table 3 and the SCTP L4
  applications from Table 4 are assigned in the PANA_L7 Application ID
  range, i.e., under Classification Engine ID 13.

  Currently, there are no discrepancies between the well-known ports
  for TCP and the Datagram Congestion Control Protocol (DCCP).

5.  Grouping Applications with Attributes

  Due to the high number of different Application IDs, Application IDs
  MAY be categorized into groups.  This offers the benefits of easier
  reporting and action, such as QoS policies.  Indeed, most
  applications with the same characteristics should be treated the same
  way; for example, all video traffic.

  Attributes are statically assigned per Application ID and are
  independent of the traffic.  The attributes are listed below:

     Name                   Description

     Category               An attribute that provides a first-
                            level categorization for each
                            Application ID.  Examples include
                            browsing, email, file-sharing,
                            gaming, instant messaging, voice-
                            and-video, etc.
                            The category attribute is encoded by
                            the applicationCategoryName
                            Information Element.

     Sub-Category           An attribute that provides a second-
                            level categorization for each
                            Application ID.  Examples include
                            backup-systems, client-server,
                            database, routing-protocol, etc.
                            The sub-category attribute is



Claise, et al.                Informational                    [Page 13]

RFC 6759              Export of App. Info. in IPFIX        November 2012


                            encoded by the
                            applicationSubCategoryName
                            Information Element.

     Application-           An attribute that groups multiple
     Group                  Application IDs that belong to the
                            same networking application.  For
                            example, the ftp-group contains
                            ftp-data (port 20), ftp (port 20),
                            ni-ftp (port 47), sftp (port 115),
                            bftp (port 152), ftp-agent(port
                            574), ftps-data (port 989).  The
                            application-group attribute is
                            encoded by the applicationGroupName
                            Information Element.

     P2P-Technology         Specifies if the Application ID is
                            based on peer-to-peer technology.
                            The P2P-technology attribute is
                            encoded by the p2pTechnology
                            Information Element.

     Tunnel-                Specifies if the Application ID is
     Technology             used as a tunnel technology.  The
                            tunnel-technology attribute is
                            encoded by the tunnelTechnology
                            Information Element.

     Encrypted              Specifies if the Application ID is
                            an encrypted networking protocol.
                            The encrypted attribute is encoded
                            by the encryptedTechnology
                            Information Element.

         Table 3: Application ID Static Attributes

  Every application is assigned to one applicationCategoryName, one
  applicationSubCategoryName, one applicationGroupName, and it has one
  p2pTechnology, one tunnelTechnology, and one encryptedTechnology.
  These new Information Elements are specified in the IANA
  Considerations section (Section 7.1).

  Maintaining the attribute values in IANA seems impossible to realize.
  Therefore, the attribute values per application are enterprise
  specific.






Claise, et al.                Informational                    [Page 14]

RFC 6759              Export of App. Info. in IPFIX        November 2012


5.1.  Options Template Record for Attribute Values

  An Options Template Record (see [RFC5101]) SHOULD be used to export
  the correspondence between each Application ID and its related
  Attribute values.  An alternative way for the Collecting Process to
  learn the correspondence is to populate these mappings out of band,
  for example, by loading a CSV file containing the correspondence
  table.

  The Attributes Option Template contains the application ID as a scope
  field, followed by the applicationCategoryName, the
  applicationSubCategoryName, the applicationGroupName, the
  p2pTechnology, the tunnelTechnology, and the encryptedTechnology
  Information Elements.

  A list of attributes may conveniently be exported using a
  subTemplateList per [RFC6313].

  An example is given in Section 6.9.

6.  Application ID Examples

  The following examples are created solely for the purpose of
  illustrating how the extensions proposed in this document are
  encoded.

6.1.  Example 1: Layer 2 Protocol

  The list of Classification Engine IDs in Table 1 shows that the layer
  2 Classification Engine IDs are 12 (PANA-L2), 18, (ETHERTYPE) and 19
  (LLC).

  From the Ethertype list, LLDP [LLDP] has the Selector ID value
  0x88CC, so 35020 in decimal:

  NAME    Selector ID
  LLDP    35020

  So, in the case of LLDP, the Classification Engine ID is 18 (LLC)
  while the Selector ID has the value 35020.

  Per Section 4, the applicationId Information Element is a single
  field composed of 8 bits of Classification Engine ID, followed by n
  bits of Selector ID.  From Table 2, the Selector ID length n is 2 for
  the ETHERTYPE Engine ID.






Claise, et al.                Informational                    [Page 15]

RFC 6759              Export of App. Info. in IPFIX        November 2012


  Therefore, the Application ID is encoded as:

      0                   1                   2
      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |       18      |             35020             |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

  So the Application ID has the decimal value of 1214668.  The format
  '18..35020' is used for simplicity in the examples below, to clearly
  express that two components of the Application ID.

  The Exporting Process creates a Template Record with a few
  Information Elements: amongst other things, the Application ID.  For
  example:

  - applicationId (key field)
  - octetTotalCount (non-key field)

  For example, a Flow Record corresponding to the above Template Record
  may contain:

      { applicationId='18..35020',
        octetTotalCount=123456 }

  The Collector has all the required information to determine that the
  application is LLDP, because the Application ID uses a global and
  well-known registry, i.e., the Ethertype.  The Collector can
  determine which application is represented by the Application ID by
  loading the registry out of band.

6.2.  Example 2: Standardized IANA Layer 3 Protocol

  From the list of Classification Engine IDs in Table 1, the IANA layer
  3 Classification Engine ID (IANA-L3) is 1.  From Table 2 the Selector
  ID length is 1 for the IANA-L3 Engine ID.

  From the list of IANA layer 3 protocols (see [IANA-PROTO]), ICMP has
  the value 1:

  Decimal    Keyword    Protocol                   Reference
  1          ICMP       Internet Control           [RFC792]
                         Message

  So, in the case of the standardized IANA layer 3 protocol ICMP, the
  Classification Engine ID is 1, and the Selector ID has the value of
  1.




Claise, et al.                Informational                    [Page 16]

RFC 6759              Export of App. Info. in IPFIX        November 2012


  Therefore, the Application ID is encoded as:

      0                   1
      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |       1       |       1       |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

  So, the Application ID has the value of 257.  The format '1..1'  is
  used for simplicity in the examples below.

  The Exporting Process creates a Template Record with a few
  Information Elements: amongst other things, the Application ID.  For
  example:

  - sourceIPv4Address (key field)
  - destinationIPv4Address (key field)
  - ipDiffServCodePoint (key field)
  - applicationId (key field)
  - octetTotalCount (non-key field)

  For example, a Flow Record corresponding to the above Template Record
  may contain:

      { sourceIPv4Address=192.0.2.1,
        destinationIPv4Address=192.0.2.2,
        ipDiffServCodePoint=0,
        applicationId='1..1',
        octetTotalCount=123456 }

  The Collector has all the required information to determine that the
  application is ICMP, because the Application ID uses a global and
  well-known registry, i.e., the IANA L3 protocol number.

6.3.  Example 3: Proprietary Layer 3 Protocol

  Assume that an enterprise has specified a new layer 3 protocol called
  "foo".

  From the list of Classification Engine IDs in Table 1, the
  proprietary layer 3 Classification Engine ID (PANA-L3) is 2.  From
  Table 2 the Selector ID length is 1 for the PANA-L3 Engine ID.

  A global registry within the enterprise specifies that the "foo"
  protocol has the value 90:

  Protocol    Protocol ID
  foo         90



Claise, et al.                Informational                    [Page 17]

RFC 6759              Export of App. Info. in IPFIX        November 2012


  So, in the case of the layer 3 protocol foo specified by this
  enterprise, the Classification Engine ID is 2, and the Selector ID
  has the value of 90.

  Therefore, the Application ID is encoded as:

      0                   1
      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |       2       |       90      |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

  So the Application ID has the value of 602.  The format '2..90' is
  used for simplicity in the examples below.

  The Exporting Process creates a Template Record with a few
  Information Elements: amongst other things, the Application ID.  For
  example:

  - sourceIPv4Address (key field)
  - destinationIPv4Address (key field)
  - ipDiffServCodePoint (key field)
  - applicationId (key field)
  - octetTotalCount (non-key field)

  For example, a Flow Record corresponding to the above Template Record
  may contain:

      { sourceIPv4Address=192.0.2.1,
        destinationIPv4Address=192.0.2.2,
        ipDiffServCodePoint=0,
        applicationId='2..90',
        octetTotalCount=123456 }

  Along with this Flow Record, a new Options Template Record would be
  exported, as shown in Section 6.8.

6.4.  Example 4: Standardized IANA Layer 4 Port

  From the list of Classification Engine IDs in Table 1, the IANA layer
  4 Classification Engine ID (IANA-L4) is 3.  From Table 2 the Selector
  ID length is 2 for the IANA-L4 Engine ID.

  From the list of IANA layer 4 ports (see [IANA-PORTS]), SNMP has the
  value 161:






Claise, et al.                Informational                    [Page 18]

RFC 6759              Export of App. Info. in IPFIX        November 2012


  Keyword    Decimal    Description
  snmp       161/tcp    SNMP
  snmp       161/udp    SNMP

  So, in the case of the standardized IANA layer 4 SNMP port, the
  Classification Engine ID is 3, and the Selector ID has the value of
  161.

  Therefore, the Application ID is encoded as:

      0                   1
      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |       3       |              161              |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

  So the Application ID has the value of 196769.  The format '3..161'
  is used for simplicity in the examples below.

  The Exporting Process creates a Template Record with a few
  Information Elements: amongst other things, the Application ID.  For
  example:

  - sourceIPv4Address (key field)
  - destinationIPv4Address (key field)
  - protocol (key field)
  - ipDiffServCodePoint (key field)
  - applicationId (key field)
  - octetTotalCount (non-key field)

  For example, a Flow Record corresponding to the above Template Record
  may contain:

      { sourceIPv4Address=192.0.2.1,
        destinationIPv4Address=192.0.2.2,
        protocol=17, ipDiffServCodePoint=0,
        applicationId='3..161',
        octetTotalCount=123456 }

  The Collector has all the required information to determine that the
  application is SNMP, because the Application ID uses a global and
  well-known registry, i.e., the IANA L4 protocol number.

6.5.  Example 5: Layer 7 Application

  In this example, the Metering Process has observed some Webex
  traffic.




Claise, et al.                Informational                    [Page 19]

RFC 6759              Export of App. Info. in IPFIX        November 2012


  From the list of Classification Engine IDs in Table 1, the layer 7
  unique Classification Engine ID (PANA-L7) is 13.  From Table 2 the
  Selector ID length is 3 for the PANA-L7 Engine ID.

  Suppose that the Metering Process returns the ID 10000 for Webex
  traffic.

  So, in the case of this Webex application, the Classification Engine
  ID is 13 and the Selector ID has the value of 10000.

  Therefore, the Application ID is encoded as:

   0                   1                   2                   3
   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |      13       |                     10000                     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

  So the Application ID has the value of 218113808.  The format
  '13..10000' is used for simplicity in the examples below.

  The Exporting Process creates a Template Record with a few
  Information Elements: amongst other things, the Application ID.  For
  example:

  - sourceIPv4Address (key field)
  - destinationIPv4Address (key field)
  - ipDiffServCodePoint (key field)
  - applicationId (key field)
  - octetTotalCount (non-key field)

  For example, a Flow Record corresponding to the above Template Record
  may contain:

      { sourceIPv4Address=192.0.2.1,
        destinationIPv4Address=192.0.2.2,
        ipDiffServCodePoint=0,
        applicationId='13..10000',
        octetTotalCount=123456 }

  The 10000 value is globally unique for the enterprise, so that the
  Collector can determine which application is represented by the
  Application ID by loading the registry out of band.

  Along with this Flow Record, a new Options Template Record would be
  exported, as shown in Section 6.8.





Claise, et al.                Informational                    [Page 20]

RFC 6759              Export of App. Info. in IPFIX        November 2012


6.6.  Example 6: Layer 7 Application with Private Enterprise Number
     (PEN)

  In this example, the layer 7 Webex traffic from Example 5 above have
  been classified by enterprise X.  The exported records have been
  received by enterprise Y's mediation device, which wishes to forward
  them to a top-level Collector.

  In order for the top-level Collector to know that the records were
  classified by enterprise X, the enterprise Y mediation device must
  report the records using the PANA-L7-PEN Classification Engine ID
  with enterprise X's Private Enterprise Number.

  The PANA-L7-PEN Classification Engine ID is 20, and enterprise X's
  Selector ID for Webex traffic has the value of 10000.  From Table 2
  the Selector ID length is 3 for the PANA-L7-PEN Engine ID.

  Therefore, the Application ID is encoded as:

   0                   1                   2                   3
   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |      20       |               enterprise ID = X            ...|
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |...Ent.ID.contd|                     10000                     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

  The format '20..X..10000' is used for simplicity in the examples
  below.

  The Exporting Process creates a Template Record with a few
  Information Elements: amongst other things, the Application ID.  For
  example:

  - sourceIPv4Address (key field)
  - destinationIPv4Address (key field)
  - ipDiffServCodePoint (key field)
  - applicationId (key field)
  - octetTotalCount (non-key field)

  For example, a Flow Record corresponding to the above Template Record
  may contain:

      { sourceIPv4Address=192.0.2.1,
        destinationIPv4Address=192.0.2.2,
        ipDiffServCodePoint=0,
        applicationId='20..X..10000',
        octetTotalCount=123456 }



Claise, et al.                Informational                    [Page 21]

RFC 6759              Export of App. Info. in IPFIX        November 2012


  The 10000 value is globally unique for enterprise X, so that the
  Collector can determine which application is represented by the
  Application ID by loading the registry out of band.

  Along with this Flow Record, a new Options Template Record would be
  exported, as shown in Section 6.8.

6.7.  Example: Port Obfuscation

  For example, an HTTP server might run on a TCP port 23 (assigned to
  telnet in [IANA-PORTS]).  If the Metering Process is capable of
  detecting HTTP in the same case, the Application ID representation
  must contain HTTP.  However, if the reporting application wants to
  determine whether or not the default HTTP port 80 or 8080 was used,
  the transport ports (sourceTransportPort and destinationTransportPort
  at [IANA-IPFIX]) must also be exported in the corresponding IPFIX
  record.

  In the case of a standardized IANA layer 4 port, the Classification
  Engine ID (PANA-L4) is 3, and the Selector ID has the value of 80 for
  HTTP (see [IANA-PORTS]).  From Table 2 the Selector ID length is 2
  for the PANA-L4 Engine ID.

  Therefore, the Application ID is encoded as:

      0                   1                   2
      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |       3       |             80                |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

  The Exporting Process creates a Template Record with a few
  Information Elements: amongst other things, the Application ID.  For
  example:

  - sourceIPv4Address (key field)
  - destinationIPv4Address (key field)
  - protocol (key field)
  - destinationTransportPort (key field)
  - applicationId (key field)
  - octetTotalCount (non-key field)










Claise, et al.                Informational                    [Page 22]

RFC 6759              Export of App. Info. in IPFIX        November 2012


  For example, a Flow Record corresponding to the above
  Template Record may contain:

      { sourceIPv4Address=192.0.2.1,
        destinationIPv4Address=192.0.2.2,
        protocol=17,
        destinationTransportPort=23,
        applicationId='3..80',
        octetTotalCount=123456 }

  The Collector has all the required information to determine that the
  application is HTTP, but runs on port 23.

6.8.  Example: Application Name Mapping Options Template

  Along with the Flow Records shown in the above examples, a new
  Options Template Record should be exported to express the Application
  Name and Application Description associated with each Application ID.

  The Options Template Record contains the following Information
  Elements:

  1. Scope = applicationId.

         From RFC 5101: The scope, which is only available
         in the Options Template Set, gives the context of
         the reported Information Elements in the Data
         Records.

  2. applicationName.

  3. applicationDescription.

  The Options Data Record associated with the examples above
  would contain, for example:

      { scope=applicationId='2..90',
        applicationName="foo",
        applicationDescription="The foo protocol",

        scope=applicationId='13..10000',
        applicationName="webex",
        applicationDescription="Webex application" }

        scope=applicationId='20..X..10000',
        applicationName="webex",
        applicationDescription="Webex application" }




Claise, et al.                Informational                    [Page 23]

RFC 6759              Export of App. Info. in IPFIX        November 2012


  When combined with the example Flow Records above, these Options
  Template Records tell the Collector:

  1. A flow of 123456 bytes exists from sourceIPv4Address 192.0.2.1 to
     destinationIPv4address 192.0.2.2 with an applicationId of
     '12..90', which maps to the "foo" application.

  2. A flow of 123456 bytes exists from sourceIPv4Address 192.0.2.1 to
     destinationIPv4address 192.0.2.2 with an Application ID of
     '13..10000', which maps to the "Webex" application.

  3. A flow of 123456 bytes exists from sourceIPv4Address 192.0.2.1 to
     destinationIPv4address 192.0.2.2 with an Application ID of
     '20..PEN..10000', which maps to the "Webex" application, according
     to the application registry from the enterprise X.

6.9.  Example: Attributes Values Options Template Record

  Along with the Flow Records shown in the above examples, a new
  Options Template Record is exported to express the values of the
  different attributes related to the Application IDs.

  The Options Template Record would contain the following Information
  Elements:

  1. Scope = applicationId.

     From RFC 5101: The scope, which is only available in the Options
     Template Set, gives the context of the reported Information
     Elements in the Data Records.

  2. applicationCategoryName.

  3. applicationSubCategoryName.

  4. applicationGroupName

  5. p2pTechnology

  6. tunnelTechnology

  7. encryptedTechnology









Claise, et al.                Informational                    [Page 24]

RFC 6759              Export of App. Info. in IPFIX        November 2012


  The Options Data Record associated with the examples above would
  contain, for example:

      { scope=applicationId='2..90',
        applicationCategoryName="foo-category",
        applicationSubCategoryName="foo-subcategory",
        applicationGroupName="foo-group",
        p2pTechnology=NO
        tunnelTechnology=YES
        encryptedTechnology=NO

  When combined with the example Flow Records above, these Options
  Template Records tell the Collector:

  A flow of 123456 bytes exists from sourceIPv4Address 192.0.2.1 to
  destinationIPv4address 192.0.2.2 with a DSCP value of 0 and an
  applicationId of '12..90', which maps to the "foo" application.  This
  application can be characterized by the relevant attributes values.

7.  IANA Considerations

7.1.  New Information Elements

  This document specifies 10 new IPFIX Information Elements:
  applicationDescription, applicationId, applicationName,
  classificationEngineId, applicationCategoryName,
  applicationSubCategoryName, applicationGroupName, p2pTechnology,
  tunnelTechnology, and encryptedTechnology.

  The new Information Elements listed below have been added to the
  IPFIX Information Element registry at [IANA-IPFIX].

7.1.1.  applicationDescription

  Name: applicationDescription
  Description:
    Specifies the description of an application.
  Abstract Data Type: string
  Data Type Semantics:
  ElementId: 94
  Status: current










Claise, et al.                Informational                    [Page 25]

RFC 6759              Export of App. Info. in IPFIX        November 2012


7.1.2.  applicationId

  Name: applicationId
  Description:
    Specifies an Application ID.
  Abstract Data Type: octetArray
  Data Type Semantics: identifier
  Reference: See Section 4 of [RFC6759]
  for the applicationId Information Element Specification.
  ElementId: 95
  Status: current

7.1.3.  applicationName

  Name: applicationName
  Description:
    Specifies the name of an application.
  Abstract Data Type: string
  Data Type Semantics:
  ElementId: 96
  Status: current

7.1.4.  classificationEngineId

  Name: classificationEngineId
  Description:
   A unique identifier for the engine that determined the
   Selector ID.  Thus, the Classification Engine ID defines
   the context for the Selector ID.  The Classification
   Engine can be considered as a specific registry for
   application assignments.

   Initial values for this field are listed below.  Further
   values may be assigned by IANA in the Classification
   Engine IDs registry per Section 7.2.

        0 Invalid.

        1 IANA-L3: The Assigned Internet Protocol Number
          (layer 3 (L3)) is exported in the Selector ID.  See
          http://www.iana.org/assignments/protocol-numbers.

        2 PANA-L3: Proprietary layer 3 definition.  An
          enterprise can export its own layer 3 protocol
          numbers.  The Selector ID has a global significance
          for all devices from the same enterprise.





Claise, et al.                Informational                    [Page 26]

RFC 6759              Export of App. Info. in IPFIX        November 2012


        3 IANA-L4: The IANA layer 4 (L4) well-known port
          number is exported in the Selector ID.  See [IANA-PORTS].
          Note: as an IPFIX flow is unidirectional,
          it contains the destination port.

        4 PANA-L4: Proprietary layer 4 definition.  An
          enterprise can export its own layer 4 port
          numbers.  The Selector ID has global significance
          for devices from the same enterprise.  Example:
          IPFIX was pre-assigned port 4739 using the IANA
          early allocation process [RFC4020] years before the
          document was published as an RFC.  While waiting for
          the RFC and it associated IANA registration,
          Selector ID 4739 was used with this PANA-L4.

        5 Reserved

        6 USER-Defined: The Selector ID represents
          applications defined by the user (using CLI, GUI,
          etc.) based on the methods described in Section 2.
          The Selector ID has a local significance per
          device.

        7 Reserved

        8 Reserved

        9 Reserved

       10 Reserved

       11 Reserved

       12 PANA-L2: Proprietary layer 2 (L2) definition.  An
          enterprise can export its own layer 2 identifiers.
          The Selector ID represents the enterprise's unique
          global layer 2 applications.  The Selector ID has a
          global significance for all devices from the same
          enterprise.  Examples include the Cisco Subnetwork
          Access Protocol (SNAP).











Claise, et al.                Informational                    [Page 27]

RFC 6759              Export of App. Info. in IPFIX        November 2012


       13 PANA-L7: Proprietary layer 7 definition.  The
          Selector ID represents the enterprise's unique
          global ID for layer 7 applications.  The
          Selector ID has a global significance for all
          devices from the same enterprise.  This
          Classification Engine ID is used when the
          application registry is owned by the Exporter
          manufacturer (referred to as the "enterprise" in
          this document).

       14 Reserved

       15 Reserved

       16 Reserved

       17 Reserved

       18 ETHERTYPE: The Selector ID represents the well-
          known Ethertype.  See [ETHERTYPE].

       19 LLC: The Selector ID represents the well-known
          IEEE 802.2 Link Layer Control (LLC) Destination
          Service Access Point (DSAP).  See [LLC].

       20 PANA-L7-PEN: Proprietary layer 7 definition,
          including a Private Enterprise Number (PEN) [IANA-PEN]
          to identify that the application registry being
          used is not owned by the Exporter manufacturer or to
          identify the original enterprise in the case of a
          mediator or 3rd party device.  The Selector ID represents
          the enterprise unique global ID for layer 7
          applications.  The Selector ID has a global
          significance for all devices from the same
          enterprise.

       Some values (5, 7, 8, 9, 10, 11, 14, 15, 16, and 17),
       are reserved to be compliant with existing
       implementations already using the
       classificationEngineId.

  Abstract Data Type: unsigned8
  Data Type Semantics: identifier
  ElementId: 101
  Status: current






Claise, et al.                Informational                    [Page 28]

RFC 6759              Export of App. Info. in IPFIX        November 2012


7.1.5.  applicationCategoryName

   Name: applicationCategoryName
   Description:
    An attribute that provides a first-level categorization for
    each Application Id.
   Abstract Data Type: string
   Data Type Semantics:
   ElementId: 372
   Status: current

7.1.6.  applicationSubCategoryName

  Name: applicationSubCategoryName
  Description:
   An attribute that provides a second-level categorization
   for each Application Id.
  Abstract Data Type: string
  Data Type Semantics:
  ElementId: 373
  Status: current

7.1.7.  applicationGroupName

  Name: applicationGroupName
  Description:
   An attribute that groups multiple Application IDs that
   belong to the same networking application.
  Abstract Data Type: string
  Data Type Semantics:
  ElementId: 374
  Status: current

7.1.8.  p2pTechnology

  Name: p2pTechnology
  Description:
   Specifies if the Application ID is based on peer-to-peer
   technology.  Possible values are { "yes", "y", 1 },
   { "no", "n", 2 }, and { "unassigned", "u", 0 }.
  Abstract Data Type: string
  Data Type Semantics:
  ElementId: 288
  Status: current







Claise, et al.                Informational                    [Page 29]

RFC 6759              Export of App. Info. in IPFIX        November 2012


7.1.9.  tunnelTechnology

  Name: tunnelTechnology
  Description:
    Specifies if the Application ID is used as a tunnel technology.
    Possible values are { "yes", "y", 1 }, { "no", "n", 2 },
    and { "unassigned", "u", 0 }.
  Abstract Data Type: string
  Data Type Semantics:
  ElementId: 289
  Status: current

7.1.10.  encryptedTechnology

  Name: encryptedTechnology
  Description:
   Specifies if the Application ID is an encrypted networking
   protocol.  Possible values are { "yes", "y", 1 },
   { "no", "n", 2 }, and { "unassigned", "u", 0 }.
  Abstract Data Type: string
  Data Type Semantics:
  ElementId: 290
  Status: current

7.2.  Classification Engine ID Registry

  The Information Element #101, named classificationEngineId, carries
  information about the context for the Selector ID, and can be
  considered as a specific registry for application assignments.  For
  ensuring extensibility of this information, IANA has created a new
  registry for Classification Engine IDs and filled it with the initial
  list from the description Information Element #101,
  classificationEngineId, along with their respective default lengths
  (Table 2 in this document).

  New assignments for Classification Engine IDs will be administered by
  IANA through Expert Review [RFC5226], i.e., review by one of a group
  of experts designated by an IETF Area Director.  The group of experts
  must double-check the new definitions with already defined
  Classification Engine IDs for completeness, accuracy, and redundancy.
  The specification of Classification Engine IDs MUST be published
  using a well-established and persistent publication medium.

8.  Security Considerations

  The same security considerations as for the IPFIX protocol [RFC5101]
  apply.  The IPFIX extension specified in this memo allows to identify
  what applications are used on the network.  Consequently, it is



Claise, et al.                Informational                    [Page 30]

RFC 6759              Export of App. Info. in IPFIX        November 2012


  possible to identify what applications are being used by the users,
  potentially threatening the privacy of those users, if not handled
  with great care.

  As mentioned in Section 1.1, the application knowledge is useful in
  security based applications.  Security applications may impose
  supplementary requirements on the export of application information,
  and these need to be examined on a case by case basis.

9.  References

9.1.  Normative References

  [ETHERTYPE]  IEEE, <http://standards.ieee.org/develop/regauth/
               ethertype/eth.txt>.

  [IANA-PEN]   IANA, "PRIVATE ENTERPRISE NUMBERS",
               <http://www.iana.org/assignments/enterprise-numbers>.

  [IANA-PORTS] IANA, "Service Name and Transport Protocol Port Number
               Registry",
               <http://www.iana.org/assignments/port-numbers>.

  [IANA-PROTO] IANA, "Protocol Numbers",
               <http://www.iana.org/assignments/protocol-numbers>.

  [LLC]        IEEE, "LOGICAL LINK CONTROL (LLC) PUBLIC LISTING",
               <http://standards.ieee.org /develop/regauth/llc
               /public.html>.

  [RFC2119]    Bradner, S., "Key words for use in RFCs to Indicate
               Requirement Levels", BCP 14, RFC 2119, March 1997.

  [RFC5101]    Claise, B., Ed., "Specification of the IP Flow
               Information Export (IPFIX) Protocol for the Exchange of
               IP Traffic Flow Information", RFC 5101, January 2008.

  [RFC5102]    Quittek, J., Bryant, S., Claise, B., Aitken, P., and J.
               Meyer, "Information Model for IP Flow Information
               Export", RFC 5102, January 2008.

  [RFC5226]    Narten, T. and H. Alvestrand, "Guidelines for Writing an
               IANA Considerations Section in RFCs", BCP 26, RFC 5226,
               May 2008.







Claise, et al.                Informational                    [Page 31]

RFC 6759              Export of App. Info. in IPFIX        November 2012


9.2.  Informative References

  [CISCO-APPLICATION-REGISTRY]
               Cisco, "Application Registry",
               <http://www.cisco.com/go/application_registry>.

  [IANA-IPFIX] IANA, "IP Flow Information Export (IPFIX) Entities",
               <http://www.iana.org/assignments/ipfix>.

  [LLDP]       IEEE, Std 802.1AB-2005, "Standard for Local and
               metropolitan area networks - Station and Media Access
               Control Connectivity Discovery", IEEE Std 802.1AB-2005
               IEEE Std, 2005.

  [RFC792]     Postel, J., "Internet Control Message Protocol", STD 5,
               RFC 792, September 1981.

  [RFC3917]    Quittek, J., Zseby, T., Claise, B., and S. Zander,
               "Requirements for IP Flow Information Export (IPFIX)",
               RFC 3917, October 2004.

  [RFC3954]    Claise, B., Ed., "Cisco Systems NetFlow Services Export
               Version 9", RFC 3954, October 2004.

  [RFC4020]    Kompella, K. and A. Zinin, "Early IANA Allocation of
               Standards Track Code Points", BCP 100, RFC 4020,
               February 2005.

  [RFC5103]    Trammell, B. and E. Boschi, "Bidirectional Flow Export
               Using IP Flow Information Export (IPFIX)", RFC 5103,
               January 2008.

  [RFC5470]    Sadasivan, G., Brownlee, N., Claise, B., and J. Quittek,
               "Architecture for IP Flow Information Export", RFC 5470,
               March 2009.

  [RFC5471]    Schmoll, C., Aitken, P., and B. Claise, "Guidelines for
               IP Flow Information Export (IPFIX) Testing", RFC 5471,
               March 2009.

  [RFC5473]    Boschi, E., Mark, L., and B. Claise, "Reducing
               Redundancy in IP Flow Information Export (IPFIX) and
               Packet Sampling (PSAMP) Reports", RFC 5473, March 2009.

  [RFC5476]    Claise, B., Ed., Johnson, A., and J. Quittek, "Packet
               Sampling (PSAMP) Protocol Specifications", RFC 5476,
               March 2009.




Claise, et al.                Informational                    [Page 32]

RFC 6759              Export of App. Info. in IPFIX        November 2012


  [RFC5477]    Dietz, T., Claise, B., Aitken, P., Dressler, F., and G.
               Carle, "Information Model for Packet Sampling Exports",
               RFC 5477, March 2009.

  [RFC5353]    Xie, Q., Stewart, R., Stillman, M., Tuexen, M., and A.
               Silverton, "Endpoint Handlespace Redundancy Protocol
               (ENRP)", RFC 5353, September 2008.

  [RFC5811]    Hadi Salim, J. and K. Ogawa, "SCTP-Based Transport
               Mapping Layer (TML) for the Forwarding and Control
               Element Separation (ForCES) Protocol", RFC 5811, March
               2010.

  [RFC6183]    Kobayashi, A., Claise, B., Muenz, G., and K. Ishibashi,
               "IP Flow Information Export (IPFIX) Mediation:
               Framework", RFC 6183, April 2011.

  [RFC6313]    Claise, B., Dhandapani, G., Aitken, P., and S. Yates,
               "Export of Structured Data in IP Flow Information Export
               (IPFIX)", RFC 6313, July 2011.

10.  Acknowledgements

  The authors would like to thank their many colleagues across Cisco
  Systems who made this work possible.  Specifically, Patrick Wildi for
  his time and expertise.

























Claise, et al.                Informational                    [Page 33]

RFC 6759              Export of App. Info. in IPFIX        November 2012


Appendix A.  Additions to XML Specification of IPFIX Information
            Elements (Non-normative)

  This appendix contains additions to the machine-readable description
  of the IPFIX information model coded in XML in Appendix A and
  Appendix B in [RFC5102].  Note that this appendix is of informational
  nature, while the text in Section 7 (generated from this appendix) is
  normative.

  The following field definitions are appended to the IPFIX information
  model in Appendix A of [RFC5102].

    <field name="applicationDescription"
           dataType="string"
           group="application"
           elementId="94" applicability="all"
  status="current">
      <description>
        <paragraph>
           Specifies the description of an application.
        </paragraph>
      </description>
    </field>

    <field name="applicationId"
           dataType="octetArray"
           group="application"
           dataTypeSemantics="identifier"
           elementId="95" applicability="all"
  status="current">
      <description>
        <paragraph>
           Specifies an Application ID.
        </paragraph>
      </description>
      <reference>
        <paragraph>
           See Section 4 of [RFC6759]
          for the applicationId Information Element
          Specification.
        </paragraph>
      </reference>
    </field>

    <field name="applicationName"
           dataType="string"
           group="application"
           elementId="96" applicability="all"



Claise, et al.                Informational                    [Page 34]

RFC 6759              Export of App. Info. in IPFIX        November 2012


  status="current">
      <description>
        <paragraph>
           Specifies the name of an application.
        </paragraph>
      </description>
    </field>

    <field name="classificationEngineId"
           dataType="unsigned8"
           group="application"
           dataTypeSemantics="identifier"
           elementId="101" applicability="all"
  status="current">
      <description>
        <paragraph>
          0 Invalid.

          1 IANA-L3: The Assigned Internet Protocol Number
            (layer 3 (L3)) is exported in the Selector ID.
            See http://www.iana.org/assignments/protocol-
            numbers.

          2 PANA-L3: Proprietary layer 3 definition.  An
            enterprise can export its own layer 3 protocol
            numbers.  The Selector ID has a global
            significance for all devices from the same
            enterprise.

          3 IANA-L4: The IANA layer 4 (L4) well-known port
            number is exported in the Selector ID.  See
            [IANA-PORTS].  Note: as an IPFIX flow is
            unidirectional, it contains the destination
            port.

          4 PANA-L4: Proprietary layer 4 definition.  An
            enterprise can export its own layer 4 port
            numbers.  The Selector ID has global
            significance for devices from the same
            enterprise.  Example: IPFIX was pre-assigned
            port 4739 using the IANA early allocation
            process [RFC4020] years before the document was
            published as an RFC.  While waiting for the
            RFC and its associated IANA registration,
            Selector ID 4739 was used with this PANA-L4.

          5 Reserved




Claise, et al.                Informational                    [Page 35]

RFC 6759              Export of App. Info. in IPFIX        November 2012


          6 USER-Defined: The Selector ID represents
            applications defined by the user (using CLI,
            GUI, etc.) based on the methods described in
            Section 2.  The Selector ID has a local
            significance per device.

          7 Reserved

          8 Reserved

          9 Reserved

         10 Reserved

         11 Reserved

         12 PANA-L2: Proprietary layer 2 (L2) definition.
            An enterprise can export its own layer 2
            identifiers.  The Selector ID represents the
            enterprise's unique global layer 2
            applications.  The Selector ID has a global
            significance for all devices from the same
            enterprise.  Examples include the Cisco Subnetwork
            Access Protocol (SNAP).

         13 PANA-L7: Proprietary layer 7 definition.  The
            Selector ID represents the enterprise's unique
            global ID for layer 7 applications.  The
            Selector ID has a global significance for all
            devices from the same enterprise.  This
            Classification Engine ID is used when the
            application registry is owned by the Exporter
            manufacturer (referred to as the "enterprise"
            in this document).

         14 Reserved

         15 Reserved

         16 Reserved

         17 Reserved

         18 ETHERTYPE: The Selector ID represents the
            well-known Ethertype.  See [ETHERTYPE].

         19 LLC: The Selector ID represents the well-known
            IEEE 802.2 Link Layer Control (LLC)



Claise, et al.                Informational                    [Page 36]

RFC 6759              Export of App. Info. in IPFIX        November 2012


            Destination Service Access Point (DSAP).  See
            [LLC].

         20 PANA-L7-PEN: Proprietary layer 7 definition,
            including a Private Enterprise Number (PEN)
            [IANA-PEN] to identify that the application
            registry being used is not owned by the
            Exporter manufacturer or to identify the
            original enterprise in the case of a mediator
            or 3rd party device.  The Selector ID represents
            the enterprise unique global ID for layer 7
            applications.  The Selector ID has a global
            significance for all devices from the same
            enterprise.
        </paragraph>
      </description>
    </field>

    <field name="applicationCategoryName"
           dataType="string"
           group="application"
           elementId="372"
           applicability="all"
           status="current">
      <description>
        <paragraph>
           An attribute that provides a first-level categorization
           for each Application Id.
        </paragraph>
      </description>
    </field>

    <field name="applicationSubCategoryName"
           dataType="string"
           group="application"
           elementId="373"
           applicability="all"
           status="current">
      <description>
        <paragraph>
           An attribute that provides a second-level
           categorization for each Application ID.
        </paragraph>
      </description>
    </field>

    <field name="applicationGroupName"
           dataType="string"



Claise, et al.                Informational                    [Page 37]

RFC 6759              Export of App. Info. in IPFIX        November 2012


           group="application"
           elementId="374"
           applicability="all"
           status="current">
      <description>
        <paragraph>
           An attribute that groups multiple Application IDs
           that belong to the same networking application.
        </paragraph>
      </description>
    </field>

    <field name="p2pTechnology"
           dataType="string"
           group="application"
           elementId="288"
           applicability="all"
           status="current">
      <description>
        <paragraph>
           Specifies if the Application ID is based on peer-
           to-peer technology.  Possible values are
           { "yes", "y", 1 }, { "no", "n", 2 }, and
           { "unassigned", "u", 0 }.
        </paragraph>
      </description>
    </field>

    <field name="tunnelTechnology"
           dataType="string"
           group="application"
           elementId="289"
           applicability="all"
           status="current">
      <description>
        <paragraph>
           Specifies if the Application ID is used as a
           tunnel technology.  Possible values are
           { "yes", "y", 1 }, { "no", "n", 2 }, and
           { "unassigned", "u", 0 }.
        </paragraph>
      </description>
    </field>

    <field name="encryptedTechnology"
           dataType="string"
           group="application"
           elementId="290"



Claise, et al.                Informational                    [Page 38]

RFC 6759              Export of App. Info. in IPFIX        November 2012


           applicability="all"
           status="current">
      <description>
        <paragraph>
           Specifies if the Application ID is an encrypted
           networking protocol.  Possible values are
           { "yes", "y", 1 }, { "no", "n", 2 }, and
           { "unassigned", "u", 0 }.
        </paragraph>
      </description>
    </field>

Appendix B.  Port Collisions Tables (Non-normative)

  The following table lists the 10 ports that have different protocols
  assigned for TCP and UDP (at the time of writing this document):

      exec            512/tcp    remote process execution;
                                 authentication performed
                                 using passwords and UNIX
                                 login names

      comsat/biff     512/udp    used by mail system to
                                 notify users of new mail
                                 received; currently
                                 receives messages only from
                                 processes on the same
                                 machine

      login           513/tcp    remote login a la telnet;
                                 automatic authentication
                                 performed based on
                                 priviledged [sic] port numbers
                                 and distributed data bases
                                 which identify
                                 "authentication domains"

      who             513/udp    maintains data bases
                                 showing who's logged in to
                                 machines on a local
                                 net and the load average of
                                 the machine

      shell           514/tcp    cmd
                                 like exec, but automatic
                                 authentication is performed
                                 as for login server




Claise, et al.                Informational                    [Page 39]

RFC 6759              Export of App. Info. in IPFIX        November 2012


      syslog          514/udp

      oob-ws-https    664/tcp    DMTF out-of-band secure web
                                 services management
                                 protocol
                                 Jim Davis
                                 <[email protected]>

      asf-secure-rmcp 664/udp    ASF Secure Remote
                                 Management and Control
                                 Protocol

      rfile           750/tcp
      kerberos-iv     750/udp    kerberos version iv

      submit          773/tcp
      notify          773/udp

      rpasswd         774/tcp
      acmaint_dbd     774/udp

      entomb          775/tcp
      acmaint_transd  775/udp

      busboy          998/tcp
      puparp          998/udp

      garcon          999/tcp
      applix          999/udp    Applix ac

          Table 4: Different Protocols on UDP and TCP

  The following table lists the 19 ports that have different protocols
  assigned for TCP and SCTP (at the time of writing this document):

      #               3097/tcp    Reserved

      itu-bicc-stc    3097/sctp   ITU-T Q.1902.1/Q.2150.3
                                  Greg Sidebottom
                                  <[email protected]>

      #               5090/tcp    <not assigned>

      car             5090/sctp   Candidate AR

      #               5091/tcp    <not assigned>

      cxtp            5091/sctp   Context Transfer Protocol



Claise, et al.                Informational                    [Page 40]

RFC 6759              Export of App. Info. in IPFIX        November 2012


      #               6704/tcp    Reserved

      frc-hp          6704/sctp   ForCES HP (High Priority)
                                  channel [RFC5811]

      #               6705/tcp    Reserved

      frc-mp          6705/sctp   ForCES MP (Medium
                                  Priority) channel
                                  [RFC5811]

      #               6706/tcp    Reserved

      frc-lp          6706/sctp   ForCES LP (Low Priority)
                                  channel [RFC5811]

      #               9082/tcp    <not assigned>

      lcs-ap          9082/sctp   LCS Application Protocol
                                  Kimmo Kymalainen
                                  <[email protected]>

      #               9902/tcp    <not assigned>

      enrp-sctp-tls   9902/sctp   enrp/tls server channel
                                  [RFC5353]

      #               11997/tcp   <not assigned>
      #               11998/tcp   <not assigned>
      #               11999/tcp   <not assigned>

      wmereceiving    11997/sctp  WorldMailExpress
      wmedistribution 11998/sctp  WorldMailExpress
      wmereporting    11999/sctp  WorldMailExpress
                               Greg Foutz
                                  <[email protected]>

      #               25471/tcp   <not assigned>

      rna             25471/sctp  RNSAP User Adaptation for
                                  Iurh
                                  Dario S. Tonesi
                                  <[email protected]>
                                  07 February 2011

      #               29118/tcp   Reserved

      sgsap           29118/sctp  SGsAP in 3GPP



Claise, et al.                Informational                    [Page 41]

RFC 6759              Export of App. Info. in IPFIX        November 2012


      #               29168/tcp   Reserved

      sbcap           29168/sctp  SBcAP in 3GPP

      #               29169/tcp   <not assigned>

      iuhsctpassoc    29169/sctp  HNBAP and RUA Common
                                  Association
                                  John Meredith
                                  <[email protected]>
                                  08 September 2009

      #               36412/tcp   <not assigned>

      s1-control      36412/sctp  S1-Control Plane (3GPP)
                                  Kimmo Kymalainen
                                  <[email protected]>
                                  01 September 2009

      #               36422/tcp   <not assigned>

      x2-control      36422/sctp  X2-Control Plane (3GPP)
                                  Kimmo Kymalainen
                                 <[email protected]>
                                  01 September 2009

      #               36443/tcp   <not assigned>

      m2ap            36443/sctp  M2 Application Part
                                  Dario S. Tonesi
                                  <[email protected]>
                                  07 February 2011

      #               36444/tcp   <not assigned>

      m3ap            36444/sctp  M3 Application Part
                                  Dario S. Tonesi
                                  <[email protected]>
                                  07 February 2011

         Table 5: Different Protocols on SCTP and TCP

Appendix C. Application Registry Example (Non-normative)

  A reference to the Cisco Systems assigned numbers for the Application
  ID and the different attribute assignments can be found at
  [CISCO-APPLICATION-REGISTRY].




Claise, et al.                Informational                    [Page 42]

RFC 6759              Export of App. Info. in IPFIX        November 2012


Authors' Addresses

  Benoit Claise
  Cisco Systems, Inc.
  De Kleetlaan 6a b1
  Diegem 1813
  Belgium

  Phone: +32 2 704 5622
  EMail: [email protected]


  Paul Aitken
  Cisco Systems, Inc.
  96 Commercial Quay
  Commercial Street
  Edinburgh, EH6 6LX
  United Kingdom

  Phone: +44 131 561 3616
  EMail: [email protected]


  Nir Ben-Dvora
  Cisco Systems, Inc.
  32 HaMelacha St.,
  P.O. Box 8735, I.Z.Sapir
  South Netanya, 42504
  Israel

  Phone: +972 9 892 7187
  EMail: [email protected]



















Claise, et al.                Informational                    [Page 43]