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 eduardi
    tenta mudar de canal, deve ser canal com muito ruido.
  2. Avatar de jwjunior
    Citação Postado originalmente por eduardi
    tenta mudar de canal, deve ser canal com muito ruido.
    ja tentei de tudo e nada, procurei varios canais e estao poluidos o melhor canal é esse que os acks dos clientes de proximo nao fica muito bom e os de mais loge uma maravilha.
    em varios canais o ack de perto nao melhora e os de longe piora e entao achei um canal que
  3. Avatar de jwjunior
    Citação Postado originalmente por eduardi
    tenta mudar de canal, deve ser canal com muito ruido.
    ja tentei de tudo e nada, procurei varios canais e estao poluidos o melhor canal é esse que os acks dos clientes de proximo nao fica muito bom e os de mais loge uma maravilha.
    em varios canais o ack de perto nao melhora e os de longe piora e entao achei um canal que fica bom para os que estao longe e somente esses tres clientes que nao fica bom. ja troquei de tudo na casa do cliente para ver se melhora e nada.
  4. Avatar de Raniel
    Fiz uma add ao script:
    No new terminal
    # /file print file=ack

    Código :
    #Configuracoes das variaveis
    :local ack 133;
    :local cut 1;
    :local mac "";
    :local uack "";
    :local removido "";
    #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 ];
              :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);
                        /file set ack content=("          mac: " . $mac . "@" . $intname . " [" . $uack . "]" . $removido);
                        };                    
              };
    };

    Assim ele vai salvar os ack's alto no arquivo ack.txt.

    Espero ter ajudado!
  5. Avatar de mamaunet
    Não manjo muito, mas vou testar, onde devo por ele exatamente no meu Servidor ou na minha RB?
    Desculpem a ignorancia

    Abraços!
  6. Avatar de Não Registrado(s)
    Bom dia

    Criei o SCRIPTS normal e funfou blzinha agora estou tendo ploblema em criar o SCHEDULE para rodar automaticamente. sou meio leigo no assunto, tentei de varias formas la ja, será que alguem poderia me dar uma mao.

    obrigado

    [email protected]
  7. Avatar de Bender
    Obrigado ao Alexandre pelo script, mas aqui na minha infra estou passando por migração e estou com algumas Virtuais Ap em uso. tem como o script reconhecer a interface virtual? Obrigado.
  8. Avatar de peritinaicos
    Não entendi direito oque esse add faz, add ele mais nao criou nada na pasta file com extensao .txt quando executei o script. Vlw

    Citação Postado originalmente por Raniel
    Fiz uma add ao script:
    No new terminal
    # /file print file=ack

    Código :
    #Configuracoes das variaveis
    :local ack 133;
    :local cut 1;
    :local mac "";
    :local uack "";
    :local removido "";
    #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 ];
              :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);
                        /file set ack content=("          mac: " . $mac . "@" . $intname . " [" . $uack . "]" . $removido);
                        };                    
              };
    };
    Assim ele vai salvar os ack's alto no arquivo ack.txt.

    Espero ter ajudado!
  9. Avatar de magrock
    Versão 4.11 funcionando com perfeição...

    Muito bom o Script
  10. Avatar de geovane
    Muito bom, o ideal que ele trousesse o comentário do Access List, outra coisa é que ele não funciona com 'wlan virtual'.

    Parabéns

+ Enviar Comentário