技術情報

【Windows】tracert コマンドでネットワーク経路の確認

こんにちは、ネットワーク屋 ばにゃです。

本記事では、以下の手順について解説します。

  • Windows OS の tracert コマンドを使用してネットワーク経路を確認する方法

このコマンドを使用すると、2つのコンピューター間でどのようなネットワーク経路を使用して通信しているのかを確認することが可能です。

また2つのコンピューター間で通信に問題がある場合に、どの部分に原因があるかを調査するために使用することも可能です。

スポンサーリンク

前提となる環境

本記事では、以下のような環境を例として記載します。
この環境で私自身が実機動作確認済みの手順となります。

環境
  • Windows Server 2019
  • Windows Server 2016
  • Windows Server 2012 R2
  • Windows Server 2012
  • Windows Server 2008 R2
  • Windows 10
  • Windows 8.1
  • Windows 8
  • Windows 7
    ※Windows OS 全般

tracert コマンドの使用方法

オプションなしで実行

オプションなしで使用する場合は以下となります。

tracert <通信先コンピューターのIPアドレス or ホスト名>

例えば google.com に対してのネットワーク経路を確認すると、以下のような結果が返されます。
※一部ホスト名/IPアドレスを伏せています。

tracert google.com

google.com [172.217.174.110] へのルートをトレースしています
経由するホップ数は最大 30 です:

  1    <1 ms    <1 ms    <1 ms  192.168.3.1
  2     5 ms     6 ms     6 ms  softbank***.bbtec.net [2**.***.***.**6]
  3     7 ms     6 ms     5 ms  softbank***.bbtec.net [2**.***.***.**3]
  4     *        *        *     要求がタイムアウトしました。
  5     6 ms     6 ms     6 ms  209.85.149.253
  6     8 ms     8 ms     8 ms  209.85.245.113
  7     7 ms     8 ms     7 ms  209.85.253.59
  8     6 ms     6 ms     6 ms  nrt12s28-in-f14.1e100.net [172.217.174.110]

トレースを完了しました。

上記の 1 ~ 8 をざっくり解説すると、以下のような経路を通り google.com へ到達しています。

  1. 自宅のルーター [192.168.3.1] への通信
  2. softbank の何か [2**.***.***.**6] への通信
  3. softbank の何か [2**.***.***.**3] への通信
  4. 応答を返さないため不明
  5. googleの何か [209.85.149.253] への通信
  6. googleの何か [209.85.245.113] への通信
  7. googleの何か [209.85.253.59] への通信
  8. google.com へ到達

4行目で「要求がタイムアウトしました。」とありますが、 対象のルーターがtracert コマンドに対しての応答を返さない設定の場合、このような表示になることがあります。

最終的に8行目で google.com [172.217.174.110] まで到達していることがわかるため、通信はできている、と判断できます。

逆引きせずに実行(-d)

オプション -d を付けることで、逆引き(IPアドレスからホスト名への変換)を行わずに実行します。

tracert -d <通信先コンピューターのIPアドレス>

逆引き処理がない分、コマンド実行時間が短くて済むため、あえて逆引きしたいという状況でなければ基本的には -d オプションを付けて実行する、でよいと考えます。

先ほどと同じように、google.com に対してのネットワーク経路を確認すると、以下のような結果が返されます。こちらの方がスッキリしていて見やすいですね。

google.com [172.217.174.110] へのルートをトレースしています
経由するホップ数は最大 30 です:

  1    <1 ms    <1 ms     1 ms  192.168.3.1
  2     5 ms     5 ms     5 ms  2**.***.***.**6
  3     6 ms     5 ms     6 ms  2**.***.***.**3
  4     *        *        *     要求がタイムアウトしました。
  5     6 ms     6 ms     5 ms  209.85.149.253
  6     6 ms     6 ms     7 ms  209.85.245.113
  7     7 ms     7 ms     7 ms  209.85.253.59
  8     7 ms     6 ms     6 ms  172.217.174.110

トレースを完了しました。

その他オプション

tracert コマンドに関しては、-d 以外のオプションを使用することが少ないかと思いますが、参考までに help の内容を以下に記載しておきます。

使用法: tracert [-d] [-h maximum_hops] [-j host-list]  [-w timeout]
               [-w timeout] [-R] [-S srcaddr] [-4] [-6] target_name

オプション:
    -d                 アドレスをホスト名に解決しません。
    -h maximum_hops    ターゲットを検索するときの最大ホップ数です。
    -j host-list       host-list で指定された緩やかなソース ルートを使用します
                       (IPv4 のみ)。
    -w     timeout     timeout ミリ秒間、応答を待ちます。
    -R                 往復のパスをトレースします (IPv6 のみ)。
    -S srcaddr         使用するソース アドレスです (IPv6 のみ)。
    -4                 IPv4 の使用を強制します。
    -6                 IPv6 の使用を強制します。

tracert を使用したトラブルシューティング

以下に記載する環境の コンピューター1 から コンピューター2 [172.16.3.10] への通信に問題がないかを確認する、という例で解説します。

下図の「赤線のネットワーク経路で通信するのが正常な状態」という前提です。

tracert 前提

正常に通信できている場合

  1. コンピューター1 で tracert コマンドを実行します。
tracert -d 172.16.3.10
  1. コマンド実行後、以下のようなメッセージが表示されます。
172.16.3.10 へのルートをトレースしています。経由するホップ数は最大 30 です

  1    <1 ms    <1 ms    <1 ms  172.16.1.254
  2     6 ms     6 ms     5 ms  172.16.2.254
  3     6 ms     7 ms     6 ms  172.16.3.10

トレースを完了しました。

想定するネットワーク経路を通り、コンピューター2 へ正常に通信できていることがわかります。

tracert OK

ルーター1 ~ 2 間で問題があり通信できない場合

  1. コンピューター1 で tracert コマンドを実行します。
tracert -d 172.16.3.10
  1. コマンド実行後、以下のようなメッセージが表示されます。
10.1.2.1 へのルートをトレースしています。経由するホップ数は最大 30 です

  1    <1 ms    <1 ms    <1 ms  172.16.1.254
  2     *        *        *     要求がタイムアウトしました。
  3     *        *        *     要求がタイムアウトしました。
 ...(省略)
 30     *        *        *     要求がタイムアウトしました。

トレースを完了しました。

ルーター1 までは到達していますが、その後の応答がありません。

tracert NG1

この場合、例えば以下のような理由により通信が失敗している可能性があります。

  • ルーター2 で通信をブロックしている
  • ルーター1 ~ 2 間にある何らかの装置で通信をブロックしている
  • ルーター1 のルーティングテーブル設定に問題がある

ネットワーク経路に問題があり通信できない場合

  1. コンピューター1 で tracert コマンドを実行します。
tracert -d 172.16.3.10
  1. コマンド実行後、以下のようなメッセージが表示されます。
10.1.2.1 へのルートをトレースしています。経由するホップ数は最大 30 です

  1    <1 ms    <1 ms    <1 ms  192.168.1.254
  2     *        *        *     要求がタイムアウトしました。
  3     *        *        *     要求がタイムアウトしました。
 ...(省略)
 30     *        *        *     要求がタイムアウトしました。

トレースを完了しました。

1行目で想定したネットワーク経路ではない側の ルーター3 [192.168.1.254] へ通信しに行った結果、その後の応答がありません。

tracert NG2

つまり 上図 緑線 のネットワーク経路で通信を試みた結果、通信に失敗している状態です。

この場合、例えばコンピューター 1 のルーティングテーブル設定に問題がある可能性があります。

通信はできているが想定外のネットワーク経路となっている場合

  1. コンピューター1 で tracert コマンドを実行します。
tracert -d 172.16.3.10
  1. コマンド実行後、以下のようなメッセージが表示されます。
10.1.2.1 へのルートをトレースしています。経由するホップ数は最大 30 です

  1    <1 ms    <1 ms    <1 ms  192.168.1.254
  2     6 ms     6 ms     5 ms  192.168.2.254
  3     6 ms     7 ms     6 ms  172.16.3.10

トレースを完了しました。

想定していないネットワーク経路を通り、コンピューター2 の [172.16.3.10] へ通信しています。

tracert NG3

この場合もやはり、本来のネットワーク経路となるように、ルーティングテーブル設定の見直し等を行う必要があります。

参考情報

コマンドリファレンス

Microsoft の以下サイトにも tracert コマンドについての情報があるため、参考にしてください。

にほんブログ村 IT技術ブログへ
にほんブログ村

コメント