Página 6 de 16 PrimeiroPrimeiro ... 234567891011 ... ÚltimoÚltimo
+ Responder ao Tópico



  1. #31

    Padrão

    contribuindo mais... fiz uma alteração...

    voce pode definir.. se vai apenas DROPAR o cliente, forçando uma reconexão. em alguns casos.. o cliente volta com ack baixo

    Código :
    # Defina abaixo o valor mínimo de ACK
    :global ack 30;
    # Defina abaixo 1 para bloquear e 0 para não bloquear o cliente que estiver acima do valor mínimo
    :global block 0;
    # Defina abaixo 1 para dropar e 0 para não dropar o cliente que estiver acima do valor mínimo
    :global drop 1;
     
    # Defina abaixo a Interface
    :global interf "wlan1";
    # =============================================================================
    # ATENÇÃO ! SO FAÇA ALTERAÇÕES ABAIXO, SE TIVER CERTEZA DO QUE ESTA FAZENDO
    # =============================================================================
    :global total 0;
    :global mac "";
    :global cliente "";
    :log info "Listando Clientes com ACK acima de $ack ms:";
    :foreach i in=[/interface wireless registration-table find interface=$interf] do={
     :if ([/interface wireless registration-table get $i ack-timeout] > $ack) do={
       :log info ("COMENTARIO: " . [/interface wireless registration-table get $i comment] . " - MAC: " . [/interface wireless registration-table get $i mac-address] . " - ACK: " . [/interface wireless registration-table get $i ack-timeout]);
         :set mac [/interface wireless registration-table get $i mac-address];
         :set cliente [/interface wireless access-list find mac-address=$mac];
       :if ($block = 1) do={
         /interface wireless access-list disable $cliente;
       };
       :if ($drop = 1) do={
         /interface wireless registration-table remove $i;
       };
       :set total total+1;
     };
    };
    :if ($total = 0) do={
     :log info "Parabéns ! Nenhum Cliente com ACK acima de $ack ms encontrado.";
    };

  2. #32

    Padrão

    Citação Postado originalmente por alexandrecorrea Ver Post
    contribuindo mais... fiz uma alteração...

    voce pode definir.. se vai apenas DROPAR o cliente, forçando uma reconexão. em alguns casos.. o cliente volta com ack baixo
    Disso eu não sabia oO... bom... vou fazer isso então... pq tem uns clientes que vai de 35 pra 400 as vezes, mas to mandando o técnico ir la ver a instalação.

    Valew !



  3. #33

    Padrão

    exato.. eu desconecto todos que estao acima de 30 ... na maioria das vezes.. 80% volta com ack em 30 ... e os que novamente ficam com ack alto.. eu ja mando o tecnico urgente arrumar...

    as vezes um cliente ficou com ack alto por causa de algum outro cliente.. (alguma coisa momentanea) ...

    o ideal eh.. acima de 100 .. desconectar... rodar um script de 1 em 1 hora.. que cliente com ack acima de 100 .. seja desconectado..

  4. #34

    Padrão

    Citação Postado originalmente por alexandrecorrea Ver Post
    exato.. eu desconecto todos que estao acima de 30 ... na maioria das vezes.. 80% volta com ack em 30 ... e os que novamente ficam com ack alto.. eu ja mando o tecnico urgente arrumar...

    as vezes um cliente ficou com ack alto por causa de algum outro cliente.. (alguma coisa momentanea) ...

    o ideal eh.. acima de 100 .. desconectar... rodar um script de 1 em 1 hora.. que cliente com ack acima de 100 .. seja desconectado..
    Ah tah ! Saquei



  5. #35

    Padrão

    Olá Pessoal,

    Segue abaixo o script para RouterOS 2.9.x ou inferior:

    Código :
    # Defina abaixo o valor mínimo de ACK
    :global ack 30;
    # Defina abaixo 1 para bloquear e 0 para não bloquear o cliente que estiver acima do valor mínimo
    :global block 0;
    # Defina abaixo 1 para reiniciar a Interface quando um cliente estiver acima do valor mínimo e 0 para não fazer nada
    # Obs.: Ative apenas no último dos casos, pois derruba todos clientes enlaçados na Interface
    :global intdis 0;
    # Defina abaixo a Interface
    :global interf "AP-Master";
     
    # =============================================================================
    # ATENÇÃO ! SO FAÇA ALTERAÇÕES ABAIXO, SE TIVER CERTEZA DO QUE ESTA FAZENDO
    # =============================================================================
    :global total 0;
    :global mac "";
    :global cliente "";
    :log info ("Listando Clientes com ACK acima de " . $ack . " ms:");
    :foreach i in=[/interface wireless registration-table find interface=$interf] do={
      :if ([/interface wireless registration-table get $i ack-timeout] > $ack) do={
        :set mac [/interface wireless registration-table get $i mac-address];
        :set cliente [/interface wireless access-list find mac-address=$mac];
        :log info ("COMENTARIO: " . [/interface wireless access-list get $cliente comment] . " - MAC: " . [/interface wireless registration-table get $i mac-address] . " - ACK: " . [/interface wireless registration-table get $i ack-timeout]);
        :if ($block = 1) do={
          /interface wireless access-list disable $cliente;
        };
        :set total total+1;
      };
    };
    :if ($total = 0) do={
      :log info ("Nenhum Cliente com ACK acima de " . $ack . " ms encontrado.");
    } else {
      :if ($intdis = 1) do={
        /interface wireless disable $interf;
        /interface wireless enable $interf;
      };
    };

    Obs.: Infelizmente nesta versão não é possível derrubar o cliente sem ter que derrubar todos os outros, sendo assim use a função por sua conta e risco.

    Abraços.
    Última edição por youngrp; 18-05-2008 às 01:04.

  6. #36

    Padrão

    O script nao executou aqui, MK 2.9.27! Por que sera? Coloquei a interface correta e configurei somente para dropar. Mas nao executou!

    O que pode ser?



    Citação Postado originalmente por alexandrecorrea Ver Post
    contribuindo mais... fiz uma alteração...

    voce pode definir.. se vai apenas DROPAR o cliente, forçando uma reconexão. em alguns casos.. o cliente volta com ack baixo

    Código :
    # Defina abaixo o valor mínimo de ACK
    :global ack 30;
    # Defina abaixo 1 para bloquear e 0 para não bloquear o cliente que estiver acima do valor mínimo
    :global block 0;
    # Defina abaixo 1 para dropar e 0 para não dropar o cliente que estiver acima do valor mínimo
    :global drop 1;
     
    # Defina abaixo a Interface
    :global interf "wlan1";
    # =============================================================================
    # ATENÇÃO ! SO FAÇA ALTERAÇÕES ABAIXO, SE TIVER CERTEZA DO QUE ESTA FAZENDO
    # =============================================================================
    :global total 0;
    :global mac "";
    :global cliente "";
    :log info "Listando Clientes com ACK acima de $ack ms:";
    :foreach i in=[/interface wireless registration-table find interface=$interf] do={
     :if ([/interface wireless registration-table get $i ack-timeout] > $ack) do={
       :log info ("COMENTARIO: " . [/interface wireless registration-table get $i comment] . " - MAC: " . [/interface wireless registration-table get $i mac-address] . " - ACK: " . [/interface wireless registration-table get $i ack-timeout]);
         :set mac [/interface wireless registration-table get $i mac-address];
         :set cliente [/interface wireless access-list find mac-address=$mac];
       :if ($block = 1) do={
         /interface wireless access-list disable $cliente;
       };
       :if ($drop = 1) do={
         /interface wireless registration-table remove $i;
       };
       :set total total+1;
     };
    };
    :if ($total = 0) do={
     :log info "Parabéns ! Nenhum Cliente com ACK acima de $ack ms encontrado.";
    };