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 alexandrecorrea
    a interface esta com ack dinamico ? tem alguem com ack acima de 35 ?

    se ele mostrou a mensagem e nao removeu ninguem.. o script esta funcionando (sendo executado corretamente) .. mas nao tem cliente nas especificações q voce configurou !!

    Citação Postado originalmente por 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?
  2. Avatar de cdcm
    existem alguma forma de criar um script automatico? pq tenho clientes com 6km q so funciona com ack em media de 160 us.
    grato.
  3. Avatar de alexandrecorrea
    o script ja é automatico... basta setar o ack maximo.. ele corta o que estiver acima..


    Citação Postado originalmente por cdcm
    existem alguma forma de criar um script automatico? pq tenho clientes com 6km q so funciona com ack em media de 160 us.
    grato.
  4. Avatar de cdcm
    desculpa Alexandre me expressei errado. queria determinar um valor de ack para cada cliente pelo mikrotik. pq esse cliente q esta a 6km fica desconectando, mesmo estando com sinal bom. por isso perguntei se tem algum script q tetermine um valor fixo. esse cliente usa placa pci. e ele nao quer compra um roteador, ai teria como setar la o ack fixo.
  5. Avatar de alexandrecorrea
    nao adianta os clientes ficarem com ack 30.. mas tem um bendito com 160... entao o ack do cartao fica em 160 ...

    o que voce deve fazer eh colocar um router ou antena de maior ganho... para resolver este problema..

    voce pode ter problemas futuros com isso..

    Citação Postado originalmente por cdcm
    desculpa Alexandre me expressei errado. queria determinar um valor de ack para cada cliente pelo mikrotik. pq esse cliente q esta a 6km fica desconectando, mesmo estando com sinal bom. por isso perguntei se tem algum script q tetermine um valor fixo. esse cliente usa placa pci. e ele nao quer compra um roteador, ai teria como setar la o ack fixo.
  6. Avatar de cdcm
    Citação Postado originalmente por alexandrecorrea
    nao adianta os clientes ficarem com ack 30.. mas tem um bendito com 160... entao o ack do cartao fica em 160 ...

    o que voce deve fazer eh colocar um router ou antena de maior ganho... para resolver este problema..

    voce pode ter problemas futuros com isso..

    obrigado.
    vo colocar o router mesmo.
  7. Avatar de 14735
    Citação Postado originalmente por alexandrecorrea
    a interface esta com ack dinamico ? tem alguem com ack acima de 35 ?

    se ele mostrou a mensagem e nao removeu ninguem.. o script esta funcionando (sendo executado corretamente) .. mas nao tem cliente nas especificações q voce configurou !!
    Funcionou na versao 3.22 tbm aprovado^^
    Atualizado 22-02-2010 em 23:11 por 14735
  8. Avatar de jmathayde
    Me dis uma coisa para fazer com que o cliente com ack alto naoconecte como faço ?
  9. Avatar de eduardi
    boas , funciona bem, obrigado.

    2 questões

    1- depois de derrubar o cliente, quanto tempo fica derrubado?
    2- qual o intervalo ideal , para rodar o script no scheduler?
  10. Avatar de jwjunior
    Citação Postado originalmente por alexandrecorrea
    o script ja é automatico... basta setar o ack maximo.. ele corta o que estiver acima..
    preciso de ajuda tenho 3 clientes bem proximos usando clinte ap com o sinal -50 so que o ack ta em 240 oque pode ser?

+ Enviar Comentário