Ver Feed RSS

Brain Stress

Script para verificar ACK - nova versão

Avaliação: 2 votos, 5,00 média.
Caros,

Resolvi desenvolver novamente um script para controlar o ACK nas interfaces wireless, veja o que mudou:

- Codigo totalmente reescrito.
- Script varre TODAS as interfaces do AP que estão em modo ap-bridge, não sendo mais necessário criar um script para cada interface.
- Permite desconectar ou apenas listar no log os clientes que estão acima do ACK limite.
- Testado nas versões 3.25 até 3.30 e funcionou EM TODAS !!!! provavelmente funciona em todas as versões 3.X

Para instalar, basta ir em SYSTEM -> SCRIPTS e criar um novo script com o código !! Por padrão, o script não vai derrubar os clientes, execute assim para ver se o resultado é o esperado, depois altere a configuração a seu gosto.

Depois crie um SCHEDULE para executar automaticamente !!

Sugestões ? postem nos comentários !!


codigo do script (também anexado no post arquivo com o código)

Código :
#Script ACK-Check v0.1
#
#Lista as estacoes que estao com ACK acima do limite com opcao para desconecta-las
#
# Autor: Alexandre Jeronimo Correa <[email protected]>
# 20/11/2009 - 01:03am
#
#Instrucoes de uso:
#     -- Adicionar o codigo completo em SYSTEM >> SCRIPTS
#     -- Por padrao o script nao vai derrubar nenhuma estacao, rode o script padrao antes de
#         configurar a variavel cut para 1, tendo certeza que o script esta OK.
#     -- O script pode ser executado pelo botao "run script" ou via linha de comando.
#        "/ system script run <nome do script>
#     -- O script so funciona em interfaces que o modo de operacao seja AP-BRIDGE
#     -- Testado nas versoes 3.25 até 3.30
#
#Informacoes:
#
#Variavel ack -> deve ter o valor do ack MAXIMO permitido.
#Variavel cut ->  deve ser 0 ou 1, 0 somente mostra, 1 mostra e desconecta a estacao.
##################################################################
#Configuracoes das variaveis
:local ack 50;
:local cut 0;
 
############ Script - NAO ALTERAR #####################################
:local mac "";
:local uack "";
:local removido "";
:log warning ("[ackchk] Procurando clientes com ACK maior que " . $ack);
#pega a lista de interfaces AP wireless ativas, e que tenham ack dinamico
:foreach i in=[ / interface wireless find mode="ap-bridge" ack-timeout="dynamic" running] do={
          :local intname [ / interface wireless get $i name ];
          :log warning ("     Interface: " . $intname);
          :foreach x in=[/interface wireless registration-table find interface=$intname] do={
                    :set uack [/interface wireless registration-table get $x ack-timeout];
                    :set removido "";
                    :if ($uack > $ack) do={
                         :set mac [ / interface wireless registration-table get $x mac-address];                         
                         :if ($cut = 1) do= {
                              :set removido " removido...";
                              / interface wireless registration-table remove $x;
                         };
                    :log warning ("          mac: " . $mac . "@" . $intname . " [" . $uack . "]" . $removido);
                    };                    
          };
};
############ FIM #####################################
Miniaturas de Anexos Arquivos Anexos
Categorias
mikrotik , Artigos , Noticias , Dicas

Comentários

Página 1 de 5 12345 ÚltimoÚltimo
  1. Avatar de kitorkim
    Valeu, Alexandre, está funcionando direitinho, muito obrigado.
  2. Avatar de rogeriodj
    Muito bom amigo!!
  3. Avatar de Não Registrado
    Muito bom script... tem como postar num forum que participo sobre mikrotik: [url]http://www.mundomikrotik.com.br[/url] ?
    lembro de ter visto um cara perguntando por isso por lá.

    Mauricio
  4. Avatar de 14735
    alguem testou na v4.x?
  5. Avatar de SempreOnLine
    system scheduler
    add name="reboot" on-event=reboot start-date=aug/25/2009 start-time=05:00:00 interval=1d comment="" disabled=no
    add name="backup_dia" on-event=backup start-date=aug/25/2009 start-time=04:55:00 interval=1d comment="" disabled=no
    add name="queue2_sup_max" on-event=ativa_max start-date=aug/24/2009 start-time=08:30:00 interval=1d comment="" disabled=no
    add name="queue3_max_med" on-event=ativa_med start-date=aug/24/2009 start-time=09:10:00 interval=1d comment="" disabled=no
    add name="queue5_min_med" on-event=desativa_min start-date=aug/24/2009 start-time=00:30:00 interval=1d comment="" \
    disabled=no
    add name="queue51_BO" on-event=desativa_min start-date=aug/24/2009 start-time=15:00:00 interval=1d comment="" disabled=no
    add name="queue1_max_sup" on-event=desativa_max start-date=aug/24/2009 start-time=02:30:00 interval=1d comment="" \
    disabled=no
    add name="queue4_med_min" on-event=ativa_min start-date=aug/24/2009 start-time=11:00:00 interval=1d comment="" disabled=no
    add name="removehosts" on-event=removeallhostsP start-date=aug/25/2009 start-time=05:05:00 interval=10m comment="" \
    disabled=no
    add name="queue52_BO" on-event=ativa_min start-date=aug/24/2009 start-time=16:30:00 interval=1d comment="" disabled=no
    add name="queue10_med_max" on-event=desativa_med start-date=aug/24/2009 start-time=01:30:00 interval=1d comment="" \
    disabled=no
  6. Avatar de magnusrk8
    A outra versão já funcionava bem, esta mato a pau, muito bom. Valeu..
  7. Avatar de multlink
    uso a 4.2 e está normal nela valeu!
  8. Avatar de william
    aqui funcionou normal para versão 4.1, tenho uma duvida como que faço o Scheduler, pois fiz aqui e ele não roda o script.
    Segue abaixo como que fiz.

    no script coloquei o nemo de ack

    e em Scheduler coloquei assim: /system script run ack

    gostaria de saber a onde errei.
  9. Avatar de alexandrecorrea
    Código :
     / system script run ack

    NAO sei se estou certo , mas pode ser que um espaço depois da / !!

    vc definiu o intervalo de execução ?


    Citação Postado originalmente por william
    aqui funcionou normal para versão 4.1, tenho uma duvida como que faço o Scheduler, pois fiz aqui e ele não roda o script.
    Segue abaixo como que fiz.

    no script coloquei o nemo de ack

    e em Scheduler coloquei assim: /system script run ack

    gostaria de saber a onde errei.
  10. Avatar de william
    Ok Deu certo estava faltando tbm abiliar as opções do policy.
    Grato
Página 1 de 5 12345 ÚltimoÚltimo

+ Enviar Comentário