IPFIX Working Group B. Claise
Internet-Draft P. Aitken
Intended Status: Informational N. Ben-Dvora
Expires: August 20, 2012 Cisco Systems, Inc.
May 5, 2012
Export of Application Information in IPFIX
draft-claise-export-application-info-in-ipfix-07
Status of this Memo
This Internet-Draft is submitted to IETF in full conformance
with the provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet
Engineering Task Force (IETF), its areas, and its working
groups. Note that other groups may also distribute working
documents as Internet-Drafts.
Internet-Drafts are draft documents valid for a maximum of
six months and may be updated, replaced, or obsoleted by
other documents at any time. It is inappropriate to use
Internet-Drafts as reference material or to cite them other
than as "work in progress."
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt
The list of Internet-Draft Shadow Directories can be accessed
at http://www.ietf.org/shadow.html
This Internet-Draft will expire on August 20, 2012.
<Claise, Aitken, Ben-Dvora> Expires Nov 5 2012 [Page 1]
Internet-Draft <Export of App. Info. in IPFIX > May 2012
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.
Abstract
This document specifies an extension to the IPFIX information
model specified in [RFC5102] to export application
information.
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].
<Claise, Aitken, Ben-Dvora> Expires Nov 5 2012 [Page 2]
Internet-Draft <Export of App. Info. in IPFIX > May 2012
Table of Contents
1. Overview................................................... 4
1.1. IPFIX Documents Overview.............................. 4
2. Introduction............................................... 5
2.1. Application Information Use Cases........................ 7
3. Terminology................................................ 8
3.1. New Terminology....................................... 8
4. applicationId Information Element Specification............ 8
4.1. Existing Classification Engine IDs.................... 9
4.2. Selector ID Length per Classification IDs............ 12
4.3. Application Name Options Template Record............. 13
4.4. Resolving IANA L4 port collisions.................... 14
5. Grouping the Applications with the Attributes............. 19
5.1. Options Template Record for the Attribute Values..... 21
6. Application Id Examples................................... 21
6.1. Example 1: Layer 2 Protocol.......................... 21
6.2. Example 2: Standardized IANA Layer 3 Protocol........ 22
6.3. Example 3: Proprietary Layer 3 Protocol.............. 23
6.4. Example 4: Standardized IANA Layer 4 Port............ 24
6.5. Example 5: Layer 7 Application....................... 26
6.6. Example: port Obfuscation............................ 27
6.7. Example: Application Mapping Options Template........ 28
6.8. Example: Attributes Values Options Template Record... 29
7. IANA Considerations....................................... 30
7.1. New Information Elements............................. 30
7.1.1. applicationDescription............................. 30
7.1.2. applicationId...................................... 31
7.1.3. applicationName.................................... 31
7.1.4. classificationEngineId............................. 31
7.1.5. applicationCategoryName............................ 33
7.1.6. applicationSubCategoryName......................... 34
7.1.7. applicationGroupName............................... 34
7.1.8. p2pTechnology...................................... 34
7.1.9. tunnelTechnology................................... 34
7.1.10. encryptedTechnology............................... 35
7.2. Classification Engine Ids Registry................... 35
8. Security Considerations................................... 36
9. References................................................ 36
9.1. Normative References................................. 36
9.2. Informative References............................... 36
10. Acknowledgement.......................................... 38
11. Authors' Addresses....................................... 39
Appendix A. Additions to XML Specification of IPFIX
Information Elements......................................... 39
<Claise, Aitken, Ben-Dvora> Expires Nov 5 2012 [Page 3]
Internet-Draft <Export of App. Info. in IPFIX > May 2012
List of Figures and Tables
Figure 1: applicationId Information Element ................ 8
Table 1: Existing Classification Engine IDs ............... 11
Table 2: Selector ID default length per Classification Engine
ID ..................................................... 13
Table 3: IANA layer 4 port collisions between UDP and TCP . 16
Table 4: IANA layer 4 port collisions between SCTP and TCP 18
Table 5: Existing Application Id Static Attributes ........ 20
1. Overview
1.1. 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.
IPFIX has a formal description of IPFIX Information Elements,
their name, type 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 IP
Flow Information Export (IPFIX) protocol, representing each
Biflow using a single Flow Record.
<Claise, Aitken, Ben-Dvora> Expires Nov 5 2012 [Page 4]
Internet-Draft <Export of App. Info. in IPFIX > May 2012
The "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.
2. 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
information elements, 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
The exact application identification methods are part of the
Metering Process internals that aim to provide an accurate
identification with a minimum false identification. This
task requires a sophisticated Metering Process since the
protocols do not behave in a standard manner.
<Claise, Aitken, Ben-Dvora> Expires Nov 5 2012 [Page 5]
Internet-Draft <Export of App. Info. in IPFIX > May 2012
1. Applications use port obfuscation where the
application runs on different port than the IANA
assigned one. For example an HTTP server might run
a 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. Note that this example stresses the need for
the engine strength. 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
in use must be exported using the destination port
(destinationTransportPort at [IANA-IPFIX]) in the
corresponding IPFIX record.
This document specifies the Application Id (as described in
section 4. ) to export the application information with the
IPFIX protocol [RFC5101].
Applications could be identified at different OSI layers,
from layer 2 to layer 7. For example: 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 skype 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.
<Claise, Aitken, Ben-Dvora> Expires Nov 5 2012 [Page 6]
Internet-Draft <Export of App. Info. in IPFIX > May 2012
Indeed, the specifications for some applications embedded in
the payload, for example Skype, are not available. Some
reverse engineering as well as a ubiquitous language for
application identification, would be two required conditions
to be able to manage an IANA registry for these types of
applications. Clearly, these are blocking factors.
As this specification focuses on the application information
encoding, this document doesn't contain an application
registry for non IANA applications. However, a reference to
the Cisco Systems assigned numbers for the Application Id and
the different attribute assignments can be found at [CISCO].
2.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 the application
information. Network administrators are using application
visibility to understand the main network consumers,
network trends and user behavior.
2. Congestion Control
While traffic demand is increasing (mainly due to the high
usage of peer to peer applications, video applications and
web download applications), the providers revenue doesn't
grow. Providers are looking at a more efficient way to
control and prioritize the network utilization. An
application aware bandwidth control system is used to
prioritize the traffic based on the applications, giving
the critical applications priority over the non-critical
applications.
3. 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.
<Claise, Aitken, Ben-Dvora> Expires Nov 5 2012 [Page 7]
Internet-Draft <Export of App. Info. in IPFIX > May 2012
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 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. m bits of Selector ID. The Selector ID length varies
depending on the Classification Engine ID.
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
<Claise, Aitken, Ben-Dvora> Expires Nov 5 2012 [Page 8]
Internet-Draft <Export of App. Info. in IPFIX > May 2012
A unique identifier for the engine which 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 similar to the selectorId
Information Element, specified in the PSAMP Protocol
[RFC5476].
4.1. Existing Classification Engine IDs
The following Classification Engine IDs have been
allocated:
Name Value Description
0 Invalid.
IANA-L3 1 The IANA protocol (layer 3 (L3))
number is exported in the
Selector ID.
See [IANA-PROTO].
PANA-L3 2 Proprietary layer 3 definition. A
company can export its own layer
3 protocol numbers, while waiting
for IANA to assign it. The
Selector ID has a global
significance for all devices from
the same company. Hopefully the
same Selector IDs will be
maintained after the IANA
standardization.
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 in a flow from
<Claise, Aitken, Ben-Dvora> Expires Nov 5 2012 [Page 9]
Internet-Draft <Export of App. Info. in IPFIX > May 2012
the client to the server.
PANA-L4 4 Proprietary layer 4 definition. A
company can export its own layer
4 port numbers, while waiting for
IANA to assign it. The Selector
ID has global significance for
devices from the same company.
Hopefully the same Selector IDs
will be maintained after the IANA
standardization. Example: IPFIX
had the port 4739 pre-assigned in
the IETF draft for years. While
waiting for the RFC and its
associated IANA registration, the
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 or GUI) 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.
PANA-L2 12 Proprietary layer 2 (L2)
definition. A company can export
its own layer 2 identifiers. The
Selector ID represents the
company unique global layer 2
applications. The Selector ID has
a global significance for all
devices from the same company.
Examples include Cisco Subnetwork
Access Protocol (SNAP).
<Claise, Aitken, Ben-Dvora> Expires Nov 5 2012 [Page 10]
Internet-Draft <Export of App. Info. in IPFIX > May 2012
PANA-L7 13 Proprietary layer 7 definition.
The Selector ID represents the
company unique global ID for the
layer 7 applications. The
Selector ID has a global
significance for all devices from
the same company. A reference to
the Cisco Systems assigned
numbers for the layer 7
Application Id assignments can be
found at [CISCO].
14 Reserved.
15 Reserved.
16 Reserved.
17 Reserved.
ETHERTYPE 18 The Selector ID represents the
well-known Ethertype. See
[ETHERTYPE]. Note that the
Ethertype is usually expressed in
hexadecimal. However, the
corresponding decimal value is
used in this Selector ID.
LLC 19 The Selector ID represents the
well-known IEEE 802.2 Link Layer
Control (LLC) Destination Service
Access Point (DSAP). See [LLC].
Note that LLC DSAP is usually
expressed in hexadecimal.
However, the corresponding
decimal value is used in this
Selector ID.
20 to
254 Available.
MAX 255 255 is the maximum Engine ID.
Table 1: Existing Classification Engine IDs
<Claise, Aitken, Ben-Dvora> Expires Nov 5 2012 [Page 11]
Internet-Draft <Export of App. Info. in IPFIX > May 2012
Note 1: "PANA = Proprietary Assigned Number Authority". In
other words, a company specific version of IANA for
internal IDs.
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 these specifications.
However, this Information Element was created for
completeness.
4.2. Selector ID Length per Classification IDs
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 the IPFIX export.
The following table displays the Selector ID default length
for the different Classification Engine ID.
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
<Claise, Aitken, Ben-Dvora> Expires Nov 5 2012 [Page 12]
Internet-Draft <Export of App. Info. in IPFIX > May 2012
Table 2: Selector ID default length
per Classification Engine 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 the 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 protocol field from
the IP header encoded in one byte. However, an IANA L3
protocol encoding may be encoded with 3 bytes. In such a
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 which 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 which 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).
<Claise, Aitken, Ben-Dvora> Expires Nov 5 2012 [Page 13]
Internet-Draft <Export of App. Info. in IPFIX > May 2012
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. The
mechanism for the Collector to know about Exporter
enterprise IDs is out of scope of this document. Possible
tracks are: SNMP polling, an Options Template export,
hardcoded value, etc.
4.4. Resolving IANA L4 port collisions
Even though the IANA L4 ports usually point to the same
protocols for both UDP, TCP or other transport types, there
are some exceptions. 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 port numbers
and distributed data
bases
which identify
"authentication domains"
who 513/udp maintains data bases
showing who's logged in
to
<Claise, Aitken, Ben-Dvora> Expires Nov 5 2012 [Page 14]
Internet-Draft <Export of App. Info. in IPFIX > May 2012
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
syslog 514/udp
oob-ws-https 664/tcp DMTF out-of-band secure
web
services management
protocol
Jim Davis
<jim.davis&wbemsolutions.com>
June 2007
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
<Claise, Aitken, Ben-Dvora> Expires Nov 5 2012 [Page 15]
Internet-Draft <Export of App. Info. in IPFIX > May 2012
Table 3: IANA layer 4 port collisions between 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
<gregside&home.com>
# 5090/tcp <not assigned>
car 5090/sctp Candidate AR
# 5091/tcp <not assigned>
cxtp 5091/sctp Context Transfer
Protocol
RFC 4065 - July 2005
# 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>
<Claise, Aitken, Ben-Dvora> Expires Nov 5 2012 [Page 16]
Internet-Draft <Export of App. Info. in IPFIX > May 2012
lcs-ap 9082/sctp LCS Application Protocol
Kimmo Kymalainen
kimmo.kymalainen&etsi.org>
04 June 2010
# 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
<gregf&adminovation.com>
March 2006
# 25471/tcp <not assigned>
rna 25471/sctp RNSAP User Adaptation
for
Iurh
Dario S. Tonesi
<dario.tonesi&nsn.com>
07 February 2011
# 29118/tcp Reserved
sgsap 29118/sctp SGsAP in 3GPP
# 29168/tcp Reserved
sbcap 29168/sctp SBcAP in 3GPP
# 29169/tcp <not assigned>
<Claise, Aitken, Ben-Dvora> Expires Nov 5 2012 [Page 17]
Internet-Draft <Export of App. Info. in IPFIX > May 2012
iuhsctpassoc 29169/sctp HNBAP and RUA Common
Association
John Meredith
<John.Meredith&etsi.org>
08 September 2009
# 36412/tcp <not assigned>
s1-control 36412/sctp S1-Control Plane (3GPP)
KimmoKymalainen
<kimmo.kymalainen&etsi.org>
01 September 2009
# 36422/tcp <not assigned>
x2-control 36422/sctp X2-Control Plane (3GPP)
Kimmo Kymalainen
<kimmo.kymalainen&etsi.org>
01 September 2009
# 36443/tcp <not assigned>
m2ap 36443/sctp M2 Application Part
Dario S. Tonesi
<dario.tonesi&nsn.com>
07 February 2011
# 36444/tcp <not assigned>
m3ap 36444/sctp M3 Application Part
Dario S. Tonesi
<dario.tonesi&nsn.com>
07 February 2011
Table 4: IANA layer 4 port collisions between SCTP and TCP
<Claise, Aitken, Ben-Dvora> Expires Nov 5 2012 [Page 18]
Internet-Draft <Export of App. Info. in IPFIX > May 2012
Instead of imposing the transport protocol
(UDP/TCP/SCTP/etc.) in the scope of the "Application Name
Options Template Record" for all applications (on top of
having the transport protocol as 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 DCCP.
5. Grouping the Applications with the 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
encoded by the
ApplicationSubCategoryName
<Claise, Aitken, Ben-Dvora> Expires Nov 5 2012 [Page 19]
Internet-Draft <Export of App. Info. in IPFIX > May 2012
Information Element.
Application- An attribute that groups multiple
Group Application Ids that belong to the
same networking application. For
example, the ftp-group contain the
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 5: Existing Application Id Static Attributes
Every application is assigned to one ApplicationCategoryName,
one ApplicationSubCategoryName, one ApplicationGroupName, has
one p2pTechnology, one tunnelTechnology, and one
encryptedTechnology.
Maintaining the attribute values in IANA seems impossible to
realize. Therefore the attribute values per application are
company specific. For example, the Cisco Systems attribute
values for the different applications are available at
[CISCO].
<Claise, Aitken, Ben-Dvora> Expires Nov 5 2012 [Page 20]
Internet-Draft <Export of App. Info. in IPFIX > May 2012
5.1. Options Template Record for the 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 ApplicationId 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.8. below.
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, 18, and 19.
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
while the Selector ID has the value 35020.
Therefore the Application Id is encoded as:
<Claise, Aitken, Ben-Dvora> Expires Nov 5 2012 [Page 21]
Internet-Draft <Export of App. Info. in IPFIX > May 2012
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.
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 is 1.
From the list of IANA layer 3 protocols (see [IANA-PROTO]),
ICMP has the value 1:
Decimal Keyword Protocol Reference
1 ICMP Internet Control Message [RFC792]
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.
Therefore the Application Id is encoded as:
<Claise, Aitken, Ben-Dvora> Expires Nov 5 2012 [Page 22]
Internet-Draft <Export of App. Info. in IPFIX > May 2012
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 know registry, ie the IANA L3 protocol
number.
6.3. Example 3: Proprietary Layer 3 Protocol
Assume that a company 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 is 2.
A global registry within the company specifies that the "foo"
protocol has the value 90:
Protocol Protocol Id
<Claise, Aitken, Ben-Dvora> Expires Nov 5 2012 [Page 23]
Internet-Draft <Export of App. Info. in IPFIX > May 2012
foo 90
So, in the case of the layer 3 protocol foo, specified by
this company, 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.7.
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 is 3.
<Claise, Aitken, Ben-Dvora> Expires Nov 5 2012 [Page 24]
Internet-Draft <Export of App. Info. in IPFIX > May 2012
From the list of IANA layer 4 ports (see [IANA-PORTS]), SNMP
has the value 161:
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
'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)
- 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 know registry, ie the IANA L4 protocol
number.
<Claise, Aitken, Ben-Dvora> Expires Nov 5 2012 [Page 25]
Internet-Draft <Export of App. Info. in IPFIX > May 2012
6.5. Example 5: Layer 7 Application
In this example, the Metering Process has observed some
Citrix traffic.
From the list of Classification Engine IDs in Table 1, the L7
unique Classification Engine ID is 13.
Suppose that the Metering Process returns the ID 10000 for
Citrix traffic.
So, in the case of this Citrix 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 }
<Claise, Aitken, Ben-Dvora> Expires Nov 5 2012 [Page 26]
Internet-Draft <Export of App. Info. in IPFIX > May 2012
The 10000 value is globally unique for the company, so that
the Collector can determine which application is represented
by the Application Id by loading the registry out of band. A
reference to the Cisco Systems assigned numbers for the layer
7 Application Id and the different attribute assignments can
be found at [CISCO].
Along with this Flow Record, a new Options Template Record
would be exported, as shown in Section 6.7.
6.6. 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 destination
port (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 is 2, and the Selector ID has the
value of 80 for HTTP (see [IANA-PORTS]).
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)
For example, a Flow Record corresponding to the above
Template Record may contain:
<Claise, Aitken, Ben-Dvora> Expires Nov 5 2012 [Page 27]
Internet-Draft <Export of App. Info. in IPFIX > May 2012
{ 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.7. Example: Application Mapping Options Template
Along with the Flow Records shown in the above examples, a
new Options Template Record would 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="Citrix",
applicationDescription="A Citrix application" }
When combined with the example Flow Records above, these
Options Template Records tell the Collector:
<Claise, Aitken, Ben-Dvora> Expires Nov 5 2012 [Page 28]
Internet-Draft <Export of App. Info. in IPFIX > May 2012
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 "Citrix"
application.
6.8. 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
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",
<Claise, Aitken, Ben-Dvora> Expires Nov 5 2012 [Page 29]
Internet-Draft <Export of App. Info. in IPFIX > May 2012
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: the
applicationDescription, applicationId, applicationName,
classificationEngineId, applicationCategoryName,
applicationSubCategoryName, applicationGroupName,
p2pTechnology, tunnelTechnology, and encryptedTechnology.
New Information Elements to be added to the IPFIX Information
Element registry at [IANA-IPFIX] are listed below.
EDITOR'S NOTE: the XML specification in Appendix A must be
updated with the elementID values allocated below.
RFC-EDITOR/IANA-EDITOR: some entries are already present in
IPFIX-IANA. However, those must be updated with the current
content.
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, Aitken, Ben-Dvora> Expires Nov 5 2012 [Page 30]
Internet-Draft <Export of App. Info. in IPFIX > May 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 [EDITORS NOTE: this document] 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 which 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.
0 Invalid.
1 IANA-L3: The IANA protocol (layer 3) number is
exported in the Selector ID. See
http://www.iana.org/assignments/protocol-numbers.
2 PANA-L3: Proprietary layer 3 definition. A company
can export its own layer 3 protocol numbers, while
waiting for IANA to assign it. The Selector ID has a
<Claise, Aitken, Ben-Dvora> Expires Nov 5 2012 [Page 31]
Internet-Draft <Export of App. Info. in IPFIX > May 2012
global significance for all devices from the same
company. Hopefully the same Selector IDs will be
maintained after the IANA standardization.
3 IANA-L4: The IANA layer 4 well-known port number is
exported in the Selector ID. See
http://www.iana.org/assignments/port-numbers. Note:
as an IPFIX flow is unidirectional, it contains the
destination port in a flow from the client to the
server.
4 PANA-L4: Proprietary layer 4 definition. A company
can export its own layer 4 port numbers, while
waiting for IANA to assign it. The Selector ID has
global significance for devices from the same
company. Hopefully the same Selector IDs will be
maintained after the IANA standardization. Example:
IPFIX had the port 4739 pre-assigned in the IETF
draft for years. While waiting for the RFC and its
associated IANA registration, the 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 or GUI)
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 definition. A company
can export its own layer 2 identifiers. The
Selector ID represents the company unique global
layer 2 applications. The Selector ID has a global
significance for all devices from the same company.
Examples include Cisco Subnetwork Access Protocol
(SNAP).
<Claise, Aitken, Ben-Dvora> Expires Nov 5 2012 [Page 32]
Internet-Draft <Export of App. Info. in IPFIX > May 2012
13 PANA-L7: Proprietary layer 7 definition. The
Selector ID represents the company unique global ID
for the layer 7 applications. The Selector ID has a
global significance for all devices from the same
company.
14 Reserved
15 Reserved
16 Reserved
17 Reserved
18 ETHERTYPE: The Selector ID represents the
well-known Ethertype. See
http://standards.ieee.org/develop/regauth/ethertype/
eth.txt. Note that the Ethertype is usually
expressed in hexadecimal. However, the corresponding
decimal value is used in this Selector ID.
19 LLC: The Selector ID represents the well-known IEEE
802.2 Link Layer Control (LLC) Destination Service
Access Point (DSAP). See
http://standards.ieee.org/develop/regauth/ethertype/
eth.txt. Note that LLC DSAP is usually expressed in
hexadecimal. However, the corresponding decimal
value is used in this Selector ID.
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
7.1.5. applicationCategoryName
Name: applicationCategoryName
Description:
An attribute that provides a first level categorization for
each Application Id.
<Claise, Aitken, Ben-Dvora> Expires Nov 5 2012 [Page 33]
Internet-Draft <Export of App. Info. in IPFIX > May 2012
Abstract Data Type: string
Data Type Semantics:
ElementId: <to be assigned>
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: <to be assigned>
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: <to be assigned>
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
7.1.9. tunnelTechnology
Name: tunnelTechnology
Description:
Specifies if the Application Id is used as a tunnel
<Claise, Aitken, Ben-Dvora> Expires Nov 5 2012 [Page 34]
Internet-Draft <Export of App. Info. in IPFIX > May 2012
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 Ids 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.
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.
RFC-EDITOR: this should be assigned similarly to
mplsTopLabelType subregistry at
http://www.iana.org/assignments/ipfix/ipfix.xml
<Claise, Aitken, Ben-Dvora> Expires Nov 5 2012 [Page 35]
Internet-Draft <Export of App. Info. in IPFIX > May 2012
8. Security Considerations
The same security considerations as for the IPFIX Protocol
[RFC5101] apply.
As mentioned in Section 2.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
[RFC2119] S. Bradner, 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. Alverstrand, "Guidelines for
Writing an IANA Considerations Section in RFCs", RFC
5226, May 2008
[ETHERTYPE]
http://standards.ieee.org/develop/regauth/ethertype/e
th.txt
[LLC]
http://standards.ieee.org/develop/regauth/llc/public.
html.
9.2. Informative References
[RFC792] J. Postel, Internet Control Message Protocol, RFC
792, September 1981.
<Claise, Aitken, Ben-Dvora> Expires Nov 5 2012 [Page 36]
Internet-Draft <Export of App. Info. in IPFIX > May 2012
[RFC3917] Quittek, J., Zseby, T., Claise, B., and S. Zander,
Requirements for IP Flow Information Export, RFC
3917, October 2004.
[RFC3954] B. Claise, "Cisco Systems NetFlow Services Export
Version 9", RFC 3954, October 2004.
[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., "Packet Sampling (PSAMP) Protocol
Specifications", RFC 5476, March 2009.
[RFC6313] Claise, B., Dhandapani, G. Aitken, P., and S.
Yates, "Export of Structured Data in IP Flow
Information Export (IPFIX)", RFC6313, July 20111
[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.
[IANA-IPFIX] http://www.iana.org/assignments/ipfix/ipfix.xml
[IANA-PORTS] http://www.iana.org/assignments/port-numbers
[IANA-PROTO] http://www.iana.org/assignments/protocol-numbers
<Claise, Aitken, Ben-Dvora> Expires Nov 5 2012 [Page 37]
Internet-Draft <Export of App. Info. in IPFIX > May 2012
[CISCO] http://www.cisco.com
10. Acknowledgement
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, Aitken, Ben-Dvora> Expires Nov 5 2012 [Page 38]
Internet-Draft <Export of App. Info. in IPFIX > May 2012
11. Authors' Addresses
Benoit Claise
Cisco Systems, Inc.
De Kleetlaan 6a b1
Diegem 1813
Belgium
Phone: +32 2 704 5622
EMail: bclaise@cisco.com
Paul Aitken
Cisco Systems, Inc.
96 Commercial Quay
Commercial Street
Edinburgh, EH6 6LX, United Kingdom
Phone: +44 131 561 3616
EMail: paitken@cisco.com
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: nirbd@cisco.com
Appendix A. Additions to XML Specification of IPFIX
Information Elements
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].
<Claise, Aitken, Ben-Dvora> Expires Nov 5 2012 [Page 39]
Internet-Draft <Export of App. Info. in IPFIX > May 2012
<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 [EDITORS NOTE: this document] for
the applicationId Information Element Specification.
</paragraph>
</reference>
</field>
<field name="applicationName"
dataType="string"
group="application"
elementId="96" applicability="all" 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">
<Claise, Aitken, Ben-Dvora> Expires Nov 5 2012 [Page 40]
Internet-Draft <Export of App. Info. in IPFIX > May 2012
<description>
<paragraph>
A unique identifier for the engine which
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.
0 Invalid.
1 IANA-L3: The IANA protocol (layer 3) number is
exported in the Selector ID. See
http://www.iana.org/assignments/protocol-numbers.
2 PANA-L3: Proprietary layer 3 definition. A
company can export its own layer 3 protocol
numbers, while waiting for IANA to assign it. The
Selector ID has a global significance for all
devices from the same company. Hopefully the same
Selector IDs will be maintained after the IANA
standardization.
3 IANA-L4: The IANA layer 4 well-known port
number is exported in the Selector ID. See
http://www.iana.org/assignments/port-numbers.
Note: as an IPFIX flow is unidirectional, it
contains the destination port in a flow from the
client to the server.
4 PANA-L4: Proprietary layer 4 definition. A
company can export its own layer 4 port numbers,
while waiting for IANA to assign it. The Selector
ID has global significance for devices from the
same company. Hopefully the same Selector IDs
will be maintained after the IANA
standardization. Example: IPFIX had the port 4739
pre-assigned in the IETF draft for years. While
waiting for the RFC and its associated IANA
registration, the Selector ID 4739 was used with
this PANA-L4.
5 Reserved
<Claise, Aitken, Ben-Dvora> Expires Nov 5 2012 [Page 41]
Internet-Draft <Export of App. Info. in IPFIX > May 2012
6 USER-Defined: The Selector ID represents
applications defined by the user (using CLI or
GUI) 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 definition. A
company can export its own layer 2 identifiers.
The Selector ID represents the company unique
global layer 2 applications. The Selector ID has
a global significance for all devices from the
same company. Examples include Cisco Subnetwork
Access Protocol (SNAP).
13 PANA-L7: Proprietary layer 7 definition. The
Selector ID represents the company unique global
ID for the layer 7 applications. The Selector ID
has a global significance for all devices from
the same company.
14 Reserved
15 Reserved
16 Reserved
17 Reserved
18 ETHERTYPE: The Selector ID represents the
well-known Ethertype. See
http://standards.ieee.org/develop/regauth/etherty
pe/eth.txt. Note that the Ethertype is usually
expressed in hexadecimal. However, the
corresponding decimal value is used in this
Selector ID.
<Claise, Aitken, Ben-Dvora> Expires Nov 5 2012 [Page 42]
Internet-Draft <Export of App. Info. in IPFIX > May 2012
19 LLC: The Selector ID represents the
well-known IEEE 802.2 Link Layer Control (LLC)
Destination Service Access Point (DSAP). See
http://standards.ieee.org/develop/regauth/etherty
pe/eth.txt. Note that LLC DSAP is usually
expressed in hexadecimal. However, the
corresponding decimal value is used in this
Selector ID.
</paragraph>
</description>
</field>
<field name="applicationCategoryName"
dataType="string"
group="application"
elementId="<to be assigned>"
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="<to be assigned>"
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"
group="application"
elementId="<to be assigned>"
applicability="all"
status="current">
<Claise, Aitken, Ben-Dvora> Expires Nov 5 2012 [Page 43]
Internet-Draft <Export of App. Info. in IPFIX > May 2012
<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"
applicability="all"
status="current">
<description>
<Claise, Aitken, Ben-Dvora> Expires Nov 5 2012 [Page 44]
Internet-Draft <Export of App. Info. in IPFIX > May 2012
<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>
<Claise, Aitken, Ben-Dvora> Expires Nov 5 2012 [Page 45]