<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<?rfc toc="yes" ?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="2" ?>
<?rfc symrefs="yes" ?>
<?rfc sortrefs="yes" ?>

<rfc 
    number="7872"
    ipr="trust200902"
    category="info"
    submissionType="IETF"
    consensus="yes">

  <front>
    <title abbrev="IPv6 Extension Headers">Observations on the Dropping of Packets with IPv6 Extension Headers in&nbsp;the&nbsp;Real&nbsp;World</title>

    <author fullname="Fernando Gont" initials="F." surname="Gont">
      <organization abbrev="SI6 Networks / UTN-FRH">SI6 Networks / UTN-FRH</organization>

      <address>
        <postal>
          <street>Evaristo Carriego 2644</street>
          <code>1706</code>
          <city>Haedo</city>
          <region>Provincia de Buenos Aires</region>
          <country>Argentina</country>
        </postal>

        <phone>+54 11 4650 8472</phone>
        <email>fgont@si6networks.com</email>
        <uri>http://www.si6networks.com</uri>
      </address>
    </author>

    <author fullname="J. Linkova" initials="J." surname="Linkova">
      <organization abbrev="Google">Google</organization>

      <address>
        <postal>
          <street>1600 Amphitheatre Parkway</street>
          <city>Mountain View</city>
          <region>CA 94043</region>
          <country>United States</country>
        </postal>

        <email>furry@google.com</email>
      </address>
    </author>

<author fullname="Tim Chown" initials="T.J." surname="Chown">
	<organization>Jisc</organization>
	<address>
		<postal>
			<street>Lumen House, Library Avenue</street>
			<city>Harwell Oxford, Didcot</city>
			<code>OX11 0SG</code>
			<region></region>
			<country>United Kingdom</country>
		</postal>
		<email>tim.chown@jisc.ac.uk</email>
	</address>
</author>

<author fullname="Will (Shucheng) Liu" initials="W." surname="Liu">
      <organization>Huawei Technologies</organization>
      <address>
        <postal>
          <street>Bantian, Longgang District</street>
          <city>Shenzhen</city>
          <code>518129</code>
          <country>China</country>
        </postal>
        <email>liushucheng@huawei.com</email>
      </address>
</author>

    <date month="May" year="2016" />

    <area>Operations and Management</area>
    <workgroup>IPv6 Operations (v6ops)</workgroup>

    <abstract>
    <t>
This document presents real-world data regarding the extent to which packets
with IPv6 Extension Headers (EHs) are dropped in the Internet (as originally measured in August 2014 and later in June 2015, with similar results) and where in the network such dropping occurs. The aforementioned results serve as a problem statement that is expected to trigger operational advice on the filtering of IPv6 packets carrying IPv6 EHs so that the situation improves over time. This document also explains how the results were obtained, such that the corresponding measurements can be reproduced by other members of the community and repeated over time to observe changes in the handling of packets with IPv6 EHs.
</t>
    </abstract>
  </front>

  <middle>

<section title="Introduction" anchor="intro"> 
<t>
IPv6 Extension Headers (EHs) allow for the extension of the IPv6 protocol and provide support for core functionality such as IPv6 fragmentation. While packets employing IPv6 EHs have been suspected to be dropped in some IPv6 deployments, there was not much concrete data on the topic. Some preliminary measurements have been presented in <xref target="PMTUD-Blackholes"/>, <xref target="Gont-IEPG88"/>, and <xref target="Gont-Chown-IEPG89"/>, whereas <xref target="Linkova-Gont-IEPG90"/> presents more comprehensive results on which this document is based.</t>

<t>
This document presents real-world data regarding the extent to which packets containing IPv6 EHs are dropped in the Internet, as measured in August 2014 and later in June 2015 with similar results (pending operational advice in this area). The results presented in this document indicate that in the scenarios where the corresponding measurements were performed, the use of IPv6 EHs can lead to packet drops. We note that, in particular, packet drops occurring at transit networks are undesirable, and it is hoped and expected that this situation will improve over time.</t>
</section>

<section title="Support of IPv6 Extension Headers in the Internet" anchor="measurements">
<t>This section summarizes the results obtained when measuring the support of
IPv6 EHs on the path towards different types of public IPv6
servers. Two sources of information were employed for the list of public IPv6
servers: the "World IPv6 Launch" site &lt;http://www.worldipv6launch.org&gt;
and Alexa's list of the Top 1-Million Web Sites &lt;http://www.alexa.com&gt;. For each list of domain names, the following datasets were obtained:

<list style="symbols">
<t>Web servers (AAAA records of the aforementioned list)</t>
<t>Mail servers (MX -&gt; AAAA records of the aforementioned list)</t>
<t>Name servers (NS -&gt; AAAA records of the aforementioned list)</t>
</list>
</t>

<t>Duplicate addresses and IPv6 addresses other than global unicast addresses were eliminated from each of those lists prior to obtaining the results included in this document. Additionally, addresses that were found to be unreachable were discarded from the dataset (please see <xref target="measurement-caveats"/> for further details).</t>

<t>For each of the aforementioned address sets, three different types of probes were employed:
<list style="symbols">
<t>IPv6 packets with a Destination Options header of 8 bytes;</t>
<t>IPv6 packets resulting in two IPv6 fragments of 512 bytes each
(approximately); and</t>
<t>IPv6 packets with a Hop-by-Hop Options header of 8 bytes.</t>
</list>
</t>

<t>In the case of packets with a Destination Options header and the case of packets with a Hop-by-Hop Options header, the desired EH size was achieved by means of PadN options <xref target="RFC2460"/>. The upper-layer protocol of the probe packets was, in all cases, TCP <xref target="RFC0793"/> with the Destination Port set to the service port <xref target="IANA-PORT-NUMBERS"/> of the corresponding dataset. For example, the probe packets for all the measurements involving web servers were TCP segments with the Destination Port set to 80.
</t>

<t>Besides obtaining the packet drop rate when employing the aforementioned
IPv6 EHs, we tried to identify whether the Autonomous System
(AS) dropping the packets was the same as the AS of the
destination/target address. This is of particular interest since it
essentially reveals whether the packet drops are under the control of the
intended destination of the packets. Packets dropped by the destination AS are
less of a concern since the device dropping the packets is under the control
of the same organization as that to which the packets are destined (hence, it
is probably easier to update the filtering policy if deemed necessary). On the
other hand, packets dropped by transit ASes are more of a concern since they
affect the deployability and usability of IPv6 EHs (including
IPv6 fragmentation) by a third party (the destination AS). In any case, we note that it is impossible to tell whether, in those cases where IPv6 packets with EHs get dropped, the packet drops are the result of an explicit and intended policy or the result of improper device configuration defaults, buggy devices, etc. Thus, packet drops that occur at the destination AS might still prove to be problematic.</t>

<t>Since there is some ambiguity when identifying the AS to which a specific router belongs (see <xref target="asn-lookup"/>), each of our measurements results in two different values: one corresponding to the "best-case scenario" and one corresponding to the "worst-case scenario". The "best-case scenario" is that in which, when in doubt, the packets are assumed to be dropped by the destination AS, whereas the "worst-case scenario" is that in which, when in doubt, the packets are assumed to be dropped by a transit AS (please see <xref target="asn-lookup"/> for details). In the following tables, the values shown within parentheses represent the possibility that, when a packet is dropped, the packet drop occurs in an AS other than the destination AS (considering both the best-case scenario and the worst-case scenario).
</t>
    <texttable title="WIPv6LD Dataset: Packet Drop Rate for Different
		      Destination Types, and Estimated (Best-Case / Worst-Case)
		      Percentage of Packets That Were Dropped in a Different AS"

	       style="all" anchor="wipv6ld-survey-table">
        <ttcol align="center">Dataset</ttcol>
        <ttcol align="center">DO8</ttcol>
        <ttcol align="center">HBH8</ttcol>
	<ttcol align="center">FH512</ttcol>
        <c>Web servers</c>        <c>11.88% (17.60%/20.80%)</c>  <c>40.70% (31.43%/40.00%)</c>    <c>30.51% (5.08%/6.78%)</c> 
	<c>Mail servers</c> <c>17.07% (6.35%/26.98%)</c><c>48.86% (40.50%/65.42%)</c>    <c>39.17% (2.91%/12.73%)</c> 
        <c>Name servers</c> <c>15.37% (14.29%/33.46%)</c>  <c>43.25% (42.49%/72.07%)</c>    <c>38.55% (3.90%/13.96%)</c> 
    </texttable>

<t>
<list style="hanging">
<t>
   NOTE: In the tables above and below, "HBH8" stands for "packets with a Hop-By-Hop
   Options extension header of 8 bytes", "DO8" stands for "packets
   with a Destination Options extension header of 8 bytes", and
   "FH512" stands for "IPv6 packets with a Fragment Header of 512
   bytes".</t>
</list>
</t>
<t>
<list style="hanging">
<t>NOTE: As an example, we note that the cell describing the support of IPv6
packets with DO8 for web servers (containing the value "11.88%
(17.60%/20.80%)") should be read as: "when sending IPv6 packets with DO8 to
public web servers, 11.88% of such packets get dropped. Among those packets that get dropped, 17.60%/20.80% (best case / worst case) of them get dropped at an AS other than the destination AS".</t>
</list>
</t>




    <texttable title="Alexa's Top 1M Sites Dataset: Packet Drop Rate for Different
		      Destination Types, and Estimated (Best-Case / Worst-Case)
		      Percentage of Packets That Were Dropped in a Different AS"
style="all" anchor="alexa-survey-table">
        <ttcol align="center">Dataset</ttcol>
        <ttcol align="center">DO8</ttcol>
        <ttcol align="center">HBH8</ttcol>
	<ttcol align="center">FH512</ttcol>
        <c>Web servers</c>        <c>10.91% (46.52%/53.23%)</c>  <c>39.03% (36.90%/46.35%)</c>    <c>28.26% (53.64%/61.43%)</c> 
	<c>Mail servers</c> <c>11.54% (2.41%/21.08%)</c><c>45.45% (41.27%/61.13%)</c>    <c>35.68% (3.15%/10.92%)</c> 
        <c>Name servers</c> <c>21.33% (10.27%/56.80%)</c>  <c>54.12% (50.64%/81.00%)</c>    <c>55.23% (5.66%/32.23%)</c> 
    </texttable>


<t>There are a number of observations to be made based on the results presented above. Firstly, while it has been generally assumed that it is IPv6 fragments that are dropped by operators, our results indicate that it is IPv6 EHs in general that result in packet drops. Secondly, our results indicate that a significant percentage of such packet drops occurs in transit ASes; that is, the packet drops are not under the control of the same organization as the final destination.</t>

</section>
    <section title="Security Considerations">

<t>This document presents real-world data regarding the extent to which IPv6 packets employing EHs are dropped in the Internet. As such, this document does not introduce any new security issues.</t>
    </section>

  </middle>

  <back>


  <references title='Normative References'>

	<?rfc include="reference.RFC.0793" ?>
	<?rfc include="reference.RFC.2460" ?>
  </references>

  <references title='Informative References'>

    <reference anchor="Gont-IEPG88" 
	       target="http://www.iepg.org/2013-11-ietf88/fgont-iepg-ietf88-ipv6-frag-and-eh.pdf">
  <front>
  <title>Fragmentation and Extension Header Support in the IPv6 Internet</title>
  <author initials="F." surname="Gont" fullname="Fernando Gont">
	<organization></organization>
  </author>
  <date month= "November" year="2013"/>
  </front>
<seriesInfo name="IEPG meeting" value="before IETF 88"/>
  </reference>

    <reference anchor="Gont-Chown-IEPG89" 
	       target="http://www.iepg.org/2014-03-02-ietf89/fgont-iepg-ietf89-eh-update.pdf">
  <front>
  <title>A Small Update on the Use of IPv6 Extension Headers</title>
  <author initials="F." surname="Gont" fullname="Fernando Gont">
				<organization></organization>
  </author>
  <author initials="T." surname="Chown" fullname="Tim Chown">
				<organization></organization>
  </author>
  <date month="March" year="2014"/>
  </front>
  <seriesInfo name="IEPG meeting" value="before IETF 89"/>
  </reference>


    <reference anchor="Linkova-Gont-IEPG90" 
	       target="http://www.iepg.org/2014-07-20-ietf90/iepg-ietf90-ipv6-ehs-in-the-real-world-v2.0.pdf">
  <front>
  <title>IPv6 Extension Headers in the Real World v2.0</title>
  <author initials="J." surname="Linkova" fullname="Jen Linkova">
				<organization></organization>
  </author>
  <author initials="F." surname="Gont" fullname="Fernando Gont">
				<organization></organization>
  </author>

  <date month="July" year="2014"/>
  </front>
		<seriesInfo name="IEPG Meeting" value="before IETF 90"/>
  </reference>


<reference anchor="IANA-PORT-NUMBERS" 
	   target="http://www.iana.org/assignments/service-names-port-numbers">
		<front>
			<title>Service Name and Transport Protocol Port Number Registry</title>
			<author>
				<organization>IANA</organization>
			</author>
			<date/>
		</front>
	</reference>


<reference anchor="PMTUD-Blackholes" 
	   target="http://www.nlnetlabs.nl/downloads/publications/pmtu-black-holes-msc-thesis.pdf">
  <front>
  <title>Discovering Path MTU black holes on the Internet using RIPE Atlas</title>
  <author initials="M." surname="De Boer" fullname="Maikel De Boer">
				<organization></organization>
  </author>
  <author initials="J." surname="Bosma" fullname="Jeffrey Bosma">
				<organization></organization>
  </author>
  <date month="July" year="2012"/>
  </front>

  </reference>

    <reference anchor="IPv6-Toolkit" target="http://www.si6networks.com/tools/ipv6toolkit">
        <front>
            <title>SI6 Networks' IPv6 Toolkit v2.0 (Guille)</title>
            <author>
                <organization>SI6 Networks</organization>
            </author>
            <date/>
        </front>
    </reference>

</references>
<section title="Reproducing Our Experiment" anchor="experiment">
<t>This section describes, step by step, how to reproduce the experiment with
which we obtained the results presented in this document. Each subsection
represents one step in the experiment. The tools employed for the experiment 
are traditional UNIX-like tools (such as gunzip) and the SI6 Networks' IPv6
Toolkit v2.0 (Guille) <xref target="IPv6-Toolkit"/>.</t>

<t>Throughout this appendix, "#" denotes the command-line prompt for
commands that require superuser privileges, whereas "$" denotes the
prompt for commands that do not require superuser privileges.</t>
<section title="Obtaining the List of Domain Names" anchor="source-data">
<t>The primary data source employed was Alexa's Top 1M web sites, available
at: &lt;http://s3.amazonaws.com/alexa-static/top-1m.csv.zip&gt;. The file is a
zipped file containing the list of the most popular web sites, in
Comma-Separated Value (CSV) format. The aforementioned file can be extracted
with
<figure><artwork>
$ gunzip &lt; top-1m.csv.zip &gt; top-1m.csv
</artwork></figure>
</t>

<t>A list of domain names (i.e., with other data stripped) can be obtained
with the following command <xref target="IPv6-Toolkit"/>:

<figure><artwork>
$ cat top-1m.csv | script6 get-alexa-domains &gt; top-1m.txt 
</artwork></figure>
This command will create a "top-1m.txt" file containing one domain name per line.

<list style="hanging">
<t>NOTE: The domain names corresponding to the WIPv6LD dataset is available at
<vspace/>
&lt;http://www.si6networks.com/datasets/wipv6day-domains.txt&gt;. Since the corresponding file is a text file containing one domain name per line, the steps produced in this subsection need not be performed. The WIPv6LD dataset should be processed in the same way as the Alexa dataset, starting from <xref target="obtaining-rr"/>.</t>
</list>
</t>
</section>

<section title="Obtaining AAAA Resource Records" anchor="obtaining-rr">
<t>The file obtained in the previous subsection contains a list of domain names that correspond to web sites. The AAAA records for such domain names can be obtained with:</t>
<t>$ cat top-1m.txt | script6 get-aaaa &gt; top&nbhy;1m&nbhy;web&nbhy;aaaa.txt</t>


<!-- [rfced] In Appendix A, many of the command-line examples contain a line
break at a hyphen (within a filename). Do you prefer that this be left as
is, or that the line break be prevented?

Related question: is it intentional that A.4.1 - A.4.3 use "#" whereas 
the other sections use "$"? If the intention is to signify the prompt 
for the superuser, perhaps this should be stated explicitly.

Examples:

   $ cat top-1m.txt | script6 get-mx | script6 get-aaaa > top-1m-mail-
   aaaa.txt

   # cat top-1m-mail-aaaa-unique.txt | script6 trace6 hbh8 tcp 25 > top-
   1m-mail-aaaa-hbh8-m.txt

   $ cat top-1m-dns-aaaa-hbh8-m.txt | script6 get-trace6-stats > top-1m-
   dns-aaaa-hbh8-stats.txt

If line breaks are prevented:

   $ cat top-1m.txt | script6 get-mx | script6 get-aaaa > 
   top-1m-mail-aaaa.txt

   # cat top-1m-mail-aaaa-unique.txt | script6 trace6 hbh8 tcp 25 > 
   top-1m-mail-aaaa-hbh8-m.txt

   $ cat top-1m-dns-aaaa-hbh8-m.txt | script6 get-trace6-stats > 
   top-lm-dns-aaaa-hbh8-stats.txt
-->

<t>The AAAA records corresponding to the mail servers of each of the aforementioned domain names can be obtained with:</t>
<t>$ cat top-1m.txt | script6 get-mx | script6 get-aaaa &gt; top&nbhy;1m&nbhy;mail&nbhy;aaaa.txt</t>

<t>The AAAA records corresponding to the name servers of each of the aforementioned domain names can be obtained with:</t>
<t>$ cat top-1m.txt | script6 get-ns | script6 get-aaaa &gt; top&nbhy;1m&nbhy;dns&nbhy;aaaa.txt</t>
</section>

<section title="Filtering the IPv6 Address Datasets">
<t>The lists of IPv6 addresses obtained in the previous step could possibly contain undesired addresses (e.g., non-global unicast addresses) and/or duplicate addresses. In order to remove both undesired and duplicate addresses, each of the three files from the previous section should be filtered accordingly:</t>
<t>$ cat top-1m-web-aaaa.txt | addr6 -i -q -B multicast -B unspec -k global &gt; top-1m-web-aaaa-unique.txt</t>
<t>$ cat top-1m-mail-aaaa.txt | addr6 -i -q -B multicast -B unspec -k global &gt; top-1m-mail-aaaa-unique.txt</t>
<t>$ cat top-1m-dns-aaaa.txt | addr6 -i -q -B multicast -B unspec -k global &gt; top-1m-dns-aaaa-unique.txt</t>
</section>

<section title="Performing Measurements with Each IPv6 Address Dataset">
<section title="Measurements with Web Servers">
<t>In order to measure DO8 with the list of web servers:</t>
<t># cat top-1m-web-aaaa-unique.txt | script6 trace6 do8 tcp 80 &gt; top&nbhy;1m&nbhy;web&nbhy;aaaa&nbhy;do8&nbhy;m.txt</t>

<t>In order to measure HBH8 with the list of web servers:</t>
<t># cat top-1m-web-aaaa-unique.txt | script6 trace6 hbh8 tcp 80 &gt; top&nbhy;1m&nbhy;web&nbhy;aaaa&nbhy;hbh8&nbhy;m.txt</t>

<t>In order to measure FH512 with the list of web servers:</t>
<t># cat top-1m-web-aaaa-unique.txt | script6 trace6 fh512 tcp 80 &gt; top&nbhy;1m&nbhy;web&nbhy;aaaa&nbhy;fh512&nbhy;m.txt</t>
</section>

<section title="Measurements with Mail Servers">
<t>In order to measure DO8 with the list of mail servers:</t>
<t># cat top-1m-mail-aaaa-unique.txt | script6 trace6 do8 tcp 25 &gt; top&nbhy;1m&nbhy;mail&nbhy;aaaa&nbhy;do8&nbhy;m.txt</t>

<t>In order to measure HBH8 with the list of mail servers:</t>
<t># cat top-1m-mail-aaaa-unique.txt | script6 trace6 hbh8 tcp 25 &gt; top&nbhy;1m&nbhy;mail&nbhy;aaaa&nbhy;hbh8&nbhy;m.txt</t>

<t>In order to measure FH512 with the list of mail servers:</t>
<t># cat top-1m-mail-aaaa-unique.txt | script6 trace6 fh512 tcp 25 &gt; top&nbhy;1m&nbhy;mail&nbhy;aaaa&nbhy;fh512&nbhy;m.txt</t>
</section>

<section title="Measurements with Name Servers">
<t>In order to measure DO8 with the list of name servers:</t>
<t># cat top-1m-dns-aaaa-unique.txt | script6 trace6 do8 tcp 53 &gt; top&nbhy;1m&nbhy;dns&nbhy;aaaa&nbhy;do8&nbhy;m.txt</t>

<t>In order to measure HBH8 with the list of name servers:</t>
<t># cat top-1m-dns-aaaa-unique.txt | script6 trace6 hbh8 tcp 53 &gt; top&nbhy;1m&nbhy;dns&nbhy;aaaa&nbhy;hbh8&nbhy;m.txt</t>

<t>In order to measure FH512 with the list of name servers:</t>
<t># cat top-1m-dns-aaaa-unique.txt | script6 trace6 fh512 tcp 53 &gt; top&nbhy;1m&nbhy;dns&nbhy;aaaa&nbhy;fh512&nbhy;m.txt</t>
</section>
</section>

<section title="Obtaining Statistics from Our Measurements">
<section title="Statistics for Web Servers">
<t>In order to compute the statistics corresponding to our measurements of DO8
with the list of web servers:</t>
<t>$ cat top-1m-web-aaaa-do8-m.txt | script6 get-trace6-stats &gt; top&nbhy;1m&nbhy;web&nbhy;aaaa&nbhy;do8&nbhy;stats.txt</t>

<t>In order to compute the statistics corresponding to our measurements of
HBH8 with the list of web servers:</t>
<t>$ cat top-1m-web-aaaa-hbh8-m.txt | script6 get-trace6-stats &gt; top&nbhy;1m&nbhy;web&nbhy;aaaa&nbhy;hbh8&nbhy;stats.txt</t>

<t>In order to compute the statistics corresponding to our measurements of
FH512 with the list of web servers:</t>
<t>$ cat top-1m-web-aaaa-fh512-m.txt | script6 get-trace6-stats &gt; top&nbhy;1m&nbhy;web&nbhy;aaaa&nbhy;fh512&nbhy;stats.txt</t>
</section>

<section title="Statistics for Mail Servers">
<t>In order to compute the statistics corresponding to our measurements of DO8
with the list of mail servers:</t>
<t>$ cat top-1m-mail-aaaa-do8-m.txt | script6 get-trace6-stats &gt; top&nbhy;1m&nbhy;mail&nbhy;aaaa&nbhy;do8&nbhy;stats.txt</t>

<t>In order to compute the statistics corresponding to our measurements of
HBH8 with the list of mail servers:</t>
<t>$ cat top-1m-mail-aaaa-hbh8-m.txt | script6 get-trace6-stats &gt; top&nbhy;1m&nbhy;mail&nbhy;aaaa&nbhy;hbh8&nbhy;stats.txt</t>

<t>In order to compute the statistics corresponding to our measurements of
FH512 with the list of mail servers:</t>
<t>$ cat top-1m-mail-aaaa-fh512-m.txt | script6 get-trace6-stats &gt; top&nbhy;1m&nbhy;mail&nbhy;aaaa&nbhy;fh512&nbhy;stats.txt</t>
</section>

<section title="Statistics for Name Servers">
<t>In order to compute the statistics corresponding to our measurements of DO8
with the list of name servers:</t>
<t>$ cat top-1m-dns-aaaa-do8-m.txt | script6 get-trace6-stats &gt; top&nbhy;1m&nbhy;dns&nbhy;aaaa&nbhy;do8&nbhy;stats.txt</t>

<t>In order to compute the statistics corresponding to our measurements of
HBH8 with the list of mail servers:</t>
<t>$ cat top-1m-dns-aaaa-hbh8-m.txt | script6 get-trace6-stats &gt; top&nbhy;1m&nbhy;dns&nbhy;aaaa&nbhy;hbh8&nbhy;stats.txt</t>

<t>In order to compute the statistics corresponding to our measurements of
FH512 with the list of mail servers:</t>
<t>$ cat top-1m-dns-aaaa-fh512-m.txt | script6 get-trace6-stats &gt; top&nbhy;1m&nbhy;dns&nbhy;aaaa&nbhy;fh512&nbhy;stats.txt</t>
</section>

</section>

</section>

<section title="Measurements Caveats" anchor="measurement-caveats">
<t>A number of issues have needed some consideration when producing the results presented in this document. These same issues should be considered when troubleshooting connectivity problems resulting from the use of IPv6 EHs.</t>

<section title="Isolating the Dropping Node" anchor="dropping-node">
<t>Let us assume that we find that IPv6 packets with EHs are being dropped on their way to the destination system 2001:db8:d::1 and that the output of running traceroute towards such destination is:</t>

          <figure align="center">
            <artwork><![CDATA[
   1. 2001:db8:1:1000::1
   2. 2001:db8:2:4000::1
   3. 2001:db8:3:4000::1
   4. 2001:db8:3:1000::1
   5. 2001:db8:4:4000::1
   6. 2001:db8:4:1000::1
   7. 2001:db8:5:5000::1
   8. 2001:db8:5:6000::1
   9. 2001:db8:d::1
]]></artwork>
          </figure>

<t>
Additionally, let us assume that the output of EH-enabled traceroute to the same destination is:</t>
          <figure align="center">
            <artwork><![CDATA[
   1. 2001:db8:1:1000::1
   2. 2001:db8:2:4000::1
   3. 2001:db8:3:4000::1
   4. 2001:db8:3:1000::1
   5. 2001:db8:4:4000::1
]]></artwork>
          </figure>


<t>For the sake of brevity, let us refer to the last-responding node in the EH-enabled traceroute ("2001:db8:4:4000::1" in this case) as "M". Assuming that packets in both traceroutes employ the same path, we'll refer to "the node following the last responding node in the EH-enabled traceroute" ("2001:db8:4:1000::1" in our case), as "M+1", etc.</t>

<t>Based on traceroute information above, which node is the one actually dropping the EH-enabled packets will depend on whether the dropping node filters packets before making the forwarding decision or after making the forwarding decision. If the former, the dropping node will be M+1. If the latter, the dropping node will be "M".</t>

<t>Throughout this document (and our measurements), we assume that those nodes
dropping packets that carry IPv6 EHs apply their filtering policy, and only
then, if necessary, forward the packets. Thus, in our example above, the last
responding node to the EH-enabled traceroute ("M") is "2001:db8:4:4000::1",
and we assume the dropping node to be "2001:db8:4:1000::1" ("M+1"). </t>
<t>Additionally, we note that when isolating the dropping node we assume that both the EH-enabled and the EH-free traceroutes result in the same paths. However, this might not be the case.</t>
</section>

<section title="Obtaining the Responsible Organization for the Packet Drops" anchor="asn-lookup">
<t>In order to identify the organization operating the dropping node, one
would be tempted to lookup the Autonomous System Numbers (ASNs) corresponding to the dropping
node. However, assuming that M and M+1 are two peering routers, any of these
two organizations could be providing the address space employed for such
peering. Or, in the case of an Internet Exchange Point (IXP), the address space could correspond to the
IXP AS rather than to any of the participating ASes. Thus, the organization
operating the dropping node (M+1) could be the AS for M+1, but it might as
well be the AS for M+2. Only when the ASN for M+1 is the same as the ASN for
M+2 do we have certainty about who the responsible organization for the packet drops is (see slides 21-23 of <xref target="Linkova-Gont-IEPG90"/>).</t>

<t>In the measurement results presented in <xref target="measurements"/>, the
aforementioned ambiguity results in a "best-case" and a "worst-case" scenario
(rather than a single value): the lowest percentage value means that, when in
doubt, we assume the packet drops occur in the same AS as the destination; on
the other hand, the highest percentage value means that, when in doubt, we
assume the packet drops occur at a different AS than the destination AS.</t>

<t>We note that the aforementioned ambiguity should also be considered when troubleshooting and reporting IPv6 packet drops since identifying the organization responsible for the packet drops might prove to be a non-trivial task.</t>

<t>Finally, we note that a specific organization might be operating more than
one AS. However, our measurements assume that different ASNs imply different organizations.
</t>
</section>

</section>

<section title="Troubleshooting Packet Drops Due to IPv6 Extension Headers" anchor="troubleshooting">
<t>Isolating IPv6 blackholes essentially involves performing IPv6 traceroute for a destination system with and without IPv6 EHs. The EH-free traceroute would provide the full working path towards a destination while the EH-enabled traceroute would provide the address of the last-responding node for EH-enabled packets (say, "M"). In principle, one could isolate the dropping node by looking-up "M" in the EH-free traceroute with the dropping node being "M+1" (see <xref target="dropping-node"/> for caveats).</t>

<t>At the time of this writing, most traceroute implementations do not support IPv6 EHs. However, the path6 tool of <xref target="IPv6-Toolkit"/> provides such support. Additionally, the blackhole6 tool of <xref target="IPv6-Toolkit"/> automates the troubleshooting process and can readily provide information such as: dropping node's IPv6 address, dropping node's AS, etc.</t>
</section>

    <section title="Acknowledgements" numbered="no">
<t>The authors would like to thank (in alphabetical order) Mikael Abrahamsson,
Mark Andrews, Fred Baker, Brian Carpenter, Gert Doering, C. M. Heard, Nick 
Hilliard, Joel Jaeggli, Tatuya Jinmei, Merike Kaeo, Warren Kumari, Ted Lemon,
Mark Smith, Ole Troan, and Eric Vyncke for providing valuable comments on 
draft versions of this document. Additionally, the authors would like to
thank participants of the V6OPS and OPSEC working groups for their valuable
input on 
the topics discussed in this document.</t>

<t>The authors would like to thank Fred Baker for his guidance in improving
this document.</t>

<t>Fernando Gont would like to thank Jan Zorz of Go6 Lab
&lt;http://go6lab.si/&gt; and Jared Mauch of NTT America for providing access
to systems and networks that were employed to produce some of the measurement results presented in
this document. Additionally, he would like to thank SixXS &lt;https://www.sixxs.net&gt; for providing IPv6 connectivity.</t>

<t>Fernando Gont would like to thank Nelida Garcia and Guillermo Gont for their love and support.</t>
    </section>

  </back>
</rfc>
