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

  1. Avatar de kurtenet
    Parabens Alaxandre fico otimo, vlw
  2. Avatar de j34nsch
    parabéns amigo testado e aprovado, seria possivel modificar o arquivo para que ele guarde no file do mk um arquivo com as informações do cliente que esta com ack alto? t+ amigo valeu
  3. Avatar de UltraFox
    Seria interessante colocar para listar o nome do ACESS LIST "COMENTARIO" e ou HOST das estação clientes. Assim ficaria mais facil de achar os clientes com problema !
  4. Avatar de frednks
    gostaria de saber se deixo setado 50 nas interfaces, ou deixo dynamic??
    logico, junto com o script!

    a duvida eh, coloco o script pra rodar, de acordo q vc passou, porem em cada interface, eu deixo o ACK em dinamic?

    outra coisa, percebi aqui no meu mkt, q a maioria conecta em 30, porem alguns sao mais altos, nao seria interessante entao eu setar o script aqui em 30??? ou vc recomenda 50 msm??

    abracos
  5. Avatar de Nks
    gostaria de saber se deixo setado 50 nas interfaces, ou deixo dynamic??
    logico, junto com o script!
    a duvida eh, coloco o script pra rodar, de acordo q vc passou, porem em cada interface, eu deixo o ACK em dinamic?
    outra coisa, percebi aqui no meu mkt, q a maioria conecta em 30, porem alguns sao mais altos, nao seria interessante entao eu setar o script aqui em 30??? ou vc recomenda 50 msm??
    abracos
  6. Avatar de grandmaster
    Muito bom o script.
    ---
    Renato de Castro Henriques
    CobiT Foundation 4.1 Certified ID: 90391725
    Renato de Castro Henriques
  7. Avatar de ricardofjayme
    Pessoal,
    Já estou usando aqui na v 4.1 e tá funcionando sem problemas!
    Estive pensando se não seria possível adptar este script para fazer com os clientes com sinal abaixo de um determinado valor tb fossem desconectados... o que vocês acham? Como ainda não conheço a LP do Mk, vou dar uma analisada no excelente script do Alexandre e fazer uns testes aqui!
  8. Avatar de netosdr
    Excelente contribuição.
  9. Avatar de Kandango
    Funcionou blz no 4.2. Obrigado pela contribuição.
  10. Avatar de 14735
    na versao 3.22 nao deu certo :/
    quando da rum script no log aparece [ackchk] Procurando clientes com ACK maior que 35
    somente isso e nao derruba quem esta com ACK alto
    OBS: ja coloquei no cut o valor 1.
    alguem mais tentou na versao 3.22?

+ Enviar Comentário