メインコンテンツへスキップ
最近、あるトレースファイルの分析を依頼されました。そのファイルはわずか161秒間の記録で、260万フレーム強を含んでいました。 驚いたことに、そのフレームの約75%がpingリクエストかping応答だった。送信元IPアドレスを認識していなければ、ターゲットがDoS攻撃を受けていると即断していただろう。実際には、STCPのpingコマンドに「run_forever」引数を使用してターゲットの到達可能性を監視していたことが判明した。

 

Linux pingコマンドとは異なり、STCPのpingコマンドはping応答を受信してから次のping要求を送信する間に待機しません。デフォルトのping回数が4回のみであるため、これは重大な問題ではありません。 しかし、count引数を使用してリクエスト数を増やしたり、run_forever引数を使用したりすると、システム、イーサネットアダプタ、ネットワークに大きな負荷がかかる可能性があります。このため、STCPのpingコマンドのデフォルト動作は、ターゲットホストの長期監視には全く適していません。

 

ただし、デフォルトの動作が不適切だからといって、pingコマンドを長期監視に利用できないわけではありません。コツは、コマンドを一度実行して連続したpingリクエストを送信するのではなく、1回ずつpingリクエストを送信するコマンドを繰り返し実行することです。以下のマクロがその処理を行います。
ping_forever コマンドマクロ
& ping_forever begins here
&
& Version 1.0 09-08-30
& [email protected]
&
&begin_parameters
TARGET   target:string,required
SECONDS  seconds:number=1
TIMEOUT  timeout:number=1
TIMESTAMP switch(-timestamp),=1
&end_parameters
&
&label again
display_line
&if &TIMESTAMP& &then display_line *** (date).(time) ***
ping &TARGET& -count 1 -timeout &TIMEOUT&
sleep -seconds &SECONDS&
&goto again
&
& ping_forever ends here

 

ご覧の通り、最初の2つの引数はpingコマンドに直接渡され、pingのホストとタイムアウト引数に対応しています。pingのデフォルトタイムアウトは15秒ですが、これは長すぎると考え、マクロではこれを1秒に変更しています。 もちろん、マクロ内で調整するか、引数として値を指定することで変更可能です。3番目の引数はping間の待機時間(秒単位)で、デフォルトは1秒です。マクロの実行やpingコマンドの読み込み・実行に時間がかかるため、実際のping間隔は若干長くなります。Packet_monitorでは1.05秒から1.1秒の間隔が確認されました。 最後のLinux 。各pingのタイムスタンプを記録し、ターゲットの応答停止時刻と再開時刻を特定できます。タイムスタンプが不要な場合は`-no_timestamp`引数で無効化可能です。

 

ping_forever の出力例
ping_forever 164.152.77.6
*** 09-08-30.11:45:38 ***
Pinging host 164.152.77.6 : 164.152.77.6
ICMP Echo Reply:TTL 60 time = 2 ms
Host 164.152.77.6 replied to the ping
*** 09-08-30.11:45:40 ***
Pinging host 164.152.77.6 : 164.152.77.6
ICMP Echo Reply:TTL 60 time = 2 ms
Host 164.152.77.6 replied to the ping
*** 09-08-30.11:45:41 ***
Pinging host 164.152.77.6 : 164.152.77.6
ping: No reply. Time Out !!
Host 164.152.77.6 didn't reply to the ping
*** 09-08-30.11:45:44 ***
Pinging host 164.152.77.6 : 164.152.77.6
ping: No reply. Time Out !!
Host 164.152.77.6 didn't reply to the ping
*** 09-08-30.11:45:47 ***
Pinging host 164.152.77.6 : 164.152.77.6
ICMP Echo Reply:TTL 60 time = 4 ms
Host 164.152.77.6 replied to the ping
*** 09-08-30.11:45:48 ***
Pinging host 164.152.77.6 : 164.152.77.6
ICMP Echo Reply:TTL 60 time = 3 ms
Host 164.152.77.6 replied to the ping

 

© 2024 ストラタス・テクノロジーズ