| < draft-ietf-v6ops-ipv6-ehs-packet-drops-06.txt | draft-ietf-v6ops-ipv6-ehs-packet-drops-07.txt > | |||
|---|---|---|---|---|
| IPv6 Operations Working Group (v6ops) F. Gont | IPv6 Operations Working Group (v6ops) F. Gont | |||
| Internet-Draft SI6 Networks | Internet-Draft SI6 Networks | |||
| Intended status: Informational N. Hilliard | Intended status: Informational N. Hilliard | |||
| Expires: October 10, 2021 INEX | Expires: December 11, 2021 INEX | |||
| G. Doering | G. Doering | |||
| SpaceNet AG | SpaceNet AG | |||
| W. Kumari | W. Kumari | |||
| G. Huston | G. Huston | |||
| APNIC | APNIC | |||
| W. Liu | W. Liu | |||
| Huawei Technologies | Huawei Technologies | |||
| April 8, 2021 | June 9, 2021 | |||
| Operational Implications of IPv6 Packets with Extension Headers | Operational Implications of IPv6 Packets with Extension Headers | |||
| draft-ietf-v6ops-ipv6-ehs-packet-drops-06 | draft-ietf-v6ops-ipv6-ehs-packet-drops-07 | |||
| Abstract | Abstract | |||
| This document summarizes the operational implications of IPv6 | This document summarizes the operational implications of IPv6 | |||
| extension headers specified in the IPv6 protocol specification | extension headers specified in the IPv6 protocol specification | |||
| (RFC8200), and attempts to analyze reasons why packets with IPv6 | (RFC8200), and attempts to analyze reasons why packets with IPv6 | |||
| extension headers are often dropped in the public Internet. | extension headers are often dropped in the public Internet. | |||
| Status of This Memo | Status of This Memo | |||
| skipping to change at page 1, line 42 ¶ | skipping to change at page 1, line 42 ¶ | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at https://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on October 10, 2021. | This Internet-Draft will expire on December 11, 2021. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2021 IETF Trust and the persons identified as the | Copyright (c) 2021 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (https://trustee.ietf.org/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
| to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
| include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
| the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
| described in the Simplified BSD License. | described in the Simplified BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
| 2. Disclaimer . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 3. Background Information . . . . . . . . . . . . . . . . . . . 3 | 3. Disclaimer . . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 4. Previous Work on IPv6 Extension Headers . . . . . . . . . . . 5 | 4. Background Information . . . . . . . . . . . . . . . . . . . 3 | |||
| 5. Packet Forwarding Engine Constraints . . . . . . . . . . . . 7 | 5. Previous Work on IPv6 Extension Headers . . . . . . . . . . . 5 | |||
| 5.1. Recirculation . . . . . . . . . . . . . . . . . . . . . . 8 | 6. Packet Forwarding Engine Constraints . . . . . . . . . . . . 7 | |||
| 6. Requirement to Process Layer-3/layer-4 information in | 6.1. Recirculation . . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 7. Requirement to Process Layer-3/layer-4 information in | ||||
| Intermediate Systems . . . . . . . . . . . . . . . . . . . . 8 | Intermediate Systems . . . . . . . . . . . . . . . . . . . . 8 | |||
| 6.1. ECMP and Hash-based Load-Sharing . . . . . . . . . . . . 8 | 7.1. ECMP and Hash-based Load-Sharing . . . . . . . . . . . . 8 | |||
| 6.2. Enforcing infrastructure ACLs . . . . . . . . . . . . . . 9 | 7.2. Enforcing infrastructure ACLs . . . . . . . . . . . . . . 9 | |||
| 6.3. DDoS Management and Customer Requests for Filtering . . . 9 | 7.3. DDoS Management and Customer Requests for Filtering . . . 10 | |||
| 6.4. Network Intrusion Detection and Prevention . . . . . . . 10 | 7.4. Network Intrusion Detection and Prevention . . . . . . . 10 | |||
| 6.5. Firewalling . . . . . . . . . . . . . . . . . . . . . . . 10 | 7.5. Firewalling . . . . . . . . . . . . . . . . . . . . . . . 11 | |||
| 7. Operational Implications . . . . . . . . . . . . . . . . . . 11 | 8. Operational and Security Implications . . . . . . . . . . . . 12 | |||
| 7.1. Inability to Find Layer-4 Information . . . . . . . . . . 11 | 8.1. Inability to Find Layer-4 Information . . . . . . . . . . 12 | |||
| 7.2. Route-Processor Protection . . . . . . . . . . . . . . . 11 | 8.2. Route-Processor Protection . . . . . . . . . . . . . . . 12 | |||
| 7.3. Inability to Perform Fine-grained Filtering . . . . . . . 12 | 8.3. Inability to Perform Fine-grained Filtering . . . . . . . 12 | |||
| 7.4. Security Concerns Associated with IPv6 Extension Headers 12 | 8.4. Security Concerns Associated with IPv6 Extension Headers 12 | |||
| 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 13 | 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 14 | |||
| 9. Security Considerations . . . . . . . . . . . . . . . . . . . 13 | 10. Security Considerations . . . . . . . . . . . . . . . . . . . 14 | |||
| 10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 14 | 11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 14 | |||
| 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 14 | 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 14 | |||
| 11.1. Normative References . . . . . . . . . . . . . . . . . . 14 | 12.1. Normative References . . . . . . . . . . . . . . . . . . 14 | |||
| 11.2. Informative References . . . . . . . . . . . . . . . . . 15 | 12.2. Informative References . . . . . . . . . . . . . . . . . 15 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 19 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 19 | |||
| 1. Introduction | 1. Introduction | |||
| IPv6 Extension Headers (EHs) allow for the extension of the IPv6 | IPv6 Extension Headers (EHs) allow for the extension of the IPv6 | |||
| protocol, and provide support for core functionality such as IPv6 | protocol, and provide support for core functionality such as IPv6 | |||
| fragmentation. However, common implementation limitations suggest | fragmentation. However, common implementation limitations suggest | |||
| that EHs present a challenge for IPv6 packet routing equipment and | that EHs present a challenge for IPv6 packet routing equipment and | |||
| middle-boxes, and evidence exists that IPv6 packets with EHs are | middle-boxes, and evidence exists that IPv6 packets with EHs are | |||
| intentionally dropped in the public Internet in some network | intentionally dropped in the public Internet in some circumstances. | |||
| deployments. | ||||
| This document has the following goals: | This document has the following goals: | |||
| o Raise awareness about the operational and security implications of | o Raise awareness about the operational and security implications of | |||
| IPv6 Extension Headers specified in [RFC8200], and present reasons | IPv6 Extension Headers specified in [RFC8200], and present reasons | |||
| why some networks resort to intentionally dropping packets | why some networks resort to intentionally dropping packets | |||
| containing IPv6 Extension Headers. | containing IPv6 Extension Headers. | |||
| o Highlight areas where current IPv6 support by networking devices | o Highlight areas where current IPv6 support by networking devices | |||
| maybe sub-optimal, such that the aforementioned support is | maybe sub-optimal, such that the aforementioned support is | |||
| improved. | improved. | |||
| o Highlight operational issues associated with IPv6 extension | o Highlight operational issues associated with IPv6 extension | |||
| headers, such that those issues are considered in IETF | headers, such that those issues are considered in IETF | |||
| standardization efforts. | standardization efforts. | |||
| Section 3 provides background information about the IPv6 packet | Section 4 provides background information about the IPv6 packet | |||
| structure and associated implications. Section 4 of this document | structure and associated implications. Section 5 of this document | |||
| summarizes the previous work that has been carried out in the area of | summarizes the previous work that has been carried out in the area of | |||
| IPv6 extension headers. Section 5 discusses packet forwarding engine | IPv6 extension headers. Section 6 discusses packet forwarding engine | |||
| constraints in contemporary routers. Section 6 discusses why | constraints in contemporary routers. Section 7 discusses why | |||
| contemporary routers and middle-boxes may need to access Layer-4 | intermediate systems may need to access Layer-4 information to make a | |||
| information to make a forwarding decision. Finally, Section 7 | forwarding decision. Finally, Section 8 discusses the operational | |||
| discusses the operational implications of IPv6 EHs. | implications of IPv6 EHs. | |||
| 2. Disclaimer | 2. Terminology | |||
| This document uses the term "intermediate system" to describe both | ||||
| routers and middle-boxes, when there is no need to distinguish | ||||
| between the two and where the important issue is that the device | ||||
| being discussed forwards packets. | ||||
| 3. Disclaimer | ||||
| This document analyzes the operational challenges represented by | This document analyzes the operational challenges represented by | |||
| packets that employ IPv6 Extension Headers, and documents some of the | packets that employ IPv6 Extension Headers, and documents some of the | |||
| operational reasons why these packets are often dropped in the public | operational reasons why these packets are often dropped in the public | |||
| Internet. This document is not a recommendation to drop such | Internet. This document is not a recommendation to drop such | |||
| packets, but rather an analysis of why they are currently dropped. | packets, but rather an analysis of why they are currently dropped. | |||
| 3. Background Information | 4. Background Information | |||
| It is useful to compare the basic structure of IPv6 packets against | It is useful to compare the basic structure of IPv6 packets against | |||
| that of IPv4 packets, and analyze the implications of the two | that of IPv4 packets, and analyze the implications of the two | |||
| different packet structures. | different packet structures. | |||
| IPv4 packets have a variable-length header size, that allows for the | IPv4 packets have a variable-length header size, that allows for the | |||
| use of IPv4 "options" -- optional information that may be of use by | use of IPv4 "options" -- optional information that may be of use by | |||
| nodes processing IPv4 packets. The IPv4 header length is specified | nodes processing IPv4 packets. The IPv4 header length is specified | |||
| in the IHL header field of the mandatory IPv4 header, and must be in | in the IHL header field of the mandatory IPv4 header, and must be in | |||
| the range from 20 octets (the minimum IPv4 header size) to 60 octets | the range from 20 octets (the minimum IPv4 header size) to 60 octets | |||
| skipping to change at page 4, line 28 ¶ | skipping to change at page 4, line 33 ¶ | |||
| Figure 1: IPv4 Packet Structure | Figure 1: IPv4 Packet Structure | |||
| IPv6 took a different approach to the IPv6 packet structure. Rather | IPv6 took a different approach to the IPv6 packet structure. Rather | |||
| than employing a variable-length header as IPv4 does, IPv6 employs a | than employing a variable-length header as IPv4 does, IPv6 employs a | |||
| linked-list-like packet structure, where a mandatory fixed-length | linked-list-like packet structure, where a mandatory fixed-length | |||
| IPv6 header is followed by an arbitrary number of optional extension | IPv6 header is followed by an arbitrary number of optional extension | |||
| headers, with the upper-layer header being the last header in the | headers, with the upper-layer header being the last header in the | |||
| IPv6 header chain. Each extension header typically specifies its | IPv6 header chain. Each extension header typically specifies its | |||
| length (unless it is implicit from the extension header type), and | length (unless it is implicit from the extension header type), and | |||
| the "next header" type that follows in the IPv6 IPv6 header chain. | the "next header" type that follows in the IPv6 header chain. | |||
| NH NH, EH-length NH, EH-length | NH NH, EH-length NH, EH-length | |||
| +-------+ +------+ +-------+ | +-------+ +------+ +-------+ | |||
| | | | | | | | | | | | | | | |||
| | v | v | v | | v | v | v | |||
| +-------------+-------------+-//-+---------------+--------------+ | +-------------+-------------+-//-+---------------+--------------+ | |||
| | | | | | | | | | | | | | | |||
| | IPv6 | Ext. | | Ext. | Upper-Layer | | | IPv6 | Ext. | | Ext. | Upper-Layer | | |||
| | header | Header | | Header | Protocol | | | header | Header | | Header | Protocol | | |||
| | | | | | | | | | | | | | | |||
| skipping to change at page 5, line 16 ¶ | skipping to change at page 5, line 20 ¶ | |||
| the number of IPv6 EHs that may be present in a packet. | the number of IPv6 EHs that may be present in a packet. | |||
| Therefore, there is no upper-limit regarding "how deep into the | Therefore, there is no upper-limit regarding "how deep into the | |||
| IPv6 packet" the upper-layer may be found. | IPv6 packet" the upper-layer may be found. | |||
| o The only way for a node to obtain the upper-layer protocol type or | o The only way for a node to obtain the upper-layer protocol type or | |||
| find the upper-layer protocol header is to parse and process the | find the upper-layer protocol header is to parse and process the | |||
| entire IPv6 header chain, in sequence, starting from the mandatory | entire IPv6 header chain, in sequence, starting from the mandatory | |||
| IPv6 header, until the last header in the IPv6 header chain is | IPv6 header, until the last header in the IPv6 header chain is | |||
| found. | found. | |||
| 4. Previous Work on IPv6 Extension Headers | 5. Previous Work on IPv6 Extension Headers | |||
| Some of the operational implications of IPv6 Extension Headers have | Some of the operational and security implications of IPv6 Extension | |||
| been discussed at the IETF: | Headers have been discussed at the IETF: | |||
| o [I-D.taylor-v6ops-fragdrop] discusses a rationale for which | o [I-D.taylor-v6ops-fragdrop] discusses a rationale for which | |||
| operators drop IPv6 fragments. | operators drop IPv6 fragments. | |||
| o [I-D.wkumari-long-headers] discusses possible issues arising from | o [I-D.wkumari-long-headers] discusses possible issues arising from | |||
| "long" IPv6 header chains. | "long" IPv6 header chains. | |||
| o [I-D.kampanakis-6man-ipv6-eh-parsing] describes how | o [I-D.kampanakis-6man-ipv6-eh-parsing] describes how | |||
| inconsistencies in the way IPv6 packets with extension headers are | inconsistencies in the way IPv6 packets with extension headers are | |||
| parsed by different implementations could result in evasion of | parsed by different implementations could result in evasion of | |||
| skipping to change at page 7, line 5 ¶ | skipping to change at page 7, line 5 ¶ | |||
| o [PMTUD-Blackholes] and [Linkova-Gont-IEPG90] presented some | o [PMTUD-Blackholes] and [Linkova-Gont-IEPG90] presented some | |||
| preliminary measurements regarding the extent to which packet | preliminary measurements regarding the extent to which packet | |||
| containing IPv6 EHs are dropped in the public Internet. | containing IPv6 EHs are dropped in the public Internet. | |||
| o [RFC7872] presents more comprehensive results and documents the | o [RFC7872] presents more comprehensive results and documents the | |||
| methodology used to obtain these results. | methodology used to obtain these results. | |||
| o [Huston-2017] and [Huston-2020] measured packet drops resulting | o [Huston-2017] and [Huston-2020] measured packet drops resulting | |||
| from IPv6 fragmentation when communicating with DNS servers. | from IPv6 fragmentation when communicating with DNS servers. | |||
| 5. Packet Forwarding Engine Constraints | 6. Packet Forwarding Engine Constraints | |||
| Most contemporary carrier-grade routers use dedicated hardware (e.g., | Most contemporary carrier-grade routers use dedicated hardware, e.g. | |||
| ASICs or NPUs) to determine how to forward packets across their | application-specific integrated circuits (ASICs) or network | |||
| internal fabrics (see [IEPG94-Scudder] and [APNIC-Scudder] for | processing units (NPUs), to determine how to forward packets across | |||
| their internal fabrics (see [IEPG94-Scudder] and [APNIC-Scudder] for | ||||
| details). One of the common methods of handling next-hop lookup is | details). One of the common methods of handling next-hop lookup is | |||
| to send a small portion of the ingress packet to a lookup engine with | to send a small portion of the ingress packet to a lookup engine with | |||
| specialised hardware (e.g., ternary CAM or Reduced Latency DRAM) to | specialised hardware, e.g. ternary content-addressable memory (TCAM) | |||
| or reduced latency dynamic random-access memory (RLDRAM), to | ||||
| determine the packet's next-hop. Technical constraints mean that | determine the packet's next-hop. Technical constraints mean that | |||
| there is a trade-off between the amount of data sent to the lookup | there is a trade-off between the amount of data sent to the lookup | |||
| engine and the overall packet forwarding rate of the lookup engine. | engine and the overall packet forwarding rate of the lookup engine. | |||
| If more data is sent, the lookup engine can inspect further into the | If more data is sent, the lookup engine can inspect further into the | |||
| packet, but the overall packet forwarding rate of the system will be | packet, but the overall packet forwarding rate of the system will be | |||
| reduced. If less data is sent, the overall packet forwarding rate of | reduced. If less data is sent, the overall packet forwarding rate of | |||
| the router will be increased but the packet lookup engine may not be | the router will be increased but the packet lookup engine may not be | |||
| able to inspect far enough into a packet to determine how it should | able to inspect far enough into a packet to determine how it should | |||
| be handled. | be handled. | |||
| NOTE: | NOTE: | |||
| For example, some contemporary high-end routers are known to | For example, some contemporary high-end routers are known to | |||
| inspect up to 192 bytes, while others are known to parse up to 384 | inspect up to 192 bytes, while others are known to parse up to 384 | |||
| bytes of header. | bytes of header. | |||
| If a hardware forwarding engine on a contemporary router cannot make | If a hardware forwarding engine on a contemporary router cannot make | |||
| a forwarding decision about a packet because critical information is | a forwarding decision about a packet because critical information is | |||
| not sent to the look-up engine, then the router will normally drop | not sent to the look-up engine, then the router will normally drop | |||
| the packet. Section 6 discusses some of the reasons for which a | the packet. Section 7 discusses some of the reasons for which a | |||
| contemporary router might need to access layer-4 information to make | contemporary router might need to access layer-4 information to make | |||
| a forwarding decision. | a forwarding decision. | |||
| Historically, some packet forwarding engines punted packets of this | Historically, some packet forwarding engines punted packets of this | |||
| form to the control plane for more in-depth analysis, but this is | form to the control plane for more in-depth analysis, but this is | |||
| unfeasible on most contemporary router architectures as a result of | unfeasible on most contemporary router architectures as a result of | |||
| the vast difference between the hardware forwarding capacity of the | the vast difference between the hardware forwarding capacity of the | |||
| router and processing capacity of the control plane and the size of | router and processing capacity of the control plane and the size of | |||
| the management link which connects the control plane to the | the management link which connects the control plane to the | |||
| forwarding plane. Other platforms may have a separate software | forwarding plane. Other platforms may have a separate software | |||
| skipping to change at page 8, line 5 ¶ | skipping to change at page 8, line 7 ¶ | |||
| plane and the control plane. However, the limited CPU resources of | plane and the control plane. However, the limited CPU resources of | |||
| this software-based forwarding plane, as well as the limited | this software-based forwarding plane, as well as the limited | |||
| bandwidth of the associated link results in similar throughput | bandwidth of the associated link results in similar throughput | |||
| constraints. | constraints. | |||
| If an IPv6 header chain is sufficiently long that it exceeds the | If an IPv6 header chain is sufficiently long that it exceeds the | |||
| packet look-up capacity of the router, the router might be unable to | packet look-up capacity of the router, the router might be unable to | |||
| determine how the packet should be handled, and thus could resort to | determine how the packet should be handled, and thus could resort to | |||
| dropping the packet. | dropping the packet. | |||
| 5.1. Recirculation | 6.1. Recirculation | |||
| Although TLV chains are amenable to iterative processing on | Although TLV chains are amenable to iterative processing on | |||
| architectures that have packet look-up engines with deep inspection | architectures that have packet look-up engines with deep inspection | |||
| capabilities, some packet forwarding engines manage IPv6 Extension | capabilities, some packet forwarding engines manage IPv6 Extension | |||
| Header chains using recirculation. This approach processes Extension | Header chains using recirculation. This approach processes Extension | |||
| Headers one at a time: when processing on one Extension Header is | Headers one at a time: when processing on one Extension Header is | |||
| completed, the packet is looped back through the processing engine | completed, the packet is looped back through the processing engine | |||
| again. This recirculation process continues repeatedly until there | again. This recirculation process continues repeatedly until there | |||
| are no more Extension Headers left to be processed. | are no more Extension Headers left to be processed. | |||
| skipping to change at page 8, line 27 ¶ | skipping to change at page 8, line 29 ¶ | |||
| limited look-up capability, because it allows arbitrarily long header | limited look-up capability, because it allows arbitrarily long header | |||
| chains to be processed without the complexity and cost associated | chains to be processed without the complexity and cost associated | |||
| with packet forwarding engines which have deep look-up capabilities. | with packet forwarding engines which have deep look-up capabilities. | |||
| However, recirculation can impact the forwarding capacity of | However, recirculation can impact the forwarding capacity of | |||
| hardware, as each packet will pass through the processing engine | hardware, as each packet will pass through the processing engine | |||
| multiple times. Depending on configuration, the type of packets | multiple times. Depending on configuration, the type of packets | |||
| being processed, and the hardware capabilities of the packet | being processed, and the hardware capabilities of the packet | |||
| forwarding engine, this could impact data-plane throughput | forwarding engine, this could impact data-plane throughput | |||
| performance on the router. | performance on the router. | |||
| 6. Requirement to Process Layer-3/layer-4 information in Intermediate | 7. Requirement to Process Layer-3/layer-4 information in Intermediate | |||
| Systems | Systems | |||
| The following subsections discuss some of the reasons for which | The following subsections discuss some of the reasons for which | |||
| contemporary routers and middle-boxes may need to process Layer-3/ | intermediate systems may need to process Layer-3/layer-4 information | |||
| layer-4 information to make a forwarding decision. | to make a forwarding decision. | |||
| 6.1. ECMP and Hash-based Load-Sharing | 7.1. ECMP and Hash-based Load-Sharing | |||
| In the case of ECMP (equal cost multi path) load sharing, the router | In the case of equal cost multi-path (ECMP) load sharing, the | |||
| on the sending side of the link needs to make a decision regarding | intermediate system needs to make a decision regarding which of its | |||
| which of the links to use to forward a given packet. Since round- | interfaces to use to forward a given packet. Since round-robin usage | |||
| robin usage of the links is usually avoided to prevent packet | of the links is usually avoided to prevent packet reordering, | |||
| reordering, forwarding engines need to use a mechanism that will | forwarding engines need to use a mechanism that will consistently | |||
| consistently forward the same data streams down the same forwarding | forward the same data streams down the same forwarding paths. Most | |||
| paths. Most forwarding engines achieve this by calculating a simple | forwarding engines achieve this by calculating a simple hash using an | |||
| hash using an n-tuple gleaned from a combination of layer-2 through | n-tuple gleaned from a combination of layer-2 through to layer-4 | |||
| to layer-4 packet header information. This n-tuple will typically | packet header information. This n-tuple will typically use the src/ | |||
| use the src/dst MAC address, src/dst IP address, and if possible | dst MAC address, src/dst IP address, and if possible further layer-4 | |||
| further layer-4 src/dst port information. | src/dst port information. | |||
| In the IPv6 world, flows are expected to be identified by means of | In the IPv6 world, flows are expected to be identified by means of | |||
| the IPv6 Flow Label [RFC6437]. Thus, ECMP and Hash-based Load- | the IPv6 Flow Label [RFC6437]. Thus, ECMP and Hash-based Load- | |||
| Sharing should be possible without the need to process the entire | Sharing should be possible without the need to process the entire | |||
| IPv6 header chain to obtain upper-layer information to identify | IPv6 header chain to obtain upper-layer information to identify | |||
| flows. [RFC7098] discusses how the IPv6 Flow Label can be used to | flows. [RFC7098] discusses how the IPv6 Flow Label can used to | |||
| enhance layer 3/4 load distribution and balancing for large server | enhance layer 3/4 load distribution and balancing for large server | |||
| farms. | farms. | |||
| Historically, many IPv6 implementations failed to set the Flow Label, | Historically, many IPv6 implementations failed to set the Flow Label, | |||
| and hash-based ECMP/load-sharing devices also did not employ the Flow | and hash-based ECMP/load-sharing devices also did not employ the Flow | |||
| Label for performing their task. While support of [RFC6437] is | Label for performing their task. While support of [RFC6437] is | |||
| currently widespread for current versions of all popular host | currently widespread for current versions of all popular host | |||
| implementations, there is still only marginal usage of the IPv6 Flow | implementations, there is still only marginal usage of the IPv6 Flow | |||
| Label for ECMP and load balancing [Cunha-2020]. A contributing | Label for ECMP and load balancing [Cunha-2020]. A contributing | |||
| factor could be the issues that have been found in host | factor could be the issues that have been found in host | |||
| implementations and middle-boxes [Jaeggli-2018]. | implementations and middle-boxes [Jaeggli-2018]. | |||
| Clearly, widespread support of [RFC6437] would relieve middle-boxes | Clearly, widespread support of [RFC6437] would relieve intermediate | |||
| from having to process the entire IPv6 header chain, making Flow | systems from having to process the entire IPv6 header chain, making | |||
| Label-based ECMP and Load-Sharing [RFC6438] feasible. | Flow Label-based ECMP and Load-Sharing [RFC6438] feasible. | |||
| 6.2. Enforcing infrastructure ACLs | If an intermediate system cannot determine consistent n-tuples for | |||
| calculating flow hashes, data streams are more likely to end up being | ||||
| distributed unequally across ECMP and load-shared links. This may | ||||
| lead to packet drops or reduced performance. | ||||
| 7.2. Enforcing infrastructure ACLs | ||||
| Infrastructure ACLs (iACLs) drop unwanted packets destined to a | Infrastructure ACLs (iACLs) drop unwanted packets destined to a | |||
| network's infrastructure IP addresses. Typically, iACLs are deployed | network's infrastructure. Typically, iACLs are deployed because | |||
| because external direct access to a network's infrastructure | external direct access to a network's infrastructure addresses is | |||
| addresses is operationally unnecessary, and can be used for attacks | operationally unnecessary, and can be used for attacks of different | |||
| of different sorts against router control planes. To this end, | sorts against router control planes. To this end, traffic usually | |||
| traffic usually needs to be differentiated on the basis of layer-3 or | needs to be differentiated on the basis of layer-3 or layer-4 | |||
| layer-4 criteria to achieve a useful balance of protection and | criteria to achieve a useful balance of protection and functionality. | |||
| functionality. For example, an infrastructure may be configured with | For example, an infrastructure may be configured with the following | |||
| the following policy: | policy: | |||
| o Permit some amount of ICMP echo (ping) traffic towards a router's | o Permit some amount of ICMP echo (ping) traffic towards a router's | |||
| addresses for troubleshooting. | addresses for troubleshooting. | |||
| o Permit BGP sessions on the shared network of an exchange point | o Permit BGP sessions on the shared network of an exchange point | |||
| (potentially differentiating between the amount of packets/seconds | (potentially differentiating between the amount of packets/seconds | |||
| permitted for established sessions and connection establishment), | permitted for established sessions and connection establishment), | |||
| but do not permit other traffic from the same peer IP addresses. | but do not permit other traffic from the same peer IP addresses. | |||
| 6.3. DDoS Management and Customer Requests for Filtering | If a forwarding router cannot determine consistent n-tuples for | |||
| calculating flow hashes, data streams are more likely to end up being | ||||
| distributed unequally across ECMP and load-shared links. This may | ||||
| lead to packet drops or reduced performance. | ||||
| If a network cannot deploy infrastructure ACLs, then the security of | ||||
| the network may be compromised due to having more potential attack | ||||
| vectors open. | ||||
| 7.3. DDoS Management and Customer Requests for Filtering | ||||
| The case of customer DDoS protection and edge-to-core customer | The case of customer DDoS protection and edge-to-core customer | |||
| protection filters is similar in nature to the iACL protection. | protection filters is similar in nature to the iACL protection. | |||
| Similar to iACL protection, layer-4 ACLs generally need to be applied | Similar to iACL protection, layer-4 ACLs generally need to be applied | |||
| as close to the edge of the network as possible, even though the | as close to the edge of the network as possible, even though the | |||
| intent is usually to protect the customer edge rather than the | intent is usually to protect the customer edge rather than the | |||
| provider core. Application of layer-4 DDoS protection to a network | provider core. Application of layer-4 DDoS protection to a network | |||
| edge is often automated using Flowspec [RFC5575]. | edge is often automated using Flowspec [RFC5575]. | |||
| For example, a web site that normally only handled traffic on TCP | For example, a web site that normally only handled traffic on TCP | |||
| ports 80 and 443 could be subject to a volumetric DDoS attack using | ports 80 and 443 could be subject to a volumetric DDoS attack using | |||
| NTP and DNS packets with randomised source IP address, thereby | NTP and DNS packets with randomised source IP address, thereby | |||
| rendering traditional [RFC5635] source-based real-time black hole | rendering traditional [RFC5635] source-based real-time black hole | |||
| mechanisms useless. In this situation, DDoS protection ACLs could be | mechanisms useless. In this situation, DDoS protection ACLs could be | |||
| configured to block all UDP traffic at the network edge without | configured to block all UDP traffic at the network edge without | |||
| impairing the web server functionality in any way. Thus, being able | impairing the web server functionality in any way. Thus, being able | |||
| to block arbitrary protocols at the network edge can avoid DDoS- | to block arbitrary protocols at the network edge can avoid DDoS- | |||
| related problems both in the provider network and on the customer | related problems both in the provider network and on the customer | |||
| edge link. | edge link. | |||
| 6.4. Network Intrusion Detection and Prevention | 7.4. Network Intrusion Detection and Prevention | |||
| Network Intrusion Detection Systems (NIDS) examine network traffic | Network Intrusion Detection Systems (NIDS) examine network traffic | |||
| and try to identify traffic patterns that can be correlated to | and try to identify traffic patterns that can be correlated to | |||
| network-based attacks. These systems generally inspect application- | network-based attacks. These systems generally inspect application- | |||
| layer traffic (if possible), but at the bare minimum inspect layer-4 | layer traffic (if possible), but at the bare minimum inspect layer-4 | |||
| flows. When attack activity is inferred, the operator is notified of | flows. When attack activity is inferred, the operator is notified of | |||
| the potential intrusion attempt. | the potential intrusion attempt. | |||
| Network Intrusion Prevention Systems (IPS) operate similarly to | Network Intrusion Prevention Systems (IPS) operate similarly to | |||
| NIDS's, but they can also prevent intrusions by reacting to detected | NIDS's, but they can also prevent intrusions by reacting to detected | |||
| skipping to change at page 10, line 44 ¶ | skipping to change at page 11, line 14 ¶ | |||
| o Use of IPv6 fragmentation requires a stateful fragment-reassembly | o Use of IPv6 fragmentation requires a stateful fragment-reassembly | |||
| operation, even for decoy traffic employing forged source | operation, even for decoy traffic employing forged source | |||
| addresses (see e.g., [nmap]). | addresses (see e.g., [nmap]). | |||
| As a result, in order to increase the efficiency or effectiveness of | As a result, in order to increase the efficiency or effectiveness of | |||
| these systems, packets employing IPv6 extension headers are often | these systems, packets employing IPv6 extension headers are often | |||
| dropped at the network ingress point(s) of networks that deploy these | dropped at the network ingress point(s) of networks that deploy these | |||
| systems. | systems. | |||
| 6.5. Firewalling | 7.5. Firewalling | |||
| Firewalls enforce security policies by means of packet filtering. | Firewalls enforce security policies by means of packet filtering. | |||
| These systems usually inspect layer-3 and layer-4 traffic, but can | These systems usually inspect layer-3 and layer-4 traffic, but can | |||
| often also examine application-layer traffic flows. | often also examine application-layer traffic flows. | |||
| As with NIDS/IPS (Section 6.4), use of IPv6 extension headers can | As with NIDS/IPS (Section 7.4), use of IPv6 extension headers can | |||
| represent a challenge to network firewalls, since: | represent a challenge to network firewalls, since: | |||
| o Extension headers increase the complexity of resulting traffic, | o Extension headers increase the complexity of resulting traffic, | |||
| and the associated work and system requirements to process it (see | and the associated work and system requirements to process it, as | |||
| e.g., [Zack-FW-Benchmark]). | outlined in [Zack-FW-Benchmark]. | |||
| o Use of unknown extension headers can prevent firewalls from | o Use of unknown extension headers can prevent firewalls from | |||
| processing layer-4 information. | processing layer-4 information. | |||
| o Use of IPv6 fragmentation requires a stateful fragment-reassembly | o Use of IPv6 fragmentation requires a stateful fragment-reassembly | |||
| operation, even for decoy traffic employing forged source | operation, even for decoy traffic employing forged source | |||
| addresses (see e.g., [nmap]). | addresses (see e.g., [nmap]). | |||
| Additionally, a common firewall filtering policy is the so-called | Additionally, a common firewall filtering policy is the so-called | |||
| "default deny", where all traffic is blocked (by default), and only | "default deny", where all traffic is blocked (by default), and only | |||
| expected traffic is added to an "allow/accept list". | expected traffic is added to an "allow/accept list". | |||
| As a result, packets employing IPv6 extension headers are often | As a result, packets employing IPv6 extension headers are often | |||
| dropped by network firewalls, either because of the challenges | dropped by network firewalls, either because of the challenges | |||
| represented by extension headers or because the use of IPv6 extension | represented by extension headers or because the use of IPv6 extension | |||
| headers has not been explicitly allowed. | headers has not been explicitly allowed. | |||
| 7. Operational Implications | Note that although the data presented in [Zack-FW-Benchmark] were | |||
| several years old at the time of publication of this document, many | ||||
| contemporary firewalls use comparable hardware and software | ||||
| architecture, and consequently the conclusions of this benchmark are | ||||
| still relevant, despite its age. | ||||
| 7.1. Inability to Find Layer-4 Information | 8. Operational and Security Implications | |||
| As discussed in Section 6, routers and middle-boxes that need to find | 8.1. Inability to Find Layer-4 Information | |||
| the layer-4 header must process the entire IPv6 extension header | ||||
| chain. When such devices are unable to obtain the required | ||||
| information, the forwarding device has the option to drop the packet | ||||
| unconditionally, forward the packet unconditionally, or process the | ||||
| packet outside the normal forwarding path. Forwarding packets | ||||
| unconditionally will usually allow for the circumvention of security | ||||
| controls (see e.g., Section 6.5), while processing packets outside of | ||||
| the normal forwarding path will usually open the door to DoS attacks | ||||
| (see e.g., Section 5). Thus, in these scenarios, devices often | ||||
| simply resort to dropping such packets unconditionally. | ||||
| 7.2. Route-Processor Protection | As discussed in Section 7, intermediate systems that need to find the | |||
| layer-4 header must process the entire IPv6 extension header chain. | ||||
| When such devices are unable to obtain the required information, the | ||||
| forwarding device has the option to drop the packet unconditionally, | ||||
| forward the packet unconditionally, or process the packet outside the | ||||
| normal forwarding path. Forwarding packets unconditionally will | ||||
| usually allow for the circumvention of security controls (see e.g., | ||||
| Section 7.5), while processing packets outside of the normal | ||||
| forwarding path will usually open the door to DoS attacks (see e.g., | ||||
| Section 6). Thus, in these scenarios, devices often simply resort to | ||||
| dropping such packets unconditionally. | ||||
| 8.2. Route-Processor Protection | ||||
| Most contemporary carrier-grade routers have a fast hardware-assisted | Most contemporary carrier-grade routers have a fast hardware-assisted | |||
| forwarding plane and a loosely coupled control plane, connected | forwarding plane and a loosely coupled control plane, connected | |||
| together with a link that has much less capacity than the forwarding | together with a link that has much less capacity than the forwarding | |||
| plane could handle. Traffic differentiation cannot be performed by | plane could handle. Traffic differentiation cannot be performed by | |||
| the control plane, because this would overload the internal link | the control plane, because this would overload the internal link | |||
| connecting the forwarding plane to the control plane. | connecting the forwarding plane to the control plane. | |||
| The Hop-by-Hop Options header has been particularly challenging since | The Hop-by-Hop Options header has been particularly challenging since | |||
| in most circumstances, the corresponding packet is punted to the | in most circumstances, the corresponding packet is punted to the | |||
| control plane for processing. As a result, many operators currently | control plane for processing. As a result, many operators drop IPv6 | |||
| drop IPv6 packets containing this extension header. [RFC6192] | packets containing this extension header [RFC7872]. [RFC6192] | |||
| provides advice regarding protection of a router's control plane. | provides advice regarding protection of a router's control plane. | |||
| 7.3. Inability to Perform Fine-grained Filtering | 8.3. Inability to Perform Fine-grained Filtering | |||
| Some router implementations do not have support for fine-grained | Some intermediate systems do not have support for fine-grained | |||
| filtering of IPv6 extension headers. For example, an operator that | filtering of IPv6 extension headers. For example, an operator that | |||
| wishes to drop packets containing Routing Header Type 0 (RHT0), may | wishes to drop packets containing Routing Header Type 0 (RHT0), may | |||
| only be able to filter on the extension header type (Routing Header). | only be able to filter on the extension header type (Routing Header). | |||
| This could result in an operator enforcing a more coarse filtering | This could result in an operator enforcing a more coarse filtering | |||
| policy (e.g., "drop all packets containing a Routing Header" vs. | policy (e.g., "drop all packets containing a Routing Header" vs. | |||
| "only drop packets that contain a Routing Header Type 0"). | "only drop packets that contain a Routing Header Type 0"). | |||
| 7.4. Security Concerns Associated with IPv6 Extension Headers | 8.4. Security Concerns Associated with IPv6 Extension Headers | |||
| The security implications of IPv6 Extension Headers generally fall | The security implications of IPv6 Extension Headers generally fall | |||
| into one or more of these categories: | into one or more of these categories: | |||
| o Evasion of security controls | o Evasion of security controls | |||
| o DoS due to processing requirements | o DoS due to processing requirements | |||
| o DoS due to implementation errors | o DoS due to implementation errors | |||
| o Extension Header-specific issues | o Extension Header-specific issues | |||
| Unlike IPv4 packets where the upper-layer protocol can be trivially | Unlike IPv4 packets where the upper-layer protocol can be trivially | |||
| found by means of the "IHL" ("Internet Header Length") IPv4 header | found by means of the "IHL" ("Internet Header Length") IPv4 header | |||
| field, the structure of IPv6 packets is more flexible and complex. | field, the structure of IPv6 packets is more flexible and complex. | |||
| This can represent a challenge for devices that need to find this | This can represent a challenge for devices that need to find this | |||
| skipping to change at page 12, line 48 ¶ | skipping to change at page 13, line 28 ¶ | |||
| protocol type) can be trivially circumvented by inserting IPv6 | protocol type) can be trivially circumvented by inserting IPv6 | |||
| Extension Headers between the main IPv6 header and the upper layer | Extension Headers between the main IPv6 header and the upper layer | |||
| protocol. [RFC7113] describes this issue for the RA-Guard case, but | protocol. [RFC7113] describes this issue for the RA-Guard case, but | |||
| the same techniques could be employed to circumvent other IPv6 | the same techniques could be employed to circumvent other IPv6 | |||
| firewall and packet filtering mechanisms. Additionally, | firewall and packet filtering mechanisms. Additionally, | |||
| implementation inconsistencies in packet forwarding engines can | implementation inconsistencies in packet forwarding engines can | |||
| result in evasion of security controls | result in evasion of security controls | |||
| [I-D.kampanakis-6man-ipv6-eh-parsing] [Atlasis2014] [BH-EU-2014]. | [I-D.kampanakis-6man-ipv6-eh-parsing] [Atlasis2014] [BH-EU-2014]. | |||
| Sometimes packets with IPv6 Extension Headers can impact throughput | Sometimes packets with IPv6 Extension Headers can impact throughput | |||
| performance on routers and middleboxes. Unless appropriate | performance on intermediate systems. Unless appropriate mitigations | |||
| mitigations are put in place (e.g., packet dropping and/or rate- | are put in place (e.g., packet dropping and/or rate-limiting), an | |||
| limiting), an attacker could simply send a large amount of IPv6 | attacker could simply send a large amount of IPv6 traffic employing | |||
| traffic employing IPv6 Extension Headers with the purpose of | IPv6 Extension Headers with the purpose of performing a Denial of | |||
| performing a Denial of Service (DoS) attack (see Section 7 for | Service (DoS) attack (see Section 6.1 and Section 8 for further | |||
| further details). | details). | |||
| NOTE: | NOTE: | |||
| In the most trivial case, a packet that includes a Hop-by-Hop | In the most trivial case, a packet that includes a Hop-by-Hop | |||
| Options header might go through the slow forwarding path, to be | Options header might go through the slow forwarding path, to be | |||
| processed by the router's CPU. Alternatively, a router configured | processed by the router's CPU. Alternatively, a router configured | |||
| to enforce an ACL based on upper-layer information (e.g., upper | to enforce an ACL based on upper-layer information (e.g., upper | |||
| layer protocol or TCP Destination Port) may need to process the | layer protocol or TCP Destination Port) may need to process the | |||
| entire IPv6 header chain in order to find the required | entire IPv6 header chain in order to find the required | |||
| information, thereby causing the packet to be processed in the | information, thereby causing the packet to be processed in the | |||
| slow path [Cisco-EH-Cons]. We note that, for obvious reasons, the | slow path [Cisco-EH-Cons]. We note that, for obvious reasons, the | |||
| aforementioned performance issues can affect other devices such as | aforementioned performance issues can affect other devices such as | |||
| firewalls, Network Intrusion Detection Systems (NIDS), etc. | firewalls, Network Intrusion Detection Systems (NIDS), etc. | |||
| [Zack-FW-Benchmark]. The extent to which performance is affected | [Zack-FW-Benchmark]. The extent to which performance is affected | |||
| on these devices is implementation-dependent. | on these devices is implementation-dependent. | |||
| IPv6 implementations, like all other software, tend to mature with | IPv6 implementations, like all other software, tend to mature with | |||
| time and wide-scale deployment. While the IPv6 protocol itself has | time and wide-scale deployment. While the IPv6 protocol itself has | |||
| existed for over 20 years, serious bugs related to IPv6 Extension | existed for over 20 years, serious bugs related to IPv6 Extension | |||
| Header processing continue to be discovered (see e.g., [Cisco-Frag1], | Header processing continue to be discovered (see e.g., [Cisco-Frag], | |||
| [Cisco-Frag2], [Microsoft-SA], and [FreeBSD-SA]). Because there is | [Microsoft-SA], and [FreeBSD-SA]). Because there is currently little | |||
| currently little operational reliance on IPv6 Extension headers, the | operational reliance on IPv6 Extension headers, the corresponding | |||
| corresponding code paths are rarely exercised, and there is the | code paths are rarely exercised, and there is the potential for bugs | |||
| potential for bugs that still remain to be discovered in some | that still remain to be discovered in some implementations. | |||
| implementations. | ||||
| IPv6 Fragment Headers are employed to allow fragmentation of IPv6 | IPv6 Fragment Headers are employed to allow fragmentation of IPv6 | |||
| packets. While many of the security implications of the | packets. While many of the security implications of the | |||
| fragmentation / reassembly mechanism are known from the IPv4 world, | fragmentation / reassembly mechanism are known from the IPv4 world, | |||
| several related issues have crept into IPv6 implementations. These | several related issues have crept into IPv6 implementations. These | |||
| range from denial of service attacks to information leakage, as | range from denial of service attacks to information leakage, as | |||
| discussed in [RFC7739], [Bonica-NANOG58] and [Atlasis2012]). | discussed in [RFC7739], [Bonica-NANOG58] and [Atlasis2012]). | |||
| 8. IANA Considerations | 9. IANA Considerations | |||
| This document has no IANA actions. | This document has no IANA actions. | |||
| 9. Security Considerations | 10. Security Considerations | |||
| The security implications of IPv6 extension headers are discussed in | The security implications of IPv6 extension headers are discussed in | |||
| Section 7.4. This document does not introduce any new security | Section 8.4. This document does not introduce any new security | |||
| issues. | issues. | |||
| 10. Acknowledgements | 11. Acknowledgements | |||
| The authors would like to thank (in alphabetical order) Mikael | The authors would like to thank (in alphabetical order) Mikael | |||
| Abrahamsson, Fred Baker, Dale W. Carder, Brian Carpenter, Tim Chown, | Abrahamsson, Fred Baker, Dale W. Carder, Brian Carpenter, Tim Chown, | |||
| Owen DeLong, Gorry Fairhurst, Guillermo Gont, Tom Herbert, Lee | Owen DeLong, Gorry Fairhurst, Guillermo Gont, Tom Herbert, Lee | |||
| Howard, Tom Petch, Sander Steffann, Eduard Vasilenko, Eric Vyncke, | Howard, Tom Petch, Sander Steffann, Eduard Vasilenko, Eric Vyncke, | |||
| Rob Wilton, Jingrong Xie, and Andrew Yourtchenko, for providing | Rob Wilton, Jingrong Xie, and Andrew Yourtchenko, for providing | |||
| valuable comments on earlier versions of this document. | valuable comments on earlier versions of this document. | |||
| Fernando Gont would like to thank Jan Zorz / Go6 Lab | Fernando Gont would like to thank Jan Zorz / Go6 Lab | |||
| <https://go6lab.si/>, Jared Mauch, and Sander Steffann | <https://go6lab.si/>, Jared Mauch, and Sander Steffann | |||
| <https://steffann.nl/>, for providing access to systems and networks | <https://steffann.nl/>, for providing access to systems and networks | |||
| that were employed to perform experiments and measurements involving | that were employed to perform experiments and measurements involving | |||
| packets with IPv6 Extension Headers. | packets with IPv6 Extension Headers. | |||
| 11. References | 12. References | |||
| 11.1. Normative References | 12.1. Normative References | |||
| [RFC5095] Abley, J., Savola, P., and G. Neville-Neil, "Deprecation | [RFC5095] Abley, J., Savola, P., and G. Neville-Neil, "Deprecation | |||
| of Type 0 Routing Headers in IPv6", RFC 5095, | of Type 0 Routing Headers in IPv6", RFC 5095, | |||
| DOI 10.17487/RFC5095, December 2007, | DOI 10.17487/RFC5095, December 2007, | |||
| <https://www.rfc-editor.org/info/rfc5095>. | <https://www.rfc-editor.org/info/rfc5095>. | |||
| [RFC5722] Krishnan, S., "Handling of Overlapping IPv6 Fragments", | [RFC5722] Krishnan, S., "Handling of Overlapping IPv6 Fragments", | |||
| RFC 5722, DOI 10.17487/RFC5722, December 2009, | RFC 5722, DOI 10.17487/RFC5722, December 2009, | |||
| <https://www.rfc-editor.org/info/rfc5722>. | <https://www.rfc-editor.org/info/rfc5722>. | |||
| skipping to change at page 15, line 14 ¶ | skipping to change at page 15, line 37 ¶ | |||
| [RFC8200] Deering, S. and R. Hinden, "Internet Protocol, Version 6 | [RFC8200] Deering, S. and R. Hinden, "Internet Protocol, Version 6 | |||
| (IPv6) Specification", STD 86, RFC 8200, | (IPv6) Specification", STD 86, RFC 8200, | |||
| DOI 10.17487/RFC8200, July 2017, | DOI 10.17487/RFC8200, July 2017, | |||
| <https://www.rfc-editor.org/info/rfc8200>. | <https://www.rfc-editor.org/info/rfc8200>. | |||
| [RFC8504] Chown, T., Loughney, J., and T. Winters, "IPv6 Node | [RFC8504] Chown, T., Loughney, J., and T. Winters, "IPv6 Node | |||
| Requirements", BCP 220, RFC 8504, DOI 10.17487/RFC8504, | Requirements", BCP 220, RFC 8504, DOI 10.17487/RFC8504, | |||
| January 2019, <https://www.rfc-editor.org/info/rfc8504>. | January 2019, <https://www.rfc-editor.org/info/rfc8504>. | |||
| 11.2. Informative References | 12.2. Informative References | |||
| [APNIC-Scudder] | [APNIC-Scudder] | |||
| Scudder, J., "Modern router architecture and IPv6", APNIC | Scudder, J., "Modern router architecture and IPv6", APNIC | |||
| Blog, June 4, 2020, <https://blog.apnic.net/2020/06/04/ | Blog, June 4, 2020, <https://blog.apnic.net/2020/06/04/ | |||
| modern-router-architecture-and-ipv6/>. | modern-router-architecture-and-ipv6/>. | |||
| [Atlasis2012] | [Atlasis2012] | |||
| Atlasis, A., "Attacking IPv6 Implementation Using | Atlasis, A., "Attacking IPv6 Implementation Using | |||
| Fragmentation", BlackHat Europe 2012. Amsterdam, | Fragmentation", BlackHat Europe 2012. Amsterdam, | |||
| Netherlands. March 14-16, 2012, | Netherlands. March 14-16, 2012, | |||
| skipping to change at page 16, line 5 ¶ | skipping to change at page 16, line 29 ¶ | |||
| Deprecation", NANOG 58. New Orleans, Louisiana, USA. June | Deprecation", NANOG 58. New Orleans, Louisiana, USA. June | |||
| 3-5, 2013, <https://www.nanog.org/sites/default/files/ | 3-5, 2013, <https://www.nanog.org/sites/default/files/ | |||
| mon.general.fragmentation.bonica.pdf>. | mon.general.fragmentation.bonica.pdf>. | |||
| [Cisco-EH-Cons] | [Cisco-EH-Cons] | |||
| Cisco, "IPv6 Extension Headers Review and Considerations", | Cisco, "IPv6 Extension Headers Review and Considerations", | |||
| October 2006, | October 2006, | |||
| <http://www.cisco.com/en/US/technologies/tk648/tk872/ | <http://www.cisco.com/en/US/technologies/tk648/tk872/ | |||
| technologies_white_paper0900aecd8054d37d.pdf>. | technologies_white_paper0900aecd8054d37d.pdf>. | |||
| [Cisco-Frag1] | [Cisco-Frag] | |||
| Cisco, "Cisco IOS Software IPv6 Virtual Fragmentation | ||||
| Reassembly Denial of Service Vulnerability", September | ||||
| 2013, <http://tools.cisco.com/security/center/content/ | ||||
| CiscoSecurityAdvisory/cisco-sa-20130925-ipv6vfr>. | ||||
| [Cisco-Frag2] | ||||
| Cisco, "Cisco IOS XR Software Crafted IPv6 Packet Denial | Cisco, "Cisco IOS XR Software Crafted IPv6 Packet Denial | |||
| of Service Vulnerability", June 2015, | of Service Vulnerability", June 2015, | |||
| <http://tools.cisco.com/security/center/content/ | <http://tools.cisco.com/security/center/content/ | |||
| CiscoSecurityAdvisory/cisco-sa-20150611-iosxr>. | CiscoSecurityAdvisory/cisco-sa-20150611-iosxr>. | |||
| [Cunha-2020] | [Cunha-2020] | |||
| Cunha, I., "IPv4 vs IPv6 load balancing in Internet | Cunha, I., "IPv4 vs IPv6 load balancing in Internet | |||
| routes", NPS/CAIDA 2020 Virtual IPv6 Workshop, 2020, | routes", NPS/CAIDA 2020 Virtual IPv6 Workshop, 2020, | |||
| <https://www.cmand.org/workshops/202006-v6/slides/ | <https://www.cmand.org/workshops/202006-v6/slides/ | |||
| cunha.pdf>. | cunha.pdf>. | |||
| skipping to change at page 16, line 42 ¶ | skipping to change at page 17, line 12 ¶ | |||
| <https://blog.apnic.net/2017/08/22/dealing-ipv6- | <https://blog.apnic.net/2017/08/22/dealing-ipv6- | |||
| fragmentation-dns/>. | fragmentation-dns/>. | |||
| [Huston-2020] | [Huston-2020] | |||
| Huston, G., "Measurement of IPv6 Extension Header | Huston, G., "Measurement of IPv6 Extension Header | |||
| Support", NPS/CAIDA 2020 Virtual IPv6 Workshop, 2020, | Support", NPS/CAIDA 2020 Virtual IPv6 Workshop, 2020, | |||
| <https://www.cmand.org/workshops/202006-v6/ | <https://www.cmand.org/workshops/202006-v6/ | |||
| slides/2020-06-16-xtn-hdrs.pdf>. | slides/2020-06-16-xtn-hdrs.pdf>. | |||
| [I-D.ietf-opsec-ipv6-eh-filtering] | [I-D.ietf-opsec-ipv6-eh-filtering] | |||
| Gont, F. and W. LIU, "Recommendations on the Filtering of | Gont, F. and W. Liu, "Recommendations on the Filtering of | |||
| IPv6 Packets Containing IPv6 Extension Headers at Transit | IPv6 Packets Containing IPv6 Extension Headers at Transit | |||
| Routers", draft-ietf-opsec-ipv6-eh-filtering-07 (work in | Routers", draft-ietf-opsec-ipv6-eh-filtering-07 (work in | |||
| progress), January 2021. | progress), January 2021. | |||
| [I-D.kampanakis-6man-ipv6-eh-parsing] | [I-D.kampanakis-6man-ipv6-eh-parsing] | |||
| Kampanakis, P., "Implementation Guidelines for parsing | Kampanakis, P., "Implementation Guidelines for parsing | |||
| IPv6 Extension Headers", draft-kampanakis-6man-ipv6-eh- | IPv6 Extension Headers", draft-kampanakis-6man-ipv6-eh- | |||
| parsing-01 (work in progress), August 2014. | parsing-01 (work in progress), August 2014. | |||
| [I-D.taylor-v6ops-fragdrop] | [I-D.taylor-v6ops-fragdrop] | |||
| Jaeggli, J., Colitti, L., Kumari, W., Vyncke, E., Kaeo, | Jaeggli, J., Colitti, L., Kumari, W., Vyncke, E., Kaeo, | |||
| M., and T. Taylor, "Why Operators Filter Fragments and | M., and T. Taylor, "Why Operators Filter Fragments and | |||
| What It Implies", draft-taylor-v6ops-fragdrop-02 (work in | What It Implies", draft-taylor-v6ops-fragdrop-02 (work in | |||
| progress), December 2013. | progress), December 2013. | |||
| [I-D.wkumari-long-headers] | [I-D.wkumari-long-headers] | |||
| Kumari, W., Jaeggli, J., Bonica, R., and J. Linkova, | Kumari, W., Jaeggli, J., Bonica, R. P., and J. Linkova, | |||
| "Operational Issues Associated With Long IPv6 Header | "Operational Issues Associated With Long IPv6 Header | |||
| Chains", draft-wkumari-long-headers-03 (work in progress), | Chains", draft-wkumari-long-headers-03 (work in progress), | |||
| June 2015. | June 2015. | |||
| [IEPG94-Scudder] | [IEPG94-Scudder] | |||
| Petersen, B. and J. Scudder, "Modern Router Architecture | Petersen, B. and J. Scudder, "Modern Router Architecture | |||
| for Protocol Designers", IEPG 94. Yokohama, Japan. | for Protocol Designers", IEPG 94. Yokohama, Japan. | |||
| November 1, 2015, <http://www.iepg.org/2015-11-01-ietf94/ | November 1, 2015, <http://www.iepg.org/2015-11-01-ietf94/ | |||
| IEPG-RouterArchitecture-jgs.pdf>. | IEPG-RouterArchitecture-jgs.pdf>. | |||
| End of changes. 53 change blocks. | ||||
| 130 lines changed or deleted | 151 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||