ICMPとは?Ping、Tracerouteってなに?初心者にもわかりやすく解説!

3分でわかるIT基礎用語
記事上広告

ICMPとは、IPネットワークにおいて、パケットが届くまでの間のエラーや状態を通知するプロトコルで、ネットワークエンジニアには不可欠なプロトコルになります。

この記事では、ICMPの概要、そしてICMPを用いたコマンドであるPing、Tracerouteについて、初心者の方にもわかりやすく解説します。

ICMPとは?

ICMPとは、「Internet Control Message Protocol」の略称で、IPネットワークにおいて、データが届くまでの間のエラーや状態を送信元に報告するプロトコルです。いわばIPネットワークにおける報告係のような役割ですね。

ICMPは、IPと同じネットワーク層(OSI 参照モデルのレイヤー3)のプロトコルで、ポート番号の概念がないのが特徴で、その代わりにType番号、コード番号で判別します。

ICMPの種類

ICMPのメッセージは何種類もありますが、基本となるのは以下3種類になります。

①Echo Request/Echo Reply

一つ目が、Echo Request/Echo Replyです。後述するPing等ネットワークの状態を確認する際に、「この機器まで通信ってできてる?」と確認の要求を送るのがEcho Request、「できてるよー」とRequestに対して返答するのがEcho Replyになります。これがICMPにおいて一番基本のやり取りになります。

②Destination Unreachable

二つ目が、Destination Unreachableです。これは①のEcho Requestに対して、宛先ネットワークに到達できなかった時に返答として送られるエラーメッセージです。

このDestination Unreachableの中でも、例えば、「Net Unrechable(=ネットワークに到達できない)」、「Destination Host Unkown(=宛先ホストが不明)」など、原因ごとにその種類が異なってきます。

③Time Exceeded

三つ目が、「Time Exceeded」です。これは、簡単に言うと「時間切れで到達できませんでした」というエラーメッセージです。宛先に到達する前に、後ほど説明するTTL値が0になってしまった時に送られます。これが送られてきた場合は、ルーティングループ(ルーティングが円状になっており永遠にパケットが回り続ける事)が起きていないかを確認することが多いです。

④Redirect 

四つ目が、Redirectです。これは、簡単に言うと「設定こうしたほうがいいんじゃない?」というリコメンド機能のようなものです。命令された経路が最適でなかった場合に、最適な経路を通知します。

この機能はICMPにおいてMustではないので、設定でoffにする事も可能です。

ICMPを利用したコマンド

①Ping

一つ目が、Pingです。Pingは、ネットワークの疎通確認に使われるプロトコルです。

よく「ICMPとPingって何が違うの?」という質問を受けますが、「ICMPを用いたコマンドがPing」という関係性で、正確にはイコールではありません。

送信側は、対象の機器のIPアドレスを指定して「エコー要求」を出し、受信側は、「きちんと通信できてるよ!」あるいは「通信できてないよ!」という「エコー応答」を返します。

このPingは、LAN構築の際には、きちんとそれぞれの機器が通信できる状態になっているか一つずつ確認するのに使用したり、ネットワークがダウンした際には、一つずつPingを打って、どこが故障しているのかの原因特定にも使う、ネットワークエンジニアにとっては基礎中の基礎のコマンドです。

②Traceroute

二つ目が、Tracerouteです。Tracerouteは、ネットワークの経路確認に使われるプロトコルです。

指定した宛先に到達するまでの経路上で、どのルータを経由しているかを把握するために使われます。

では具体的にはどのように経路を確認するのか、仕組みを少し説明したいと思います。

Tracerouteでは、パケットにTTLと呼ばれる値をくっつけます。このTTLは、パケットの体力ゲージのようなもので、1つルータを通過すると、TTLの値が1減り、TTLの値がゼロになると、ゼロになった時点の機器から「このパケットここで力尽きたよ」と通知されます。

この仕組みを利用して、まずTTLを1にして最初の経由ルータからの通知を確認、次にTTLを2にして次の経由ルータを確認、、と順番にTTLの値を1ずつ増やしていき、宛先の機器に到達するまで行うことで、どのルータを経由するのかを把握します。

このTracerouteは、例えばPingを打ってもエラーが出た時に、想定しているルーティングが正しく設定されているかの確認などによく使われます。

おわりに

いかがだったでしょうか。ICMPは、ネットワークのトラブルシューティングによく使われるPing、Tracerouteの元になっている重要なプロトコルです。仕組みをしっかり理解しておきましょう。

コメント

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