目次
概要
ICMPを利用したエンドツーエンド通信の確認のためによく利用されるのがPing(ピングまたはピン)です。Pingは指定した宛先IPアドレスまでの通信ができるかどうかを確認するためにとてもよく利用するコマンドです。ネットワークの構築や運用管理でPingは必須のコマンドです。
Pingの仕組み
Pingの仕組みはとてもシンプルです。指定したIPアドレス宛てにICMPエコー要求メッセージを送信します。これは「送ったデータをそっくりそのまま送り返してください」という内容です。ICMPエコー要求メッセージを受け取ると、ICMPエコー応答メッセージとして、データをそのまま送り返します。ICMPエコー応答メッセージが返ってくれば、Pingは成功です。指定したIPアドレスとの間で、送ったデータの返事がきちんと返ってきているという往復のエンドツーエンド通信ができていることがわかります。そして、エンドツーエンド通信ができていることを指して、「IP接続性がある」とか「IP到達性がある」などと表現します。
Pingコマンド(Windows)
Windows OSのPCからPingを実行するにはコマンドプロンプトから次のコマンドを利用します。
Pingコマンド(Windows)
C:\ping <IPアドレス または ホスト名>
IPアドレスではなくホスト名を指定した場合は、自動的にDNSを利用してIPアドレスを求めてからICMPエコー要求メッセージを送信しています。
GoogleのWebサーバwww.google.co.jpにPingコマンドを実行すると、次のようになります。
GoogleのWebサーバのIPアドレスは、執筆時点のものです。IPアドレスは変更されている可能性があります。
Pingコマンドは簡単なネットワークのパフォーマンス計測も行っています。指定したIPアドレスまでラウンドトリップ時間(往復時間)がわかります。Pingのラウンドトリップ時間のことを「Ping値」と表現することがあります。オンラインゲームでの通信のパフォーマンスでよく利用される表現です。
なお、Pingの応答が返ってこないからといって、必ずしもエンドツーエンド通信ができないというわけではありません。セキュリティ上の観点から、Pingに応答しないように設定されている機器もあるからです。
関連記事
Pingコマンド(Cisco)
Cisco機器でPingコマンドを実行するには、コマンドラインから以下のコマンドを実行します。
Pingコマンド(Cisco)
#ping <ip-address|host>
CiscoでのPingコマンドの実行結果のサンプルは以下のようになります。
Pingのサンプル(Cisco)
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
「!」でPingの応答、すなわち、ICMPエコーリプライを受信したことを意味しています。その他、Pingコマンドの結果の意味は、以下の通りです。
表示結果 | 意味 |
---|---|
! | エコー応答を受信した |
. | タイムアウトした |
U | 宛先に到達できない |
Q | 送信元抑制メッセージを受信した |
M | フラグメントできない |
? | 不明なパケットタイプ |
& | パケットのTTL超過 |
そして、「ping」だけ入力してコマンドを実行すると、拡張pingを実行可能です。拡張pingは送信するICMPパケットのさまざまなパラメータを柔軟に指定できます。たとえば、ICMPパケット数やデータサイズ、送信元IPアドレスまたはインタフェースといったさまざまなパラメータを指定できます。
以下は拡張pingコマンドの実行例です。
拡張Pingのサンプル(Cisco)
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
拡張Pingコマンドで指定する各パラメータの意味を次の表にまとめています。
パラメータ | 概要 |
---|---|
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アドレスまでの通信ができるかどうかを確認するためにとてもよく利用するコマンドです。
- Pingコマンドを実行すると、指定したIPアドレスへICMPエコー要求メッセージを送信します。そして、その返事のICMPエコー応答メッセージを受信すると、往復の通信が正常にできていることがわかります。
- Cisco IOSで”ping”のみを入力してコマンドを実行すると、拡張Pingです。拡張Pingでは、送信するICMPメッセージのいろんなパラメータを指定できます。
TCP/IP
- TCP/IPの階層
- IP(Internet Protocol) ~データを送り届ける~
- ICMP ~きちんとIPで転送できますか?~
- Ping ~きちんとデータは届きますか?~
- Windows OSのPingコマンド
- トレースルート ~データはどのルータを通っていますか?~
- tracertコマンド(Windows OS)
- ICMPリダイレクト
- トラブルはどこ? ~Pingとトレースルート~
- ARP ~IPアドレスとMACアドレスを対応付け~
- ARPフォーマット
- Gratuitous ARP(GARP)
- ポート番号 ~どのアプリケーションのデータなの?
- TCPの概要
- TCPの動作
- UDPの概要
- アプリケーションのデータが届くまでのまとめ
- DNS ~宛先IPアドレスを求める~
- nslookupコマンド ~DNSの名前解決の確認~
- DHCP ~IPアドレスを自動割り当て~
- Cisco IOS DHCPサーバの設定と確認コマンド
- Ciscoルータ DHCPサーバの設定例
- DHCPリレーエージェント
- DHCPリレーエージェントの設定例[Cisco]
- DHCPサーバ配置のまとめ
- TCP/IPの設定のまとめ
- ipconfigコマンド ~Windows OSのTCP/IP設定を確認~
- Linux(Ubuntu)でのTCP/IP設定の確認コマンド
- Webサイト
- HTMLとCSS ~Webページを作る~
- URL ~Webサイト(Webページ)のアドレス~
- HTTP ~HTMLファイルを転送する~
- Webアプリケーション ~Webブラウザだけあればいい~
- HTTP Cookie
- Webアプリケーションのセッション管理
- Webプロキシサーバ ~Webアクセスを代わりに~
- Webアクセスのまとめ
- 電子メール
- SMTP ~電子メール送信用プロトコル~
- POP3 ~メール受信用プロトコル~
- IMAP4 ~メールサーバ上でメールを管理~
- 電子メールのまとめ
- FTP ~代表的なファイル転送プロトコル~
- TFTP ~簡易的なファイル転送プロトコル~
- Windows10/11のTFTPクライアント
- ネットワークのトラブルの切り分け手順