【Linux 入門】traceroute コマンドで経路の確認方法

traceroutetraceroute とは、通信先までのネットワーク経路を表示するコマンドです。
ネットワークのコマンド
スポンサーリンク

traceroute の使い方

traceroute <IPアドレス/ドメイン名>ネットワークの経路を確認できます。

traceroute google.com
traceroute to google.com (142.250.196.142), 64 hops max, 52 byte packets
 1  192.168.0.1 (192.168.0.1)  4.713 ms  1.518 ms  1.295 ms
 2  example.ap.nuro.jp (1.2.3.4)  35.249 ms  6.020 ms  3.625 ms
 3  * * *
 4  example.1e100.net (142.250.196.142)  5.443 ms
    142.250.50.200 (142.250.50.200)  5.027 ms
    142.250.50.200 (142.250.50.200)  4.705 ms

次のようにルーティングされていることがわかります。

IP アドレスは適当

traceroute の見方

traceroute で表示される内容について説明します。

時間が3つ表示される

以下のように応答時間を3回表示する理由は、デフォルトではパケットを3回送信するためです。

1 192.168.0.1 (192.168.0.1) 4.713 ms 1.518 ms 1.295 ms

なお、複数の経路がある場合は、経由した経路を表示します。

 4  example.1e100.net (142.250.196.142)  5.443 ms
    142.250.50.200 (142.250.50.200)  5.027 ms
    142.250.50.200 (142.250.50.200)  4.705 ms

アスタリスク (*) について

* は応答がなかったことを意味します。

ただし、次のルーターが応答した場合は、次の traceroute の結果が表示されます。

 3  * * *
 4  example.1e100.net (142.250.196.142)  5.443 ms
    142.250.50.200 (142.250.50.200)  5.027 ms
    142.250.50.200 (142.250.50.200)  4.705 ms

よくある原因として、ポートが空いてないことが考えられます。

なお、デフォルトでは UDP 33434 - 33534 ポートを使用します。

by default, a sequence of User Datagram Protocol (UDP) packets, with destination port numbers ranging from 33434 to 33534;

https://en.wikipedia.org/wiki/Traceroute

以降では、UDPTCP でのポート、および ICMP を指定するオプションについて説明します。

traceroute のオプション

UDP でポートを指定 -U

traceroute -U -p 33434 google.com

TCP でポートを指定 -T

sudo traceroute -T -p 443 google.com

ICMP -I

sudo traceroute -I google.com
スポンサーリンク

traceroute の仕組み

IP ヘッダにある TTL を利用します。

TTL はルーターを1つ通過するごとに減らしていき、0になるとルーティングを終了します。

traceroute は、TTL を1から始めて、1つずつ増やしていくことで経路を表示します。

指定したドメイン名 (IP アドレス) に到達すると、traceroute は終了します。