【入門編】 tracerouteにおけるAS経路確認と非対称ルーティングの検知 – トラブルシューティング&ネットワーク運用監視実践ガイド

「あれ、パケットが帰ってこない?」――tracerouteで紐解く、ネットワークの迷宮と非対称ルーティングの正体

こんにちは。NOC(ネットワークオペレーションセンター)で日々、パケットの溜息と格闘しているシニアエンジニアです。

皆さんは、「tracerouteを打ったけれど、なんだか結果が腑に落ちない」という経験はありませんか? 「途中で星印(* * *)が並ぶし、そもそも行きの道筋と帰りの道筋が違うなんて、そんなのズルいじゃないか!」と画面の前で叫びたくなる気持ち、よくわかります。

今回は、ネットワークの「非対称ルーティング」という、一見すると厄介な現象を、現場の視点から紐解いていきましょう。難しい理論は一旦横に置いて、まずは「郵便配達」の話から始めますね。

—

ネットワークは「往復書簡」の世界

ネットワークの通信は、手紙のやり取りに似ています。あなたが誰かに手紙を出すとき、往路(行きの道)と復路(帰りの道)を完璧に同じルートに指定して投函することなんて、まずありませんよね。

インターネットの世界も同じです。

  • 往路: あなたのPCから目的地へ向かう道
  • 復路: 目的地からあなたのPCへ帰ってくる道

この2つが、必ずしも同じ経路を通るとは限らない。これを「非対称ルーティング」と呼びます。現場では「非対称」という言葉だけで身構えてしまうかもしれませんが、実はこれ、インターネットという巨大な郵便システムではごく自然なことなんです。

tracerouteで「どこで消えたか」を追う

さて、ここで登場するのが traceroute(Windowsなら tracert)です。このコマンドは、いわば「荷物にGPSを仕込んで、各中継地点で挨拶をさせながら目的地まで送る」ツールです。

なぜ「星印(*)」が出るのか?

tracerouteを実行したとき、たまに * * * と表示されて止まってしまうことがありますよね。「ここが障害地点だ!」と焦る前に、一呼吸おきましょう。

  • 単に「無視されただけ」かもしれません: 中継地点のルーターは、セキュリティ上の理由や処理負荷を減らすために、tracerouteの調査用パケットをあえて無視する(回答しない)設定になっていることが多いのです。
  • 復路の迷子: これが今日の本題です。往路は無事に届いても、ルーターからの「届いたよ!」という返事が、復路で別の道を通ってしまい、あなたのもとに届かない。その結果、「あ、返事がないな」とtracerouteが判断して星印を表示するのです。

—

現場で役立つ「非対称ルーティング」検知のテクニック

非対称ルーティングが疑われるとき、私たちはどのように切り分けるのでしょうか。ここからは、CLIを使った具体的なアプローチを紹介します。

1. 経路を「AS番号」で確認する

インターネットは「AS(自律システム)」という大きな組織のネットワーク同士が繋がってできています。経路確認には traceroute に -A オプション(または -a)を付けて実行してみましょう。

# -Aオプションで、各ホップのAS番号を表示させる
traceroute -A 8.8.8.8

もし、往路で通るASの並び順が、本来の設計や期待しているものと明らかに違う場合、そこには「経路制御(BGP)」の不整合が隠れている可能性があります。

2. 往復の時間を計測する

非対称ルーティングが起きていると、片道が極端に遠回りしているため、RTT(往復にかかる時間)が不自然に増大することがあります。

# pingでパケットの応答時間を継続的に監視する
# もし特定のホップだけで遅延が跳ね上がるなら、そこがボトルネックです
ping -c 10 8.8.8.8

3. 「どこで分かれたか」を特定する(MTRの活用)

単発の traceroute よりも、現場で愛用されているのが mtr(My Traceroute)です。これは ping と traceroute を掛け合わせたようなツールで、リアルタイムで各ホップの状況を更新してくれます。

# インストール済みなら是非使ってみてください
mtr -rw 8.8.8.8

mtr でパケットロス(Loss%)が発生している箇所を特定し、それが「往路の途中でロスしているのか」「復路の不整合で戻ってきていないのか」を判断する材料にします。

—

初学者の皆さんへのアドバイス

ネットワークトラブルシューティングの現場では、「ツールが言っていることを鵜呑みにしない」のが鉄則です。

traceroute はあくまで「往路の記録」をベースにしたスナップショットに過ぎません。もし、どうしても通信が成立しない、あるいは特定の経路でパケットが消える場合は、以下のように考えてみてください。

1. 「行きの切符」は正しいか?(ルーティングテーブルの確認)
2. 「帰りの切符」は用意されているか?(戻り経路の確認)
3. 途中の検問所で没収されていないか?(ファイアウォールのポリシー確認)

最初は難しく感じるかもしれませんが、パケットの流れを「郵便配達」や「迷路」のようにイメージできるようになれば、ネットワークはもっと面白くなります。

今日の結果が * * * だったとしても、それはネットワークがあなたに「別の視点から見てごらん」とヒントをくれている証拠です。焦らず、一歩ずつコマンドを叩いてみてくださいね。

また現場でお会いしましょう。皆さんの通信が快適であることを願っています!

コメント

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