Linuxサーバーでtracerouteの使い方を教えて欲しいです。オプションなども含めて使い方を見てみたい
そういったエンジニアの疑問に、現役エンジニアの筆者が答えます。
筆者はWindowsサーバーやLinuxサーバーの運用構築を11年間以上おこなってきました。その経験を元に知識を公開していきます!
Linuxサーバーでtracerouteを使いたい、素早く相手先までの経路を表示したい方はこの記事を読んでください。
Linuxサーバーでtracerouteの使い方
tracerouteはPingと同様、ネットワークの疎通性を確認するコマンドとして有名です。
あるサーバーなどの通信経路を見たい時や、インターネット接続できない時の確認でtracerouteを行います。
traceroute 相手先IP
今回は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などが表示されています。
Linuxでのtracerouteコマンドのオプション
tracerouteにはオプションもあるのでご紹介します。
tracerouteのオプション | オプションの効果 |
---|---|
-I | icmp echoパケットを送信する。デフォルトはUDPパケット |
-T | TCPパケットで確認する |
-f TTL初期値 | Time To Liveの初期値を設定する。デフォルトは1 |
-n | ドメイン名前解決を行わない |
-p | ポート番号を指定する |
-w 秒数 | 応答待ち時間を設定する。デフォルトは5秒 |
-z 秒数 | 応答時間の間隔を指定する |
-A | IPアドレスの後にAS番号を表示する |
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オプションで応答時間を短くします。
[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番号を表示する事が可能です。
今回も結果を速く出す為に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のオプション | オプションの効果 |
---|---|
-I | icmp echoパケットを送信する。デフォルトはUDPパケット |
-T | TCPパケットで確認する |
-f TTL初期値 | Time To Liveの初期値を設定する。デフォルトは1 |
-n | ドメイン名前解決を行わない |
-p | ポート番号を指定する |
-w 秒数 | 応答待ち時間を設定する。デフォルトは5秒 |
-z 秒数 | 応答時間の間隔を指定する |
-A | IPアドレスの後にAS番号を表示する |
tracerouteの代用でtracepathコマンドがあります。