障害対応に使う ping

最もシンプルで最初に実行されるコマンドがこれです。

$ ping www.yahoo.co.jp
PING www.yahoo.co.jp (203.216.235.201): 56 data bytes
64 bytes from 203.216.235.201: icmp_seq=0 ttl=50 time=20.0 ms
64 bytes from 203.216.235.201: icmp_seq=1 ttl=50 time=21.1 ms
64 bytes from 203.216.235.201: icmp_seq=2 ttl=50 time=21.6 ms

      • www.yahoo.co.jp ping statistics ---

3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 20.0/20.9/21.6 ms

統計データなども確認できますが、一番の目的は疎通確認です。
最初に実行される理由にアプリケーションよりも先にネットワークの接続を
確認すべきだからです。
 
問題がおきたと連絡がきた現場と、自分が別の場所にいる場合
まず問題の環境から

ping host

と実行する。
ここで疎通が確認できない場合、ネットワーク周りの障害であり
アプリケーション側である上位層に問題はないので切り分けができる。
現場がお客さんだったりするので、障害対応する人たちは大抵
自分の環境から試しに実行してみることが多いと思う。
もしそれで疎通ができなければ、大方ネットワークと目を付けるし、
疎通できたのならばお客さんの環境、サーバの設定ミス(直近で設定変更作業をした等)を
疑えばいい。
思い込みで動くのは外した場合、大きくタイムロスをするため
できる限り協力をお願いした方がいいとは思うけど・・・
 
上記の「www.yahoo.co.jp」へのpingの見方はこんな感じです

  • icmpシーケンス[icmp_seq]番号通りに並んで(到着して)いるか
  • パケットロス[num packets received, num%]がないか
  • 往復時間が遅延していないか、バラバラじゃないか[time=20.0 ms]

 
ネットワークの構築次第(WANであるとか)でこれらはバラバラでも問題がない場合がある。
そのため正常稼働時の状態を記憶しておくことも必要です。
しかし普段と違い、上記のケースが見られるならばネットワーク系のハードウェア障害の可能性があります。
 
そもそも応答がない場合―

  • unknown hostっぽい事が表示される

ホストとIPの照合ができていないということ。
DNSの設定の問題だといえる。ホスト名がだめならIPアドレスを地下打ちしてみる。
これで通ればDNSの設定に間違いない。
 

  • network unreachableっぽい事が表示される

これは、お外のネットワークに出れないよという事なので、
身内のネットワークに問題がある。もしくはホスト名、IPアドレス
打ち間違いというミスをしている。デフォルトゲートウェイなどの
ネットワークの設定に問題があるので、そこを確認すれば問題が解決できる。
 

  • no answer

100% packet loss
これを切り分けるには、範囲が大きいのでさらにコマンドを実行して
切り分ける必要がある。まずはローカルを疑い、そしてネットワークの経路を疑うのが順序です。
netstat、ifconfigを用い、ローカルの設定を確認し、問題がなければ
tracerouteを用い、ネットワークの経路を確認します。
その間に設定ミスがなければ、恐らくホスト先がサービスを停止しています。
または、pingでさえもあなたは拒否られています。
 
このようにping一つでも意外と問題を絞り込むことができる。
障害の多くはネットワークに問題がない場合が多いため
サラッと通り過ぎるところだが、ここで問題が確認できたことを考えると
ちゃんと頭に入れておく必要がある、よね^^