跳转至主要内容
最近我被要求对一个跟踪文件做一些分析,它的持续时间只有161秒,包含了260多万帧。我惊讶地发现,这些帧中大约75%是ping请求或ping回复。如果我没有识别出源IP地址,我就会下结论说目标是受到了拒绝服务攻击。相反,我了解到他们使用STCP的ping命令中的"run_forever"参数来监控目标的可到达性。

 

与大多数UNIX或Linux系统中的ping命令不同,STCP的ping命令在收到ping回复和下一个ping请求之间不会暂停。由于默认的ping次数只有4次,这并不是一个重要的问题。但是,当使用count参数或run_forever参数增加请求的数量时,会对系统、以太网适配器和网络造成很大的负荷。这使得STCP的ping命令的默认行为完全不适合对目标主机进行长期监控。

 

但是,默认的行为不适合,并不意味着不能使用ping命令进行长期监控。诀窍是重复执行命令每次发送一个ping请求,而不是执行一次命令就连续发送ping请求。下面的宏就可以做到这一点。
ping_forever命令宏
& ping_forever begins here
&
& Version 1.0 09-08-30
& noah.davids@stratus.com
&
&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

 

如你所见,前两个参数是直接传给ping命令的,对应ping的host和timeout参数。Ping的默认超时时间是15秒,但我认为这个时间太长了,在宏中我将其改为1秒。当然,你可以在宏中或者通过提供一个值作为参数来调整它。第三个参数是ping之间暂停的秒数,默认是1秒。因为运行宏和加载并执行ping命令需要时间,所以实际ping之间的时间会更长一些。Packet_monitor显示的时间在1.05到1.1秒之间。最后一个参数是UNIX或Linux ping不会给你的东西--每次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

 

© 2020 Stratus Technologies.