RFC 6727
Definitions of Managed Objects for Packet Sampling
RFC 6727: Definitions of Managed Objects for Packet Sampling ๐
okay bestie, this one is all about packet sampling ๐ฆ It's an IETF Standards Track doc, so it's officially part of the Internet's rulebook. It's from October 2012, ISSN 2070-1721, and it's written by T. Dietz (Ed.) and J. Quittek from NEC Europe Ltd. plus B. Claise from Cisco Systems, Inc. ๐
The header doesn't list anything it obsoletes or updates, so it's standing on its own. The IETF Trust holds the copyright, and the full official page lives at http://www.rfc-editor.org/info/rfc6727 โจ
Abstract โจ
This memo defines a chunk of the Management Information Base (MIB) for network management protocols in the Internet community ๐ It extends the IPFIX-SELECTOR-MIB module. For IP Flow Information eXport (IPFIX) implementations that use Packet Sampling (PSAMP) techniques, it defines the PSAMP-MIB module, which holds managed objects describing the packet selection functions that were applied and their parameters ๐ธ
Status of This Memo ๐
This is an Internet Standards Track document.
This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community ๐ซถ It got public review and was approved for publication by the Internet Engineering Steering Group (IESG). More on Internet Standards is in Section 2 of RFC 5741.
Want the current status, any errata, or a way to send feedback? Check http://www.rfc-editor.org/info/rfc6727 ๐
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) as they were in effect on the date of publication. Please read these carefully, because they spell out your rights and restrictions for 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 they come without warranty as described in the Simplified BSD License ๐
Table of Contents ๐บ๏ธ
1. The Internet-Standard Management Framework . . . . . . . . . . 3
2. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
3. Overview of PSAMP Documents . . . . . . . . . . . . . . . . . 4
4. Related IPFIX Documents . . . . . . . . . . . . . . . . . . . 4
5. Structure of the PSAMP MIB module . . . . . . . . . . . . . . 4
5.1. Textual Conventions . . . . . . . . . . . . . . . . . . . 5
5.2. Packet Selection Functions . . . . . . . . . . . . . . . . 6
5.2.1. Systematic Count-Based Sampling . . . . . . . . . . . 6
5.2.2. Systematic Time-Based Sampling . . . . . . . . . . . . 6
5.2.3. Random n-out-of-N Sampling . . . . . . . . . . . . . . 7
5.2.4. Uniform Probabilistic Sampling . . . . . . . . . . . . 7
5.2.5. Property Match Filtering . . . . . . . . . . . . . . . 7
5.2.6. Hash-Based Filtering . . . . . . . . . . . . . . . . . 8
6. Definitions . . . . . . . . . . . . . . . . . . . . . . . . . 9
7. Security Considerations . . . . . . . . . . . . . . . . . . . 25
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 25
9. Acknowledgment . . . . . . . . . . . . . . . . . . . . . . . . 26
10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 26
10.1. Normative References . . . . . . . . . . . . . . . . . . . 26
10.2. Informative References . . . . . . . . . . . . . . . . . . 27
1. The Internet-Standard Management Framework ๐ง
If you want the full tea on the current Internet-Standard Management Framework, check out section 7 of RFC 3410 [RFC3410] ๐
Managed objects are accessed through a virtual information store called the Management Information Base, or MIB ๐ MIB objects are usually accessed through the Simple Network Management Protocol (SNMP) โจ Objects in the MIB are defined using the Structure of Management Information (SMI) ๐ This memo specifies a MIB module that's compliant with SMIv2, which is described in STD 58, RFC 2578 [RFC2578], STD 58, RFC 2579 [RFC2579] and STD 58,RFC 2580 [RFC2580] ๐ฆ
2. Introduction ๐ธ
okay this part is a big deal, because the key words are how the doc tells you what's required ๐ซถ The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [RFC2119] ๐ฅ
This document is a product of the IP Flow Information eXport (IPFIX) Working Group (WG). Work on it started in the Packet Sampling (PSAMP) WG and moved over to the IPFIX WG once PSAMP wrapped up ๐
Its purpose is to define managed objects for monitoring PSAMP Devices that do packet selection by Sampling and Filtering, as described in [RFC5475] ๐
It's assumed that packet Sampling follows the framework defined in [RFC5474]. In this document, the PSAMP terms that appear capitalized are used as defined in [RFC5475] โจ
Managed objects in the PSAMP MIB module are defined as an extension of the IPFIX-MIB and IPFIX-SELECTOR-MIB modules [RFC6615] ๐ Since the IPFIX MIB module is only for monitoring, the same holds true for the PSAMP MIB module defined here ๐ The object definitions follow the PSAMP information model [RFC5477] ๐
Section 3 gives an overview of the PSAMP documents, and Section 4 covers the related IPFIX documents. Section 5 describes the structure of the PSAMP MIB module, and Section 6 has the formal definitions. Security issues are discussed in Section 7 ๐
3. Overview of PSAMP Documents ๐ฆ
[RFC5474]: "A Framework for Packet Selection and Reporting" describes the PSAMP framework. Network elements use it to select subsets of packets with statistical and other methods, then export a stream of reports on the selected packets to a Collector ๐ง
[RFC5475]: "Sampling and Filtering Techniques for IP Packet Selection" covers the set of packet selection techniques PSAMP supports ๐
[RFC5476]: "Packet Sampling (PSAMP) Protocol Specifications" specifies how packet information gets exported from a PSAMP Exporting Process to a PSAMP Collecting Process ๐ฆ
[RFC5477]: "Information Model for Packet Sampling Exports" defines an information and data model for PSAMP ๐ธ
And this document: "Definitions of Managed Objects for Packet Sampling" describes the PSAMP Management Information Base โจ
4. Related IPFIX Documents ๐
The IPFIX protocol gives network administrators access to IP Flow information ๐
[RFC5101]: "Specification of the IP Flow Information Export (IPFIX) Protocol for the Exchange of IP Traffic Flow Information" explains how IPFIX Data Records and Templates travel from IPFIX Exporting Processes to IPFIX Collecting Processes, over a congestion-aware transport protocol. It also specifies the data types used in the PSAMP MIB module and how they're encoded ๐
[RFC6615]: The IPFIX-MIB, "Definitions of Managed Objects for IP Flow Information Export", is the basis for this document, since it extends the IPFIX SELECTOR MIB module defined there ๐ซถ
5. Structure of the PSAMP MIB module ๐งฉ
The IPFIX-MIB module from [RFC6615] has the idea of a packet Selection Process that contains a set of Selector function instances ๐ Selection Processes and functions are referenced in the ipfixSelectionProcessTable of the IPFIX-MIB module. That table identifies an instance of a Selector function by an OID, and the OID points to an object that describes the Selector function ๐ฆ
For simple Selector functions without parameters, the OID refers to an object that holds just one more object, which shows whether the function is currently available ๐ For functions with one or more parameters, the object has a subtree. Along with an availability object, that subtree contains a table with a conceptual column for each parameter. Entries (conceptual rows) in this table stand for different combinations of parameter values for instances of the Selector function ๐ธ
The object ipfixSelectorFunctions in the IPFIX SELECTOR MIB module is the root for objects that describe instances of packet Selector functions. The IPFIX SELECTOR MIB module is a very small module defined in [RFC6615] โจ IANA maintains the top-level OIDs of the parameter trees under ipfixSelectorFunctions ๐ In the IPFIX SELECTOR MIB module as defined by [RFC6615], ipfixSelectorFunctions holds just one trivial packet Selector function called ipfixFuncSelectAll. It selects every packet and has no parameters:
ipfixSelectorMIB
+- ipfixSelectorObjects(1)
+- ipfixSelectorFunctions(1)
+- ipfixFuncSelectAll(1)
+- ipfixFuncSelectAllAvail(1)
The PSAMP MIB module in this document registers extra top-level OIDs for the parameter subtrees of its Selector functions in the IPFIX-SELECTOR-MIB Function sub-registry, following the procedures in [RFC6615] ๐ It adds six new subtrees beneath ipfixSelectorFunctions. Each one describes a packet Selector function with one or more parameters. Naming and ordering of objects fully follow the guidelines in Section 6.1 of [RFC6615] ๐
Every function and its parameters already appears in the overview table in Section 8.2.1 of [RFC5477] ๐
5.1. Textual Conventions ๐
The PSAMP MIB module imports two textual conventions that define data types it uses from other MIB modules. The Unsigned64TC data type comes from the APPLICATION MIB module [RFC2564], and the Float64TC data type comes from the FLOAT-TC-MIB module [RFC6340] ๐ฆ Those data types are defined according to [RFC5101] ๐ They aren't an integral part of [RFC2578], but the PSAMP MIB module needs them to define objects that conform to the Information Elements defined for those objects in [RFC5477] ๐ซถ
The Unsigned64TC textual convention describes an unsigned integer of 64 bits, and it's imported from the APPLICATION MIB module โจ The Float64TC textual convention describes the format used for 64-bit floating point numbers ๐ธ
5.2. Packet Selection Functions ๐ง
In general, different packet Selector functions have different parameters ๐ The PSAMP MIB module contains six objects with subtrees that give information on the parameters of function instances from different Selector functions. Every object is named and structured according to Section 8.2.1 of [RFC5477] ๐
ipfixSelectorFunctions(1)
+-- psampSampCountBased(2)
+-- psampSampTimeBased(3)
+-- psampSampRandOutOfN(4)
+-- psampSampUniProb(5)
+-- psampFiltPropMatch(6)
+-- psampFiltHash(7)
Indexing of these functions in the PSAMP MIB module starts at index (2). The function ipfixFuncSelectAll with index (1) is already defined in the IPFIX SELECTOR MIB module, as shown above ๐
The object tree for each of these functions is described below. The semantics of all functions and their parameters are explained in detail in [RFC5475] ๐ฆ More on the Selector Reports can also be found in Section 6.5.2 of [RFC5476] โจ
5.2.1. Systematic Count-Based Sampling ๐
okay so the first Selector function is systematic count-based Sampling ๐ฆ its availability shows up in psampSampCountBasedAvail, and it has two parameters, psampSampCountBasedInterval and psampSampCountBasedSpace. every different combo of those values for different Selector instances gets its own conceptual row in psampSampCountBasedParamSetTable:
psampSampCountBased(2)
+-- psampSampCountBasedAvail(1)
+-- psampSampCountBasedParamSetTable(2)
+-- psampSampCountBasedParamSetEntry(1) [psampSampCountBasedIndex]
+-- psampSampCountBasedIndex(1)
+-- psampSampCountBasedInterval(2)
+-- psampSampCountBasedSpace(3)
5.2.2. Systematic Time-Based Sampling โฐ
the second Selector function is systematic time-based Sampling, and honestly its subtree is giving the same vibe as the count-based one ๐ซถ the parameters are psampSampTimeBasedInterval and psampSampTimeBasedSpace. they look the same as the count-based ones, but the data types are different because these are time values instead of packet counts โจ
psampSampTimeBased(3)
+-- psampSampTimeBasedAvail(1)
+-- psampSampTimeBasedParamSetTable(2)
+-- psampSampTimeBasedParamSetEntry(1) [psampSampTimeBasedIndex]
+-- psampSampTimeBasedIndex(1)
+-- psampSampTimeBasedInterval(2)
+-- psampSampTimeBasedSpace(3)
5.2.3. Random n-out-of-N Sampling ๐ฒ
the third Selector function is random n-out-of-N Sampling ๐ธ its parameters are psampSampRandOutOfNSize and psampSampRandOutOfNPopulation:
psampSampRandOutOfN(4)
+-- psampSampRandOutOfNAvail(1)
+-- psampSampRandOutOfNParamSetTable(2)
+-- psampSampRandOutOfNParamSetEntry(1) [psampSampRandOutOfNIndex]
+-- psampSampRandOutOfNIndex(1)
+-- psampSampRandOutOfNSize(2)
+-- psampSampRandOutOfNPopulation(3)
5.2.4. Uniform Probabilistic Sampling ๐
the fourth Selector function is uniform probabilistic Sampling, and it's a minimalist queen ๐ it has just one parameter, psampSampUniProbProbability:
psampSampUniProb(5)
+-- psampSampUniProbAvail(1)
+-- psampSampUniProbParamSetTable(2)
+-- psampSampUniProbParamSetEntry(1) [psampSampUniProbIndex]
+-- psampSampUniProbIndex(1)
+-- psampSampUniProbProbability(2)
5.2.5. Property Match Filtering ๐
the fifth Selector function is property match Filtering, and ngl this one is a bit of a mystery box. there's a huge variety of parameters it could use, but as stated in Section 8.2.1 of [RFC5477], no agreed parameters are specified ๐ so the subtree only has an object that shows whether the function is available. the parameters can't be retrieved through the PSAMP MIB module, periodt:
psampFiltPropMatch(6)
+-- psampFiltPropMatchAvail(1)
5.2.6. Hash-Based Filtering ๐ฎ
the sixth Selector function is hash-based Filtering โจ the object psampFiltHashFunction is an enumeration that says which kind of hash function gets applied. these hash functions come with quite a few parameters, and the exact number can change depending on which hash function you pick ๐ง the common parameter set for all hash-based Filtering functions has 7 parameters: psampFiltHashInitializerValue, psampFiltHashIpPayloadOffset, psampFiltHashIpPayloadSize, psampFiltHashSelectedRangeMin, psampFiltHashSelectedRangeMax, psampFiltHashOutputRangeMin, and psampFiltHashOutputRangeMax.
psampFiltHash(7)
+-- psampFiltHashAvail(1)
+-- psampFiltHashCapabilities(2)
+-- psampFiltHashParamSetTable(3)
+-- psampFiltHashParamSetEntry(1) [psampFiltHashIndex]
+-- psampFiltHashIndex(1)
+-- psampFiltHashFunction(2)
+-- psampFiltHashInitializerValue(3)
+-- psampFiltHashIpPayloadOffset(4)
+-- psampFiltHashIpPayloadSize(5)
+-- psampFiltHashSelectedRangeMin(6)
+-- psampFiltHashSelectedRangeMax(7)
+-- psampFiltHashOutputRangeMin(8)
+-- psampFiltHashOutputRangeMax(9)
further parameters depend on which hash function is applied, and those aren't specified inside the PSAMP MIB module ๐ซถ
6. Definitions ๐
the whole MIB module is below, character for character:
PSAMP-MIB DEFINITIONS ::= BEGIN
IMPORTS
MODULE-IDENTITY, OBJECT-TYPE, Integer32, Unsigned32, mib-2
FROM SNMPv2-SMI -- RFC 2578
TruthValue
FROM SNMPv2-TC -- RFC 2579
MODULE-COMPLIANCE, OBJECT-GROUP
FROM SNMPv2-CONF -- RFC 2580
Unsigned64TC
FROM APPLICATION-MIB -- RFC 2564
Float64TC
FROM FLOAT-TC-MIB -- RFC 6340
ipfixSelectorFunctions
FROM IPFIX-SELECTOR-MIB; -- RFC 6615
psampMIB MODULE-IDENTITY
LAST-UPDATED "201209051200Z" -- 5 September 2012
ORGANIZATION "IETF IPFIX Working Group"
CONTACT-INFO
"WG charter:
http://datatracker.ietf.org/wg/ipfix/charter/
Mailing Lists:
General Discussion: ipfix@ietf.org
To Subscribe: https://www.ietf.org/mailman/listinfo/ipfix
Archive:
http://www.ietf.org/mail-archive/web/ipfix/current/maillist.html
Thomas Dietz (editor)
NEC Europe Ltd.
NEC Laboratories Europe
Network Research Division
Kurfuersten-Anlage 36
69115 Heidelberg
Germany
Phone: +49 6221 4342-128
EMail: Thomas.Dietz@neclab.eu
Benoit Claise
Cisco Systems, Inc.
De Kleetlaan 6a b1
Diegem 1831
Belgium
Phone: +32 2 704 5622
EMail: bclaise@cisco.com
Juergen Quittek
NEC Europe Ltd.
NEC Laboratories Europe
Network Research Division
Kurfuersten-Anlage 36
69115 Heidelberg
Germany
Phone: +49 6221 4342-115
EMail: quittek@neclab.eu"
DESCRIPTION
"The PSAMP MIB defines managed objects for packet sampling
and filtering.
These objects provide information about managed nodes
supporting packet sampling, including packet sampling
capabilities, configuration, and statistics.
The PSAMP MIB module registers additional top-level OIDs for
the parameter subtrees of its Selector functions in the
IPFIX-SELECTOR-MIB Function sub-registry according to the
procedures defined in RFC 6615.
Copyright (c) 2012 IETF Trust and the persons identified
as authors of the code. All rights reserved.
Redistribution and use in source and binary forms, with or
without modification, is permitted pursuant to, and subject
to the license terms contained in, the Simplified BSD License
set forth in Section 4.c of the IETF Trust's Legal Provisions
Relating to IETF Documents
(http://trustee.ietf.org/license-info).
This version of this MIB module is part of RFC 6727; see the
RFC itself for full legal notices."
-- Revision history
REVISION "201209051200Z" -- 5 September 2012
DESCRIPTION
"Initial version, published as RFC 6727."
::= { mib-2 212 }
-- Top-level structure of the MIB
psampObjects OBJECT IDENTIFIER ::= { psampMIB 1 }
psampConformance OBJECT IDENTIFIER ::= { psampMIB 2 }
--==================================================================
-- Packet selection sampling methods group of objects
--==================================================================
--==================================================================
--* Method 1: Systematic count-based Sampling
--==================================================================
-- Reference: RFC 5475 (Section 5.1), RFC 5476 (Section 6.5.2.1),
-- and RFC 5477 (Section 8.2)
psampSampCountBased OBJECT IDENTIFIER
::= { ipfixSelectorFunctions 2 }
psampSampCountBasedAvail OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This object indicates the availability of systematic
count-based sampling at the managed node.
A Selector may be unavailable if it is implemented but
currently disabled due to, e.g., administrative reasons, lack
of resources, or similar."
::= { psampSampCountBased 1 }
-- Parameter Set Table +++++++++++++++++++++++++++++++++++++++++++++
psampSampCountBasedParamSetTable OBJECT-TYPE
SYNTAX SEQUENCE OF
PsampSampCountBasedParamSetEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"This table lists configurations of systematic count-based
packet sampling. A parameter set describing a
configuration contains two parameters: the sampling
interval length and space."
::= { psampSampCountBased 2 }
psampSampCountBasedParamSetEntry OBJECT-TYPE
SYNTAX PsampSampCountBasedParamSetEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Defines an entry in the psampSampCountBasedParamSetTable."
INDEX { psampSampCountBasedIndex }
::= { psampSampCountBasedParamSetTable 1 }
PsampSampCountBasedParamSetEntry ::=
SEQUENCE {
psampSampCountBasedIndex Integer32,
psampSampCountBasedInterval Unsigned32,
psampSampCountBasedSpace Unsigned32
}
psampSampCountBasedIndex OBJECT-TYPE
SYNTAX Integer32 (1..2147483647)
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The index of this parameter set in the
psampSampCountBasedParamSetTable. It is used in the
object ipfixSelectionProcessSelectorFunction entries of
the ipfixSelectionProcessTable in the IPFIX-MIB as reference
to this parameter set."
::= { psampSampCountBasedParamSetEntry 1 }
psampSampCountBasedInterval OBJECT-TYPE
SYNTAX Unsigned32
UNITS "packets"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This object specifies the number of packets that are
consecutively sampled. A value of 100 means that 100
consecutive packets are sampled."
REFERENCE
"RFC 5475 (Section 5.1) and RFC 5477 (Section 8.2)"
::= { psampSampCountBasedParamSetEntry 2 }
psampSampCountBasedSpace OBJECT-TYPE
SYNTAX Unsigned32
UNITS "packets"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This object specifies the number of packets between two
intervals specified by the object
psampSampCountBasedInterval. A value of 100 means that
the next interval starts 100 packets (which are not sampled)
after the current psampSampCountBasedInterval is over."
REFERENCE
"RFC 5475 (Section 5.1) and RFC 5477 (Section 8.2)"
::= { psampSampCountBasedParamSetEntry 3 }
--==================================================================
--* Method 2: Systematic time-based Sampling
--==================================================================
-- Reference: RFC 5475 (Section 5.1), RFC 5476 (Section 6.5.2.2),
-- and RFC 5477 (Section 8.2)
psampSampTimeBased OBJECT IDENTIFIER
::= { ipfixSelectorFunctions 3 }
okay so this is the MIB getting into the time-based sampling bits ๐ฐ๏ธโจ first up is the availability flag, and then the parameter set table that holds the interval and space values
psampSampTimeBasedAvail OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This object indicates the availability of systematic
time-based sampling at the managed node.
A Selector may be unavailable if it is implemented but
currently disabled due to, e.g., administrative reasons, lack
of resources, or similar."
::= { psampSampTimeBased 1 }
-- Parameter Set Table +++++++++++++++++++++++++++++++++++++++++++++
psampSampTimeBasedParamSetTable OBJECT-TYPE
SYNTAX SEQUENCE OF
PsampSampTimeBasedParamSetEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"This table lists configurations of systematic time-based
packet sampling. A parameter set describing a configuration
contains two parameters: the sampling interval length and
the space."
::= { psampSampTimeBased 2 }
psampSampTimeBasedParamSetEntry OBJECT-TYPE
SYNTAX PsampSampTimeBasedParamSetEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Defines an entry in the psampSampTimeBasedParamSetTable."
INDEX { psampSampTimeBasedIndex }
::= { psampSampTimeBasedParamSetTable 1 }
PsampSampTimeBasedParamSetEntry ::=
SEQUENCE {
psampSampTimeBasedIndex Integer32,
psampSampTimeBasedInterval Unsigned32,
psampSampTimeBasedSpace Unsigned32
}
psampSampTimeBasedIndex OBJECT-TYPE
SYNTAX Integer32 (1..2147483647)
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The index of this parameter set in the
psampSampTimeBasedParamSetTable. It is used in the
object ipfixSelectionProcessSelectorFunction entries of
the ipfixSelectionProcessTable in the IPFIX-MIB as reference
to this parameter set."
::= { psampSampTimeBasedParamSetEntry 1 }
psampSampTimeBasedInterval OBJECT-TYPE
SYNTAX Unsigned32
UNITS "microseconds"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This object specifies the time interval in microseconds
during which all arriving packets are sampled."
REFERENCE
"RFC 5475 (Section 5.1) and RFC 5477 (Section 8.2)"
::= { psampSampTimeBasedParamSetEntry 2 }
psampSampTimeBasedSpace OBJECT-TYPE
SYNTAX Unsigned32
UNITS "microseconds"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This object specifies the time interval in microseconds
between two intervals specified by the object
psampSampTimeBasedInterval. A value of 100 means that the
next interval starts 100 microseconds (during which no
packets are sampled) after the current
psampSampTimeBasedInterval is over."
REFERENCE
"RFC 5475 (Section 5.1) and RFC 5477 (Section 8.2)"
::= { psampSampTimeBasedParamSetEntry 3 }
--==================================================================
--* Method 3: Random n-out-of-N Sampling
--==================================================================
-- Reference: RFC 5475 (Section 5.2.1), RFC 5476 (Section 6.5.2.3),
-- and RFC 5477 (Section 8.2)
psampSampRandOutOfN OBJECT IDENTIFIER
::= { ipfixSelectorFunctions 4 }
psampSampRandOutOfNAvail OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This object indicates the availability of random n-out-of-N
sampling at the managed node.
A Selector may be unavailable if it is implemented but
currently disabled due to, e.g., administrative reasons, lack
of resources, or similar."
::= { psampSampRandOutOfN 1 }
-- Parameter Set Table +++++++++++++++++++++++++++++++++++++++++++++
psampSampRandOutOfNParamSetTable OBJECT-TYPE
SYNTAX SEQUENCE OF
PsampSampRandOutOfNParamSetEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"This table lists configurations of random n-out-of-N
sampling. A parameter set describing a configuration
contains two parameters: the sampling size and the
parent population."
::= { psampSampRandOutOfN 2 }
psampSampRandOutOfNParamSetEntry OBJECT-TYPE
SYNTAX PsampSampRandOutOfNParamSetEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Defines an entry in the psampSampRandOutOfNParamSetTable."
INDEX { psampSampRandOutOfNIndex }
::= { psampSampRandOutOfNParamSetTable 1 }
PsampSampRandOutOfNParamSetEntry ::=
SEQUENCE {
psampSampRandOutOfNIndex Integer32,
psampSampRandOutOfNSize Unsigned32,
psampSampRandOutOfNPopulation Unsigned32
}
psampSampRandOutOfNIndex OBJECT-TYPE
SYNTAX Integer32 (1..2147483647)
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The index of this parameter set in the
psampSampRandOutOfNParamSetTable. It is used in the
object ipfixSelectionProcessSelectorFunction entries of
the ipfixSelectionProcessTable in the IPFIX-MIB as reference
to this parameter set."
::= { psampSampRandOutOfNParamSetEntry 1 }
psampSampRandOutOfNSize OBJECT-TYPE
SYNTAX Unsigned32
UNITS "packets"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This object specifies the number of elements taken from the
parent Population specified in
psampSampRandOutOfNPopulation."
REFERENCE
"RFC 5475 (Section 5.2.1) and RFC 5477 (Section 8.2)"
::= { psampSampRandOutOfNParamSetEntry 2 }
psampSampRandOutOfNPopulation OBJECT-TYPE
SYNTAX Unsigned32
UNITS "packets"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This object specifies the number of elements in the parent
Population."
REFERENCE
"RFC 5475 (Section 5.2.1) and RFC 5477 (Section 8.2)"
::= { psampSampRandOutOfNParamSetEntry 3 }
--==================================================================
--* Method 4: Uniform probabilistic Sampling
--==================================================================
-- Reference: RFC 5475 (Section 5.2.2), RFC 5476 (Section 6.5.2.4),
-- and RFC 5477 (Section 8.2)
psampSampUniProb OBJECT IDENTIFIER ::= { ipfixSelectorFunctions 5 }
psampSampUniProbAvail OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This object indicates the availability of random uniform
probabilistic sampling at the managed node.
A Selector may be unavailable if it is implemented but
currently disabled due to, e.g., administrative reasons, lack
of resources, or similar."
::= { psampSampUniProb 1 }
-- Parameter Set Table +++++++++++++++++++++++++++++++++++++++++++++
-- Reference: RFC 5475 (Section 5.2.2.1) and RFC 5477 (Section 8.2)
psampSampUniProbParamSetTable OBJECT-TYPE
SYNTAX SEQUENCE OF
PsampSampUniProbParamSetEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"This table lists configurations of random probabilistic
sampling. A parameter set describing a configuration
contains a single parameter only: the sampling probability."
::= { psampSampUniProb 2 }
psampSampUniProbParamSetEntry OBJECT-TYPE
SYNTAX PsampSampUniProbParamSetEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Defines an entry in the psampSampUniProbParamSetTable."
INDEX { psampSampUniProbIndex }
::= { psampSampUniProbParamSetTable 1 }
PsampSampUniProbParamSetEntry ::=
SEQUENCE {
psampSampUniProbIndex Integer32,
psampSampUniProbProbability Float64TC
}
psampSampUniProbIndex OBJECT-TYPE
SYNTAX Integer32 (1..2147483647)
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The index of this parameter set in the
psampSampUniProbParamSetTable. It is used in the
object ipfixSelectionProcessSelectorFunction entries of
the ipfixSelectionProcessTable in the IPFIX-MIB as reference
to this parameter set."
::= { psampSampUniProbParamSetEntry 1 }
psampSampUniProbProbability OBJECT-TYPE
SYNTAX Float64TC
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This object specifies the probability that a packet is
sampled, expressed as a value between 0 and 1. The
probability is equal for every packet. A value of 0 means
no packet is sampled since the probability is 0. A value
of 1 means all packets are sampled since the
probability is 1. NaN (not a number) and infinity MUST NOT
be used."
REFERENCE
"RFC 5475 (Section 5.2.2.1) and RFC 5477 (Section 8.2)"
::= { psampSampUniProbParamSetEntry 2 }
--==================================================================
-- Packet selection filtering methods for a group of objects
--==================================================================
--==================================================================
--* Method 5: Property Match filtering
--==================================================================
-- Reserves Method 5; see RFC 5475 (Section 6.1), RFC 5476
-- (Section 6.5.2.5), and RFC 5477
psampFiltPropMatch OBJECT IDENTIFIER
::= { ipfixSelectorFunctions 6 }
psampFiltPropMatchAvail OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This object indicates the availability of property match
filtering at the managed node.
A Selector may be unavailable if it is implemented but
currently disabled due to, e.g., administrative reasons, lack
of resources, or similar."
::= { psampFiltPropMatch 1 }
--==================================================================
--* Method 6: Hash filtering
--==================================================================
-- Reference: RFC 5475 (Section 6.2), RFC 5476 (Section 6.5.2.6),
-- and RFC 5477 (Section 8.3)
psampFiltHash OBJECT IDENTIFIER ::= { ipfixSelectorFunctions 7 }
psampFiltHashAvail OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This object indicates the availability of hash filtering
at the managed node.
A Selector may be unavailable if it is implemented but
currently disabled due to, e.g., administrative reasons, lack
of resources, or similar."
::= { psampFiltHash 1 }
psampFiltHashCapabilities OBJECT IDENTIFIER
::= { psampFiltHash 2 }
-- Parameter Set Table +++++++++++++++++++++++++++++++++++++++++++++
-- Reference: RFC 5475, Sections 6.2, 3.8, and 7.1
psampFiltHashParamSetTable OBJECT-TYPE
SYNTAX SEQUENCE OF
PsampFiltHashParamSetEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"This table lists configurations of hash filtering. A
parameter set describing a configuration contains eight
parameters describing the hash function."
::= { psampFiltHash 3 }
psampFiltHashParamSetEntry OBJECT-TYPE
SYNTAX PsampFiltHashParamSetEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Defines an entry in the psampFiltHashParamSetTable."
INDEX { psampFiltHashIndex }
::= { psampFiltHashParamSetTable 1 }
PsampFiltHashParamSetEntry ::=
SEQUENCE {
psampFiltHashIndex Integer32,
psampFiltHashFunction INTEGER,
psampFiltHashInitializerValue Unsigned64TC,
psampFiltHashIpPayloadOffset Unsigned64TC,
psampFiltHashIpPayloadSize Unsigned64TC,
psampFiltHashSelectedRangeMin Unsigned64TC,
psampFiltHashSelectedRangeMax Unsigned64TC,
psampFiltHashOutputRangeMin Unsigned64TC,
psampFiltHashOutputRangeMax Unsigned64TC
}
psampFiltHashIndex OBJECT-TYPE
SYNTAX Integer32 (1..2147483647)
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The index of this parameter set in the
psampFiltHashParamSetTable. It is used in the
object ipfixSelectionProcessSelectorFunction entries of
the ipfixSelectionProcessTable in the IPFIX-MIB as reference
to this parameter set."
::= { psampFiltHashParamSetEntry 1 }
psampFiltHashFunction OBJECT-TYPE
SYNTAX INTEGER {
crc32(1),
ipsx(2),
bob(3)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The hash function used by this filter. The PSAMP-MIB
defines the following hash functions:
crc32(1): The CRC-32 Hash Function as defined in RFC 1141.
ipsx(2): The IPSX Hash Function as described in RFC 5475,
Appendix A.1.
bob(3): The BOB Hash Function as described in RFC 5475,
Appendix A.2.
"
REFERENCE
"RFC 5475 (Section 6.2 and Appendixes A.1 and A.2)
and RFC 1141"
::= { psampFiltHashParamSetEntry 2 }
psampFiltHashInitializerValue OBJECT-TYPE
SYNTAX Unsigned64TC
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This object specifies the initializer value to the hash
function."
REFERENCE
"RFC 5475, Sections 6.2, 3.8, and 7.1"
::= { psampFiltHashParamSetEntry 3 }
psampFiltHashIpPayloadOffset OBJECT-TYPE
SYNTAX Unsigned64TC
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This object specifies the IP payload offset used by a
Hash-based Selection Selector."
REFERENCE
"RFC 5475, Sections 6.2, 3.8, and 7.1"
::= { psampFiltHashParamSetEntry 4 }
psampFiltHashIpPayloadSize OBJECT-TYPE
SYNTAX Unsigned64TC
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This object specifies the IP payload size used by a
Hash-based Selection Selector."
REFERENCE
"RFC 5475, Sections 6.2, 3.8, and 7.1"
::= { psampFiltHashParamSetEntry 5 }
psampFiltHashSelectedRangeMin OBJECT-TYPE
SYNTAX Unsigned64TC
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This object specifies the value for the beginning of a hash
function's selected range."
REFERENCE
"RFC 5475, Sections 6.2, 3.8, and 7.1"
::= { psampFiltHashParamSetEntry 6 }
psampFiltHashSelectedRangeMax OBJECT-TYPE
SYNTAX Unsigned64TC
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This object specifies the value for the end of a hash
function's selected range."
REFERENCE
"RFC 5475, Sections 6.2, 3.8, and 7.1"
::= { psampFiltHashParamSetEntry 7 }
psampFiltHashOutputRangeMin OBJECT-TYPE
SYNTAX Unsigned64TC
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This object specifies the value for the beginning of a hash
function's potential output range."
REFERENCE
"RFC 5475, Sections 6.2, 3.8, and 7.1"
::= { psampFiltHashParamSetEntry 8 }
psampFiltHashOutputRangeMax OBJECT-TYPE
SYNTAX Unsigned64TC
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This object specifies the value for the end of a hash
function's potential output range."
REFERENCE
"RFC 5475, Sections 6.2, 3.8, and 7.1"
::= { psampFiltHashParamSetEntry 9 }
--==================================================================
-- Conformance information
--==================================================================
psampCompliances OBJECT IDENTIFIER ::= { psampConformance 1 }
psampGroups OBJECT IDENTIFIER ::= { psampConformance 2 }
--==================================================================
-- Compliance statements
--==================================================================
psampCompliance MODULE-COMPLIANCE
STATUS current
DESCRIPTION
"The implementation of all objects is optional and depends
on the implementation of the corresponding functionality in
the equipment."
MODULE -- this module
GROUP psampGroupSampCountBased
DESCRIPTION
"These objects must be implemented if systematic
count-based sampling is implemented in the equipment."
GROUP psampGroupSampTimeBased
DESCRIPTION
"These objects must be implemented if systematic
time-based sampling is implemented in the equipment."
GROUP psampGroupSampRandOutOfN
DESCRIPTION
"These objects must be implemented if random n-out-of-N
sampling is implemented in the equipment."
GROUP psampGroupSampUniProb
DESCRIPTION
"These objects must be implemented if uniform
probabilistic sampling is implemented in the equipment."
GROUP psampGroupFiltPropMatch
DESCRIPTION
"These objects must be implemented if the property match
filtering is implemented in the equipment."
GROUP psampGroupFiltHash
DESCRIPTION
"These objects must be implemented if hash filtering
is implemented in the equipment."
::= { psampCompliances 1 }
--==================================================================
-- MIB groupings
--==================================================================
psampGroupSampCountBased OBJECT-GROUP
OBJECTS {
psampSampCountBasedAvail,
psampSampCountBasedInterval,
psampSampCountBasedSpace
}
STATUS current
DESCRIPTION
"These objects are needed if count based sampling is
implemented."
::= { psampGroups 1 }
psampGroupSampTimeBased OBJECT-GROUP
OBJECTS {
psampSampTimeBasedAvail,
psampSampTimeBasedInterval,
psampSampTimeBasedSpace
}
STATUS current
DESCRIPTION
"These objects are needed if time based sampling is
implemented."
::= { psampGroups 2 }
psampGroupSampRandOutOfN OBJECT-GROUP
OBJECTS {
psampSampRandOutOfNAvail,
psampSampRandOutOfNSize,
psampSampRandOutOfNPopulation
}
STATUS current
DESCRIPTION
"These objects are needed if random n-out-of-N sampling is
implemented."
::= { psampGroups 3 }
psampGroupSampUniProb OBJECT-GROUP
OBJECTS {
psampSampUniProbAvail,
psampSampUniProbProbability
}
STATUS current
DESCRIPTION
"These objects are needed if uniform probabilistic sampling
is implemented."
::= { psampGroups 4 }
psampGroupFiltPropMatch OBJECT-GROUP
OBJECTS {
psampFiltPropMatchAvail
}
STATUS current
DESCRIPTION
"These objects are needed if property match filtering is
implemented."
::= { psampGroups 5 }
psampGroupFiltHash OBJECT-GROUP
OBJECTS {
psampFiltHashAvail,
psampFiltHashFunction,
psampFiltHashInitializerValue,
psampFiltHashIpPayloadOffset,
psampFiltHashIpPayloadSize,
psampFiltHashSelectedRangeMin,
psampFiltHashSelectedRangeMax,
psampFiltHashOutputRangeMin,
psampFiltHashOutputRangeMax
}
STATUS current
DESCRIPTION
"These objects are needed if hash filtering is implemented."
::= { psampGroups 6 }
END
7. Security Considerations โจ
okay bestie, this part is serious, so listen up ๐ซถ There are no management objects in this MIB module with a read-write and/or read-create MAX-ACCESS clause. So if this MIB module is implemented correctly, an intruder has no way to alter or create any of its management objects with direct SNMP SET operations. that's a lot of protection, no cap ๐
All of the tables in this MIB module may be considered sensitive or vulnerable in some network environments, because the objects in them can reveal information about the network infrastructure and device configuration ๐. So it's important to control even GET and/or NOTIFY access to these objects, and possibly to encrypt their values when sending them over the network via SNMP ๐.
SNMP versions before SNMPv3 did not include adequate security ๐ญ. Even if the network itself is secure (for example, by using IPsec), there is no control over who on that secure network is allowed to access and GET/SET (read/change/create/delete) the objects in this MIB module. not me getting anxious about that ๐
It is RECOMMENDED that implementers consider the security features provided by the SNMPv3 framework (see [RFC3410], section 8), including full support for the SNMPv3 cryptographic mechanisms (for authentication and privacy). this is the glow-up you want ๐ธ
Further, deployment of SNMP versions prior to SNMPv3 is NOT RECOMMENDED. Instead, it is RECOMMENDED to deploy SNMPv3 and to enable cryptographic security. It is then a customer/operator responsibility to ensure that the SNMP entity giving access to an instance of this MIB module is properly configured to give access to the objects only to those principals (users) who have legitimate rights to GET or SET (change/create/delete) them. main character energy: lock it down, keep it private, slay forever ๐โจ ๐
8. IANA Considerations โจ
okay so IANA gets its own little section, and it's giving registry paperwork ๐๐ The MIB module in this document uses one IANA-assigned OBJECT IDENTIFIER value, and it's recorded in the SMI Numbers registry:
Descriptor OBJECT IDENTIFIER value
---------- -----------------------
psampMIB { mib-2 212 }
Then IANA also registered a bunch of top-level OIDs in the IPFIX-SELECTOR-MIB Functions sub-registry at http://www.iana.org/assignments/smi-numbers ๐ฆ. This happened following the procedures in [RFC6615], and the table below is the lineup:
Decimal Name Description Reference
------- ------------------- -------------------------------- ---------
2 psampSampCountBased Systematic Count-based Sampling [RFC6727]
3 psampSampTimeBased Systematic Time-based Sampling [RFC6727]
4 psampSampRandOutOfN Random n-out-of-N Sampling [RFC6727]
5 psampSampUniProb Universal Probabilistic Sampling [RFC6727]
6 psampFiltPropMatch Property Match Filtering [RFC6727]
7 psampFiltHash Hash-based Filtering [RFC6727]
The prerequisites for adding these OIDs are to be verified based on what's in this document. That's the whole vibe: check the doc, then the OIDs get in. ๐
9. Acknowledgment ๐ซถ
this document is a product of the PSAMP and IPFIX WGs ๐. The authors wanted to shout out Paul Aitken for his super detailed review ๐, and Dan Romascanu, the MIB doctors, plus a lot of other people, for the technical reviews and feedback. Everyone who helped make this happen is literally iconic ๐.
10. References ๐
10.1. Normative References
- [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.
- [RFC2564] Kalbfleisch, C., Krupczak, C., Presuhn, R., and J. Saperia, "Application Management MIB", RFC 2564, May 1999.
- [RFC2578] McCloghrie, K., Ed., Perkins, D., Ed., and J. Schoenwaelder, Ed., "Structure of Management Information Version 2 (SMIv2)", STD 58, RFC 2578, April 1999.
- [RFC2579] McCloghrie, K., Ed., Perkins, D., Ed., and J. Schoenwaelder, Ed., "Textual Conventions for SMIv2", STD 58, RFC 2579, April 1999.
- [RFC2580] McCloghrie, K., Perkins, D., and J. Schoenwaelder, "Conformance Statements for SMIv2", STD 58, RFC 2580, April 1999.
- [RFC5101] Claise, B., "Specification of the IP Flow Information Export (IPFIX) Protocol for the Exchange of IP Traffic Flow Information", RFC 5101, January 2008.
- [RFC5477] Dietz, T., Claise, B., Aitken, P., Dressler, F., and G. Carle, "Information Model for Packet Sampling Exports", RFC 5477, March 2009.
- [RFC6340] Presuhn, R., "Textual Conventions for the Representation of Floating-Point Numbers", RFC 6340, August 2011.
- [RFC6615] Dietz, T., Kobayashi, A., Claise, B., and G. Muenz, "Definitions of Managed Objects for IP Flow Information Export", RFC 6615, June 2012.
10.2. Informative References
- [RFC3410] Case, J., Mundy, R., Partain, D., and B. Stewart, "Introduction and Applicability Statements for Internet-Standard Management Framework", RFC 3410, December 2002.
- [RFC5474] Duffield, N., Chiou, D., Claise, B., Greenberg, A., Grossglauser, M., and J. Rexford, "A Framework for Packet Selection and Reporting", RFC 5474, March 2009.
- [RFC5475] Zseby, T., Molina, M., Duffield, N., Niccolini, S., and F. Raspall, "Sampling and Filtering Techniques for IP Packet Selection", RFC 5475, March 2009.
- [RFC5476] Claise, B., Johnson, A., and J. Quittek, "Packet Sampling (PSAMP) Protocol Specifications", RFC 5476, March 2009.
Authors' Addresses ๐
Thomas Dietz (editor)
NEC Europe Ltd.
NEC Laboratories Europe
Kurfuersten-Anlage 36
69115 Heidelberg
Germany
Phone: +49 6221 4342-128
EMail: dietz@neclab.eu
Benoit Claise
Cisco Systems, Inc.
De Kleetlaan 6a b1
Diegem 1831
Belgium
Phone: +32 2 704 5622
EMail: bclaise@cisco.com
Juergen Quittek
NEC Europe Ltd.
NEC Laboratories Europe
Kurfuersten-Anlage 36
69115 Heidelberg
Germany
Phone: +49 6221 4342-115
EMail: quittek@neclab.eu
๐ฆ where this page comes from
- ietf: rfc6727 2012-10
- ๐ girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms