catch-img

OpenTrace:ネットワークパケットの経路を地図上で追跡できる可視化 traceroute ツール

はじめに

現在、私は主にネットワーク、CDN、WAF(Firewall)などのクラウドサービス関連の業務に携わっています。通信トラブルが発生した際、どこに原因があるのかを切り分けるため、普段はコマンドライン(CLI)での経路調査に慣れていますが、「より直感的に状況を把握できる便利なツールはないか」と探して見つけたのが、今回ご紹介する「OpenTrace」です。

本記事では、次の2点を中心にご紹介します。

  1. オープンソースツール「OpenTrace」のソースコードを、AI を使って事前にセキュリティチェックした事例
  2. 実際に業務で役立つ、可視化 traceroute ツールとしての OpenTrace の使い方

AI そのものの仕組みにはあまり踏み込みませんが、
「AI をこういう形で実務に取り入れてみた」という、現場寄りの活用例として読んでいただければと思います。

OpenTrace とは?

「OpenTrace」は、無料でオープンソースのクロスプラットフォーム対応ツールです。ルート追跡(traceroute)のプロセスを可視化し、Google マップなどと連携して、特定のサイトやIPアドレスに接続する際のパケット伝送経路を地図上に表示します。
このツールを使えば、経由するルーターのIPアドレス、所要時間(レイテンシ)、地理的位置、ISP(プロバイダー)などの情報を一目で確認できます。「ネットワークの調子が悪いな」と感じた際、どのルートに異常があるのかを自ら突き止めるのに非常に役立ちます。

OpenTraceのダウンロード先

https://opentrace.app/
https://github.com/Archeb/opentrace

導入前のセキュリティ確認

本題に入る前に、まずはツールの安全性を確認しました。オープンソース(OSS)だからといって、必ずしも安全とは限りません。そこで今回は、GitHub から OpenTrace のソースコードをクローンし、AI を使って潜在的なリスク(情報漏洩や、意図しないバックグラウンド通信の有無など)を静的解析しました。

具体的には、次のような流れでチェックしています。

  1. GitHub からソースコード一式を取得
  2. 特に「外部ネットワーク通信」「システムコマンド実行」「ローカルファイルアクセス」に関わる部分を中心に、AI にコードの挙動を要約させる
  3. AI がまとめた内容や指摘をもとに、自分でもコードを読み、怪しい挙動がないかクロスチェック

その結果、以下のように「透明性の高い正規のツール」であることを確認できました。

OpenTrace用01

OpenTrace用02簡潔に内容を以下のようにまとめました。

1.外部ネットワーク通信の検証

アプリが外部と通信する際、正当な目的以外でデータを送信していないかを確認しました。

  • アップデート確認: GitHub APIを使用して最新版の有無を確認するのみ
  • DNS解決: 指定されたDNS-over-HTTPS(Cloudflare等)を使用してホスト名を解決
  • コア処理: 実際のトレース処理は、実績のある nexttrace に委ねられている

2.実行されるシステムコマンドの検証

OS の深部を触る挙動が「攻撃」ではなく「設定」目的であることを確認しました。

  • macOS: 言語設定の取得や、管理者権限が必要な際のパスワード入力プロンプトの実行
  • Windows: Windows Defenderのファイアウォール設定(ICMP許可)や、ネットワークドライバ(Npcap等)の確認
  • Linux: 管理者権限(pkexec)の実行や、ダークモード設定の確認

3. ローカルデータの取り扱い

ユーザーのプライベートな情報に触れていないかも確認しました。

  • APIキー: ユーザーが入力したIP調査用APIキーは実行プロセスに渡されるだけで、外部(開発者など)に送信されることはない
  • 個人ファイル: ブラウザの履歴、SSHキー、パスワードといった個人用ファイルへのアクセスは一切行われていない
  • テレメトリ: 利用統計や解析データの収集機能も実装されていない

つまり、このアプリは、

  • 動作に必要な最小限の通信とコマンド実行のみを行っている
  • 不要な情報収集や、ユーザーの見えないところでのデータ送信を行っていない

という意味で、「透明性の高い正規のツール」であると判断しました。

ここまでが、「AI を使って OSS ツールの安全性を事前に確認する」という取り組みの概要です。
ここからは、実際にその OpenTrace をネットワークのトラブルシューティングにどう活用できるかをご紹介していきます。

ネットワークのトラブルシューティングに活用

ここで本題に戻ります。
特定のウェブサイトやサーバーに接続する際、データは多くのネットワークノード(ルーター)を経由します。経路上のルーターで異常が発生すると、遅延やパケットロスが生じ、通信品質に影響を与えます。
OpenTraceを使えば、パケットがどのルーターを通過し、どの区間で深刻な遅延が発生しているかを視覚的に特定できるため、トラブルシューティングにおいて非常に有効な手段となります。

①目標IPやFQDNを入力して追跡開始

OpenTraceのインターフェースは非常にシンプルです。 左上の入力欄に調査したいIPアドレス、またはドメイン(FQDN)を入力するだけで、ドメインは自動的にIPアドレスへ解決されます。 また、MTRモードの有効化、プロトコル(ICMP、TCP、UDP)の選択、使用するDNSや位置情報サービス(LeoMoeAPI、IPInfo、IP.SBなど)のカスタマイズも可能です。

OpenTrace用03入力後に「開始(Start)」をクリックすると、ルート追跡(Traceroute)のログが表示されます。通過した各ノード、IP アドレス、所要時間(レイテンシ)、地理的位置、ISP(プロバイダー)などの情報が確認可能です。同様のツールを使ったことがある方なら、違和感なく操作できるでしょう。
OpenTrace の特徴的な点は、各ルーター IP の地理的位置やネットワーク組織(AS番号など)を表示し、それらを画面下部の Google マップ上にプロットしてくれることです。これにより、パケットがどのような経路を辿って伝送されているのかを、視覚的に分かりやすく理解できます。

②ノードの詳細と地理的位置情報の確認

任意のルートノードをクリックすると、IP アドレス、所要時間、地理的位置、組織、および自律システム(AS)の詳細が表示されます。同時に、画面下部のマップ上にもそのノードの実際の位置が示されます。

OpenTrace用04※注:内容はあくまで例です。実際のお客さんではないです。

③複数 IP と Anycast(エニキャスト)ポリシーへの対応

また、ホスト名(Hostname)を入力すると、OpenTrace は自動的にそれを IP アドレスに変換します。Cloudflare などを利用しているウェブサイトでは、複数の IP アドレスが割り当てられている場合があります。その際は、プルダウンメニューからテスト対象の IP アドレスを選択して続行してください。
通常、これらのサイトでは Anycast(エニキャスト) ポリシーが採用されており、ルーティングトポロジに基づいて、パケットは地理的に最も近い、あるいは最適な目的地へと送信されます。

OpenTrace用05※注:内容はあくまで例です。実際のお客さんではないです。

④地図ソースのカスタマイズと高度なルート設定

OpenTrace には豊富な設定オプションが用意されています。これには、地図データソースの選択(Google マップ、OpenStreetMapなど)や、カスタム DNS リゾルバーの設定が含まれます。また、プライバシー保護のために最初の数ホップの IP アドレスを非表示にしたり、IP アドレスを自動的に選択したりすることも可能です。

OpenTrace用06ルート追跡(Traceroute)の設定では、各ホップの試行回数、ターゲットポート、並列リクエスト数、最大ホップ数、開始ホップ(First Hop)、リクエスト間隔、グループリクエスト間隔など、非常に多岐にわたる項目を細かく調整できます。
実際、設定可能な項目は非常に多いですが、ほとんどのケースではデフォルトの設定のままで問題ありません。ルート追跡ツールが必要な方は、ぜひ「OpenTrace」を試してみてください。

OpenTrace用07

おわりに

AI時代になり、便利なツールが次々と登場しています。まずは恐れずに試してみて、自分の業務やスタイルに合うものを見つけることが大切だと感じています。 GitHub でツール探しをしている方は、ぜひ OpenTrace も試してみてください。

OpenTrace用08