はじめに
※4/30 に投稿する内容でしたが、GitHub Actions の PAT 設定不具合により 5/2 にまとめて投稿しています。
こんにちは。アメリカに住みながら、独学でエンジニアを目指している Taira です。
現在インターネットクイズを定期的に自分に課しているのですが、その中で出てきた traceroute コマンドについて記事にまとめてみようと思います
traceroute とは?
traceroute は、ネットワークの通信経路を調べるためのコマンドです。
自分のパソコンから目的地のサーバへデータを送る際に,途中で経由するルーターを一口づつ表示していきます。
例えば、こんなことがわかります。
- 途中で通るルーターの IP アドレスやホスト名
- そのルーターまでの応答時間
- どこで遅延が発生しているか
traceroute の仕組み
traceroute は、TTL (Time To Live) というパケットの存在期限を利用して動いています。
- TTL=1 でパケットを送信 → 最初のルーターで TTL が 0 になり、エラーが返る
- TTL=2 で送信 → 2 番目のルーターで TTL が 0 になり、エラーが返る
- TTL=3 で送信 → 3 番目のルーターで...
これを繰り返して、76ee に目的地に到達するまでのルートを全て追跡するというわけです。
使い方
Windows
tracert ドメイン名またはIPアドレス
例:
tracert google.com
Linux / Mac
traceroute ドメイン名またはIPアドレス
例:
traceroute google.com
▶ Windows では tracert
、Linux/Mac では traceroute
と名前が異なるので注意しましょう。
出力の見方
一般的に、下記のような情報が表示されます。
- 何個目のルーターか(1、2、3...)
- 3 回分の応答時間(ms)
- ルーターの IP アドレスやホスト名
【注意】
-
* * *
と表示される場合:そのルーターが応答を返していない場合 - 3 回分の計測をするのは、繰り返しや遅延をなるべく正確に採るため
traceroute の利用場面
- サーバまでの通信経路を調査
- ネットワーク障害の特定
- 遅延が発生している場所を探す
- ネットワークの構成や経路の理解
まとめ
traceroute は,パケットが目的地に到達するまでに通る道を視覚化するための強力なツールです。
「どこで止まっている?」「どこで遅い?」を見つけるときには、真っ先に使いたい技術です。