【入門編】 ICMP到達不能メッセージ(Destination Unreachable)のサブコード – ネットワーク基礎とWebセキュリティ実践ガイド

なぜ「届かない」のか?ICMP到達不能メッセージでネットワークの迷宮を読み解こう

ネットワークエンジニアとして現場に立っていると、必ずと言っていいほど直面する壁があります。それが「通信が通らない」という事態です。

「pingは通るのに、なぜかWebサイトが見られない」「SSHでログインしようとすると拒否される」。そんな時、ネットワークの深淵から届く、エンジニアへのささやかなヒント……それが今回解説するICMP Destination Unreachable(到達不能メッセージ)です。

今日は、パケットがネットワークという広大な海を渡る際、なぜ途中で挫折してしまうのか、その理由を「郵便配達」に例えて紐解いていきましょう。

—

郵便配達でイメージする「到達不能」の正体

インターネットの世界は、実は郵便システムと非常によく似ています。あなたが送ったデータ(パケット)は、宛先という「住所」を頼りに旅をしますが、何らかの理由で宛先にたどり着けないことがあります。

そんな時、郵便屋さんが「宛先不明で戻ってきましたよ」と通知をくれるように、ネットワーク機器が送信元に「ごめん、届けられなかったよ」と送り返してくれるのが、ICMPの到達不能メッセージです。

このメッセージには「なぜ届けられなかったのか」を示すサブコードというものが付いています。これを知るだけで、トラブルシューティングの時間は劇的に短縮されます。

—

よく遭遇する「サブコード」のリアルな現場

主要なサブコードを、現場でよくあるケースに当てはめて見ていきましょう。

1. ネットワーク到達不能 (Code 0)

「そもそも、その住所(ネットワーク)が存在しない」という状態です。

  • 現場の光景: ルーターがルーティングテーブル(地図)を確認しても、「そんなネットワークへの行き方は知らないよ」とさじを投げている状態です。
  • 対策: ルーターのルート設定を確認しましょう。スタティックルートの記述ミスや、隣接ルーターとの経路情報の交換ができていないことがほとんどです。

2. ホスト到達不能 (Code 1)

「ネットワークまでは分かったけど、肝心の家(ホスト)が特定できない」という状態です。

  • 現場の光景: ネットワーク内には入れたけれど、ARP解決ができない、あるいはファイアウォールで遮断されている可能性があります。
  • 対策: arp -a コマンドで物理アドレス(MACアドレス)が解決できているか確認してください。

3. プロトコル到達不能 (Code 2)

「届いたけど、その言語(プロトコル)は解読できないよ」という状態です。

  • 現場の光景: 例えば、TCP通信を送ったのに、受け取り側の機器が「自分はUDPしか喋れないんだ」と拒否しているような状況です。

4. ポート到達不能 (Code 3)

エンジニアが最も頻繁に目にするエラーです。

  • 現場の光景: 「家にはたどり着いたし、言語も通じるけど、その部屋(ポート)は鍵がかかっていて入れないよ」という状態です。
  • 実務でのチェック例:

サーバー上でWebサービス(ポート80や443)が起動していない、あるいはLinuxの iptables や firewalld でポートがブロックされている場合に発生します。

—

トラブルシューティングの実践:現場の勘所

もし接続トラブルが起きたら、まずは traceroute (Windowsなら tracert) を使って、どこでパケットが「断絶」しているかを確認しましょう。

トラブルシューティングの基本コマンド例

# 1. まずは宛先まで届いているか、経路を確認
traceroute 192.168.1.10

# 2. ポートが開いているか、nc (netcat) で確認してみる
# -z はスキャンモード、-v は詳細表示
nc -zv 192.168.1.10 80
# 結果が "Connection refused" なら、ポート到達不能(Code 3)の可能性大

ファイアウォールでの遮断と「到達不能」の境界線

ここで一つ、ベテランらしい注意点を。
実は、セキュリティを強固にするために、あえて「到達不能メッセージを返さない」設定にする場合があります。

  • ドロップ(Drop): パケットを黙って捨てる。送信元は「タイムアウト」まで待つしかなく、攻撃者にポートの状態を悟らせません。
  • リジェクト(Reject): 到達不能メッセージを丁寧に返す。開発中には便利ですが、セキュリティ的にはポートの存在を教えてしまうリスクがあります。

—

最後に:ネットワークを「視る」力を養おう

ICMPのサブコードは、ネットワーク機器が発する「心の声」です。パケットを単なる電気信号の羅列として見るのではなく、「宛先を必死に探している郵便屋さんの苦悩」として捉えてみてください。

「なぜ届かないのか?」という問いに対して、ログの中に隠された小さなサブコードを見つけたとき、ネットワークの迷宮はクリアな道筋へと変わります。

最初は難しく感じるかもしれませんが、トラブルが起きたときは「どのサブコードが返ってきているかな?」と深呼吸して、パケットの旅路を想像してみてください。その視点こそが、あなたを一流のエンジニアへ導く最短ルートです。

それでは、また次回のネットワーク探訪でお会いしましょう!

コメント

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