perfsonar / pscheduler

The perfSONAR Scheduler
Apache License 2.0
55 stars 34 forks source link

ipv6 only reports results on IPv6 when IPv4-only host is involved #1342

Closed rhclopes closed 1 year ago

rhclopes commented 1 year ago

Hi,

I am running a test from ps2.netherlight.net (ipv4 only host) to dice-io-37-00.acrc.bris.ac.uk (dual stack host).

I am using the flag --ip-version=6. I would expect the test to fail. It succeeds and produces a result.

[raul@ps-slough-10g ~]$ echo $surf
ps2.netherlight.net
[raul@ps-slough-10g ~]$ ping6 $surf
ping: ps2.netherlight.net: Name or service not known
[raul@ps-slough-10g ~]$ host $surf
[raul@ps-slough-10g ~]$ echo $bristol
dice-io-37-00.acrc.bris.ac.uk
[raul@ps-slough-10g ~]$ host $bristol
dice-io-37-00.acrc.bris.ac.uk has address 137.222.79.1
dice-io-37-00.acrc.bris.ac.uk has IPv6 address 2001:630:e4:2810:137:222:79:1

[raul@ps-slough-10g ~]$ pscheduler task  --slip PT47M throughput  --dest $bristol --source $surf --ip-version=6
Submitting task...
Task URL:
https://ps2.netherlight.net/pscheduler/tasks/f0c603b0-36de-4419-8ec2-a56079d73119
Running with tool 'iperf3'
Fetching first run...

Next scheduled run:
https://ps2.netherlight.net/pscheduler/tasks/f0c603b0-36de-4419-8ec2-a56079d73119/runs/4a14e64c-6f1a-4a54-a8cb-76af81bf3643
Starts 2023-06-08T18:15:30+02 (~5 seconds)
Ends   2023-06-08T18:15:49+02 (~18 seconds)
Waiting for result...

* Stream ID 5
Interval       Throughput     Retransmits    Current Window 
0.0 - 1.0      3.93 Gbps      3361           4.74 MBytes    
1.0 - 2.0      3.89 Gbps      0              4.88 MBytes    
2.0 - 3.0      4.02 Gbps      0              5.03 MBytes    
3.0 - 4.0      4.17 Gbps      0              5.32 MBytes    
4.0 - 5.0      4.49 Gbps      0              5.77 MBytes    
5.0 - 6.0      4.88 Gbps      0              6.38 MBytes    
6.0 - 7.0      5.43 Gbps      0              7.14 MBytes    
7.0 - 8.0      6.10 Gbps      0              8.07 MBytes    
8.0 - 9.0      6.85 Gbps      0              9.18 MBytes    
9.0 - 10.0     7.33 Gbps      0              10.39 MBytes   

Summary
Interval       Throughput     Retransmits    Receiver Throughput 
0.0 - 10.0     5.11 Gbps      3361           5.08 Gbps

No further runs scheduled.

[raul@ps-slough-10g ~]$ pscheduler task  --slip PT47M throughput  --dest dice-io-37-00.acrc.bris.ac.uk --source ps2.netherlight.net --ip-version=6
Submitting task...
Task URL:
https://ps2.netherlight.net/pscheduler/tasks/81070191-c702-4cff-b55a-5354943baba5
Running with tool 'iperf3'
Fetching first run...

Next scheduled run:
https://ps2.netherlight.net/pscheduler/tasks/81070191-c702-4cff-b55a-5354943baba5/runs/7bcadbb4-5f9f-4117-82b2-c01374080998
Starts 2023-06-08T19:46:02+02 (~5 seconds)
Ends   2023-06-08T19:46:21+02 (~18 seconds)
Waiting for result...

* Stream ID 5
Interval       Throughput     Retransmits    Current Window 
0.0 - 1.0      3.81 Gbps      4441           4.67 MBytes    
1.0 - 2.0      3.81 Gbps      0              4.81 MBytes    
2.0 - 3.0      3.92 Gbps      0              4.95 MBytes    
3.0 - 4.0      4.09 Gbps      0              5.25 MBytes    
4.0 - 5.0      4.37 Gbps      0              5.69 MBytes    
5.0 - 6.0      4.77 Gbps      0              6.29 MBytes    
6.0 - 7.0      5.28 Gbps      0              7.04 MBytes    
7.0 - 8.0      5.90 Gbps      0              7.96 MBytes    
8.0 - 9.0      6.64 Gbps      0              9.05 MBytes    
9.0 - 10.0     7.09 Gbps      0              10.23 MBytes   

Summary
Interval       Throughput     Retransmits    Receiver Throughput 
0.0 - 10.0     4.97 Gbps      4441           4.94 Gbps

No further runs scheduled.

That IPv6 only test is extremely important in the campaign for the adoption of IPv6 in the WLCG.

Regards, Raul

mfeit-internet2 commented 1 year ago

I pulled that run remotely (pscheduler result --diags https://ps2.netherlight.net/pscheduler/tasks/81070191-c702-4cff-b55a-5354943baba5/runs/7bcadbb4-5f9f-4117-82b2-c01374080998) and found this in the diagnostics:

Diagnostics from ps2.netherlight.net:
numactl -N 0 /usr/bin/iperf3 -p 5201 -6 -B ps2.netherlight.net -c dice-io-37-00.acrc.bris.ac.uk -t 10 ...etc...
...
                "connected":    [{
                                "socket":       5,
                                "local_host":   "2001:610:f03:4080::82", 
                                "local_port":   39922,
                                "remote_host":  "2001:630:e4:2810:137:222:79:1",
                                "remote_port":  5201
                        }],
                "version":      "iperf 3.12",

There is IPv6 on that system and there's some way for ps2.netherlight.net to be resolved into 2001:610:f03:4080::82. I asked that system to run the dns test against A and AAAA records for that host, and DNS agrees that there is no IPv6 address for ps2.netherlight.net. You might want to check that the hosts file on that system isn't providing that mapping.

Also:

# host 2001:610:f03:4080::82
2.8.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.0.4.3.0.f.0.0.1.6.0.1.0.0.2.ip6.arpa domain name pointer perfsonar2.amsterdam1.netherlight.net.

The plugin uses code that normalizes a pair of addresses to IPv4 or IPv6 if one is explicitly specified or whichever pair works. If there wasn't a resolvable IPv6 address for the source end, this test would never have run.

Please close this ticket if that solves your problem.

rhclopes commented 1 year ago

Thanks for looking into this. Sorry for the noise, but it was quite helpful for me.