■debian busterにmtr-tinyを導入してみる。 $ lsb_release -d Description: Debian GNU/Linux 10 (buster) $ apt-file search bin/mtr frr: /usr/bin/mtracebis libc-dev-bin: /usr/bin/mtrace mtr: /usr/bin/mtr mtr: /usr/bin/mtr-packet mtr-tiny: /usr/bin/mtr mtr-tiny: /usr/bin/mtr-packet mtree-netbsd: /usr/bin/mtree rancid: /usr/lib/rancid/bin/mtrancid $ apt-cache search mtr-tiny mtr-tiny - Full screen ncurses traceroute tool $ sudo apt-get install -y mtr-tiny $ mtr --version mtr 0.92 ■日本のdebianミラーサイトをターゲットにしてみる。 $ w3m -dump_source https://www.debian.org/mirror/list.ja.html | zcat | \ awk -F\" '{for(a=1;a<=NF;a++) \ {if($a ~ /href/&& $(a+1) ~ /http/) \ {gsub("http.*://|/.*","",$(a+1));print $(a+1) | "sort -uV"}}}' > debian-mirror.list $ wc -l debian-mirror.list 385 debian-mirror.list $ grep jp debian-mirror.list > debian-mirror.jp.list $ wc -l debian-mirror.jp.list 8 debian-mirror.jp.list ■ネットワークの経路と応答を調べる。 $ mtr --help | awk '/-[rcCF],|--tcp/' -F, --filename FILE read hostname(s) from a file -T, --tcp use TCP instead of ICMP echo -r, --report output using report mode -c, --report-cycles COUNT set the number of pings sent -C, --csv output comma separated values $ mtr -r -c 1 --tcp -C -F debian-mirror.jp.list > debian-mirror.jp.list.csv ■CSV出力結果を比較してみる。 $ grep -B 1 ^Mtr_ debian-mirror.jp.list.csv | awk 'NR==1||NR%3==0' Mtr_Version,Start_Time,Status,Host,Hop,Ip,Loss%,Snt, ,Last,Avg,Best,Wrst,StDev, MTR.0.92,1592886101,OK,debian-mirror.sakura.ne.jp,11,153.127.75.11,0.00,1,0,26.53,26.53,26.53,26.53,0.00 MTR.0.92,1592886108,OK,ftp.jaist.ac.jp,9,ftp.jaist.ac.jp,0.00,1,0,15.76,15.76,15.76,15.76,0.00 MTR.0.92,1592886114,OK,ftp.jp.debian.org,12,dennou-q.geo.kyushu-u.ac.jp,0.00,1,0,24.12,24.12,24.12,24.12,0.00 MTR.0.92,1592886121,OK,ftp.kddilabs.jp,14,ftp.kddlabs.co.jp,0.00,1,0,8.22,8.22,8.22,8.22,0.00 MTR.0.92,1592886136,OK,ftp.nara.wide.ad.jp,14,ftp.nara.wide.ad.jp,0.00,1,0,16.05,16.05,16.05,16.05,0.00 MTR.0.92,1592886142,OK,ftp.riken.jp,10,riksun.riken.go.jp,0.00,1,0,1035.51,1035.51,1035.51,1035.51,0.00 MTR.0.92,1592886149,OK,ftp.yz.yamagata-u.ac.jp,9,ftp.yz.yamagata-u.ac.jp,0.00,1,0,17.23,17.23,17.23,17.23,0.00 $ awk -F\, '(NR==1){for(a=1;a<=NF;a++){print a,$a}}' debian-mirror.jp.list.csv 1 Mtr_Version 2 Start_Time 3 Status 4 Host 5 Hop 6 Ip 7 Loss% 8 Snt 9 10 Last 11 Avg 12 Best 13 Wrst 14 StDev 15 ■Average RTT(ms)をキーに並べ替え。 国内なのであまり差はないけど、ホップ数とパケットロスが少ない方がより良い。 $ grep -B 1 ^Mtr_ debian-mirror.jp.list.csv | \ awk -F\, '(NR==1||NR%3==0){printf "%-30s %3s %-30s %-3s %10s\n",$4,$5,$6,$7,$11 | "sort -k 5 -n"}' Host Hop Ip Loss% Avg ftp.kddilabs.jp 14 ftp.kddlabs.co.jp 0.00 8.22 ftp.jaist.ac.jp 9 ftp.jaist.ac.jp 0.00 15.76 ftp.nara.wide.ad.jp 14 ftp.nara.wide.ad.jp 0.00 16.05 ftp.yz.yamagata-u.ac.jp 9 ftp.yz.yamagata-u.ac.jp 0.00 17.23 ftp.jp.debian.org 12 dennou-q.geo.kyushu-u.ac.jp 0.00 24.12 debian-mirror.sakura.ne.jp 11 153.127.75.11 0.00 26.53 ftp.riken.jp 10 riksun.riken.go.jp 0.00 1035.51