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 / Reply | 8/0 ・ 0/0 | pingで確認用の要求・応答 | Replyを受け取ると応答可能だったと分かる |
| Destination Unreachable | 3/各Code | ネットワークやホストへの到達不能、ポート到達不能など | 転送・配送に失敗した理由を表す |
| Redirect | 5/各Code | ルーターが送信ホストへより適切な次ホップを通知 | 経路の提案。無条件に信用してよいわけではない |
| Time Exceeded | 11/0 ・ 11/1 | 転送時TTL切れ/断片の再組立て時間切れ | tracerouteで途中機器の反応を得る手掛かり |
| Parameter Problem | 12/各Code | IPヘッダーの値などに不正・処理不能な問題 | パケット自体のパラメータに問題がある |
| Destination Unreachable(分割禁止) | 3/4 | DF付きパケットが経路のMTUより大きい | Path MTU Discoveryに関係する |
3. TTL:ルーターを何回も巡回しないための仕組み
TTL(Time to Live)はIPv4ヘッダーにある8ビットの値です。名前は「生存時間」ですが、現在の転送動作では主にホップを通過するたびに値が減少する仕組みとして理解できます。ルーターが転送するときTTLを減らし、転送できない値になったパケットを破棄します。通常はICMP Time Exceeded(Type 11 / Code 0)を送信元へ通知します。
描画は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.20tracerouteは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)を返し、望ましい次ホップを通知できます。
最初はAへ送信
Bを推奨
適切な次ホップ
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 / Reply | 8 / 0 | IPv4のping | ICMPv6では128 / 129 |
| IPv4 Time Exceeded | 11 | TTL超過 | ICMPv6ではType 3 |
| IPv4 Redirect | 5 | 次ホップ通知 | ICMPv6ではType 137 |
| IPv4 Destination Unreachable | 3 | 到達不能 | 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 / 転送中
ICMPメッセージの判定
Type
11
Code
0
Message
Time Exceeded
通知する機器
ルーターB(2ホップ目)
途中で破棄される。送信TTL=2 のため、BでTTLが尽きます。
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を参照してください。