IP Network: ping
COMMAND
ping - ネットワークの疎通を確認
DESCRIPTION
pingは、ネットワークの疎通を確認したいホストに対してIPパケットを発行し、そのパケットが正しく届いて返答が行われるかを確認するためのコマンドです。ICMPを用いてさまざまなエラーに応じたステータスを把握することができます。
確認したいホストから返答があれば、ホスト間のネットワークは正常であると判断されます。また、統計値を確認することで、ネットワーク性能を計測することもできます。
エラーが発生した場合、ICMPパケットの返答内容からある程度のエラーの原因は把握できるが、NICのハード障害なのかルータの障害なのかは、それぞれの機器を実際に調査しなければわかりません。
使用方法
疎通を確認したいホストのホスト名またはIPアドレスを指定します。
$ ping -c 10 www.google.com PING www.l.google.com (74.125.235.113) 56(84) bytes of data. 64 bytes from nrt19s02-in-f17.1e100.net (74.125.235.113): icmp_seq=1 ttl=52 time=15.4 ms 64 bytes from nrt19s02-in-f17.1e100.net (74.125.235.113): icmp_seq=2 ttl=52 time=11.8 ms 64 bytes from nrt19s02-in-f17.1e100.net (74.125.235.113): icmp_seq=3 ttl=52 time=9.04 ms 64 bytes from nrt19s02-in-f17.1e100.net (74.125.235.113): icmp_seq=4 ttl=52 time=10.4 ms 64 bytes from nrt19s02-in-f17.1e100.net (74.125.235.113): icmp_seq=5 ttl=52 time=11.6 ms 64 bytes from nrt19s02-in-f17.1e100.net (74.125.235.113): icmp_seq=6 ttl=52 time=9.16 ms 64 bytes from nrt19s02-in-f17.1e100.net (74.125.235.113): icmp_seq=7 ttl=52 time=26.8 ms 64 bytes from nrt19s02-in-f17.1e100.net (74.125.235.113): icmp_seq=8 ttl=52 time=12.6 ms 64 bytes from nrt19s02-in-f17.1e100.net (74.125.235.113): icmp_seq=9 ttl=52 time=9.30 ms 64 bytes from nrt19s02-in-f17.1e100.net (74.125.235.113): icmp_seq=10 ttl=52 time=12.3 ms --- www.l.google.com ping statistics --- 10 packets transmitted, 10 received, 0% packet loss, time 9020ms rtt min/avg/max/mdev = 9.043/12.867/26.871/5.025 ms $
この例では、74.125.235.113に対してpingが成功していることを示しています。
1行目 | ホスト「74.125.235.113」に対して 56bytesのデータサイズのパケットを送信します。ICMPのヘッダー 8bytes を足して 64bytes送信します。 |
途中経過 | この例ではパケットの送受信を10回行い、それぞれのステータスを表示しています。対象ホストのIPアドレスと受信したICMPパケットのデータサイズを示しています。「ttl」はTime To Live、「time」はパケットを送信してから受信するまでにかかった時間となります。 |
statistics | 転送総数に対して、送受信できたパケット数と損失率を表示しています。また全体の試行のうち、送受信にかかった最小時間、最大時間、平均時間を表示します。対象ホスト間のネットワー クのスループットを測定できます。 |
※ ICMPパケットを疎通できないように設定していることがあるので、pingが必ずしも利用できるわけではありません。
■ 疎通の失敗からネットワーク障害を推測
●失敗1:IPアドレスへのルーティングが不可など(存在しないIPアドレスやネットワークの指定)
$ ping -c 5 192.168.1.30 PING 192.168.1.30 (192.168.1.30) 56(84) bytes of data. From 192.168.1.5 icmp_seq=1 Destination Host Unreachable From 192.168.1.5 icmp_seq=2 Destination Host Unreachable From 192.168.1.5 icmp_seq=3 Destination Host Unreachable From 192.168.1.5 icmp_seq=4 Destination Host Unreachable From 192.168.1.5 icmp_seq=5 Destination Host Unreachable --- 192.168.1.30 ping statistics --- 5 packets transmitted, 0 received, +5 errors, 100% packet loss, time 4000ms , pipe 3 $
●失敗2:ルーティング設定のミスでループしてしまうなどによりパケットの寿命が尽きた
$ ping -c 5 192.168.2.30 PING 192.168.2.30 (192.168.2.30) 56(84) bytes of data. From 192.168.1.5 icmp_seq=1 Time to live exceeded From 192.168.1.5 icmp_seq=2 Time to live exceeded From 192.168.1.5 icmp_seq=3 Time to live exceeded From 192.168.1.5 icmp_seq=4 Time to live exceeded From 192.168.1.5 icmp_seq=5 Time to live exceeded --- 192.168.2.30 ping statistics --- 5 packets transmitted, 0 received, +5 errors, 100% packet loss, time 4008ms $
●失敗3:DNSの設定ミスなどによるホスト名の解決の失敗
$ ping -c 5 unknown.gadgety.net ping: unknown host unknown.gadgety.net $
●失敗4:対象ホストが停止中などのため疎通できない
$ ping -c 5 192.168.1.100 PING 192.168.1.100 (192.168.1.100) 56(84) bytes of data. --- 192.168.1.100 ping statistics --- 5 packets transmitted, 0 received, 100% packet loss, time 4001ms $
●失敗5:途中のルーターがICMPパケットをフィルタしている
$ ping -c 5 192.168.20.30 PING 192.168.20.30 (192.168.20.30) 56(84) bytes of data. From 192.168.20.1 icmp_seq=1 Packet filtered From 192.168.20.1 icmp_seq=2 Packet filtered From 192.168.20.1 icmp_seq=3 Packet filtered From 192.168.20.1 icmp_seq=4 Packet filtered From 192.168.20.1 icmp_seq=5 Packet filtered --- 192.168.20.30 ping statistics --- 5 packets transmitted, 0 received, +5 errors, 100% packet loss, time 4007ms $