Pular para o conteúdo principal
Recentemente me pediram para fazer alguma análise de um arquivo de rastreamento, que tinha apenas 161 segundos de duração e continha um pouco mais de 2,6 milhões de quadros. Fiquei surpreso ao descobrir que aproximadamente 75% daqueles quadros onde o ping solicita ou o ping responde. Se eu não tivesse reconhecido o endereço IP de origem, teria chegado à conclusão de que o alvo estava sob um ataque de negação de serviço. Em vez disso, aprendi que eles estavam usando o argumento "run_forever" no comando ping do STCP para monitorar a capacidade de alcance do alvo.

 

Ao contrário do comando ping na maioria dos sistemas UNIX ou Linux, o comando ping da STCP não faz uma pausa entre receber uma resposta ping e o próximo pedido ping. Como o número padrão de pings é apenas 4, esta não é uma questão significativa. Mas quando o número de solicitações é aumentado usando o argumento de contagem ou o argumento run_forever é usado, isto pode criar uma carga significativa no sistema, no adaptador Ethernet e na rede. Isto torna o comportamento padrão do comando ping do STCP totalmente inadequado para o monitoramento a longo prazo de um host alvo.

 

Mas, só porque o comportamento padrão é inadequado, não significa que você não possa usar o comando ping para monitoramento a longo prazo. O truque é executar repetidamente o comando enviando um pedido de ping de cada vez em vez de executar o comando uma vez e enviar um fluxo contínuo de pedidos de ping. A macro a seguir fará isso.
ping_forever macro de comando
& 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

 

Como você pode ver, os dois primeiros argumentos são passados diretamente para o comando ping e correspondem aos argumentos de host e timeout do ping. O timeout padrão de Ping é de 15 segundos, mas eu acho que é muito longo e na macro mudei isso para 1 segundo. É claro que você pode ajustá-lo ou na macro ou fornecendo um valor como argumento. O terceiro argumento é o número de segundos para pausar entre os pings, o tempo padrão é 1 segundo. Como leva tempo para executar a macro e carregar e executar o comando ping, o tempo real entre os pings é um pouco mais longo. O Packet_monitor mostrou os tempos entre 1,05 e 1,1 segundos. O argumento final é algo que o UNIX ou Linux ping não lhe dará - um timestamp para cada ping para que você possa saber quando o alvo pára de responder e quando ele começou novamente. Se você não quiser os carimbos de data e hora, você pode desligá-los com o argumento -no_timestamp.

 

ping_forever exemplo de saída
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 Stratus Technologies.