perfsonar/toolkit

Reverse tracepath6 not working on EL9

Closed this issue · 4 comments

I've tried using the reverse tracepath funtion on an EL9 machine.

https://ps-slough-bw.perf.ja.net/toolkit/gui/reverse_traceroute.cgi?target=2001%3A630%3A1%3A112%3A%3A1&function=tracepath

I get the following error:

Executing exec(/bin/tracepath6 2001:630:1:112::1)
Can't exec "/bin/tracepath6": No such file or directory at /usr/lib/perfsonar/web-ng/root/gui/reverse_traceroute.cgi line 731.
-1Other error code seen --- Can't system(/bin/tracepath6 2001:630:1:112::1): -1 at /usr/lib/perfsonar/web-ng/root/gui/reverse_traceroute.cgi line 746.

To reproduce this, go to:

https://ps-slough-bw.perf.ja.net/toolkit/gui/reverse_traceroute.cgi?function=tracepath

Select an IPv6 address and put it into the form. For example the Jisc London server 2001:630:1:112::1 would be a good choice to demonstrate the bug

If you select an IPv4 address - eg the Jisc London server 194.82.175.97 it works.

I've updated this to say it's tracepath6 (Aplogies for mistitling the ticket).

The problem is that /bin/tracepath6 doesn't exist.

[duncan@ps-slough-bw ~]$ ls /bin/traceroute*
/bin/traceroute /bin/traceroute6
[duncan@ps-slough-bw ~]$ ls /bin/tracepath*
/bin/tracepath

A simple patch would be to reference /sbin/tracepath instead as I believe that it will do IPv6 if given an IPv6 address (check this as I don't have an EL9 machine to hand at the moment).

Ideally there would be an update to allow the script to send the -4 or -6 options to force v4/v6 for dual stack hosts.

The reverse traceroute tool is very old, its maintainer has retired and its implementation has security problems we'd really rather not solve. Expect that it will go away in a future release.

Any host with pScheduler installed can command any other to run an equivalent test for you:

$ pscheduler task --tool tracepath trace --source ps-slough-bw.perf.ja.net --dest atla.ps.internet2.edu --ip-version 6
Submitting task...
Task URL:
https://ps-slough-bw.perf.ja.net/pscheduler/tasks/fc8584a0-8ed5-4e9c-91b4-bd496fccc34c
Running with tool 'tracepath'
Fetching first run...

Next scheduled run:
https://ps-slough-bw.perf.ja.net/pscheduler/tasks/fc8584a0-8ed5-4e9c-91b4-bd496fccc34c/runs/898c614a-d108-4e92-b5a1-2ac1bbf773f2
Starts 2023-12-04T20:28:48+00:00 (~1 seconds)
Ends   2023-12-04T20:30:29+00:00 (~100 seconds)
Waiting for result...

1       localhost (::1) 0.011 ms mtu 9000 bytes
2       2001:630:0:9001::99 AS786 0.754 ms mtu 9000 bytes
          JANET Jisc Services Limited, GB
3       ae24.londpg-sbr2.ja.net (2001:630:0:10::d9) AS786 0.968 ms mtu 9000 bytes
          JANET Jisc Services Limited, GB
4       ae29.londhx-sbr1.ja.net (2001:630:0:10::1c9) AS786 1.427 ms mtu 9000 bytes
          JANET Jisc Services Limited, GB
5       janet.mx1.lon.uk.geant2.net (2001:798:28:10aa::1) AS20965 1.479 ms mtu 9000 bytes
          GEANT The GEANT IP Service, NL
6       internet2-gw.mx1.lon.uk.geant.net (2001:798:99:1::26) AS20965 88.246 ms mtu 9000 bytes
          GEANT The GEANT IP Service, NL
7       No Response
8       No Response
9       fourhundredge-0-0-0-22.4079.core1.atla.net.internet2.edu (2001:468:0:1::66) 101.539 ms mtu 9000 bytes
10      atla.ps.internet2.edu (2001:468:1f0c::a) AS396955 100.75 ms mtu 9000 bytes
          INTERNET2-BLEND, US

No further runs scheduled.

As of perfSONAR 5.0, there's a mtu test that does something similar. It needs to support explicit IPv4/IPv6, which should happen in 5.1. See perfsonar/pscheduler#1369.

[root@ps ~]# pscheduler task mtu --source ps-slough-bw.perf.ja.net --dest atla.ps.internet2.edu
Submitting task...
Task URL:
https://ps-slough-bw.perf.ja.net/pscheduler/tasks/94b35566-a6b7-4f68-b9bb-70e52380ba75
Running with tool 'fwmtu'
Fetching first run...

Next scheduled run:
https://ps-slough-bw.perf.ja.net/pscheduler/tasks/94b35566-a6b7-4f68-b9bb-70e52380ba75/runs/9b7d1ba7-94b7-4489-b0e1-74049b91ea12
Starts 2023-12-04T20:31:36+00:00 (~1 seconds)
Ends   2023-12-04T20:31:41+00:00 (~4 seconds)
Waiting for result...

MTU: 9000

No further runs scheduled.