From b25b156436196e81c98c2721418e7ebff8ca2af8 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Sat, 16 Jan 2021 08:12:03 +0100 Subject: [PATCH] Make omr-tracebox and omr-test-speed compatible with WAN IPv6 --- openmptcprouter/files/bin/omr-test-speedv6 | 29 ++++++++++++++++++---- openmptcprouter/files/bin/omr-tracebox | 3 +++ 2 files changed, 27 insertions(+), 5 deletions(-) diff --git a/openmptcprouter/files/bin/omr-test-speedv6 b/openmptcprouter/files/bin/omr-test-speedv6 index ae7634d7c..27fd43e68 100755 --- a/openmptcprouter/files/bin/omr-test-speedv6 +++ b/openmptcprouter/files/bin/omr-test-speedv6 @@ -1,15 +1,34 @@ #!/bin/sh # vim: set noexpandtab tabstop=4 shiftwidth=4 softtabstop=4 : - INTERFACE="$1" -HOST="proof.ovh.net" +echo "Select best test server..." +HOSTLST="http://speedtest.frankfurt.linode.com/garbage.php?ckSize=10000 http://speedtest.tokyo2.linode.com/garbage.php?ckSize=10000 http://speedtest.singapore.linode.com/garbage.php?ckSize=10000 http://speedtest.newark.linode.com/garbage.php?ckSize=10000 http://speedtest.atlanta.linode.com/garbage.php?ckSize=10000 http://speedtest.dallas.linode.com/garbage.php?ckSize=10000 http://speedtest.fremont.linode.com/garbage.php?ckSize=10000 http://speedtest.tele2.net/1000GB.zip http://www.ovh.net/files/10Gb.dat https://speed.hetzner.de/10GB.bin http://ipv4.bouygues.testdebit.info/10G.iso http://par.download.datapacket.com/10000mb.bin http://nyc.download.datapacket.com/10000mb.bin http://ams.download.datapacket.com/10000mb.bin http://fra.download.datapacket.com/10000mb.bin http://lon.download.datapacket.com/10000mb.bin http://mad.download.datapacket.com/10000mb.bin http://prg.download.datapacket.com/10000mb.bin http://sto.download.datapacket.com/10000mb.bin http://vie.download.datapacket.com/10000mb.bin http://war.download.datapacket.com/10000mb.bin http://atl.download.datapacket.com/10000mb.bin http://chi.download.datapacket.com/10000mb.bin http://lax.download.datapacket.com/10000mb.bin http://mia.download.datapacket.com/10000mb.bin http://nyc.download.datapacket.com/10000mb.bin" +bestping="999" +for pinghost in $HOSTLST; do + domain=$(echo $pinghost | awk -F/ '{print $3}') + if [ -z "$INTERFACE" ]; then + ping=$(ping -c1 -w2 $domain | cut -d "/" -s -f5 | cut -d "." -f1) + else + ping=$(ping -c1 -w2 -I $INTERFACE -B $domain | cut -d "/" -s -f5 | cut -d "." -f1) + fi + echo "host: $domain - ping: $ping" + if [ -n "$ping" ] && [ "$ping" -lt "$bestping" ]; then + bestping=$ping + HOST=$pinghost + fi +done + +[ -z "$HOST" ] && HOST="http://proof.ovh.net/files/10Gio.dat" + +echo "Best server is $HOST, running test:" trap : HUP INT TERM if [ -z "$INTERFACE" ]; then - curl -6 http://$HOST/files/10Gio.dat >/dev/null || echo + curl -6 $HOST >/dev/null || echo else - hostip=$(dig +short AAAA $HOST | tr -d "\n") + domain=$(echo $HOST | awk -F/ '{print $3}') + hostip=$(dig +nocmd +noall +answer AAAA $domain | grep -v CNAME | awk '{print $5}' | tr -d "\n") ipset add ss_rules6_dst_bypass_all $hostip - curl -6 --interface $INTERFACE http://$HOST/files/10Gio.dat >/dev/null || echo + curl -6 --interface $INTERFACE $HOST >/dev/null || echo ipset del ss_rules6_dst_bypass_all $hostip fi diff --git a/openmptcprouter/files/bin/omr-tracebox b/openmptcprouter/files/bin/omr-tracebox index 2342d3b8c..2352b53ea 100755 --- a/openmptcprouter/files/bin/omr-tracebox +++ b/openmptcprouter/files/bin/omr-tracebox @@ -2,9 +2,12 @@ INTERFACE="$1" multipathip=$(dig +short A multipath-tcp.org | tr -d "\n") ipset add ss_rules_dst_bypass_all $multipathip > /dev/null 2>&1 +multipathip6=$(dig +short AAAA multipath-tcp.org | tr -d "\n") +ipset add ss_rules6_dst_bypass_all $multipathip6 > /dev/null 2>&1 if [ -z "$INTERFACE" ]; then tracebox -v -n -p IP/TCP/MSS/MPCAPABLE/WSCALE multipath-tcp.org else tracebox -v -i $INTERFACE -n -p IP/TCP/MSS/MPCAPABLE/WSCALE multipath-tcp.org fi ipset del ss_rules_dst_bypass_all $multipathip > /dev/null 2>&1 +ipset del ss_rules6_dst_bypass_all $multipathip6 > /dev/null 2>&1