連載
» 2017年01月10日 05時00分 公開

ネットワークコマンドの使い方:traceroute(tracert) 〜ネットワークの経路を調査する

traceroute(Windowsではtracert)は、あるホストから別のホストまでのネットワーク経路をリスト表示するコマンドだ。ここでいう経路とは、ホスト間を接続するルーター(ゲートウェイ)のこと。tracerouteにより、経路上にどのようなルーターが位置しているかを表示する。

[中屋静治(ルーズデイズ),@IT]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

目的と用途

 traceroute(Windowsではtracert)は、あるホストから別のホストまでのネットワーク経路をリスト表示するコマンドだ。ここでいう経路とは、ホスト間を接続するルーター(ゲートウェイ)のこと。tracerouteにより、経路上にどのようなルーターが位置しているかを表示する。

 主な用途としては、pingで相手ホストから正常な応答がなかった場合などに、ホスト自身や経路上のルーターのルーティング設定が正しいかどうかを確認するために用いられる。また、目的ホストまでのルーターのリストから、「設置場所が不明なホストのおおまかな場所を推測する」といった利用も行えるだろう。

 その他、各ルーターからのレスポンス時間などの統計値も表示されるので、経路上のボトルネックを探るなどの簡易的なネットワーク性能評価にも役立つ。

書式

Windows(Windows 10)の場合

IPv4/v6兼用

tracert [-d] [-h 最大ホップ数] [-j ゲートウェイ・リスト] [-w タイムアウト時間] [-R] [-S ソースアドレス] [-4] [-6] 対象ホスト(ホスト名またはIPアドレス)

-d 結果に表示するIPアドレスからホスト名への名前解決を行わない
-h 使用する最大TTL(Time To Live)。つまりここで指定した数のルーターしかホップしない
-j 経由すべきゲートウェイ(ルーター)のアドレスを最大9個まで指定できる。ただし指定されていないゲートウェイも経由できる(loose source routed)。IPv4のみ
-w タイムアウト時間を指定する。単位はミリ秒
-R 往復のパスをトレースする。IPv6のみ
-S 自身ではない別のホストを送信元ホストとして指定する。ただしもちろん結果は自身へは返ってこない。あくまで試験用オプション。IPv6のみ
-4 IPv4の使用を強制する
-6 IPv6の使用を強制する

Mac(macOS 10.12)の場合

IPv4用

traceroute [-adDeFInrSvx] [-A ASサーバ] [-f 初期TTL値] [-g ゲートウェイ・リスト] [-i インタフェース] [-M 初期TTL値] [-m 最大TTL値] [-P プロトコル] [-p ポート番号] [-q 試行回数] [-s 送信元アドレス] [-t TOS] [-w 待機時間] [-z pausemsecs] 対象ホスト(ホスト名またはIPアドレス) [パケットサイズ]

-a BGPのAS番号を表示する
-d モードで動作する
-D パケットの内容を表示する
-e ファイアウォール回避モード。通常は試行の度にインクリメントされる送信先ポート番号を固定してファイアウォールを回避しやすくする
-F IPパケットの分割(フラグメント)を禁止する
-I UDPの代わりにICMP Echo Requestを用いる。これは-Pオプションのシノニムでもある
-n 出力をIPアドレスのみに抑制する(DNS逆引きを行わない)
-r ルーティングテーブルを無視して直接パケットを指定したホストに転送するように指示する。すなわち、同一の物理ネットワーク上に目的のホストがない場合はエラーになる
-S ホップごとに返答率を表示する
-v 詳細モード
-x ICMPのCheckSumの評価を行う
-A BGPのAS番号を表示するとともに、指定されたASサーバを使用する
-f 使用するTTLの初期値を指定する
-g 経由すべきゲートウェイ(ルーター)のアドレスを最大8個まで指定できる
-i 指定されたインタフェース(バインドされたIPアドレス)を用いて実行する
-M 使用するTTLの初期値を指定する
-m 使用するTTLの最大値を指定する。つまりこの最大値のホップ数のゲートウェイまでが表示される
-P 使用するIPプロトコルを指定する。UDP、TCP、GRE、ICMPが指定できる
-p 使用するUDP/TCPパケットのポート番号を指定する(UDP/TCPパケットを使用する場合)
-q 1つのゲートウェイに対する試行回数を指定する。デフォルトは3
-s 指定されたIPアドレスからの実行とする(Source Addressを指定する)
-t パケットのTOS(Type Of Service)を指定された値に設定する
-w タイムアウト時間を指定する。単位は秒

IPv6用

traceroute6 [-dIlnNrUv] [-f 初期ホップ数] [-g ゲートウェイ・リスト] [-m 最大ホップ数] [-p ポート番号] [-q 試行回数] [-s 送信元アドレス] [-w 待機時間] 対象ホスト(ホスト名またはIPアドレス) [パケットサイズ]

-d デバッグモードで動作する
-I UDPの代わりにICMP Echo Requestを用いる
-l ホスト名とIPアドレス両方を表示する
-n 出力をIPアドレスのみに抑制する(DNS逆引きを行わない)
-N 調査目的のため、上位レイヤーのヘッダを含まないようにする
-r ルーティングテーブルを無視して直接パケットを指定したホストに転送するように指示する。すなわち、同一の物理ネットワーク上に目的のホストがない場合はエラーになる
-U UDPパケットを用いる(デフォルト)
-v 詳細モード
-f 使用する初期ホップ数を指定する。つまりこの初期値のホップ数のみのトレースとなる
-g 経由すべきゲートウェイ(ルーター)のアドレスを最大8個まで指定できる
-m 最大ホップ数を指定する。最大は255、デフォルトは30
-p 使用するUDP/TCPパケットのポート番号を指定する(UDP/TCPパケットを使用する場合)
-q 1つのホップにおける試行回数を指定する
-s 指定されたIPアドレスから実行する(Source Addressを指定する)
-w タイムアウト時間を指定する。単位は秒

Linux (Ubuntu 16.04 LTS)の場合

IPv4およびv6用

traceroute [-46dFITnreAUDV] [-f 初期TTL値] [-g ゲートウェイ・リスト] [-i インタフェース] [-m 最大TTL値] [-N 並列数] [-p ポート番号] [-P プロトコル番号] [-t TOS] [-l フローラベル] [-w タイムアウト時間] [-q 試行回数] [-s 送信元アドレス] [-z 間隔時間] [--sport=送信元ポート番号] [ --fwmark=num] [-UL] [-M プロトコル] [-O mod_options] [--mtu] [--back] 対象ホスト(ホスト名またはIPアドレス) [パケットサイズ]

IPv6用

traceroute6 [-dnrvV] [-m 最大TTL値] [-p ポート番号] [-q 試行回数] [-s 送信元アドレス] [-t TOS] [-w タイムアウト時間] 対象ホスト(ホスト名またはIPアドレス) [パケットサイズ]

-4 IPv4の使用を強制する
-6 IPv6の使用を強制する
-d デバッグモードで動作する
-F IPパケットの分割(フラグメント)を禁止する
-I ICMP Echo Requestを用いる
-T TCP SYNパケットを用いる。デフォルトのポート番号は80
-n 出力をIPアドレスのみに抑制する(DNS逆引きを行わない)
-r ルーティングテーブルを無視して直接パケットを指定したホストに転送するように指示する。すなわち、同一の物理ネットワーク上に目的のホストがない場合はエラーになる
-e ICMPの拡張を表示する
-A BGPのAS番号を表示する
-U UDPパケットを用いる。デフォルトのポート番号は53
-D DCCP(Datagram Congestion Control Protocol/RFC 4340)を用いる。デフォルトのポート番号は33434
-V バージョン情報を表示する
-f 使用するTTLの初期値を指定する
-g 経由すべきゲートウェイ(ルーター)のアドレスを最大8個まで指定できる。ただし指定されていないゲートウェイも経由できる(loose source routed)
-i 指定されたインタフェース(ネットワークカード名。バインドされたIPアドレスでも可)を用いて実行する
-m 使用するTTLの最大値を指定する。つまりこの最大値のホップ数のゲートウェイまでが表示される
-N 並列してパケットを送信する数。デフォルトは16。大きな値を指定することは推奨されない
-p 使用するUDP/TCPパケットのポート番号を指定する(UDP/TCPパケットを使用する場合)。またICMPパケットの場合は初期シーケンス番号を指定する
-P RAWパケットを使用するためのプロトコル番号を指定する。デフォルトは253
-t パケットのTOS(Type Of Service)を指定された値に設定する。IPv6の場合はトラフィックコントロール値を指定する
-I IPv6のフローラベルを指定する
-w タイムアウト時間を指定する。単位は秒。デフォルトは5秒
-q 1つのゲートウェイに対する試行回数を指定する。デフォルトは3回
-s 指定されたIPアドレスから実行する(Source Addressを指定する)
-z 送信パケットの間隔時間(秒)。デフォルトは0秒
--sport 送信元ポート番号を指定する
--fwmark パケットへファイアウォールマーク(SO_MARK)を設定する
-UL UDPLITE(RFC 3828)パケットを使用する
-M 用いるプロトコルを指定する。デフォルトは“default”(UDP)である。また“icmp”または“tcp”が指定できる。-U、-Iまたは-Tオプションと同じ
-O 用いるプロトコルごとの拡張オプションを指定する
--mtu MTUを決定するために指定する。このオプションを指定すると現在のMTU値も表示する。-Fオプションと組み合わせることで各経路でのMTUを調査できる
--back 復路のホップ数を表示する

使用方法

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。