- - PR -
pingの誤検知について
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2006-06-30 13:01
現在、サーバの生死監視としてpingを使用した仕組みを導入しています。
詳細は、 OSがAIX5.2のサーバからaaaというホスト名のサーバに対して、 ping -w100 aaa 24 1 を実行し、戻り値を見て0ならば正常と判断させています。 対象サーバ(この場合aaa)のLANケーブルを抜いた状態でpingを行うと、ほとんどがtime outで終了となるのですが、ごく稀に全く異なるIPアドレスから返答が来たと認識してしまいます。 正常な場合の出力 PING aaa:(xxx.xxx.xxx.xxx):24 data bytes ----xxx.xxx.xxx.xxx PING Statistics---- 1 packets transmitted, 0 packets received, 100% packet loss おかしい場合の出力 PING aaa:(xxx.xxx.xxx.xxx):24 data bytes 32 bytes from yyy.yyy.yyy.yyy: icmp_seq=0 ttl=255 time=0 ms ホスト名に対してpingを打っていますが、名前解決は/etc/hostsのみを使用しており、問題は無いように見えます。 対策としては複数回実行する事や標準出力と対象IPアドレスのマッチングを行う等考えられますが、今回は原因そのものが知りたく、どうか御教示いただけないでしょうか。 pingは複数サーバに対して同時に行っており、関係の無いpingのreplyのidentifierフィールドが偶然同じになった場合に、このように判断してしまうのでしょうか。 よろしくお願いいたします。 |
|
投稿日時: 2006-06-30 19:43
異常になっている時、AIX上のARPテーブルの情報(arp -a かな)を確認してみてくさい。
本来のホストとは別のMACアドレスにIPアドレスが貼りつている可能性があります。 AIX上ルーティングプロトコル(RIP)とか動かしていませんか? |
|
投稿日時: 2006-06-30 19:47
いかんいかん、調べるのはAIXだけでは無かった!
途中にルータやL3SW-HUBとか介在するならそれらのARPテーブルも調査の必要があります。 |
|
投稿日時: 2006-07-03 11:17
非武装エリア様
回答ありがとうございます。 今回、相手のサーバも同セグメントですがL3スイッチを間にかましているので、次回発生時には(全てのN/W機器は難しいですが)「arp -a」コマンドを取得したいと思います。 また、OS開発元にも質問を投げたところ以下の回答がきました。概要のみですが、 ---- 複数のpingコマンドを同時に実行すると、二つ以上のpingコマンドが同じicmp_idを使用してしまうことがあり、その場合には同じicmp_idを使用しているpingコマンド同士でicmp_echo_replyを混同する。 例)"ping マシンBのIPアドレス" と "ping マシンCのIPアドレス" を同時に実行していて且つこの二つのpingコマンドが同じicmp_idを使用していると、マシンCから来たicmp_echo_replyを "ping マシンBのIPアドレス" のプロセスが表示してしまうことがある。AIXではpingプロセスIDを65536で割った余りを使用している。 ---- 私、このpingの仕様ははじめて知りました。これは他のOSでもそうなのでしょうか。 これを見ると、pingが同時実行されている場合は1/65536の確率で 混同してしまうんですね。さらに複数だとどんどん確率があがりますね。 今回のケースでは、ARPとicmp_idの二点に注意して今後追っていけば良いと判断しました。 |
1