本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、ネットワークの経路を調べる「traceroute」コマンドと「traceroute6」コマンドです。
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、ネットワークの経路を調べる「traceroute」コマンドと「traceroute6」コマンドです。
tracerouteコマンドとtraceroute6コマンドは、操作中の端末から目的のサーバまでのネットワーク経路を調べるコマンドです。「traceroute 相手先」で相手先までの経路を表示します。「traceroute6」はIPv6用で、動作は「traceroute -6」と同じです。
例えば、インターネット接続に問題がある場合、まず「pingコマンド」(第143回参照)を実行します。pingコマンドの結果に異常があった場合、tracerouteコマンドを利用して、相手先ホストやそこまでの経路にあるルーターの状態や設定に異常がないかどうかを調べることができます。
なお、Ubuntu環境にはtraceroute6のみがインストールされています。tracerouteが必要な場合は、別途「sudo apt install traceroute」または「sudo apt inetutils-traceroute」としてインストールしてください。
traceroute [オプション] 接続先
traceroute6 [オプション] 接続先
※[ ]は省略可能な引数を示しています。
短いオプション | 長いオプション | 意味 |
---|---|---|
-4 | IPv4を使用する(tracerouteコマンドのデフォルト) | |
-6 | IPv6を使用する(traceroute6コマンドのデフォルト) | |
-I | --icmp | ICMPを使用する |
-T | --tcp | TCPを使用する |
-d | --debug | デバッグモードを有効にする |
-i インタフェース | --interface=インタフェース | 使用するインタフェースを指定する |
-p ポート番号 | --port ポート番号 | 使用するポート番号を指定する |
-g ゲートウェイ | --gateway=ゲートウェイ | 使用するゲートウェイを指定する |
-r | 通常のルーティングを無視して接続する | |
-F | --dont-fragment | パケットのフラグメント化を禁止する |
-n | IPアドレスのまま表示する(ホスト名を検索しない) | |
-m TTL | --max-hops=TTL | 最大のホップ数(Max Time-To-Live value)を指定する。最大値は255、初期値は30 |
-f TTL | --first=TTL | 表示を開始するTTLの値を指定する(経路を途中から表示する際に使用) |
-w 秒数 | --wait 秒数 | 応答の待ち時間(デフォルトは5秒) |
-q 回数 | --queries=回数 | 1カ所ごとのパケット送信回数(デフォルトは3回) |
「traceroute ホスト名」で指定したホストに到達するまでの経路を表示します(画面1)。相手からの応答が遅いようなとき、どこで時間がかかっているかなどを知ることができます。ホスト名の代わりに、ホストのIPアドレスを指定することもできます。
経路はIPアドレスまたはホスト名で表示されます。IPアドレスだけで十分な場合は「-n」オプションを使用します(画面2)。名前解決の時間が不要になる分、素早く実行できます。
traceroute www.google.co.jp
(www.google.co.jpまでの経路を調べる)(画面1)
traceroute -n www.google.co.jp
(同じく経路を調べるものの、途中の名前解決を行わない)(画面2)
相手先に到達するまでに経由するルーターなどの個数(ホップ数)を指定する場合は、「-m」オプションを使います。デフォルト値は30です。
経路が長いといった理由で最後だけ分かればよい場合は、何番目から表示するかを「-f」オプションで指定します。
traceroute -f 5 www.google.co.jp
(経由している5番目のルーターから表示する)
traceroute -m 60 www.google.co.jp
(60番目まで調べたら終了する)
画面3では、3番目から表示を始めて5番目で終了しています。
tracerouteコマンドはUDP(User Datagram Protocol)を使って経路をテストしますが、環境によっては途中にUDPが使用できないかもしれません。このようなときは、「-T」オプションでTCPを使用するか、「-I」オプションでpingコマンドと同じICMP(Internet Control Message Protocol)メッセージのエコー応答(ECHO)を使用します。どちらもスーパーユーザー(rootユーザー)の権限が必要です。sudoコマンドなどを利用してください。
traceroute -T www.google.co.jp
(TCPで経路を調べる)(画面4)
traceroute -I www.google.co.jp
(ICMPで経路を調べる)
画面4ではスーパーユーザーとして実行しています。
「traceroute6 相手先」または「traceroute -6 相手先」で、IPv6を用いた経路を調査できます(画面5)。
traceroute6 www.google.co.jp
(IPv6で経路を調べる)(画面5)
traceroute6 -n www.google.co.jp
(IPv6で経路を調べる、名前解決は行わない)
西村 めぐみ(にしむら めぐみ)
PC-9801NからのDOSユーザー。PC-486DX時代にDOS版UNIX-like toolsを経てLinuxへ。1992年より生産管理のパッケージソフトウェアの開発およびサポート業務を担当。著書に『図解でわかるLinux』『らぶらぶLinuxシリーズ』『はじめてでもわかるSQLとデータ設計』『シェルの基本テクニック』など。2011年より、地方自治体の在宅就業支援事業にてPC基礎およびMicrosoft Office関連の教材作成およびeラーニング指導を担当。
Copyright © ITmedia, Inc. All Rights Reserved.