Internet-Draft | Filtering of IPv6 packets with EHs | May 2022 |
Gont & Liu | Expires 4 November 2022 | [Page] |
This document analyzes the security implications of IPv6 Extension Headers and associated IPv6 options. Additionally, it discusses the operational and interoperability implications of discarding packets based on the IPv6 Extension Headers and IPv6 options they contain. Finally, it provides advice on the filtering of such IPv6 packets at transit routers for traffic not directed to them, for those cases where such filtering is deemed as necessary.¶
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 4 November 2022.¶
Copyright (c) 2022 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.¶
IPv6 Extension Headers (EHs) allow for the extension of the IPv6 protocol, and provide support for core functionality such as IPv6 fragmentation. However, common implementation limitations suggest that EHs present a challenge for IPv6 packet routing equipment, particularly when the IPv6 header chain needs to be processed for e.g. enforcing ACLs or implementing other functions [RFC9098].¶
Several studies (e.g. [Huston-2022], [I-D.vyncke-v6ops-james], and [RFC7872]) suggest that there is widespread dropping of IPv6 packets that contain IPv6 Extension Headers (EHs). In some cases, such packet drops occur at transit routers. While some operators are known to intentionally drop packets that contain IPv6 EHs, it is possible that some of the measured packet drops are the result of inappropriate advice in this area.¶
This document analyzes both the general security implications of IPv6 EHs, as well as the security implications of specific EH and Option types. It also provides advice on the filtering of IPv6 packets based on the IPv6 EHs and the IPv6 options they contain. Since various protocols may use IPv6 EHs (possibly with IPv6 options), discarding packets based on the IPv6 EHs or IPv6 options they contain can have implications on the proper functioning of such protocols. Thus, this document also attempts to discuss the operational and interoperability implications of such filtering policies.¶
The resulting packet filtering policy typically depends on where in the network such policy is enforced: when the policy is enforced in a transit network, the policy typically follows a "deny-list" approach, where only packets with clear negative implications are dropped. On the other hand, when the policy is enforced closer to the destination systems, the policy typically follows an "accept-list" approach, where only traffic that is expected to be received is allowed. The advice in this document is aimed only at transit routers that may need to enforce a filtering policy based on the EHs and IPv6 options a packet may contain, following a "deny-list" approach, and hence is likely to be much more permissive than a filtering policy to be employed at e.g. the edge of an enterprise network. The advice in this document is meant to improve the current situation of the dropping of packets with IPv6 EHs in the Internet [RFC7872] in such cases where packets are being dropped due to inappropriate or missing guidelines.¶
This document is similar in nature to [RFC7126], which addresses the same problem for the IPv4 case. However, in IPv6, the problem space is compounded by the fact that IPv6 specifies a number of IPv6 EHs, and a number of IPv6 options which may be valid only when included in specific EH types.¶
This document completes and complements the considerations for protecting the control plane from packets containing IP options that can be found in [RFC6192].¶
Section 2 specifies the terminology and conventions employed throughout this document. Section 3 discusses IPv6 EHs and provides advice in the area of filtering IPv6 packets that contain such IPv6 EHs. Section 4 discusses IPv6 options and provides advice in the area of filtering IPv6 packets that contain such options.¶
The terms "permit" (allow the traffic), "drop" (drop with no notification to sender), and "reject" (drop with appropriate notification to sender) are employed as defined in [RFC3871]. Throughout this document we also employ the term "discard" as a generic term to indicate the act of discarding a packet, irrespective of whether the sender is notified of such drops, and irrespective of whether the specific filtering action is logged.¶
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 provides advice on the filtering of IPv6 packets with EHs at transit routers for traffic not explicitly destined to them, for cases in which such filtering is deemed as necessary.¶
This document assumes that nodes comply with the requirements in [RFC7045]. Namely,¶
The advice provided in this document is only meant to guide an operator in configuring forwarding devices, and is not to be interpreted as advice regarding default configuration settings for network devices. That is, this document provides advice with respect to operational policies, but does not change the implementation defaults required by [RFC7045].¶
We recommend that configuration options are made available to govern the processing of each IPv6 EH type and each IPv6 option type. Such configuration options should include the following possible settings:¶
We note that special care needs to be taken when devices log packet drops/rejects. Devices should count the number of packets dropped/rejected, but the logging of drop/reject events should be limited so as to not overburden device resources.¶
Finally, we note that when discarding packets, it is generally desirable that the sender be signaled of the packet drop, since this is of use for trouble-shooting purposes. However, throughout this document (when recommending that packets be discarded) we generically refer to the action as "discard" without specifying whether the sender is signaled of the packet drop.¶
IPv6 [RFC8200] EHs allow for the extension of the IPv6 protocol. Since both IPv6 EHs and upper-layer protocols share the same namespace ("Next Header" registry/namespace), [RFC7045] identifies which of the currently assigned Internet Protocol numbers identify IPv6 EHs vs. upper-layer protocols. This document discusses the filtering of packets based on the IPv6 EHs (as specified by [RFC7045]) they contain.¶
In some device architectures, IPv6 packets that contain IPv6 EHs can cause the corresponding packets to be processed on the slow path, and hence may be leveraged for the purpose of Denial of Service (DoS) attacks [RFC9098] [Cisco-EH] [FW-Benchmark].¶
Operators are urged to consider the IPv6 EH and IPv6 options handling capabilities of their devices as they make deployment decisions in the future.¶
This section summarizes the advice provided in Section 3.5, providing references to the specific sections in which a detailed analysis can be found.¶
EH type | Filtering policy | Reference |
---|---|---|
IPv6 Hop-by-Hop Options (Proto=0) | Drop or Ignore | Section 3.5.1 |
Routing Header for IPv6 (Proto=43) | Drop only RHT0 and RHT1. Permit other RH Types | Section 3.5.2 |
Fragment Header for IPv6 (Proto=44) | Permit | Section 3.5.3 |
Encapsulating Security Payload (Proto=50) | Permit | Section 3.5.4 |
Authentication Header (Proto=51) | Permit | Section 3.5.5 |
Destination Options for IPv6 (Proto=60) | Permit | Section 3.5.6 |
Mobility Header (Proto=135) | Permit | Section 3.5.7 |
Host Identity Protocol (Proto=139) | Permit | Section 3.5.8 |
Shim6 Protocol (Proto=140) | Permit | Section 3.5.9 |
Use for experimentation and testing (Proto=253 and 254) | Drop | Section 3.5.10 |
The Hop-by-Hop Options header is used to carry optional information that may be examined by every node along a packet's delivery path. It is expected that nodes will examine the Hop-by-Hop Options header if explicitly configured to do so.¶
NOTE: A previous revision of the IPv6 core specification, [RFC2460], originally required that all nodes examined and processed the Hop-by-Hop Options header. However, even before the publication of [RFC8200] a number of implementations already provided the option of ignoring this header unless explicitly configured to examine it.¶
This EH is specified in [RFC8200]. As of May 2022, the following options have been specified for the Hop-by-Hop Options EH:¶
Legacy nodes that process this extension header might be subject to Denial of Service attacks.¶
NOTE: While [RFC8200] has removed this requirement, the deployed base may still reflect the classical behavior for a while, and hence the potential security problems of this EH are still of concern.¶
Discarding packets containing a Hop-by-Hop Options EH would break any of the protocols that rely on it for proper functioning. For example, it would break RSVP [RFC2205] and multicast deployments, and would cause IPv6 jumbograms to be discarded.¶
Nodes implementing [RFC8200] would already ignore this extension header unless explicitly required to process it. For legacy ([RFC2460]) nodes, the recommended configuration for the processing of these packets depends on the features and capabilities of the underlying platform, the configuration of the platform, and also the deployment environment of the platform. On platforms that allow forwarding of packets with HBH Options on the fast path, we recommend that packets with a HBH Options EH be forwarded as normal. Otherwise, on platforms in which processing of packets with a IPv6 HBH Options EH is carried out in the slow path, and an option is provided to rate-limit these packets, we recommend that this option be selected. Finally, when packets containing a HBH Options EH are processed in the slow-path, and the underlying platform does not have any mitigation options available for attacks based on these packets, we recommend that such platforms discard packets containing IPv6 HBH Options EHs.¶
Finally, we note that RPL (Routing Protocol for Low-Power and Lossy Networks) routers [RFC6550] must not discard packets based on the presence of an IPv6 Hop-by-Hop Options EH, as this would break RPL.¶
The Routing header is used by an IPv6 source to list one or more intermediate nodes to be "visited" on the way to a packet's destination.¶
This EH is specified in [RFC8200]. [RFC2460] had originally specified the Routing Header Type 0, which was later obsoleted by [RFC5095], and thus removed from [RFC8200].¶
At of May 2022, the following Routing Types have been specified:¶
The security implications of RHT0 have been discussed in detail in [Biondi2007] and [RFC5095]. RHT1 was never widely implemented. The security implications of RHT2, RHT3, and RHT4 (SRH) are discussed in [RFC6275], [RFC6554], and [RFC8754], respectively.¶
Blocking packets containing a RHT0 or RHT1 has no operational implications, since both have been deprecated. Blocking packets with a RHT2 would break Mobile IPv6. Packets with a RHT3 may be safely blocked at RPL domain boundaries, since RHT3 headers are employed within a single RPL domain. Blocking packets with a RHT4 (SRH) will break Segment Routing (SR) deployments, if the filtering policy is enforced on packets being forwarded within an SR domain.¶
Intermediate systems should discard packets containing a RHT0, RHT1, or RHT3. Other routing header types should be permitted, as required by [RFC7045].¶
This EH provides the fragmentation functionality for IPv6.¶
The security implications of the Fragment Header range from Denial of Service attacks (e.g. based on flooding a target with IPv6 fragments) to information leakage attacks [RFC7739].¶
Blocking packets that contain a Fragment Header will break any protocol that may rely on fragmentation (e.g., the DNS [RFC1034]). However, IP fragmentation is known to introduce fragility to Internet communication [RFC8900].¶
Intermediate systems should permit packets that contain a Fragment Header.¶
Besides the general implications of IPv6 EHs, this EH could be employed to potentially perform a DoS attack at the destination system by wasting CPU resources in validating the contents of the packet.¶
Discarding packets that employ this EH would break IPsec deployments.¶
Intermediate systems should permit packets containing the Encapsulating Security Payload EH.¶
The Authentication Header can be employed for provide authentication services in IPv4 and IPv6.¶
Besides the general implications of IPv6 EHs, this EH could be employed to potentially perform a DoS attack at the destination system by wasting CPU resources in validating the contents of the packet.¶
Discarding packets that employ this EH would break IPsec deployments.¶
Intermediate systems should permit packets containing an Authentication Header.¶
The Destination Options header is used to carry optional information that needs be examined only by a packet's destination node(s).¶
This EH is specified in [RFC8200]. As of May 2022, the following options have been specified for this EH:¶
No security implications are known, other than the general implications of IPv6 EHs. For a discussion of possible security implications of specific options specified for the DO header, please see the Section 4.4.¶
Discarding packets that contain a Destination Options header would break protocols that rely on this EH type for conveying information, including protocols such as ILNP [RFC6740] and Mobile IPv6 [RFC6275], and IPv6 tunnels that employ the Tunnel Encapsulation Limit option.¶
Intermediate systems should permit packets that contain a Destination Options Header.¶
The Mobility Header is an EH used by mobile nodes, correspondent nodes, and home agents in all messaging related to the creation and management of bindings in Mobile IPv6.¶
A thorough security assessment of the security implications of the Mobility Header and related mechanisms can be found in Section 15 of [RFC6275].¶
Discarding packets containing this EH would break Mobile IPv6.¶
Intermediate systems should permit packets containing this EH.¶
This EH is employed with the Host Identity Protocol (HIP), a protocol that allows consenting hosts to securely establish and maintain shared IP-layer state, allowing separation of the identifier and locator roles of IP addresses, thereby enabling continuity of communications across IP address changes.¶
The security implications of the HIP header are discussed in detail in Section 8 of [RFC6275].¶
Discarding packets that contain the Host Identity Protocol would break HIP deployments.¶
Intermediate systems should permit packets that contain a Host Identity Protocol EH.¶
The specific security implications are discussed in detail in Section 16 of [RFC5533].¶
Discarding packets that contain this EH will break Shim6.¶
Intermediate systems should permit packets containing this EH.¶
These IPv6 EHs are employed for performing RFC3692-Style experiments (see [RFC3692] for details).¶
The security implications of these EHs will depend on their specific use.¶
For obvious reasons, discarding packets that contain these EHs limits the ability to perform legitimate experiments across IPv6 routers.¶
Operators should determine according to their own circumstances whether to discard packets containing these EHs.¶
We refer to IPv6 EHs that have not been assigned an Internet Protocol Number by IANA (and marked as such) in [IANA-PROTOCOLS] as "unknown IPv6 extension headers" ("unknown IPv6 EHs").¶
New IPv6 EHs may be specified as part of future extensions to the IPv6 protocol.¶
Since IPv6 EHs and Upper-layer protocols employ the same namespace, it is impossible to tell whether an unknown "Internet Protocol Number" is being employed for an IPv6 EH or an Upper-Layer protocol.¶
The processing of unknown IPv6 EHs is specified in [RFC7045].¶
For obvious reasons, it is impossible to determine specific security implications of unknown IPv6 EHs.¶
As noted in [RFC7045], discarding unknown IPv6 EHs may slow down the deployment of new IPv6 EHs and transport protocols. The corresponding IANA registry ([IANA-PROTOCOLS]) should be monitored such that filtering rules are updated as new IPv6 EHs are standardized.¶
We note that since IPv6 EHs and upper-layer protocols share the same numbering space, discarding unknown IPv6 EHs may result in packets encapsulating unknown upper-layer protocols being discarded.¶
Operators should determine according to their own circumstances whether to discard packets containing unknown IPv6 EHs.¶
The following subsections describe specific security implications of different IPv6 options, and provide advice regarding filtering packets that contain such options.¶
The general security implications of IPv6 options are closely related to those discussed in Section 3.2 for IPv6 EHs. Essentially, packets that contain IPv6 options might need to be processed by an IPv6 router's general-purpose CPU,and hence could present a DDoS risk to that router's general-purpose CPU (and thus to the router itself). For some architectures, a possible mitigation would be to rate-limit the packets that are to be processed by the general-purpose CPU (see e.g. [Cisco-EH]).¶
This section summarizes the advice provided in Section 3.5, providing references to the specific sections in which a detailed analysis can be found.¶
Option | Filtering policy | Reference |
---|---|---|
Pad1 (Type=0x00) | Permit | Section 4.4.1 |
PadN (Type=0x01) | Permit | Section 4.4.2 |
Tunnel Encapsulation Limit (Type=0x04) | Permit | Section 4.4.3 |
Router Alert (Type=0x05) | Permit based on needed functionality | Section 4.4.4 |
CALIPSO (Type=0x07) | Permit based on needed functionality | Section 4.4.5 |
SMF_DPD (Type=0x08) | Permit based on needed functionality | Section 4.4.6 |
PDM Option (Type=0x0F) | Permit | Section 4.4.7 |
RPL Option (Type=0x23) | Permit | Section 4.4.8 |
Quick-Start (Type=0x26) | Permit | Section 4.4.9 |
Deprecated (Type=0x4D) | Drop | Section 4.4.10 |
MPL Option (Type=0x6D) | Permit | Section 4.4.12 |
Jumbo Payload (Type=0C2) | Permit based on needed functionality | Section 4.4.16 |
RPL Option (Type=0x63) | Drop in non-RPL routers | Section 4.4.11 |
Endpoint Identification (Type=0x8A) | Drop | Section 4.4.13 |
ILNP Nonce (Type=0x8B) | Permit | Section 4.4.14 |
Line-Identification Option (Type=0x8C) | Drop | Section 4.4.15 |
Home Address (Type=0xC9) | Permit | Section 4.4.17 |
IP_DFF (Type=0xEE) | Permit based on needed functionality | Section 4.4.18 |
RFC3692-style Experiment (Types = 0x1E, 0x3E, 0x5E, 0x7E, 0x9E, 0xBE, 0xDE, 0xFE) | Permit based on needed functionality | Section 4.4.19 |
The following subsections contain a description of each of the IPv6 options that have so far been specified, a summary of the security implications of each of such options, a discussion of possible interoperability implications if packets containing such options are discarded, and specific advice regarding whether packets containing these options should be permitted.¶
This option is used when necessary to align subsequent options and to pad out the containing header to a multiple of 8 octets in length.¶
None.¶
Discarding packets that contain this option would potentially break any protocol that relies on IPv6 options.¶
Intermediate systems should not discard packets based on the presence of this option.¶
This option is used when necessary to align subsequent options and to pad out the containing header to a multiple of 8 octets in length.¶
Because of the possible size of this option, it could be leveraged as a large-bandwidth covert channel.¶
Discarding packets that contain this option would potentially break any protocol that relies on IPv6 options.¶
Intermediate systems should not discard IPv6 packets based on the presence of this option.¶
The Tunnel Encapsulation Limit option can be employed to specify how many further levels of nesting the packet is permitted to undergo.¶
Discarding packets based on the presence of this option could result in tunnel traffic being discarded.¶
Intermediate systems should not discard packets based on the presence of this option.¶
The Router Alert option [RFC2711] is employed by a number of protocols, including the Resource reSerVation Protocol (RSVP) [RFC2205], Multicast Listener Discovery (MLD) [RFC2710] [RFC3810], Multicast Router Discovery (MRD) [RFC4286], and General Internet Signaling Transport (GIST) [RFC5971]. Its usage is discussed in detail in [RFC6398].¶
Since this option causes the contents of the packet to be inspected by the handling device, this option could be leveraged for performing DoS attacks. The security implications of the Router Alert option are discussed in detail in [RFC6398].¶
Discarding packets that contain this option would break any protocols that rely on them, such as RSVP and multicast deployments. Please see Section 4.4.4.3 for further details.¶
Packets containing this option should be permitted in environments where support for RSVP, multicast routing, or similar protocols is desired.¶
This option is used for encoding explicit packet Sensitivity Labels on IPv6 packets. It is intended for use only within Multi-Level Secure (MLS) networking environments that are both trusted and trustworthy.¶
Presence of this option in a packet does not by itself create any specific new threat. Packets with this option ought not normally be seen on the global public Internet.¶
If packets with this option are discarded or if the option is stripped from the packet during transmission from source to destination, then the packet itself is likely to be discarded by the receiver because it is not properly labeled. In some cases, the receiver might receive the packet but associate an incorrect sensitivity label with the received data from the packet whose CALIPSO was stripped by a middle-box (such as a packet-scrubber). Associating an incorrect sensitivity label can cause the received information either to be handled as more sensitive than it really is ("upgrading") or as less sensitive than it really is ("downgrading"), either of which is problematic. As noted in [RFC5570], IPsec [RFC4301] [RFC4302] [RFC4303] can be employed to protect the CALIPSO option.¶
Recommendations for handling the CALIPSO option depend on the deployment environment, rather than whether an intermediate system happens to be deployed as a transit device (e.g., IPv6 transit router).¶
Explicit configuration is the only method via which an intermediate system can know whether that particular intermediate system has been deployed within a Multi-Level Secure (MLS) environment. In many cases, ordinary commercial intermediate systems (e.g., IPv6 routers and firewalls) are the majority of the deployed intermediate systems inside an MLS network environment.¶
For Intermediate systems that DO NOT implement [RFC5570], there should be a configuration option to EITHER (a) drop packets containing the CALIPSO option OR (b) to ignore the presence of the CALIPSO option and forward the packets normally. In non-MLS environments, such intermediate systems should have this configuration option set to (a) above. In MLS environments, such intermediate systems should have this option set to (b) above. The default setting for this configuration option should be set to (a) above, because MLS environments are much less common than non-MLS environments.¶
For Intermediate systems that DO implement [RFC5570], there should be configuration options (a) and (b) from the preceding paragraph and also a third configuration option (c) to process packets containing a CALIPSO option as per [RFC5570]. When deployed in non-MLS environments, such intermediate systems should have this configuration option set to (a) above. When deployed in MLS environments, such intermediate systems should have this set to (c). The default setting for this configuration option MAY be set to (a) above, because MLS environments are much less common than non-MLS environments.¶
This option is employed in the (experimental) Simplified Multicast Forwarding (SMF) for unique packet identification for IPv6 I-DPD, and as a mechanism to guarantee non-collision of hash values for different packets when H-DPD is used.¶
None. The use of transient numeric identifiers is subject to the security and privacy considerations discussed in [I-D.irtf-pearg-numeric-ids-generation].¶
Dropping packets containing this option within a MANET domain would break SMF. However, dropping such packets at the border of such domain would have no negative impact.¶
Intermediate systems that are not within a MANET domain should discard packets that contain this option.¶
This option is employed to convey sequence numbers and timing information in IPv6 packets as a basis for measurements.¶
Those specified in [RFC8250]. Additionally, since the options employs transient numeric identifiers, implementations may be subject to the issues discussed in [I-D.irtf-pearg-numeric-ids-generation].¶
Dropping packets containing this option will result in negative interoperaiblity implications for traffic employing this option as a basis for measurements.¶
Intermediate systems should not discard packets based on the presence of this option.¶
The RPL Option provides a mechanism to include routing information with each datagram that an RPL router forwards.¶
This option can survive outside of an RPL instance. As a result, discarding packets based on the presence of this option would break some use cases for RPL (see [RFC9008]).¶
Intermediate systems should not discard IPv6 packets based on the presence of this option.¶
This IP Option is used in the specification of Quick-Start for TCP and IP, which is an experimental mechanism that allows transport protocols, in cooperation with routers, to determine an allowed sending rate at the start and, at times, in the middle of a data transfer (e.g., after an idle period) [RFC4782].¶
This option is specified in [RFC4782], on the "Experimental" track.¶
Section 9.6 of [RFC4782] notes that Quick-Start is vulnerable to two kinds of attacks:¶
We note that if routers in a given environment do not implement and enable the Quick-Start mechanism, only the general security implications of IP options (discussed in Section 4.2) would apply.¶
The Quick-Start functionality would be disabled, and additional delays in TCP's connection establishment (for example) could be introduced. (Please see Section 4.7.2 of [RFC4782].) We note, however, that Quick-Start has been proposed as a mechanism that could be of use in controlled environments, and not as a mechanism that would be intended or appropriate for ubiquitous deployment in the global Internet [RFC4782].¶
Intermediate systems should not discard IPv6 packets based on the presence of this option.¶
No information has been found about this option type.¶
No information has been found about this option type.¶
No information has been found about this option type, and hence it has been impossible to perform the corresponding security assessment.¶
Unknown.¶
Intermediate systems should discard packets that contain this option.¶
The RPL Option provides a mechanism to include routing information with each datagram that an RPL router forwards.¶
This option was originally specified in [RFC6553]. It has been deprecated by [RFC9008].¶
This option is meant to be employed within an RPL instance. As a result, discarding packets based on the presence of this option outside of an RPL instance will not result in interoperability implications.¶
Non-RPL routers should discard packets that contain an RPL option.¶
This option is used with the Multicast Protocol for Low power and Lossy Networks (MPL), that provides IPv6 multicast forwarding in constrained networks.¶
This option is specified in [RFC7731], and is meant to be included only in Hop-by-Hop Option headers.¶
Dropping packets that contain an MPL option within an MPL network would break the Multicast Protocol for Low power and Lossy Networks (MPL). However, dropping such packets at the border of such networks will have no negative impact.¶
Intermediate systems should not discard packets based on the presence of this option. However, since this option has been specified for the Hop-by-Hop Options, such systems should consider the discussion in Section 3.5.1.¶
The Endpoint Identification option was meant to be used with the Nimrod routing architecture [NIMROD-DOC], but has never seen widespread deployment.¶
This option is specified in [NIMROD-DOC].¶
Undetermined.¶
None.¶
Intermediate systems should discard packets that contain this option.¶
This option is employed by Identifier-Locator Network Protocol for IPv6 (ILNPv6) for providing protection against off-path attacks for packets when ILNPv6 is in use, and as a signal during initial network-layer session creation that ILNPv6 is proposed for use with this network-layer session, rather than classic IPv6.¶
Discarding packets that contain this option will break INLPv6 deployments.¶
Intermediate systems should not discard packets based on the presence of this option.¶
This option is used by an Edge Router to identify the subscriber premises in scenarios where several subscriber premises may be logically connected to the same interface of an Edge Router.¶
Since this option is meant to be employed in Router Solicitation messages, discarding packets based on the presence of this option at intermediate systems will result in no interoperability implications.¶
Intermediate devices should discard packets that contain this option.¶
The Jumbo payload option provides the means of specifying payloads larger than 65535 bytes.¶
There are no specific issues arising from this option, except for improper validity checks of the option and associated packet lengths.¶
Discarding packets based on the presence of this option will cause IPv6 jumbograms to be discarded.¶
An operator should permit this option only in specific scenarios in which support for IPv6 jumbograms is desired.¶
The Home Address option is used by a Mobile IPv6 node while away from home, to inform the recipient of the mobile node's home address.¶
No (known) additional security implications than those described in [RFC6275].¶
Discarding IPv6 packets based on the presence of this option will break Mobile IPv6.¶
Intermediate systems should not discard IPv6 packets based on the presence of this option.¶
This option is employed with the (Experimental) Depth-First Forwarding (DFF) in Unreliable Networks.¶
Dropping packets containing this option within a routing domain that is running DFF would break DFF. However, dropping such packets at the border of such domains will have no security implications.¶
Intermediate systems that do not operate within a routing domain that is running DFF should discard packets containing this option.¶
These options can be employed for performing RFC3692-style experiments. It is only appropriate to use these values in explicitly configured experiments; they must not be shipped as defaults in implementations.¶
Specified in RFC 4727 [RFC4727] in the context of RFC3692-style experiments.¶
The specific security implications will depend on the specific use of these options.¶
For obvious reasons, discarding packets that contain these options limits the ability to perform legitimate experiments across IPv6 routers.¶
Operators should determine according to their own circumstances whether to discard packets containing these IPv6 options.¶
We refer to IPv6 options that have not been assigned an IPv6 option type in the corresponding registry ([IANA-IPV6-PARAM]) as "unknown IPv6 options".¶
New IPv6 options may be specified as part of future protocol work.¶
The processing of unknown IPv6 options is specified in [RFC8200].¶
For obvious reasons, it is impossible to determine specific security implications of unknown IPv6 options.¶
Discarding unknown IPv6 options may slow down the deployment of new IPv6 options. As noted in [draft-gont-6man-ipv6-opt-transmit], the corresponding IANA registry ([IANA-IPV6-PARAM] should be monitored such that IPv6 option filtering rules are updated as new IPv6 options are standardized.¶
Operators should determine according to their own circumstances whether to discard packets containing unknown IPv6 options.¶
This document has no actions for IANA.¶
There are no privacy considerations associated with this document.¶
This document provides advice on the filtering of IPv6 packets that contain IPv6 EHs (and possibly IPv6 options) at IPv6 transit routers. It is meant to improve the current situation of widespread dropping of such IPv6 packets in those cases where the drops result from improper configuration defaults, or inappropriate advice in this area.¶
As discussed in Section Section 3.3 of this document, one of the underlying principles for the advice provided in this document is that IPv6 packets with specific EHs or options which may represent an attack vector for infrastructure devices should be dropped. While this policy helps mitigate some specific attack vectors, the recommendations in this document will not help to mitigate vulnerabilities based on implementation errors [RFC9098].¶
We also note that depending on the router architecture, attempts to filter packets ased on the presence of IPv6 EHs or options might itself represent an attack vector to network infrastructure devices [RFC9098].¶
The authors would like to thank Ron Bonica for his work on earlier versions of this document.¶
The authors of this document would like to thank (in alphabetical order) Mikael Abrahamsson, Brian Carpenter, Tim Chown, Roman Danyliw, Darren Dukes, Lars Eggert, David Farmer, Mike Heard, Bob Hinden, Christian Huitema, Benjamin Kaduk, Erik Kline, Murray Kucherawy, Jen Linkova, Carlos Pignataro, Alvaro Retana, Maria Ines Robles, Zaheduzzaman Sarker, Donald Smith, Pascal Thubert, Ole Troan, Gunter Van De Velde, Eric Vyncke, and Robert Wilton, for providing valuable comments on earlier versions of this document.¶
This document borrows some text and analysis from [RFC7126], authored by Fernando Gont, Randall Atkinson, and Carlos Pignataro.¶
The authors would like to thank Warren Kumari and Eric Vyncke for their guidance during the publication process of this document.¶
Fernando would also like to thank Brian Carpenter and Ran Atkinson who, over the years, have answered many questions and provided valuable comments that have benefited his protocol-related work (including the present document).¶