株式会社ジオデータ開発 ロゴ
株式会社ジオデータ開発GEO DATA DEVELOPMENT Inc.
ICMPIPv4pingtracerouteTTLRedirectTime ExceededDestination Unreachable

IP NETWORK / DIAGNOSTICS / ICMP

ICMPとは?
ping・traceroute・TTLを仕組みから理解する

公開日:2026-10-13

「Wi-Fiにはつながるのにサイトが開かない」。通信がどこで止まるか、どうやって端末に知らせるか。ICMPを知るとネットワークの調査に必要な道具がつながります。

この記事の学習ルート

IP通信の基礎 → ICMPの役割とType/Code → pingとtraceroute → TTL・再組立て → Redirect・Destination Unreachable・Parameter Problem → IPv6の違い → 診断ラボ → 運用上の注意

1. インターネットに接続できないとき何を調べる?

社内PCでWebページを開けないとき、原因はDNS、宛先サーバー、社内ルーター、途中の回線、あるいはファイアウォールなど複数考えられます。Webアクセス自体はHTTP/HTTPSを使いますが、ネットワークで起こった異常を伝える役割の一つがICMP(Internet Control Message Protocol)です。

宅配に例えるとIPは荷物を宛先まで運ぶ仕組み、ICMPは「届け先が見つからない」「途中で配送期限を超えた」などの通知票です。通知は便利ですが、通知票が届かないことだけで配送失敗とは断言できません。

2. TypeとCodeで「何が起きたか」を分類する

ICMPにはメッセージの大分類を示すTypeと、同じ分類内の詳細を示すCodeがあります。例えば「時間超過」というType 11でも、転送中のTTL切れ(Code 0)と断片再組立ての時間切れ(Code 1)は異なります。

ICMPv4メッセージType / Codeいつ発生する?診断上の意味
Echo Request / Reply8/0 ・ 0/0pingで確認用の要求・応答Replyを受け取ると応答可能だったと分かる
Destination Unreachable3/各Codeネットワークやホストへの到達不能、ポート到達不能など転送・配送に失敗した理由を表す
Redirect5/各Codeルーターが送信ホストへより適切な次ホップを通知経路の提案。無条件に信用してよいわけではない
Time Exceeded11/0 ・ 11/1転送時TTL切れ/断片の再組立て時間切れtracerouteで途中機器の反応を得る手掛かり
Parameter Problem12/各CodeIPヘッダーの値などに不正・処理不能な問題パケット自体のパラメータに問題がある
Destination Unreachable(分割禁止)3/4DF付きパケットが経路のMTUより大きいPath MTU Discoveryに関係する

3. TTL:ルーターを何回も巡回しないための仕組み

TTL(Time to Live)はIPv4ヘッダーにある8ビットの値です。名前は「生存時間」ですが、現在の転送動作では主にホップを通過するたびに値が減少する仕組みとして理解できます。ルーターが転送するときTTLを減らし、転送できない値になったパケットを破棄します。通常はICMP Time Exceeded(Type 11 / Code 0)を送信元へ通知します。

通信経路:PC → ルーターA → ルーターB → Webサーバー
送信PC192.0.2.10ルーターA1ホップ目ルーターB2ホップ目サーバー198.51.100.20TTL=2TTL=1通常通信ICMP Time Exceeded(TTLが0)※ TTL=2の送信例ではBで破棄され、サーバーには届かない

描画はIPv4のTTL処理を簡略化した例。途中機器やファイアウォールのポリシーによってICMP応答が返らないこともあります。

これにより、ルーティングの設定ミスでパケットが同じルーターを回り続ける事態を抑制できます。途中ルーターが戻すICMPの送信元アドレスは、経路診断の手掛かりになります。

4. pingとtracerouteは何を送る?

pingは通常ICMP Echo Requestを送信し、Echo Replyの有無や往復時間を調べます。Replyが返らない理由には通信障害だけでなく、ICMPの遮断や応答制限もあります。

# IPv4を指定して疎通確認(例:Linux)
ping -4 198.51.100.20

# Linuxのtraceroute(例)
traceroute 198.51.100.20
# ICMP Echoベースの例(Linuxの実装・権限に依存)
traceroute -I 198.51.100.20

tracerouteはTTL(IPv6ではHop Limit)を1、2、3…と変え、どの途中ルーターが時間超過を返したかから経路を調べます。Linuxの標準的なtracerouteはUDPプローブを使う構成が一般的で、WindowsのtracertはICMP Echo方式が一般的です。したがって「tracerouteは必ずICMP Echoを送る」は誤りです。

5. Redirect:ルーターが最適な次ホップを知らせる

同じLANにPCと複数ルーターがあるとします。PCは初期設定のルーターAへパケットを渡しますが、ルーターAが「この宛先なら同じネットワーク上のルーターBへ送った方が適切」と判断することがあります。条件を満たす場合、ルーターAはPCにICMP Redirect(Type 5)を返し、望ましい次ホップを通知できます。

Redirectの流れ:通信の配送先と経路変更通知は別
PC

最初はAへ送信

ルーターA

Bを推奨

ルーターB

適切な次ホップ

① IP転送② 転送③ ICMP Redirect図は概念的な通信例。通常の適用条件はRFC 1812を参照。

6. 断片再組立て・MTU・Parameter Problem

フラグメント(断片)とは、大きなIPv4パケットを複数に分割したものです。断片が揃わず再組立て期限を超えると、受信ホストはデータグラムを破棄し、条件に従ってTime Exceeded(Type 11 / Code 1)を送信します。ヘッダーの形式やパラメータの問題を知らせるParameter Problem(Type 12)とは別の事象です。

一方、経路のMTU(Maximum Transmission Unit)より大きいIPv4パケットにDF(Don't Fragment)が設定されていて中継できない場合、ルーターはDestination Unreachable(Type 3 / Code 4)を返せます。これはPath MTU Discoveryに利用されます。必要なICMPをすべて遮断すると、特定サイズの通信だけ失敗する原因になります。

ICMPv4メッセージType / Codeいつ発生する?診断上の意味
TTLが尽きた11/0中継途中で転送の上限に達するtracerouteの途中応答
断片が揃わない11/1再組立ての制限時間を超えるフラグメント欠落など
IPヘッダーに問題12/各Code処理不能なヘッダー要素Parameter Problem
DFかつMTU超過3/4分割できず先に進めないPath MTU Discovery

7. ICMPv4とICMPv6は同じ番号ではない

IPv6にはICMPv6があります。IPv4のICMPと目的が重なるメッセージはありますが、Type番号は異なります。さらに、IPv6の近隣探索(Neighbor Discovery)はICMPv6を利用します。IPv6で必要なICMPv6まで無差別に遮断すると、接続に必要な機能を壊してしまいます。

ICMPv4メッセージType / Codeいつ発生する?診断上の意味
IPv4 Echo Request / Reply8 / 0IPv4のpingICMPv6では128 / 129
IPv4 Time Exceeded11TTL超過ICMPv6ではType 3
IPv4 Redirect5次ホップ通知ICMPv6ではType 137
IPv4 Destination Unreachable3到達不能ICMPv6ではType 1

同じ「Type 3」でもICMPv4ではDestination Unreachable、ICMPv6ではTime Exceededです。バージョンとType番号をセットで覚えることが大切です。

8. 実際に触る:ICMP診断シミュレーター

送信TTL、断片化・宛先障害・Redirectなどのイベントを変更すると、送信したIPパケットがどこまで到達し、どのType/CodeのICMPが返るかが変わります。実ネットワークへの送信は行わない教材用シミュレーターです。

INTERACTIVE LAB / ICMPv4

送信条件からICMPの応答を予測しよう

すべて架空のIPv4ネットワークでの概念シミュレーションです。実際のIPパケットやICMP通信は送信しません。

途中のルーターでTTLが尽きたためパケットを破棄する

TTL 1ならA、2ならBで破棄。3以上ならこの教材では宛先まで届くと仮定。

ノード式の経路表示
💻送信PC
📡ルーターA
📡ルーターB
🖥️宛先サーバー

確認位置:送信PC / 転送中

ICMPメッセージの判定

Type

11

Code

0

Message

Time Exceeded

通知する機器

ルーターB(2ホップ目)

途中で破棄される。送信TTL=2 のため、BでTTLが尽きます。

注意: ルーター・ホストがRFC上の送信抑制条件に該当する場合や通信が制限される場合、エラー通知が発生しないことがあります。Redirectは実際には受理条件が厳しく、ICMPv4とICMPv6のType番号も異なります。

9. 運用で間違えやすいポイント

ICMP=攻撃用だから全遮断? 誤り。Echoの制限は検討できますが、到達不能やMTU関連通知は経路維持・診断に役立ちます。ICMPv6はネットワーク動作にも不可欠なメッセージがあります。

pingが通るならHTTPSも通る? 誤り。ICMP EchoとTCP/443などではファイアウォール・宛先アプリの条件が違います。

ICMPが返らないならサーバーダウン? 必ずしもそうではありません。応答抑止、レート制限、別経路、経路中のフィルタなどを考慮します。

ICMP Redirectが届けば必ず経路を変更する? 端末の受理設定や検証条件に左右されます。安全上の理由で拒否する運用もあります。

参考資料・仕様

基本メッセージはRFC 792、IPv4ルーターの動作条件はRFC 1812、経路MTUはRFC 1191、IPv6はRFC 4443を参照してください。