Página 1 de 4 1234 ÚltimoÚltimo
+ Responder ao Tópico



  1. #1
    Moderador Avatar de Magal
    Ingresso
    Mar 2007
    Localização
    Rio de Janeiro
    Posts
    2.041
    Posts de Blog
    118

    Padrão Colocando script de ACK para rodar automático

    1) Copie o script abaixo e crie um nome para ele; (script de autoria do Alexandre Correa)

    # Defina abaixo o valor mínimo de ACK
    :global ack 91;
    # Defina abaixo 1 para bloquear e 0 para não bloquear o cliente que estiver acima do valor mínimo
    :global block 1;
    # 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 "wlan1";
    #---------------------------------------------------------------------------------
    :global total 0;
    :global mac "";
    :global cliente "";
    :log info ("Listando Clientes com ACK acima de " . $ack . " us:");
    :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;
    /interface wireless access-list enable $cliente;
    };
    :set total total+1;
    };
    };
    :if ($total = 0) do={
    :log info ("Nenhum Cliente com ACK acima de " . $ack . " us encontrado.");
    } else {
    :if ($intdis = 1) do={
    /interface wireless disable $interf;
    /interface wireless enable $interf;
    };
    };

    2) Em scheduler é só criar com o mesmo nome, colocando o intervalo de tempo que vc quer que o script rode.
    Em on event tb coloque o mesmo nome.
    Última edição por Magal; 20-03-2009 às 21:26.

  2. #2

    Padrão

    desculpe a ignorancia, mas pode confirmar o q esse script faz?

  3. #3

    Padrão

    Citação Postado originalmente por damacenoneto Ver Post
    desculpe a ignorancia, mas pode confirmar o q esse script faz?
    derruba todos os clientes com ack maiores que o que voce definir !!

  4. #4
    danielmenezes
    Visitante

    Padrão

    o script funciona, já tinha econtrado ele postado no fórum ..

    ahh, a unidade do Ack está errada, são us (microsegundos) e não ms (milisegundos).

  5. #5

    Padrão

    Bom dia ..

    Aqui na minha rede eu nao vejo problemas com ack ..
    O problema que eu tenho e trugput de 1 ou 2 clientes abaixo de 1 mega que ferra toda a rede..
    Daria pra adaptar esse script a essa necessidade ?


    Arte mais ..,,

  6. #6

    Padrão

    entao ele derruba tds os clientes que estiverem com ack acima de x? QUando ele derruba os clientes, nao afeta nada os que estao abaixo do x?

  7. #7

    Padrão

    Citação Postado originalmente por fernandolv Ver Post
    Bom dia ..

    Aqui na minha rede eu nao vejo problemas com ack ..
    O problema que eu tenho e trugput de 1 ou 2 clientes abaixo de 1 mega que ferra toda a rede..
    Daria pra adaptar esse script a essa necessidade ?


    Arte mais ..,,

    Colega, você está enganado, uma coisa está diretamente ligada a outra.

  8. #8

    Padrão

    nem sempre. Ex. eu usava placas realtek 8185L, o ack era otimo, 30us, no entanto, a conexao ficava em 1mb.

    Pode ser esse o problema de nosso amigo... placas ruins.

  9. #9
    Moderador Avatar de Magal
    Ingresso
    Mar 2007
    Localização
    Rio de Janeiro
    Posts
    2.041
    Posts de Blog
    118

    Padrão

    Esse script é uma medida preventiva, principalmente para quem usa Hotspot com teste grátis.

  10. #10

    Padrão

    Citação Postado originalmente por damacenoneto Ver Post
    nem sempre. Ex. eu usava placas realtek 8185L, o ack era otimo, 30us, no entanto, a conexao ficava em 1mb.

    Pode ser esse o problema de nosso amigo... placas ruins.


    Não, vou interpretar como uma brincadeira o que você está dizendo da uma olhada nisso aqui:

    https://under-linux.org/forums/mikrotik/110911-se-ler-com-atencao-sua-rede-vai-melhorar.html


    Depois me diz alguma coisa...
    Última edição por Roberto21; 11-08-2008 às 20:12.

  11. #11

    Padrão

    Citação Postado originalmente por damacenoneto Ver Post
    entao ele derruba tds os clientes que estiverem com ack acima de x? QUando ele derruba os clientes, nao afeta nada os que estao abaixo do x?
    pelo que vi no script ele desabilita e reabilita a placa.

    afeta sim os outros clientes com ack normal.

    mas é algo quase que imperceptível.

    mas se vc tiver um cliente com problema na antena por exemplo, sua placa vai viver desabilitado e reabilitando, no tempo programado lógico.

    mas o script é ótimo, você poderia por exemplo, configurar um servidor smtp interno seu, para lhe enviar um e-mail com os cliente com ack altos, para posterior verificação.

  12. #12

    Padrão

    desabilita e habilita se VOCE configurar para isso (Veja no inicio do script q tem opção se vai ou nao desligar a interface)..

    aqui eu coloco pra rodar o script de 4 em 4 horas.. verificando ack maior que 40 .. se for maior.. ele derruba... geralmente resolve alguns clientes com ack alto.. voltam para 30

  13. #13
    Moderador Avatar de Magal
    Ingresso
    Mar 2007
    Localização
    Rio de Janeiro
    Posts
    2.041
    Posts de Blog
    118

    Padrão

    Roberto, ele não leu o seu ótimo tópico sobre o assunto. (se ler com atenção sua rede vai melhorar... )

    Sds.

    Citação Postado originalmente por Roberto21 Ver Post
    Não, vou interpretar como uma brincadeira o que você está dizendo da uma olhada nisso aqui:

    https://under-linux.org/forums/mikrotik/110911-se-ler-com-atencao-sua-rede-vai-melhorar.html


    Depois me diz alguma coisa...

  14. #14

    Padrão

    Citação Postado originalmente por alexandrecorrea Ver Post
    desabilita e habilita se VOCE configurar para isso (Veja no inicio do script q tem opção se vai ou nao desligar a interface)..

    aqui eu coloco pra rodar o script de 4 em 4 horas.. verificando ack maior que 40 .. se for maior.. ele derruba... geralmente resolve alguns clientes com ack alto.. voltam para 30
    alexandre,

    realmente, não havia prestado a atenção necessária no script.

    desculpe qq coisa.

  15. #15

    Padrão

    Inicialmente, um ola a todos!!
    Ja venho a um tempo lendo mto post aqui no forum mas soh agora resolvi registrar e participar mais ativamente!

    Dei uma estudada em alguns scripts que achei aqui e criei minha versao onde desconecto apenas quem estiver acima do valor mencionado e registra no log quem e o q foi feito.

    :global interf "SET1";
    :global ack 61;
    :global mac "";
    :global cliente "";
    :log info ("/////////////REBOOT CLIENTES C/ ACK > ".$ack." us/////////////");
    :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 (">".[/interface wireless registration-table get $i comment]." || ".$mac);
    :log info (">>".[/interface wireless registration-table get $i ack-timeout]." us");

    /interface wireless access-list disable $cliente;
    /interface wireless access-list enable $cliente;
    };
    };
    :log info ("/////////////END SCRIPT/////////////");


    Sei como colocar isto no scheduler, mas me pergunto se nao teria uma maneira de associar este script a um evento, como por exemplo, a cada conexao de um novo usuario na interface. Desta forma, derrubaria o cara sempre q tentasse conectar e tivesse com ack alto, o que tornaria mais eficaz do que estabelecer um intervalo de tempo para esta verificacao(se logo apos a verificacao o user conecta com ack alto, prejudica a rede ateh a prox verificacao).

    Alguem sabe se eh possivel e como associar a execucao de um script a um evento de entrada/conexao de usuario na wireless registration-table?

  16. #16

    Padrão

    No meu MK esse script não roda!!!

    Pq será?

  17. #17

    Padrão

    Na linha 1, subsitui 'SET1' pelo nome da interface wireless que tu quer monitorar com o script

  18. #18

    Padrão

    Sim, ja fiz isso, mas não roda!
    Clico em RUN e nada...

    Obrigado!

  19. #19
    Moderador Avatar de Magal
    Ingresso
    Mar 2007
    Localização
    Rio de Janeiro
    Posts
    2.041
    Posts de Blog
    118

    Padrão

    Amigo, copia esse script exatamente como está, so altere os campos que coloquei em vermelho, ou seja, vc vai criar um script para cada wlan (wlan1, wlan2 ou o nome que vc da para suas wlans) que vc tem e ele só vai atuar nos clientes que estiverem com ACK acima de 60 ou o valor que vc determinar.

    Obs: Já testei e funciona normalmente nas seguintes versões: 2.9.27, 2.9.48, 2.9.51, 3.10, 3.11, 3.12, e 3.13

    # Defina abaixo o valor mínimo de ACK
    :global ack 60;
    # Defina abaixo 1 para bloquear e 0 para não bloquear o cliente que estiver acima do valor mínimo
    :global block 1;
    # 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 "wlan1";
    #-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    :global total 0;
    :global mac "";
    :global cliente "";
    :log info ("Listando Clientes com ACK acima de " . $ack . " us:");
    :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;
    /interface wireless access-list enable $cliente;
    };
    :set total total+1;
    };
    };
    :if ($total = 0) do={
    :log info ("Nenhum Cliente com ACK acima de " . $ack . " us encontrado.");
    } else {
    :if ($intdis = 1) do={
    /interface wireless disable $interf;
    /interface wireless enable $interf;
    };
    };



    Citação Postado originalmente por rrvelasco Ver Post
    Sim, ja fiz isso, mas não roda!
    Clico em RUN e nada...

    Obrigado!
    Última edição por Magal; 21-08-2008 às 13:08.

  20. #20

    Padrão

    É, não sei o que esta havendo!

    Copiei o script acima (ctrl + c ctrl + v) coloquei em system -> scripts criei um nome para ele, alterei o nome da interface... Mas não vai! A unica coisa que ele faz é colocar no LOG a primeira informação "Listando Clientes com ACK acima de 61 us, fico com a fanela da interface aberta na aba Status e o ACK continua o mesmo!

    Não sei o que pode estar havendo...

    Estou querendo colocar esse script para rodar, para ver se acaba com um problema que estou tendo de Upload!
    Até 13:00 horas + ou - o Upload vai bem! Durante a tarde... Nem com resa brava!!!
    Estou achando que pode ser ACK muito alto!
    Alguem ja passou por isso? MK 2.9.27 com placas d-link dwl-ag520 2.4 antelas pluton ptx32

    Obrigado pela atenção de todos...