Linux mtr コマンド
mtr(My Traceroute)は、~の機能を組み合わせたtracerouteとping強力なネットワーク診断ツールです。ネットワーク上のデータパケットの転送経路をリアルタイムに表示し、詳細な統計情報を提供します。ネットワーク管理者や開発者にとって、ネットワーク問題を調査するための強力なツールです。
mtr の主な特徴
- リアルタイム更新:ルートと遅延情報を継続的に表示します
- 双方向診断:送信方向と受信方向の経路を同時に表示できます
- 総合統計:パケットロス率、遅延などの主要な指標を提供します
- ビジュアルインターフェース:ネットワーク経路の状況をインタラクティブに表示します
mtr コマンドのインストール
一般的な Linux ディストリビューションでのインストール
例
# Debian/Ubuntu システム
sudo apt-get install mtr
# CentOS/RHEL システム
sudo yum install mtr
# Fedora システム
sudo dnf install mtr
# Arch Linux システム
sudo pacman -S mtr
sudo apt-get install mtr
# CentOS/RHEL システム
sudo yum install mtr
# Fedora システム
sudo dnf install mtr
# Arch Linux システム
sudo pacman -S mtr
macOS でのインストール
例
# Homebrew を使用してインストール
brew install mtr
brew install mtr
mtr 基本構文
mtr コマンドの基本構文は次のとおりです:
mtr [选项] 目标主机
よく使うオプションとパラメータの説明
| オプション | 説明 |
|---|---|
-4 |
IPv4を強制する |
-6 |
IPv6を強制する |
-c COUNT |
送信するpingパケット数を設定する |
-i SECONDS |
pingの間隔時間(秒)を設定する |
-n |
ホスト名を解決せず、IPアドレスを表示する |
-r |
レポート生成モード(非インタラクティブ) |
-s BYTES |
pingパケットサイズ(バイト)を設定する |
-w |
ワイド出力モード。完全なホスト名を表示する |
-z |
AS(自律システム)番号を表示する |
--report |
~と同じ-r、レポート生成後に終了します |
--report-wide |
ワイド形式のレポート |
mtr 使用例
基本の使い方:宛先ホストまでのネットワーク経路を診断する
mtr google.com
実行するとリアルタイムに更新される画面が表示され、以下の情報が含まれます:
- ホップ数(Hop)
- ホスト名またはIPアドレス
- パケットロス率(Loss%)
- 直近の遅延(Last)
- 平均遅延(Avg)
- 最良遅延(Best)
- 最悪遅延(Wrst)
- 標準偏差(StDev)
レポート生成モード(スクリプト呼び出しに適しています)
mtr -r -c 10 google.com > mtr_report.txt
このコマンドはgoogle.comに10個のpingパケットを送信し、結果をmtr_report.txtファイルに保存します。
pingパケットのサイズと間隔を設定する
mtr -s 100 -i 0.5 example.com
このコマンドは、各pingパケットのサイズを100バイト、間隔を0.5秒に設定します。
AS番号も同時に表示する
mtr -z example.com
このコマンドは、結果に各ノードのAS(自律システム)番号を表示し、ネットワークの帰属先を識別するのに役立ちます。
mtr 出力の見方
インタラクティブ画面の説明
mtrを実行すると、次のような出力が表示されます:
My traceroute [v0.92]
example.com (192.0.2.1) 2022-01-01T12:00:00+0000
Keys: Help Display mode Restart statistics Order of fields quit
Packets Pings
Host Loss% Snt Last Avg Best Wrst StDev
1. 192.168.1.1 0.0% 10 2.1 2.2 1.9 2.5 0.2
2. 10.0.0.1 0.0% 10 5.3 5.5 5.1 6.0 0.3
3. 203.0.113.1 0.0% 10 15.2 15.5 15.0 16.1 0.4
4. example.com 0.0% 10 20.1 20.3 20.0 21.0 0.3
主要な指標の説明
- Loss%:パケットロス率。値が高いほどネットワークが不安定であることを示します
- Snt:送信されたプローブパケットの数
- Last:直近のプローブの遅延(ミリ秒)
- Avg:平均遅延(ミリ秒)
- Best:最良遅延(ミリ秒)
- Wrst:最悪遅延(ミリ秒)
- StDev:遅延の標準偏差。ネットワークの安定性を反映します
高度な使い方とテクニック
1. IPv4とIPv6の経路を同時に追跡する
例
mtr -4 example.com # IPv4経路
mtr -6 example.com # IPv6経路
mtr -6 example.com # IPv6経路
2. ICMPの代わりにTCP SYNを使用する(一部のファイアウォールを回避)
mtr --tcp example.com
3. 送信元ポートを指定する(特定のルートテスト用)
mtr --port 8080 example.com
4. 結果をCSV形式で保存する
mtr --csv example.com > result.csv
5. 2つの時点のネットワーク状況を比較する
例
mtr -c 60 -i 1 -w example.com > result1.txt
# 一定時間後
mtr -c 60 -i 1 -w example.com > result2.txt
diff result1.txt result2.txt
# 一定時間後
mtr -c 60 -i 1 -w example.com > result2.txt
diff result1.txt result2.txt
よくある問題のトラブルシューティング
1. 高いパケットロス率の問題
特定のノードで高いパケットロス率が発生した場合:
- そのノードが過負荷になっている可能性があります
- ネットワーク機器の設定に問題がある可能性があります
- ISP間の相互接続に問題がある可能性があります
2. 遅延が急増する問題
特定のノードで遅延が急に増加した場合:
- ネットワークの輻輳が考えられます
- ルートの変更が考えられます
- 機器のパフォーマンス問題が考えられます
3. アスタリスク(*)の表示
IPアドレスの代わりにアスタリスク(*)が表示される場合:
- そのノードがICMPリクエストに応答していない可能性があります
- ファイアウォールがプローブパケットをブロックしている可能性があります
mtr と他のツールの比較
| ツール | リアルタイム更新 | 双方向診断 | パケットロス統計 | 遅延統計 | インタラクティブ画面 |
|---|---|---|---|---|---|
| ping | ❌ | ❌ | ✔️ | ✔️ | ❌ |
| traceroute | ❌ | ❌ | ❌ | ✔️ | ❌ |
| mtr | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
実践演習
- mtrを使用して、よく利用するWebサイトまでのネットワーク経路を確認する
- Wi-Fiと有線接続のネットワーク品質の違いを比較する
- 異なるサイズのpingパケットでネットワークパフォーマンスをテストする
- 定期的にネットワーク品質レポートを生成するスケジュールタスクを設定する
例
# 例:毎日ネットワーク状況レポートを生成
(crontab -l 2>/dev/null; echo "0 2 * * * /usr/sbin/mtr -r -c 100 google.com > ~/network_report_$(date +%Y%m%d).txt") | crontab -
(crontab -l 2>/dev/null; echo "0 2 * * * /usr/sbin/mtr -r -c 100 google.com > ~/network_report_$(date +%Y%m%d).txt") | crontab -
まとめ
mtrは、tracerouteとpingの利点を組み合わせた強力なネットワーク診断ツールであり、リアルタイムで包括的なネットワーク経路分析機能を提供します。この記事の学習を通じて、以下のことができるようになります:
- mtrの基本原理と動作方法を理解する
- mtrを使いこなしてネットワーク問題を診断できる
- mtrの出力の各指標を読み解くことができる
- mtrを活用して実際のネットワーク問題を解決できる
mtrコマンドを習得すれば、ネットワーク問題を調査する効率が大幅に向上します。これは、すべてのシステム管理者と開発者が身につけるべきスキルです。
その他の拡張