サイトアイコン スグブログ

【Linux】tracerouteの使い方!オプションなどもご紹介

選択する

Business person stand on road fork with hard and easy directions. Choice way isometric

Linuxでtracerouteの使い方がわからない人

Linuxサーバーでtracerouteの使い方を教えて欲しいです。オプションなども含めて使い方を見てみたい

そういったエンジニアの疑問に、現役エンジニアの筆者が答えます。

筆者はWindowsサーバーやLinuxサーバーの運用構築を11年間以上おこなってきました。その経験を元に知識を公開していきます!

Linuxサーバーでtracerouteを使いたい素早く相手先までの経路を表示したい方はこの記事を読んでください。

Linuxサーバーでtracerouteの使い方

tracerouteはPingと同様、ネットワークの疎通性を確認するコマンドとして有名です。

LinuxのPingコマンドについては以下の記事を参照

あるサーバーなどの通信経路を見たい時や、インターネット接続できない時の確認tracerouteを行います。

インターネット接続できない時の、traceroute以外の確認コマンドについては以下の記事参照

traceroute 相手先IP

tracerouteコマンドがない場合は以下の記事を参照し対応してください。

今回はGoogleの有名なDNSである「8.8.8.8」までの経路を表示したいと思います。

[root@localhost ~]# traceroute 8.8.8.8
traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets
 1  dsldevice.lan (192.168.0.1)  25.382 ms  25.357 ms  25.249 ms
 2  XXXXXXXXXXXXX.ne.jp (61.192.82.1)  45.918 ms  45.786 ms  45.755 ms
 3  10.1.193.4 (10.1.193.4)  43.370 ms 10.1.193.35 (10.1.193.35)  43.331 ms 10.1.193.3 (10.1.193.3)  37.701 ms
 4  172.25.26.229 (172.25.26.229)  20.573 ms  24.996 ms  24.902 ms
 5  10.1.15.121 (10.1.15.121)  42.864 ms 10.1.15.125 (10.1.15.125)  42.805 ms  42.720 ms
 6  XXXXXXXXXXXXX.ne.jp (61.26.74.186)  42.627 ms  22.482 ms XXXXXXXXXXXXX.ne.jp (61.26.74.182)  12.830 ms
 7  142.250.162.246 (142.250.162.246)  12.797 ms 220-152-46-46.rev.home.ne.jp (220.152.46.46)  12.764 ms 142.250.162.246 (142.250.162.246)  9.447 ms
 8  * * *
 9  dns.google (8.8.8.8)  8.415 ms  8.265 ms  7.821 ms

経路にあるIPなどが表示されています。

***の箇所はtracerouteの応答を拒否しているルータなどです。

Linuxでのtracerouteコマンドのオプション

tracerouteにはオプションもあるのでご紹介します。

tracerouteのオプションオプションの効果
-Iicmp echoパケットを送信する。デフォルトはUDPパケット
-TTCPパケットで確認する
-f TTL初期値Time To Liveの初期値を設定する。デフォルトは1
-nドメイン名前解決を行わない
-pポート番号を指定する
-w 秒数応答待ち時間を設定する。デフォルトは5秒
-z 秒数応答時間の間隔を指定する
-AIPアドレスの後にAS番号を表示する
tracerouteのオプション一覧表

Time To Liveの初期値を設定する

tracerouteはルータがあるたびにTTL(Time To Live)の値を増やしていきます。16以上になればループとみなされ応答しなくなります。

fオプションで初期のTTLの値を設定できます。

[root@localhost ~]# traceroute -f 5 8.8.8.8
traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets
 5  10.1.15.121 (10.1.15.121)  38.699 ms 10.1.15.125 (10.1.15.125)  38.580 ms 10.1.15.121 (10.1.15.121)  38.490 ms
 6  XXXXXXXXXXXXX.ne.jp (61.26.74.182)  52.035 ms XXXXXXXXXXXXX.ne.jp (61.26.74.186)  51.935 ms XXXXXXXXXXXXX.ne.jp (61.26.74.166)  51.910 ms
 7  142.250.162.246 (142.250.162.246)  51.847 ms 220-152-46-46.rev.home.ne.jp (220.152.46.46)  51.821 ms  51.710 ms
 8  * * *
 9  dns.google (8.8.8.8)  37.767 ms  37.757 ms  37.610 ms

先程は1から表示されていましたが、今回は指定した5から表示されています。

ドメイン名前解決を行わない

Linuxサーバーのtracerouteコマンドは、デフォルトでドメインの解決を行います。解決する時間がもったいないのでnオプションを使用します。

[root@localhost ~]# traceroute -n 8.8.8.8
traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets
 1  192.168.0.1  43.692 ms  44.823 ms  49.826 ms
 2  61.192.82.1  54.937 ms  52.316 ms  52.349 ms
 3  10.1.193.3  45.330 ms 10.1.193.4  49.704 ms  44.168 ms
 4  172.25.26.225  50.768 ms  44.027 ms 172.25.26.229  46.279 ms
 5  10.1.15.125  44.909 ms 10.1.15.121  58.830 ms  51.502 ms
 6  61.26.74.162  46.783 ms  7.540 ms 61.26.74.186  7.776 ms
 7  220.152.46.46  7.822 ms 142.250.162.246  7.619 ms 220.152.46.46  6.809 ms
 8  * * *
 9  8.8.8.8  16.434 ms  16.263 ms  14.978 ms

nオプションドメインではなくIPアドレスが表示されています。結果表示されるスピードも速いです。

応答待ち時間を設定する

Linuxサーバーのtracerouteコマンドデフォルトで5秒の応答待ちをします。トラフィックの問題がない場合は何秒まっても応答しません。時間がもったいないのでwオプションで応答時間を短くします。

先程のドメイン解決しないnオプションも併用使用したら速いです。

[root@localhost ~]# traceroute -n -w 2 8.8.8.8
traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets
 1  192.168.0.1  12.247 ms  12.219 ms  12.182 ms
 2  61.192.82.1  28.543 ms  22.556 ms  21.852 ms
 3  10.1.193.4  16.658 ms 10.1.193.35  14.523 ms 10.1.193.36  15.687 ms
 4  172.25.26.229  14.337 ms  14.389 ms 172.25.26.225  15.494 ms
 5  10.1.15.125  15.297 ms  15.318 ms  14.165 ms
 6  61.26.74.166  15.992 ms 61.26.74.182  10.066 ms  10.145 ms
 7  142.250.162.246  10.036 ms  7.542 ms 220.152.46.46  7.685 ms
 8  * * *
 9  8.8.8.8  12.399 ms  12.461 ms  12.380 ms

「***」という表示の応答しない箇所で、5秒から2秒の待ちになっています。結果表示されるスピードが速いです。

IPアドレスの後にAS番号を表示する

LinuxサーバーのtracerouteコマンドでAオプションを付ける事で、AS番号を表示する事が可能です。

ASとは管理している範囲の番号です。

今回も結果を速く出す為にnとwオプションを付けています。

[root@localhost ~]# traceroute -n -w2 -A 8.8.8.8
traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets
 1  192.168.0.1 [*]  36.470 ms  36.416 ms  36.295 ms
 2  61.192.82.1 [AS9617]  45.963 ms  45.753 ms  45.731 ms
 3  10.1.193.3 [*]  45.480 ms 10.1.193.35 [*]  45.524 ms 10.1.193.36 [*]  45.465 ms
 4  172.25.26.229 [*]  34.987 ms 172.25.26.225 [*]  33.561 ms  35.791 ms
 5  10.1.15.121 [*]  44.980 ms 10.1.15.125 [*]  44.886 ms  44.814 ms
 6  61.26.74.182 [AS9824]  44.907 ms 61.26.74.166 [AS9824]  11.692 ms 61.26.74.182 [AS9824]  10.354 ms
 7  220.152.46.46 [AS9824]  12.529 ms 142.250.162.246 [AS15169]  12.201 ms 220.152.46.46 [AS9824]  12.074 ms
 8  * * *
 9  8.8.8.8 [AS15169]  14.624 ms  14.457 ms  14.391 ms 

IPアドレスの後にAS番号が表示されています。「*」という表示はAS番号を隠されています。

tracerouteコマンドの代用

tracerouteコマンドインストールしたくない場合代用できるコマンドがあります。

tracepath 宛先アドレス

tracepathコマンドはtracerouteに比べて簡易的な表示になります。

ローカルのネットワークであればtracepathでも良いですが、インターネットに出るのであればtracerouteの方が良いでしょう!

まとめ:Linuxサーバーでtracerouteの使い方

Linuxサーバーでのtracerouteの基本は以下のコマンドです。

traceroute 相手先IP

tracerouteのオプションもあります。

tracerouteのオプションオプションの効果
-Iicmp echoパケットを送信する。デフォルトはUDPパケット
-TTCPパケットで確認する
-f TTL初期値Time To Liveの初期値を設定する。デフォルトは1
-nドメイン名前解決を行わない
-pポート番号を指定する
-w 秒数応答待ち時間を設定する。デフォルトは5秒
-z 秒数応答時間の間隔を指定する
-AIPアドレスの後にAS番号を表示する
tracerouteのオプション一覧表

tracerouteの代用でtracepathコマンドがあります。

簡易版なのでtracerouteの方が推奨です。

モバイルバージョンを終了