Internet-Draft | JAMES | January 2023 |
Vyncke, et al. | Expires 13 July 2023 | [Page] |
In 2016, RFC7872 has measured the drop of packets with IPv6 extension headers. This document presents a slightly different methodology with more recent results. It is still work in progress.¶
This note is to be removed before publishing as an RFC.¶
The latest revision of this draft can be found at https://evyncke.github.io/v6ops-james/draft-vyncke-v6ops-james.html. Status information for this document may be found at https://datatracker.ietf.org/doc/draft-vyncke-v6ops-james/.¶
Discussion of this document takes place on the IPv6 Operations Working Group mailing list (mailto:v6ops@ietf.org), which is archived at https://mailarchive.ietf.org/arch/browse/v6ops/.¶
Source for this draft and an issue tracker can be found at https://github.com/evyncke/v6ops-james.¶
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 13 July 2023.¶
Copyright (c) 2023 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.¶
In 2016, [RFC7872] has measured the drop of packets with IPv6 extension headers on their transit over the global Internet. This document presents a slightly different methodology with more recent results. Since then, [I-D.draft-ietf-opsec-ipv6-eh-filtering] has provided some recommendations for filtering transit traffic, so there may be some changes in providers policies. Also, [RFC9098] raises awareness about the operational and security implications of IPv6 extension headers and present reasons why some networks would drop them intentionally.¶
It is still work in progress, but the authors wanted to present some results at IETF-113 (March 2022). The code is open source and is available at [GITHUB].¶
In a first phase, the measurement is done between collaborating IPv6 nodes, a.k.a. vantage points, spread over the Internet and multiple Autonomous Systems (ASs). As seen in Section 3.2, the source/destination/transit ASs include some "tier-1" providers per [TIER1], so, they are probably representative of the global Internet core.¶
Relying on collaborating nodes has some benefits:¶
Future phases will send probes to non-collaborating nodes with a much reduced probing speed. The destination will include [ALEXA] top-n websites, popular CDN, as well as random prefix from the IPv6 global routing table. A revision of this IETF draft will describe those experiments.¶
Several servers were used worldwide. Table 1 lists all the vantage points together with their AS number and country.¶
ASN | AS Name | Country code | Location |
---|---|---|---|
267 | NETHER-NET | US | Southfield, MI |
3764 | AFRINIC-Ops | ZA | Johanesburg |
4134 | Chine Telecom | CN | Beijing |
7195 | Edge Uno | AR | Buenos Aires |
12414 | NL-SOLCON SOLCON | NL | Amsterdam |
14061 | Digital Ocean | CA | Toronto, ON |
14061 | Digital Ocean | USA | New York City, NY |
14601 | Digital Ocean | DE | Francfort |
14601 | Digital Ocean | IN | Bangalore |
14601 | Digital Ocean | SG | Singapore |
14601 | Digital Ocean | UK | London |
16276 | OVH | AU | Sydney |
16276 | OVH | PL | Warsaw |
20473 | The Constant Company (Vultr) | MX | Mexico |
20473 | The Constant Company (Vultr) | SP | Madrid |
20473 | The Constant Company (Vultr) | JP | Tokyo |
37684 | Angani | KE | Nairobi |
37708 | AfriNIC Corporate Network | MU | Ebene |
44684 | Mythic Beasts | UK | Cambridge |
60011 | MYTHIC-BEASTS-USA | US | Fremont, CA |
198644 | GO6 | SI | Ljubljana |
During first phase (traffic among fully-meshed collaborative nodes), Table 2 show the ASs for which our probes have collected data.¶
AS Number | AS Description | Comment |
---|---|---|
174 | COGENT-174, US | Tier-1 |
267 | NETHER-NET, US | |
1299 | TWELVE99 Arelion, fka Telia Carrier, SE | Tier-1 |
2497 | IIJ Internet Initiative Japan Inc., JP | |
2828 | XO-AS15, US | Regional Tier |
2914 | NTT-LTD-2914, US | Tier-1 |
3257 | GTT-BACKBONE GTT, US | Tier-1 |
3320 | DTAG Internet service provider operations, DE | Tier-1 |
3356 | LEVEL3, US | Tier-1 |
3491 | BTN-ASN, US | Tier-1 |
4134 | CHINANET-BACKBONE No.31,Jin-rong Street, CN | Regional Tier |
4637 | ASN-TELSTRA-GLOBAL Telstra Global, HK | Regional Tier |
4755 | TATACOMM-AS TATA Communications formerly VSNL is Leading ISP, IN | |
4788 | TMNET-AS-AP TM Net, Internet Service Provider, MY | |
5511 | OPENTRANSIT, FR | Tier-1 |
5603 | SIOL-NET Telekom Slovenije d.d., SI | |
6453 | AS6453, US | Tier-1 |
6461 | ZAYO-6461 | Tier-1 |
6762 | SEABONE-NET TELECOM ITALIA SPARKLE S.p.A., IT | Tier-1 |
6895 | ESPANIX Neutral Interconect Exchange for Spain, ES | |
6939 | HURRICANE, US | Regional Tier |
7195 | EDGEUNO SAS, CO | |
8447 | A1TELEKOM-AT A1 Telekom Austria AG, AT | |
9498 | BBIL-AP BHARTI Airtel Ltd., IN | |
12129 | 123NET, US | |
12414 | NL-SOLCON SOLCON, NL | |
14061 | DIGITALOCEAN-ASN, US | |
14103 | ACDNET-ASN1, US | |
16276 | OVH, FR | |
20473 | AS-CHOOPA, US | |
21283 | A1SI-AS A1 Slovenija, SI | |
23889 | MauritiusTelecom, MU | |
33764 | AFRINIC-ZA-JNB-AS, MU | |
34779 | T-2-AS AS set propagated by T-2 d.o.o., SI | |
37100 | SEACOM-AS, MU | |
37271 | Workonline | |
37684 | ANGANI-AS, KE | |
37708 | AFRINIC-MAIN, MU | |
44684 | MYTHIC Mythic Beasts Ltd, GB | |
58461 | CT-HANGZHOU-IDC No.288,Fu-chun Road, CN | |
60011 | MYTHIC-BEASTS-USA, GB | |
198644 | GO6, SI | |
211722 | Nullroute | |
328578 | KEMNET-TECHNOLOGIES-AS, KE |
The table attributes some tier qualification to some ASs based on the Wikipedia page [TIER1], but there is no common way to decide who is a tier-1. Based on some CAIDA research, all the above (except GO6, which is a stub network) are transit providers.¶
While this document lists some operators, the intent is not to build a wall of fame or a wall of shame but more to get an idea about which kind of providers drop packets with extension headers and how widespread the drop policy is enforced and where, i.e., in the access provider or in the core of the Internet.¶
Comparing the traceroutes with and without extension headers allows the attribution of a packet drop to one AS. But, this is not an easy task as inter-AS links often use IPv6 address of only one AS (if not using link-local per [RFC7404]). This document uses the following algorithm to attribute the drop to one AS for packet sourced in one AS and then having a path traversing AS#foo just before AS#bar:¶
In several cases, the above algorithm was not possible (e.g., some intermediate routers do not generate an ICMP unreachable hop limit exceeded even in the absence of any extension headers), then the drop is not attributed. Please also note that the goal of this document is not to 'point fingers to operators' but more to evaluate the potential impact. I.e., a tier-1 provider dropping packets with extension headers has a much bigger impact on the Internet traffic than an access provider.¶
Future revision of this document will use the work of [MLAT_PEERING]. Readers are urged not to rely on the AS attribution in this document version.¶
In the first phase among collaborating vantage points, packets always contained either a UDP payload or a TCP payload, the latter is sent with only the SYN flag set and with data as permitted by section 3.4 of [RFC793] (2nd paragraph). A usual traceroute is done with only the UDP/TCP payload without any extension header with varying hop-limit in order to learn the traversed routers and ASs. Then, several UDP/TCP probes are sent with a set of extension headers:¶
hop-by-hop options header containing:¶
destination options header containing:¶
fragment header of varying frame length 512, 1280, and 1500 octets:¶
In the above, length is the length of the extension header itself except for the fragmentation header where the length is the IP packet length (i.e., including the IPv6, and TCP/UDP headers + payload). Also, an unknown option means an option with an unassigned code in the IANA registry [IANA_IPV6_PARAMS].¶
For hop-by-hop and destination options headers, the choice was made to use one unknown option instead of multiple consecutive PadN options in order to avoid packets from being discarded on the destination. Indeed, the Linux kernel does not accept consecutive Pad1 or PadN options if their total size exceeds 7 octets. Not only multiple PadN options violate section 2.1.9.5 of [RFC4942], but it is also considered as suspicious (see section 5.3 of [BCP220]). Nevertheless, for comparative purposes, multiple PadN options were used for experiments of length 256 octets. In that very specific case, drops on the destination are not considered as drops.¶
In addition to the above extension headers, other probes were sent with next header field of IPv6 header set to:¶
This section presents the current results out of phase 1 (collaborating vantage points) testing. Probe packets were sent between all pairs of vantage points with a hop-limit from 1 to the number of hops between the two vantage points and for all the extension headers described in Section 3.3.¶
Table 3 lists all routing header types and the percentage of experiments that were successful, i.e., packets with routing header reaching their destination, both for UDP and TCP:¶
Routing Header Type | UDP | TCP |
---|---|---|
0 | 74.3% | 71.2% |
1 | 88.3% | 81.4% |
2 | 97.4% | 90.4% |
3 | 97.6% | 91.3% |
4 | 78.8% | 72.6% |
5 | 97.4% | 90.9% |
6 | 97.4% | 90.0% |
Table 4 and Table 5 respectively list ASs that drop packets with the routing header type 0 (the original source routing header, which is now deprecated) and packets with the routing header type 1 (NIMROD [RFC1753], which is now deprecated).¶
AS Number | AS description |
---|---|
1299 | TWELVE99 Arelion, fka Telia Carrier, SE |
5511 | OPENTRANSIT, FR |
6895 | ESPANIX Neutral Interconect Exchange for Spain, ES |
6939 | HURRICANE, US |
7195 | EDGEUNO (DE-CIX Frankfurt) |
9498 | BBIL-AP BHARTI Airtel Ltd. (Equinix Hong Kong) |
14061 | DIGITALOCEAN (DE-CIX Frankfurt) |
16276 | OVH |
37684 | ANGANI-AS, KE |
58461 | CT-HANGZHOU-IDC No.288,Fu-chun Road, CN |
328578 | KEMNET-TECHNOLOGIES-AS, KE |
AS Number | AS description |
---|---|
1299 | TWELVE99 Arelion, fka Telia Carrier, SE |
4134 | CHINANET-BACKBONE No.31,Jin-rong Street, CN |
5511 | OPENTRANSIT, FR |
37684 | ANGANI-AS, KE |
58461 | CT-HANGZHOU-IDC No.288,Fu-chun Road, CN |
328578 | KEMNET-TECHNOLOGIES-AS, KE |
Regarding the routing type 0, it is possibly due to a strict implementation of [RFC5095] but it is expected that no packet with such routing type would be transmitted anymore. So, this is not surprising. The same reasoning could be applied to the routing type 1.¶
Table 6 lists ASs that drop packets with the routing header type 4 (Segment Routing Header [RFC8754]).¶
AS Number | AS description |
---|---|
1299 | TWELVE99 Arelion, fka Telia Carrier, SE |
4637 | ASN-TELSTRA-GLOBAL Telstra Global, HK |
5511 | OPENTRANSIT, FR |
6939 | HURRICANE, US |
7195 | EDGEUNO SAS, CO |
14061 | DIGITALOCEAN-ASN, US |
16276 | OVH, FR |
37100 | SEACOM-AS, MU |
58461 | CT-HANGZHOU-IDC No.288,Fu-chun Road, CN |
This drop of SRH was to be expected as SRv6 is specified to run only in a limited domain.¶
Other routing header types (2 == mobile IPv6 [RFC6275], 3 == RPL [RFC6554], and even 5 == CRH-16 and 6 == CRH-32[I-D.draft-bonica-6man-comp-rtg-hdr]) can be transmitted over the global Internet without being dropped (assuming that the 2.5% of dropped packets are within the measurement error). At least, this is true for UDP. We still need to investigate the differences for TCP equivalent transmissions.¶
Table 7 lists all experiments (types and lengths) along with their success percentages, i.e., packets with a hop-by-hop header reaching their destination, both for UDP and TCP:¶
Option Type | Length (bytes) | UDP | TCP |
---|---|---|---|
Skip | 8 | 8.6% | 9.1% |
Discard | 8 | 0.0% | 0.0% |
Skip | 256 | 2.4% | 2.4% |
Skip w/ PadN | 256 | 0.5% | 0.6% |
Discard | 256 | 0.0% | 0.0% |
Skip | 512 | 1.4% | 1.5% |
Discard | 512 | 0.0% | 0.0% |
It appears that hop-by-hop options headers cannot reliably traverse the global Internet; only small headers with 'skipable' options have some chances. If the unknown hop-by-hop option has the 'discard' bits, it is dropped per specification, although we observed in some cases that such packets were not necessarily dropped directly by the very first hop. Globally, there are no notable differences between UDP and TCP.¶
Table 8 lists all lengths that have been tested along with their success percentages, i.e., packets with a destination header reaching their destination, both for UDP and TCP:¶
Length (bytes) | UDP | TCP |
---|---|---|
8 | 97.8% | 94.3% |
16 | 97.7% | 90.5% |
24 | 97.6% | 89.8% |
32 | 93.5% | 86.2% |
40 | 93.9% | 86.2% |
48 | 93.7% | 86.1% |
56 | 93.8% | 52.7% |
64 | 45.9% | 37.8% |
128 | 10.9% | 10.9% |
256 | 4.3% | 4.3% |
256 w/ PadN | 4.3% | 4.3% |
512 | 3.1% | 3.1% |
The measurement revealed no difference with the discard bits, which tends to show that routers do not look inside the destination header, as expected.¶
The size of the destination options header has a major impact on the drop probability. It appears that destination headers larger than 24 octets already cause drops. It may be because the 40 octets of the IPv6 header + the 24 octets of the extension header (total 64 octets) is still in the limits of some router hardware lookup mechanisms while the next measured size (extension header size of 32 octets for a total of 72 octets) is beyond the hardware limit and some ASs have a policy to drop packets where the TCP/UDP ports are unknown. A major drop also occurs once the size reaches 64 bytes for UDP while, surprisingly, it happens at 56 bytes for TCP. In either case, the chances of surviving are approximately halved. We still need to investigate the differences for TCP equivalent transmissions.¶
The propagation of two kinds of fragmentation headers was analysed: atomic fragment (offset == 0 and M-flag == 0) and plain first fragment (offset == 0 and M-flag == 1). The Table 9 displays the propagation differences.¶
M-flag | UDP | TCP |
---|---|---|
0 (atomic) | 55.8% | 49.8% |
1 | 89.2% | 87.6% |
The size of the overall IPv6 packets (512, 1280, and 1500 octets) has no major impact on the propagation.¶
Table 10 lists ASs that do not drop transit traffic with extension headers and therefore follow the recommendations of [I-D.draft-ietf-opsec-ipv6-eh-filtering]:¶
AS Number | AS Description |
---|---|
267 | NETHER-NET, US |
2497 | IIJ Internet Initiative Japan Inc., JP |
14103 | ACDNET-ASN1, US |
21283 | A1SI-AS A1 Slovenija, SI |
33764 | AFRINIC-ZA-JNB-AS, MU |
37271 | Workonline |
37708 | AFRINIC-MAIN, MU |
60011 | MYTHIC-BEASTS-USA, GB |
198644 | GO6, SI |
Measurements also include two protocol numbers that are mainly new use of IPv6 as well as AH and ESP. Table 11 indicates the percentage of packets reaching the destination.¶
Next Header | Transmission |
---|---|
NoNextHeader (59) | 98.2% |
Ethernet (143) | 98.3% |
Authentication (AH) | 98.1% |
ESP | 98.3% |
The above indicates that those IP protocols can be transmitted over the global Internet without being dropped (assuming that the 2% of dropped packets are within the measurement error). Globally, there are no notable differences between UDP and TCP, for cases where it applies.¶
While the analysis has areas of improvement (geographical distribution and impact on latency), it appears that:¶
Of course, the next phase of measurement with non-collaborating parties will probably give another view.¶
While active probing of the Internet may be considered as an attack, this measurement was done among collaborating parties and using the probe attribution technique described in [I-D.draft-vyncke-opsec-probe-attribution] to allow external parties to identify the source of the probes if required.¶
This document has no IANA actions.¶
The authors want to thank AfriNIC, Angani, China Telecom, Jared Mauch, Sander Steffann, XiPeng Xiao, and Jan Zorz for allowing the free use of their labs. Other thanks to Ben Campbell and Fernando Gont who indicated a nice IPv6 hosting provider in Africa and South America.¶
Special thanks as well to Professor Benoit Donnet for his support and advices. This document would not have existed without his support.¶