This is a simple tool using RIPE Atlas probes to determine the lowest possible latency to reach a set of endpoints. Notably, this can be used to implement a BGP policy to reduce the latency by selectively favour some paths to others.
Here is an example of output for --country=CH --aggregate=asn 192.0.2.45 203.0.113.4
:
best endpoint key loss mean median stdev min max
* 192.0.2.45 12350 0.00 14.10 13.39 4.99 9.74 21.23
203.0.113.4 12350 16.66 10.76 12.95 5.01 5.58 16.68
192.0.2.45 16242 0.00 23.73 33.83 17.03 5.75 42.05
* 203.0.113.4 16242 0.00 8.92 11.35 3.55 5.67 12.57
192.0.2.45 3303 0.00 59.19 49.13 21.05 47.93 90.76
* 203.0.113.4 3303 0.00 30.80 17.21 29.55 15.11 75.11
192.0.2.45 6830 0.00 77.46 72.43 20.90 59.52 100.41
* 203.0.113.4 6830 0.00 38.00 40.00 2.83 35.99 40.00
192.0.2.45 559 0.00 20.28 34.45 18.73 3.60 38.41
* 203.0.113.4 559 0.00 7.21 7.73 1.71 5.34 9.31
192.0.2.45 16242 0.00 23.73 33.83 17.03 5.75 42.05
* 203.0.113.4 16242 0.00 8.92 11.35 3.55 5.67 12.57
192.0.2.45 51873 0.00 7.32 4.59 5.91 3.99 16.18
* 203.0.113.4 51873 0.00 3.87 3.56 0.93 3.23 5.25
192.0.2.45 6730 0.00 30.67 39.15 13.60 10.78 39.74
* 203.0.113.4 6730 0.00 9.60 11.66 4.40 3.01 12.07
192.0.2.45 15547 0.00 46.51 49.88 11.36 35.27 60.89
* 203.0.113.4 15547 0.00 18.32 17.91 5.00 13.38 25.24
192.0.2.45 15600 0.00 49.65 49.93 9.85 40.53 63.25
* 203.0.113.4 15600 0.00 12.28 14.47 6.40 4.33 19.54
192.0.2.45 39544 0.00 44.73 47.22 5.73 36.33 49.15
* 203.0.113.4 39544 0.00 18.54 20.65 4.52 11.77 21.09
* 192.0.2.45 12350 0.00 14.10 13.39 4.99 9.74 21.23
203.0.113.4 12350 16.66 10.76 12.95 5.01 5.58 16.68
192.0.2.45 39544 0.00 44.73 47.22 5.73 36.33 49.15
* 203.0.113.4 39544 0.00 18.54 20.65 4.52 11.77 21.09
192.0.2.45 13030 0.00 64.09 65.99 7.63 56.67 73.95
* 203.0.113.4 13030 0.00 11.32 10.67 4.91 6.67 18.21
192.0.2.45 13030 0.00 64.09 65.99 7.63 56.67 73.95
* 203.0.113.4 13030 0.00 11.32 10.67 4.91 6.67 18.21
192.0.2.45 559 0.00 20.28 34.45 18.73 3.60 38.41
* 203.0.113.4 559 0.00 7.21 7.73 1.71 5.34 9.31
192.0.2.45 51873 0.00 7.32 4.59 5.91 3.99 16.18
* 203.0.113.4 51873 0.00 3.87 3.56 0.93 3.23 5.25
192.0.2.45 6730 0.00 30.67 39.15 13.60 10.78 39.74
* 203.0.113.4 6730 0.00 9.60 11.66 4.40 3.01 12.07
192.0.2.45 3303 0.00 59.19 49.13 21.05 47.93 90.76
* 203.0.113.4 3303 0.00 30.80 17.21 29.55 15.11 75.11
192.0.2.45 15547 0.00 46.51 49.88 11.36 35.27 60.89
* 203.0.113.4 15547 0.00 18.32 17.91 5.00 13.38 25.24
192.0.2.45 15600 0.00 49.65 49.93 9.85 40.53 63.25
* 203.0.113.4 15600 0.00 12.28 14.47 6.40 4.33 19.54
192.0.2.45 6830 0.00 77.46 72.43 20.90 59.52 100.41
* 203.0.113.4 6830 0.00 38.00 40.00 2.83 35.99 40.00
It does the following:
- fetch a list of all probes with country code "CH"
- keep exactly 4 probes in each AS (discard AS with fewer probes)
- each selected probe will ping the list of provided endpoints
- retrieve the results
- compute some statistics and decide that the best endpoint is the one whose latency is at least 50% better (or the one without loss if there are lossy endpoints)
There are many options available. Check --help
.
It needs Atlas API keys. You can
provide them using --api-create-key
and --api-download-key
or
using environment variables ATLAS_DOWNLOAD_KEY
and
ATLAS_CREATE_KEY
.