<div dir="ltr"><span id="gmail-docs-internal-guid-e2eacd53-7fff-b5b0-bd2a-23ee7becd2f7"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-family:Roboto,sans-serif;color:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">Chris, thanks for mentioning me/our project! Rolf, thanks for pointing to <a href="https://hal.science/hal-03788618v1/file/internet-scale-revtr.pdf">our recent 2nd reverse traceroute paper</a>! </span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-family:Roboto,sans-serif;color:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><br></span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-family:Roboto,sans-serif;color:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">Our recent paper addressed what we saw as the major limitations of <a href="http://www.columbia.edu/~ebk2141/papers/reverse_traceroute-nsdi10.pdf">my original 1st reverse traceroute paper</a> that Chris linked (accuracy and scalability). We intend our system to be an open tool for the community, and we are currently testing it with outside users. It can potentially measure paths to you from <i>any</i> responsive host on the Internet, without requiring access/changes/new support at the host or routers along the path (more details below). If you want to try out our tool during this testing phase, please email us at </span><a href="mailto:revtr@ccs.neu.edu" style="text-decoration-line:none"><span style="font-family:Roboto,sans-serif;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;text-decoration-line:underline;vertical-align:baseline;white-space:pre-wrap">revtr@ccs.neu.edu</span></a><span style="font-family:Roboto,sans-serif;color:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"> </span></p><br><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-family:Roboto,sans-serif;color:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">I'll describe our project a bit, including some of the similarities and differences between our project and Rolf's. I'll call ours revtr-2.0, since that's what we call it in the paper, and I'll call Rolf's revtr-lg, since it is somewhat akin to a Looking Glass server.</span></p><br><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-family:Roboto,sans-serif;color:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">The goal in both is the same: the user u wants to measure the path (IP addresses of routers, RTTs per hop) from a remote host h to u, without direct control of h. </span></p><br><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-family:Roboto,sans-serif;color:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">revtr-2.0's approach relies on the rarely used (but actually widely supported) IP Record Route option, coupled with some measurement tricks. In my understanding, revtr-lg proposes to add a new ICMP type.</span></p><br><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-family:Roboto,sans-serif;color:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">Both approaches rely on a set of distributed vantage points running an implementation of their particular reverse traceroute code, but the way they use the vantage points is very different, and that leads to the main differences between the approaches. Our current tool has vantage points at 150 sites around the world, so I'll use that number as an example for discussion.</span></p><br><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-family:Roboto,sans-serif;color:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">COVERAGE</span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-family:Roboto,sans-serif;color:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">- revtr-lg allows a user u to contact a vantage point to request a traceroute from the vantage point to u, so i</span><span style="color:rgb(0,0,0);font-family:Roboto,sans-serif;white-space:pre-wrap">t measures from sites that have opted to run the revtr-lg software</span><span style="background-color:transparent;color:rgb(0,0,0);font-family:Roboto,sans-serif;white-space:pre-wrap">. So, with 150 sites, revtr-lg would be able to measure 150 paths to u.</span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-family:Roboto,sans-serif;color:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">- revtr-2.0 uses the vantage points to issue various measurements that combine to measure the route to u from any host h the user requests -- h need not be part of the system and need not run any special software. We were able to use revtr-2.0 and its 150 vantage points to measure paths from hosts in 39,544 ASes. (According to <a href="https://stats.labs.apnic.net/aspop">APNIC estimates</a>, these ASes host 92.6% of Internet users). </span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-family:Roboto,sans-serif;color:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">- If you want to use revtr-2.0 to measure paths to you (from whichever hosts you request), you need to run our client code on a public IP address. It will contact our system and use our vantage points to measure routes to you. If you want to try out our tool, please email us at </span><a href="mailto:revtr@ccs.neu.edu" style="text-decoration-line:none"><span style="font-family:Roboto,sans-serif;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;text-decoration-line:underline;vertical-align:baseline;white-space:pre-wrap">revtr@ccs.neu.edu</span></a><span style="font-family:Roboto,sans-serif;color:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"> </span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-family:Roboto,sans-serif;color:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">- Our vantage points currently support running a few tens of millions of reverse traceroutes per day. We hope to improve the scalability/throughput going forward.</span></p><br><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-family:Roboto,sans-serif;color:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">Just as some hosts are configured not to respond to ping, some hosts do not respond to our measurements. We found that 75% of hosts that respond to ping also respond to our measurements. Of responsive hosts, 63% are within range of our current vantage points. Going forward, we would be able to measure from more than the 39,544 ASes if we add more vantage points in strategic locations where we currently lack coverage and/or (perhaps if our system gains traction) if more operators configure their routers to respond. </span></p><br><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-family:Roboto,sans-serif;color:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">ACCURACY</span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-family:Roboto,sans-serif;color:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">I think both approaches are similarly accurate. Rolf mentions that revtr-lg "perform[s] the actual measurement between two endpoints, we identify the actual forwarding path, at the router-level, including </span><span style="background-color:transparent;color:rgb(0,0,0);font-family:Roboto,sans-serif;white-space:pre-wrap">load-balanced paths." revtr-2.0 also measures the actual forwarding path between the two endpoints, at the router/IP-level, including the ability to uncover the multiple branches of load balanced paths.</span></p><div><span><br></span></div><div><span>In only 1.5% of cases, revtr-2.0 returned a path that did not agree with a normal traceroute issued from the remote host </span><span style="color:rgb(0,0,0);font-family:Roboto,sans-serif;white-space:pre-wrap">(in a controlled experiment where we had access to the remote host but did not give revtr-2.0 access). </span><span style="color:rgb(0,0,0);font-family:Roboto,sans-serif;white-space:pre-wrap">It could be a path change between the two measurements, or an anomaly that impacted either traditional traceroute or our tool. So in the other 98.5% of cases, our tool was accurate. Rolf</span><span style="background-color:transparent;color:rgb(0,0,0);font-family:Roboto,sans-serif;white-space:pre-wrap"> mentioned that revtr-2.0 has an accuracy of 92% at the AS-level. What we meant by that is that 92.3% of our measurements had all of the ASes on them that a traceroute issued from the remote host had  In an additional 6.1% of cases, revtr-2.0 missed a single AS that was unresponsive -- like a "*" in traditional traceroute. In only the remaining 1.5% of cases did the two measurements actually have discrepancies.</span></div><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-family:Roboto,sans-serif;color:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><br></span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-family:Roboto,sans-serif;color:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">We expect that our tool is similarly accurate at the IP and router-level, it's just harder to give exact numbers because tools can return different IP addresses that correspond to the same router, and so we did the comparison at AS level. <br></span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-family:Roboto,sans-serif;color:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><br></span></p><p style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-family:Roboto,sans-serif;color:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">Best,</span></p><p style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-family:Roboto,sans-serif;color:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">Ethan (and </span>Kevin Vermeulen, Dave Choffnes, and Italo Cunha)</p></span></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Feb 22, 2023 at 1:21 PM Rolf Winter <<a href="mailto:rolf.winter@hs-augsburg.de">rolf.winter@hs-augsburg.de</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi Christoper,<br>
<br>
I cannot/shouldn't really answer, since this is somebody else's work. <br>
The latest publication on that body of work can be found here:<br>
<br>
<a href="https://dl.acm.org/doi/pdf/10.1145/3517745.3561422" rel="noreferrer" target="_blank">https://dl.acm.org/doi/pdf/10.1145/3517745.3561422</a><br>
<br>
Published at IMC 22 last October.<br>
<br>
I believe a demo is actually online here: <a href="https://revtr.ccs.neu.edu/" rel="noreferrer" target="_blank">https://revtr.ccs.neu.edu/</a><br>
<br>
That piece of work and ours differ in a number of ways. Whereas the work <br>
you cite is an external system really, that let's you perform a reverse <br>
traceroute through said system, we have implemented something, that <br>
works just like traceroute does today, but for the reverse direction. <br>
I.e. it works from your terminal, performing a traceroute back to you. <br>
The system you mention has an accuracy of about 92% at the AS-level. <br>
Since we perform the actual measurement between two endpoints we <br>
identify the actual forwarding path, at the router-level, including <br>
load-balanced paths.<br>
<br>
But we use ICMP and would need code points to move forward. So if you <br>
find this useful, discussion on the IntArea mailing list would be <br>
appreciated.<br>
<br>
Best,<br>
<br>
Rolf<br>
<br>
<br>
Am 22.02.23 um 18:19 schrieb Christopher Morrow:<br>
> Didn't ethan's project:<br>
>    <a href="https://www.measurementlab.net/publications/reverse-traceroute.pdf" rel="noreferrer" target="_blank">https://www.measurementlab.net/publications/reverse-traceroute.pdf</a><br>
> <br>
> end with usable code/etc?<br>
> <br>
> On Wed, Feb 22, 2023 at 8:09 AM Rolf Winter <<a href="mailto:rolf.winter@hs-augsburg.de" target="_blank">rolf.winter@hs-augsburg.de</a>> wrote:<br>
>><br>
>> Dear NANOG folks,<br>
>><br>
>> As you know, traceroute is unable to enumerate routers on the reverse<br>
>> path. Given that paths through the public internet are usually<br>
>> asymmetric, knowing the reverse path would be beneficial e.g. for<br>
>> troubleshooting purposes (<a href="https://youtu.be/L0RUI5kHzEQ?t=2312" rel="noreferrer" target="_blank">https://youtu.be/L0RUI5kHzEQ?t=2312</a>).<br>
>><br>
>> We have implemented a reverse traceroute tool<br>
>> (<a href="https://github.com/hsanet/reverse-traceroute" rel="noreferrer" target="_blank">https://github.com/hsanet/reverse-traceroute</a>), both client and server<br>
>> for both IPv4 and IPv6. We are also in the process of specifying the<br>
>> protocol at the IETF<br>
>> (<a href="https://datatracker.ietf.org/doc/html/draft-heiwin-intarea-reverse-traceroute" rel="noreferrer" target="_blank">https://datatracker.ietf.org/doc/html/draft-heiwin-intarea-reverse-traceroute</a>).<br>
>><br>
>><br>
>> We also gave a talk on reverse traceroute at DENOG14<br>
>> (<a href="https://youtu.be/Y7NtqLEtgjU" rel="noreferrer" target="_blank">https://youtu.be/Y7NtqLEtgjU</a>).<br>
>><br>
>> If you would like to play with reverse traceroute, the easiest option is<br>
>> to work with the client and use one of the public server instances<br>
>> (<a href="https://github.com/HSAnet/reverse-traceroute/blob/main/ENDPOINTS" rel="noreferrer" target="_blank">https://github.com/HSAnet/reverse-traceroute/blob/main/ENDPOINTS</a>). If<br>
>> you would be willing to host a public server instance yourself, please<br>
>> reach out to us. Also, if you find this work useful, please start<br>
>> discussing the work at the IntArea WG at the IETF.<br>
>><br>
>> If you have any questions or comments, just drop us a line, file an<br>
>> issue on github and/or use the IntArea mailing list.<br>
>><br>
>> Thanks a bunch,<br>
>><br>
>> Rolf<br>
</blockquote></div>