【Linux】ネットワーク上の経路を確認:traceroute

Linux

どーも!marusukeです!

ネットワーク上の経路を確認するコマンドtracerouteについてです!

tracerouteコマンドでできること

traceroute [オプション] <ホスト名またはIPアドレス>

tracerouteコマンドは、指定したホストまでのネットワーク上の経路を確認するためのコマンドです

指定したホストにパケットを送信し、その途中のルーター(経路)や中継ポイントを特定してリストとして表示します

ネットワークの遅延や障害が発生している箇所を特定するのに役立ちます

主な用途

  • ホストまでの経路(ネットワークのルーティング)を調査する
  • 各ルーター間の応答時間を測定する

tracerouteコマンドの使用例

# 1. ホストまでの経路を調査する
traceroute www.google.com
# 出力例:
traceroute to www.google.com (142.250.196.100), 30 hops max, 60 byte packets
 1  router.local (192.168.1.1)  0.945 ms  0.927 ms  0.891 ms
 2  192.168.0.1 (192.168.0.1)  1.135 ms  1.125 ms  1.100 ms
 3  10.0.0.1 (10.0.0.1)  5.234 ms  5.230 ms  5.200 ms
 4  203.0.113.1 (203.0.113.1)  10.567 ms  10.560 ms  10.540 ms
 5  142.250.196.100 (142.250.196.100)  15.670 ms  15.640 ms  15.600 ms


# 2. 最大ホップ数(経由するルーターの数)を指定して調査
traceroute -m 10 www.example.com
# 経由するルーターの最大数を10ホップに制限


# 3. 使用するパケットサイズ(128バイトに設定)を指定して経路を調査
traceroute -s 128 www.example.com


# 4. 特定のネットワークインターフェースを使用して調査
traceroute -i enp0s3 www.example.com


# 5. IPv6アドレスを指定して経路を調査
traceroute -6 ipv6.google.com

tracerouteコマンドのオプション

オプション説明
-m <ホップ数>最大ホップ数(経由するルーターの数)を指定します(デフォルト: 30)
-w <秒数>各ホップに対する応答の待ち時間(タイムアウト)を秒単位で指定します
-nホスト名の名前解決をせずにIPアドレスのみを表示します(高速化に有用)
-i <インターフェース>使用するネットワークインターフェースを指定します
-q <回数>各ホップに送信するプローブパケットの数を指定します(デフォルト: 3)
-4IPv4を強制的に使用します
-6IPv6を強制的に使用します
-p <ポート番号>UDPパケットで使用する宛先ポート番号を指定します(デフォルト: 33434)
-TTCP SYNパケットを使用して経路を調査します
-IICMPエコーリクエストパケットを使用して経路を調査します(Pingベース)

注意点

ファイアウォールの影響
一部のルーターやホストでは、セキュリティのためICMPやUDPパケットをブロックしている場合があります。この場合、tracerouteは途中で応答を受け取れなくなることがあります

ブロックされた場合の例

traceroute  www.google.com

#出力例
traceroute to www.google.com (142.250.196.100), 30 hops max, 60 byte packets
1 router.local (192.168.1.1) 0.945 ms 0.927 ms 0.891 ms 
2 * * * 
3 * * * 
4 * 

*が表示されている箇所は、応答を受信できなかったことを意味します

パケットタイプの選択
デフォルトではUDPパケットを使用しますが、TCP(-Tオプション)やICMP(-Iオプション)を使用することで、一部のルーターやホストに応答を期待できる場合があります


以上です!

ここまで読んでいただきありがとうございました!

コメント

タイトルとURLをコピーしました