Internet DRAFT - draft-ietf-opsawg-ipfix-tcpo-v6eh
draft-ietf-opsawg-ipfix-tcpo-v6eh
OPSAWG M. Boucadair
Internet-Draft Orange
Intended status: Standards Track B. Claise
Expires: 9 August 2024 Huawei
6 February 2024
Extended TCP Options and IPv6 Extension Headers IPFIX Information
Elements
draft-ietf-opsawg-ipfix-tcpo-v6eh-10
Abstract
This document specifies new IP Flow Information Export (IPFIX)
Information Elements (IEs) to solve issues with existing
ipv6ExtensionHeaders and tcpOptions IPFIX IEs, especially the ability
to export any observed IPv6 extension headers or TCP options.
Discussion Venues
This note is to be removed before publishing as an RFC.
Discussion of this document takes place on the Operations and
Management Area Working Group Working Group mailing list
(opsawg@ietf.org), which is archived at
https://mailarchive.ietf.org/arch/browse/opsawg/.
Source for this draft and an issue tracker can be found at
https://github.com/boucadair/ipfix-tcpoptions-and-v6eh.
Status of This Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/.
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."
This Internet-Draft will expire on 9 August 2024.
Boucadair & Claise Expires 9 August 2024 [Page 1]
Internet-Draft New TCP and IPv6 EH IPFIX IEs February 2024
Copyright Notice
Copyright (c) 2024 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 (https://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 Revised BSD License text as
described in Section 4.e of the Trust Legal Provisions and are
provided without warranty as described in the Revised BSD License.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1. Issues with ipv6ExtensionHeaders Information Element . . 3
1.2. Issues with tcpOptions Information Element . . . . . . . 4
2. Conventions and Definitions . . . . . . . . . . . . . . . . . 4
3. Information Elements for IPv6 Extension Headers . . . . . . . 4
3.1. ipv6ExtensionHeaderType Information Element . . . . . . . 5
3.2. ipv6ExtensionHeaderCount Information Element . . . . . . 5
3.3. ipv6ExtensionHeadersFull Information Element . . . . . . 6
3.4. Information Element . . . . . . . . . . . . . . . . . . . 7
3.5. ipv6ExtensionHeadersLimit Information Element . . . . . . 8
3.6. ipv6ExtensionHeadersChainLength Information Element . . . 8
4. Information Elements for TCP Options . . . . . . . . . . . . 9
4.1. tcpOptionsFull Information Element . . . . . . . . . . . 9
4.2. tcpSharedOptionExID16 Information Element . . . . . . . . 10
4.3. tcpSharedOptionExID32 Information Element . . . . . . . . 10
5. Operational Considerations . . . . . . . . . . . . . . . . . 11
5.1. IPv6 Extension Headers . . . . . . . . . . . . . . . . . 11
5.2. TCP Options . . . . . . . . . . . . . . . . . . . . . . . 11
6. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 12
6.1. IPv6 Extension Headers . . . . . . . . . . . . . . . . . 12
6.2. TCP Options . . . . . . . . . . . . . . . . . . . . . . . 12
7. Security Considerations . . . . . . . . . . . . . . . . . . . 14
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 14
8.1. Deprecate ipv6ExtensionHeaders and tcpOptions Information
Elements . . . . . . . . . . . . . . . . . . . . . . . . 14
8.2. New IPFIX Information Elements . . . . . . . . . . . . . 14
8.3. New IPFIX Information Element Data Type . . . . . . . . . 15
8.4. IPFIX Subregistry for IPv6 Extension Headers . . . . . . 16
8.4.1. Initial Values . . . . . . . . . . . . . . . . . . . 16
8.4.2. Guidelines for the Designated Experts . . . . . . . . 17
9. References . . . . . . . . . . . . . . . . . . . . . . . . . 18
9.1. Normative References . . . . . . . . . . . . . . . . . . 18
Boucadair & Claise Expires 9 August 2024 [Page 2]
Internet-Draft New TCP and IPv6 EH IPFIX IEs February 2024
9.2. Informative References . . . . . . . . . . . . . . . . . 19
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 20
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 20
1. Introduction
This document specifies new IP Flow Information Export (IPFIX)
[RFC7011] Information Elements (IEs) to solve a set of issues
encountered with the specifications of ipv6ExtensionHeaders (to
export IPv6 extension headers) and tcpOptions (to export TCP options)
IEs [IANA-IPFIX]. More details about these issues are provided in
the following sub-sections.
1.1. Issues with ipv6ExtensionHeaders Information Element
The specification of ipv6ExtensionHeaders IPFIX IE (64) does not:
* Cover the full extension headers' range (Section 4 of [RFC8200]).
* Specify the procedure to follow when all bits are exhausted.
* Specify a means to export the order and the number of occurrences
of a given extension header.
* Specify how to automatically update the IANA IPFIX registry
([IANA-IPFIX]) when a new value is assigned in [IANA-EH]. Only a
frozen set of extension headers can be exported using the
ipv6ExtensionHeaders IE. For example, the ipv6ExtensionHeaders IE
can't report some IPv6 EHs, specifically 139, 140, 253, and 254.
* Specify whether the exported values match the full enclosed values
or only up to a limit imposed by hardware or software (e.g.,
Section 1.1 of [RFC8883]). Note that some implementations may not
be able to export all observed extension headers in a Flow because
of a hardware or software limit (see, e.g.,
[I-D.ietf-6man-eh-limits]. The specification of the
ipv6ExtensionHeaders Information Element does not discuss whether
it covers all enclosed extension headers or only up to a limit.
* Specify how to report the length of IPv6 extension headers.
* Optimize the encoding.
* Explain the reasoning for reporting values which do not correspond
to extension headers (e.g., "Unknown Layer 4 header" or "Payload
compression header").
Boucadair & Claise Expires 9 August 2024 [Page 3]
Internet-Draft New TCP and IPv6 EH IPFIX IEs February 2024
* Specify how to report extension header chains or aggregate
extension headers length.
Section 3 addresses these issues. Also, ipv6ExtensionHeaders IPFIX
IE is deprecated in favor of the new IEs defined in this document.
1.2. Issues with tcpOptions Information Element
The specification of tcpOptions IPFIX IE (209) does not:
* Describe how any observed TCP option in a Flow can be exported
using IPFIX. Only TCP options having a kind <= 63 can be exported
in a tcpOptions IE.
* Allow reporting the observed Experimental Identifiers (ExIDs) that
are carried in shared TCP options (kind=253 or 254) [RFC6994].
* Optimize the encoding.
Section 4 addresses these issues. Also, tcpOptions IE is deprecated
in favor of the new IEs defined in this document.
2. Conventions and Definitions
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
BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here.
This document uses the IPFIX-specific terminology (Information
Element, Template Record, Flow, etc.) defined in Section 2 of
[RFC7011]. As in [RFC7011], these IPFIX-specific terms have the
first letter of a word capitalized.
Also, the document uses the terms defined in [RFC8200] and [RFC9293].
In addition, the document makes use of the following term:
Extension header chain: Refers to the chain of extension headers
that are present in an IPv6 packet.
This term should not be confused with the IPv6 header chain, which
includes the IPv6 header, zero or more IPv6 extension headers, and
zero or a single Upper-Layer Header.
3. Information Elements for IPv6 Extension Headers
Boucadair & Claise Expires 9 August 2024 [Page 4]
Internet-Draft New TCP and IPv6 EH IPFIX IEs February 2024
3.1. ipv6ExtensionHeaderType Information Element
Name: ipv6ExtensionHeaderType
ElementID: TBD1
Description: The type of an IPv6 extension header observed in
packets of this Flow.
Abstract Data Type: unsigned8
Data Type Semantics: identifier
Additional Information: See [IANA-EH] for assigned extension header
types.
See Section 4 of [RFC8200] for the general definition of IPv6
extension headers.
Reference: This-Document
3.2. ipv6ExtensionHeaderCount Information Element
Name: ipv6ExtensionHeaderCount
ElementID: TBD2
Description: The number of consecutive occurrences of a same
extension header type in a Flow.
The type of the extension header is provided in the
ipv6ExtensionHeaderType Information Element.
Abstract Data Type: unsigned8
Data Type Semantics: totalCounter
Additional Information: See [IANA-EH] for assigned extension header
types.
See Section 4 of [RFC8200] for the general definition of IPv6
extension headers.
Reference: This-Document
Boucadair & Claise Expires 9 August 2024 [Page 5]
Internet-Draft New TCP and IPv6 EH IPFIX IEs February 2024
3.3. ipv6ExtensionHeadersFull Information Element
Name: ipv6ExtensionHeadersFull
ElementID: TBD3
Description: IPv6 extension headers observed in packets of this
Flow. The information is encoded in a set of bit fields. For
each IPv6 extension header, there is a bit in this set. The bit
is set to 1 if any observed packet of this Flow contains the
corresponding IPv6 extension header. Otherwise, if no observed
packet of this Flow contains the respective IPv6 extension header,
the value of the corresponding bit is 0.
The IPv6 extension header associated with each bit is provided in
[NEW_IPFIX_IPv6EH_SUBREGISTRY]. Bit 0 corresponds to the least-
significant bit in the ipv6ExtensionHeadersFull IE while bit 255
corresponds to the most-significant bit of the IE. In doing so,
few octets will be needed to encode common IPv6 extension headers
when observed in a Flow.
The "No Next Header" (59) value (Section 4.7 of [RFC8200]) is used
if there is no upper-layer header in an IPv6 packet. Even if the
value is not considered as an extension header as such, the
corresponding bit is set in the ipv6ExtensionHeadersFull IE
whenever that value is encountered in the Flow.
Several extension header chains may be observed in a Flow. These
extension headers MAY be aggregated in one single
ipv6ExtensionHeadersFull Information Element or be exported in
separate ipv6ExtensionHeadersFull IEs, one for each extension
header chain.
Abstract Data Type: unsigned256
Data Type Semantics: flags
Additional Information: See the assigned bits to each IPv6 extension
header type in [NEW_IPFIX_IPv6EH_SUBREGISTRY].
See [IANA-EH] for assigned extension header types.
See Section 4 of [RFC8200] for the general definition of IPv6
extension headers.
Reference: This-Document
Boucadair & Claise Expires 9 August 2024 [Page 6]
Internet-Draft New TCP and IPv6 EH IPFIX IEs February 2024
Note to the RFC Editor: Please replace
[NEW_IPFIX_IPv6EH_SUBREGISTRY] with the link to the
"ipv6ExtensionHeaders Bits" registry (Section 8.4).
3.4. Information Element
Name: ipv6ExtensionHeaderTypeCountList
ElementID: TBD4
Description: As per Section 4.1 of [RFC8200], IPv6 nodes must accept
and attempt to process extension headers occurring any number of
times in the same packet. This Information Element echoes the
order of extension headers and number of consecutive occurrences
of the same extension header type in a Flow.
This Information Element is a subTemplateList of
ipv6ExtensionHeaderType and ipv6ExtensionHeaderCount Information
Elements.
If several extension header chains are observed in a Flow, each
header chain MUST be exported in a separate IE.
The same extension header type may appear several times in an
ipv6ExtensionHeaderTypeCountList Information Element. For
example, if an IPv6 packet of a Flow includes a Hop-by-Hop Options
header, a Destination Options header, a Fragment header, and
Destination Options header, the ipv6ExtensionHeaderTypeCountList
Information Element will report two counts of the Destination
Options header: the occurrences that are observed before the
Fragment header and the occurrences right after the Fragment
header.
Abstract Data Type: subTemplateList
Data Type Semantics: list
Additional Information: See the assigned IPv6 extension header types
in [IANA-EH].
See [RFC8200] for the general definition of IPv6 extension
headers.
Reference: This-Document
Boucadair & Claise Expires 9 August 2024 [Page 7]
Internet-Draft New TCP and IPv6 EH IPFIX IEs February 2024
3.5. ipv6ExtensionHeadersLimit Information Element
Name: ipv6ExtensionHeadersLimit
ElementID: TBD5
Description: When set to "false", this Information Element indicates
that the exported extension headers information (e.g.,
ipv6ExtensionHeadersFull or ipv6ExtensionHeaderTypeCountList) does
not match the full enclosed extension headers, but only up to a
limit that is typically set by hardware or software.
When set to "true", this Information Element indicates that the
exported extension header information matches the full enclosed
extension headers.
Abstract Data Type: boolean
Data Type Semantics: default
Additional Information: See Section 4 of [RFC8200] for the general
definition of IPv6 extension headers.
See [RFC8883] for an example of IPv6 packet processing due to
limits on extension headers.
Reference: This-Document
3.6. ipv6ExtensionHeadersChainLength Information Element
Name: ipv6ExtensionHeadersChainLength
ElementID: TBD6
Description: In theory, there are no limits on the number of IPv6
extension headers that may be present in a packet other than the
path MTU. However, it was regularly reported that IPv6 packets
with extension headers are often dropped in the Internet.
As discussed in Section 1.2 of [RFC8883], some hardware devices
implement a parsing buffer of a fixed size to process packets,
including all the headers. When the aggregate length of headers
of an IPv6 packet exceeds that size, the packet will be discarded
or deferred to a slow path.
The ipv6ExtensionHeadersChainLength IE is used to report, in
Boucadair & Claise Expires 9 August 2024 [Page 8]
Internet-Draft New TCP and IPv6 EH IPFIX IEs February 2024
octets, the length of an extension header chain observed in a
Flow. The length is the sum of the length of all extension
headers of the chain. Exporting such information may help
identifying root causes of performance degradation, including
packet drops.
If several extension header chains are observed in a Flow, each
header chain length MUST be exported in a separate
ipv6ExtensionHeadersChainLength IE.
Abstract Data Type: unsigned32
Data Type Semantics: identifier
Units: octets
Additional Information: See Section 4 of [RFC8200] for the general
definition of IPv6 extension headers.
See [RFC9098] for an overview of operational implications of IPv6
packets with extension headers.
Reference: This-Document
4. Information Elements for TCP Options
4.1. tcpOptionsFull Information Element
This section specifies a new IE to cover the full TCP options range.
Name: tcpOptionsFull
ElementID: TBD7
Description: TCP options in packets of this Flow. The information
is encoded in a set of bit fields. For each TCP option, there is
a bit in this set. The bit is set to 1 if any observed packet of
this Flow contains the corresponding TCP option. Otherwise, if no
observed packet of this Flow contains the respective TCP option,
the value of the corresponding bit is 0.
Options are mapped to bits according to their option numbers. TCP
option kind 0 corresponds to the least-significant bit in the
tcpOptionsFull IE while kind 255 corresponds to the most-
significant bit of the IE. This approach allows an observer to
export any observed TCP option even if it does support that option
and without requiring updating a mapping table.
Boucadair & Claise Expires 9 August 2024 [Page 9]
Internet-Draft New TCP and IPv6 EH IPFIX IEs February 2024
Abstract Data Type: unsigned256
Data Type Semantics: flags
Additional Information: See the assigned TCP option kinds at
[IANA-TCP].
See [RFC9293] for the general definition of TCP options.
Reference: This-Document
4.2. tcpSharedOptionExID16 Information Element
Name: tcpSharedOptionExID16
ElementID: TBD8
Description: Any observed 2-byte Experiments IDs (ExIDs) in a shared
TCP option (Kind=253 or 254) in a Flow. The information is
encoded in a set of 16-bit fields. Each 16-bit field carries an
observed 2-byte ExID in a shared option.
Abstract Data Type: octetArray
Data Type Semantics: identifier
Additional Information: See assigned ExIDs at [IANA-TCP-EXIDs].
See [RFC9293] for the general definition of TCP options.
See [RFC6994] for the shared use of experimental TCP Options.
Reference: This-Document
4.3. tcpSharedOptionExID32 Information Element
Name: tcpSharedOptionExID32
ElementID: TBD9
Description: Any observed 4-byte Experiments IDs (ExIDs) in a shared
TCP option (Kind=253 or 254) in a Flow. The information is
encoded in a set of 32-bit fields. Each 32-bit field carries an
observed 4-byte ExID in a shared option.
Abstract Data Type: octetArray
Data Type Semantics: identifier
Boucadair & Claise Expires 9 August 2024 [Page 10]
Internet-Draft New TCP and IPv6 EH IPFIX IEs February 2024
Additional Information: See assigned ExIDs at [IANA-TCP-EXIDs].
See [RFC9293] for the general definition of TCP options.
See [RFC6994] for the shared use of experimental TCP Options.
Reference: This-Document
5. Operational Considerations
5.1. IPv6 Extension Headers
The value of ipv6ExtensionHeadersFull IE should be encoded in fewer
octets as per the guidelines in Section 6.2 of [RFC7011].
If an implementation determines that an observed packet of a Flow
includes an extension header that it does not support, then the exact
observed code of that extension header will be echoed in the
ipv6ExtensionHeaderTypeCountList IE (Section 3.4). How an
implementation disambiguates between unknown upper-layer protocols
vs. extension headers is not IPFIX-specific. Readers may refer, for
example, to Section 2.2 of [RFC8883] for a behavior of an
intermediate nodes that encounters an unknown Next Header type. It
is out of the scope of this document to discuss those considerations.
The ipv6ExtensionHeadersFull Information Element SHOULD NOT be
exported if ipv6ExtensionHeaderTypeCountList Information Element is
also present because of the overlapping scopes between these two IEs.
If both IEs are present, then ipv6ExtensionHeaderTypeCountList
Information Element takes precedence.
The ipv6ExtensionHeadersLimit IE (Section 3.5) may or may not be
present when the ipv6ExtensionHeadersChainLength IE (Section 3.6) is
also present as these IEs are targeting distinct properties of
extension headers handling.
5.2. TCP Options
The value of tcpOptionsFull IE should be encoded in fewer octets as
per the guidelines in Section 6.2 of [RFC7011].
Implementations of tcpSharedOptionExID16 and tcpSharedOptionExID32
IEs are assumed to be provided with a list of valid Experiment IDs
[IANA-TCP-EXIDs]. How that list is maintained is implementation-
specific. Absent that list, an implementation can't autonomously
determine whether an ExID is present and, if so, whether it is 2- or
4-byte length.
Boucadair & Claise Expires 9 August 2024 [Page 11]
Internet-Draft New TCP and IPv6 EH IPFIX IEs February 2024
If a TCP Flow contains packets with a mix of 2-byte and 4-byte
Experiment IDs, the same Template Record is used with both
tcpSharedOptionExID16 and tcpSharedOptionExID32 IEs.
6. Examples
This section provides a few examples to illustrate the use of some
IEs defined in this document.
6.1. IPv6 Extension Headers
Figure 1 provides an example of reported values in an
ipv6ExtensionHeadersFull IE for an IPv6 Flow in which only the IPv6
Destination Options header is observed. One octet is sufficient to
report these observed options. Concretely, the
ipv6ExtensionHeadersFull IE will be set to 0x01.
MSB LSB
1 25
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 ... 8 9 0 1 2 3 4 5
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+...+-+-+-+-+-+-+-+-+
|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0| |0|0|0|0|0|0|0|1|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+...+-+-+-+-+-+-+-+-+
Figure 1: A First Example of Extension Headers
Figure 2 provides another example of reported values in an
ipv6ExtensionHeadersFull IE for an IPv6 Flow in which the IPv6 Hop-
by-Hop Options, Routing, and Destination Options headers are
observed. One octet is sufficient to report these observed options.
Concretely, the ipv6ExtensionHeadersFull IE will be set to 0x23.
MSB LSB
1 25
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 ... 8 9 0 1 2 3 4 5
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+...+-+-+-+-+-+-+-+-+
|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0| |0|0|1|0|0|0|1|1|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+...+-+-+-+-+-+-+-+-+
Figure 2: A Second Example of Extension Headers
6.2. TCP Options
Given TCP kind allocation practices and the option mapping defined in
Section 4.1, fewer octets are likely to be used for Flows with common
TCP options.
Boucadair & Claise Expires 9 August 2024 [Page 12]
Internet-Draft New TCP and IPv6 EH IPFIX IEs February 2024
Figure 3 shows an example of reported values in a tcpOptionsFull IE
for a TCP Flow in which End of Option List, Maximum Segment Size, and
Window Scale options are observed. One octet is sufficient to report
these observed options. Concretely, the tcpOptionsFull IE will be
set to 0x0D.
MSB LSB
1 25
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 ... 8 9 0 1 2 3 4 5
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+...+-+-+-+-+-+-+-+-+
|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0| |0|0|0|0|1|1|0|1|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+...+-+-+-+-+-+-+-+-+
Figure 3: First Example of TCP Options
Let us consider a TCP Flow in which shared options with ExIDs 0x0348
(HOST_ID) [RFC7974], 0x454E (TCP-ENO) [RFC8547], and 0xE2D4C3D9
(Shared Memory communications over RMDA protocol) [RFC7609] are
observed. As shown in Figure 4, two TCP shared IEs will be used to
report these observed ExIDs:
1. The tcpSharedOptionExID16 IE set to 0x348454E to report observed
2-byte ExIDs: HOST_ID and TCP-ENO ExIDs.
2. The tcpSharedOptionExID32 IE set to 0xE2D4C3D9 to report the only
observed 4-byte ExID.
tcpSharedOptionExID16 IE:
MSB LSB
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 0x0348 | 0x454E |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
tcpSharedOptionExID32 IE:
MSB LSB
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 0xE2D4C3D9 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 4: Example of TCP Shared IEs
Boucadair & Claise Expires 9 August 2024 [Page 13]
Internet-Draft New TCP and IPv6 EH IPFIX IEs February 2024
7. Security Considerations
IPFIX security considerations are discussed in Section 11 of
[RFC7011].
ipv6ExtensionHeadersChainLength and ipv6ExtensionHeadersLimit IEs can
be exploited by an unauthorized observer as a means to deduce the
processing capabilities of nodes. Section 8 of [RFC7012] discusses
the required measures to guarantee the integrity and confidentiality
of the exported information.
This document does not add new security considerations for exporting
other IEs other than those already discussed in Section 8 of
[RFC7012].
8. IANA Considerations
8.1. Deprecate ipv6ExtensionHeaders and tcpOptions Information Elements
This document requests IANA to update the "IPFIX Information
Elements" registry under the "IP Flow Information Export (IPFIX)
Entities" registry group [IANA-IPFIX] as follows:
* Update the ipv6ExtensionHeaders IE (64) entry by marking it as
deprecated in favor of the ipv6ExtensionHeadersFull IE defined in
this document. This note should also be echoed in the "Additional
Information" of this IE.
* Update the tcpOptions IE (209) entry by marking it as deprecated
in favor of the tcpOptionsFull IE defined in this document. This
note should also be echoed in the "Additional Information" of this
IE.
IANA is also requested to update the reference of
ipv6ExtensionHeaders IE (64) and tcpOptions IE (209) to point to this
document.
8.2. New IPFIX Information Elements
This document requests IANA to add the following new IPFIX IEs to the
"IPFIX Information Elements" registry under the "IP Flow Information
Export (IPFIX) Entities" registry group [IANA-IPFIX]:
Boucadair & Claise Expires 9 August 2024 [Page 14]
Internet-Draft New TCP and IPv6 EH IPFIX IEs February 2024
+=======+==================================+================+
| Value | Name | Reference |
+=======+==================================+================+
| TBD1 | ipv6ExtensionHeader | Section 3.1 of |
| | | This-Document |
+-------+----------------------------------+----------------+
| TBD2 | ipv6ExtensionHeaderCount | Section 3.2 of |
| | | This-Document |
+-------+----------------------------------+----------------+
| TBD3 | ipv6ExtensionHeadersFull | Section 3.3 of |
| | | This-Document |
+-------+----------------------------------+----------------+
| TBD4 | ipv6ExtensionHeaderTypeCountList | Section 3.4 of |
| | | This-Document |
+-------+----------------------------------+----------------+
| TBD5 | ipv6ExtensionHeadersLimit | Section 3.5 of |
| | | This-Document |
+-------+----------------------------------+----------------+
| TBD6 | ipv6ExtensionHeadersChainLength | Section 3.6 of |
| | | This-Document |
+-------+----------------------------------+----------------+
| TBD7 | tcpOptionsFull | Section 4.1 of |
| | | This-Document |
+-------+----------------------------------+----------------+
| TBD8 | tcpSharedOptionExID16 | Section 4.2 of |
| | | This-Document |
+-------+----------------------------------+----------------+
| TBD9 | tcpSharedOptionExID32 | Section 4.3 of |
| | | This-Document |
+-------+----------------------------------+----------------+
Table 1: New IPFIX Information Elements
8.3. New IPFIX Information Element Data Type
This document requests IANA to add the following new abstract data
type to the "IPFIX Information Element Data Types" registry under the
"IP Flow Information Export (IPFIX) Entities" registry group
[IANA-IPFIX]:
+=======+=============+===============+
| Value | Description | Reference |
+=======+=============+===============+
| TBD10 | unsigned256 | This-Document |
+-------+-------------+---------------+
Table 2: New IPFIX Information
Element Data Type
Boucadair & Claise Expires 9 August 2024 [Page 15]
Internet-Draft New TCP and IPv6 EH IPFIX IEs February 2024
The type "unsigned256" represents a non-negative integer value in the
range of '0' to '2^256 - 1'. This type MUST be encoded as per
Section 6.1.1 of [RFC7011].
8.4. IPFIX Subregistry for IPv6 Extension Headers
This document requests IANA to create a new registry entitled
"ipv6ExtensionHeaders Bits" under the IANA IPFIX registry group
[IANA-IPFIX].
When a new code is assigned to an IPv6 EH in [IANA-EH], the next
available free bit is selected by IANA for this EH from
"ipv6ExtensionHeaders Bits" registry and the registry is updated with
the details that mirror the assigned EH. The "Label" mirrors the
"keyword" of an EH as indicated in [IANA-Protocols], while the
"Protocol Number" mirrors the "Protocol Number" in [IANA-EH]. IANA
is requested to add the following note to [IANA-EH]:
Note: When a new code is assigned to an IPv6 Extension Header,
the next available free bit in [NEW_IPFIX_IPv6EH_SUBREGISTRY]
is selected for this new Extension Header.
>>[NEW_IPFIX_IPv6EH_SUBREGISTRY] is updated accordingly.
Modifications to existing registrations must be mirrored in
[NEW_IPFIX_IPv6EH_SUBREGISTRY].
Note to the RFC Editor: Please replace
[NEW_IPFIX_IPv6EH_SUBREGISTRY] with the link used by IANA for this
new registry.
Otherwise, the registration policy for the registry is Expert Review
(Section 4.5 of [RFC8126]). See more details in Section 8.4.2.
8.4.1. Initial Values
The initial values of this registry are provided in Table 3.
+=====+=======+==========+=========================+===============+
| Bit | Label | Protocol | Description | Reference |
| | | Number | | |
+=====+=======+==========+=========================+===============+
| 0 | DST | 60 | Destination Options for | This-Document |
| | | | IPv6 | |
+-----+-------+----------+-------------------------+---------------+
| 1 | HOP | 0 | Pv6 Hop-by-Hop Options | This-Document |
+-----+-------+----------+-------------------------+---------------+
| 2 | NoNxt | 59 | No Next Header for IPv6 | This-Document |
+-----+-------+----------+-------------------------+---------------+
| 3 | UNK | | Unknown Layer 4 header | This-Document |
Boucadair & Claise Expires 9 August 2024 [Page 16]
Internet-Draft New TCP and IPv6 EH IPFIX IEs February 2024
| | | | (compressed, encrypted, | |
| | | | not supported) | |
+-----+-------+----------+-------------------------+---------------+
| 4 | FRA0 | 44 | Fragment header - first | This-Document |
| | | | fragment | |
+-----+-------+----------+-------------------------+---------------+
| 5 | RH | 43 | Routing header | This-Document |
+-----+-------+----------+-------------------------+---------------+
| 6 | FRA1 | 44 | Fragmentation header - | This-Document |
| | | | not first fragment | |
+-----+-------+----------+-------------------------+---------------+
| 7 | | | Unassigned | |
| to | | | | |
| 11 | | | | |
+-----+-------+----------+-------------------------+---------------+
| 12 | MOB | 135 | Mobility Header | This-Document |
+-----+-------+----------+-------------------------+---------------+
| 13 | ESP | 50 | Encapsulating Security | This-Document |
| | | | Payload | |
+-----+-------+----------+-------------------------+---------------+
| 14 | AH | 51 | Authentication Header | This-Document |
+-----+-------+----------+-------------------------+---------------+
| 15 | | | Unassigned | |
+-----+-------+----------+-------------------------+---------------+
| 16 | HIP | 139 | Host Identity Protocol | This-Document |
+-----+-------+----------+-------------------------+---------------+
| 17 | SHIM6 | 140 | Shim6 Protocol | This-Document |
+-----+-------+----------+-------------------------+---------------+
| 18 | | 253 | Use for experimentation | This-Document |
| | | | and testing | |
+-----+-------+----------+-------------------------+---------------+
| 19 | | 254 | Use for experimentation | This-Document |
| | | | and testing | |
+-----+-------+----------+-------------------------+---------------+
| 20 | | | Unassigned | |
| to | | | | |
| 255 | | | | |
+-----+-------+----------+-------------------------+---------------+
Table 3: Initial Values of the IPv6 Extension Headers IPFIX
Subregistry
8.4.2. Guidelines for the Designated Experts
It is suggested that multiple designated experts be appointed for
registry change requests.
Boucadair & Claise Expires 9 August 2024 [Page 17]
Internet-Draft New TCP and IPv6 EH IPFIX IEs February 2024
Criteria that should be applied by the designated experts include
determining whether the proposed registration duplicates existing
entries and whether the registration description is clear and fits
the purpose of this registry.
Within the review period, the designated experts will either approve
or deny the registration request, communicating this decision to the
IANA. Denials should include an explanation and, if applicable,
suggestions as to how to make the request successful.
9. References
9.1. Normative References
[IANA-EH] IANA, "Internet Protocol Version 6 (IPv6) Parameters, IPv6
Extension Header Types",
<https://www.iana.org/assignments/ipv6-parameters/
ipv6-parameters.xhtml#ipv6-parameters-1>.
[IANA-IPFIX]
IANA, "IP Flow Information Export (IPFIX) Entities",
<https://www.iana.org/assignments/ipfix/ipfix.xhtml>.
[IANA-Protocols]
IANA, "Protocol Numbers",
<https://www.iana.org/assignments/protocol-numbers/
protocol-numbers.xhtml>.
[IANA-TCP] IANA, "Transmission Control Protocol (TCP) Parameters, TCP
Option Kind Numbers", <https://www.iana.org/assignments/
tcp-parameters/tcp-parameters.xhtml#tcp-parameters-1>.
[IANA-TCP-EXIDs]
IANA, "Transmission Control Protocol (TCP) Parameters, TCP
Experimental Option Experiment Identifiers (TCP ExIDs)",
<https://www.iana.org/assignments/tcp-parameters/tcp-
parameters.xhtml#tcp-exids>.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/rfc/rfc2119>.
[RFC6994] Touch, J., "Shared Use of Experimental TCP Options",
RFC 6994, DOI 10.17487/RFC6994, August 2013,
<https://www.rfc-editor.org/rfc/rfc6994>.
Boucadair & Claise Expires 9 August 2024 [Page 18]
Internet-Draft New TCP and IPv6 EH IPFIX IEs February 2024
[RFC7011] Claise, B., Ed., Trammell, B., Ed., and P. Aitken,
"Specification of the IP Flow Information Export (IPFIX)
Protocol for the Exchange of Flow Information", STD 77,
RFC 7011, DOI 10.17487/RFC7011, September 2013,
<https://www.rfc-editor.org/rfc/rfc7011>.
[RFC7012] Claise, B., Ed. and B. Trammell, Ed., "Information Model
for IP Flow Information Export (IPFIX)", RFC 7012,
DOI 10.17487/RFC7012, September 2013,
<https://www.rfc-editor.org/rfc/rfc7012>.
[RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for
Writing an IANA Considerations Section in RFCs", BCP 26,
RFC 8126, DOI 10.17487/RFC8126, June 2017,
<https://www.rfc-editor.org/rfc/rfc8126>.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/rfc/rfc8174>.
[RFC8200] Deering, S. and R. Hinden, "Internet Protocol, Version 6
(IPv6) Specification", STD 86, RFC 8200,
DOI 10.17487/RFC8200, July 2017,
<https://www.rfc-editor.org/rfc/rfc8200>.
[RFC9293] Eddy, W., Ed., "Transmission Control Protocol (TCP)",
STD 7, RFC 9293, DOI 10.17487/RFC9293, August 2022,
<https://www.rfc-editor.org/rfc/rfc9293>.
9.2. Informative References
[I-D.ietf-6man-eh-limits]
Herbert, T., "Limits on Sending and Processing IPv6
Extension Headers", Work in Progress, Internet-Draft,
draft-ietf-6man-eh-limits-12, 18 December 2023,
<https://datatracker.ietf.org/doc/html/draft-ietf-6man-eh-
limits-12>.
[RFC7609] Fox, M., Kassimis, C., and J. Stevens, "IBM's Shared
Memory Communications over RDMA (SMC-R) Protocol",
RFC 7609, DOI 10.17487/RFC7609, August 2015,
<https://www.rfc-editor.org/rfc/rfc7609>.
[RFC7974] Williams, B., Boucadair, M., and D. Wing, "An Experimental
TCP Option for Host Identification", RFC 7974,
DOI 10.17487/RFC7974, October 2016,
<https://www.rfc-editor.org/rfc/rfc7974>.
Boucadair & Claise Expires 9 August 2024 [Page 19]
Internet-Draft New TCP and IPv6 EH IPFIX IEs February 2024
[RFC8547] Bittau, A., Giffin, D., Handley, M., Mazieres, D., and E.
Smith, "TCP-ENO: Encryption Negotiation Option", RFC 8547,
DOI 10.17487/RFC8547, May 2019,
<https://www.rfc-editor.org/rfc/rfc8547>.
[RFC8883] Herbert, T., "ICMPv6 Errors for Discarding Packets Due to
Processing Limits", RFC 8883, DOI 10.17487/RFC8883,
September 2020, <https://www.rfc-editor.org/rfc/rfc8883>.
[RFC9098] Gont, F., Hilliard, N., Doering, G., Kumari, W., Huston,
G., and W. Liu, "Operational Implications of IPv6 Packets
with Extension Headers", RFC 9098, DOI 10.17487/RFC9098,
September 2021, <https://www.rfc-editor.org/rfc/rfc9098>.
Acknowledgments
Thanks to Paul Aitken and Eric Vyncke for the review and comments.
Special thanks to Andrew Feren for sharing data about scans of IPFIX
data he collected.
Thanks to Wesley Eddy for the tsvart review, Yingzhen Qu for the
opsdir review, and Dirk Von Hugo for intdir review.
Thanks to Thomas Graf for the Shepherd review.
Authors' Addresses
Mohamed Boucadair
Orange
Email: mohamed.boucadair@orange.com
Benoit Claise
Huawei
Email: benoit.claise@huawei.com
Boucadair & Claise Expires 9 August 2024 [Page 20]