ICMP診断機能の代名詞 Ping

ICMPを利用したエンドツーエンド通信の確認のためによく利用されるのがPing(ピングまたはピン)です。Pingは指定した宛先IPアドレスまでの通信ができるかどうかを確認するためのコマンドです。ネットワークの構築や運用管理でPingは必須のコマンドです。

Pingの仕組み

Pingの仕組みはとてもシンプルです。指定したIPアドレス宛てにICMPエコー要求メッセージを送信しています。これは「送ったデータをそっくりそのまま送り返してください」という内容です。ICMPエコー要求メッセージを受け取ると、ICMPエコー応答メッセージとして、データをそのまま送り返します。ICMPエコー応答メッセージが返ってくれば、Pingは成功です。指定したIPアドレスとの間で、送ったデータの返事がきちんと返ってきているという往復のエンドツーエンド通信ができていることがわかります。そして、エンドツーエンド通信ができていることを指して、「IP接続性がある」とか「IP到達性がある」などと表現します。

図 pingの通信確認

Pingコマンド(Windows)

Windows OSのPCからPingを実行するにはコマンドプロンプトから次のコマンドを利用します。

C:\ping <IPアドレス または ホスト名>

Pアドレスではなくホスト名を指定した場合は、自動的にDNSを利用してIPアドレスを求めてからICMPエコー要求メッセージを送信しています。

実際にGoogleのWebサーバwww.google.co.jpにPingコマンドを実行すると、次のようになります。

図 pingコマンドの実行例

Pingコマンドは簡単なネットワークのパフォーマンス計測も行っています。指定したIPアドレスまでラウンドトリップ時間(往復時間)がわかります。なお、Pingの応答が返ってこないからといって、必ずしもエンドツーエンド通信ができないというわけではありません。セキュリティ上の観点から、Pingに応答しないように設定されている機器もあるからです。

Pingのラウンドトリップ時間のことを「Ping値」と表現することがあります。オンラインゲームでの通信のパフォーマンスでよく利用される表現です。

Pingコマンド(Cisco)

Cisco機器でPingコマンドを実行するには、コマンドラインから以下のコマンドを実行します。

#ping <ip-address|host>

CiscoでのPingコマンドの実行結果のサンプルは以下のようになります。

Router#ping 172.16.1.1

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.1.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 20/36/56 ms
表示結果 意味
! エコー応答を受信した
. タイムアウトした
U 送信先に到達できない
Q 送信元抑制メッセージを受信した
M フラグメントできない
? 不明なパケットタイプ
& パケットのTTL超過

そして、「ping」だけ入力してコマンドを実行すると、拡張pingを実行可能です。拡張pingは送信するパケットのさまざまなパラメータを柔軟に指定できます。

以下は拡張pingコマンドの実行例です。

R2#ping
Protocol [ip]:
Target IP address: 10.3.3.3
Repeat count [5]:
Datagram size [100]:
Timeout in seconds [2]:
Extended commands [n]: y
Source address or interface:
Type of service [0]:
Set DF bit in IP header? [no]:
Validate reply data? [no]:
Data pattern [0xABCD]:
Loose, Strict, Record, Timestamp, Verbose[none]:
Sweep range of sizes [n]:
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.3.3.3, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 20/22/24 ms
パラメータ 概要
Protocol [ip] レイヤ3プロトコル
Repeat count [5] 送信するパケット数
Datagrame size [100] データサイズ
Timeout in seconds [2] タイムアウトの秒数
Extended commands [n] さらに追加のパラメータの指定
Source address or interface 送信元IPアドレスまたはインタフェース
Type of service [0] IPヘッダのToSの値
Set DF bit in IP header? [no] IPヘッダのDFビットの付加
Validate reply data? [no] ICMPエコー応答データの検証
Data pattern [0xABCD] データパターン
Loose,Strict, Record, Timestamp, Verbose [none] IPヘッダのオプションの指定
Sweep range of sizes [n] 指定したサイズの範囲で連続してパケット送信
[]内はデフォルトの値

上記の表にある通り、拡張pingコマンドではパケット数やデータサイズ、送信元IPアドレスまたはインタフェースといったさまざまなパラメータを指定できます。