+ Responder ao Tópico



  1. bom, respondendo a minha propria pergunta...eu fiz e funcionou aqui!!

    ele da um 'disable' no cliente e logo ja da um 'enable' em seguida...
    suficiente pra pessoa reconectar e abaixar o ack!

    novamente, agradeço o desenvolvimento desse script e eta ai a minha pequena mudança:

    Código :
    # Defina abaixo o valor mínimo de ACK
    :global ack 39;
    # 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";
     
    # =============================================================================
    # 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;
      /interface wireless access-list enable $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;
      };
    };

  2. Como ficaria um script para desconectar um cliente com ip "0.0.0.0"

    Estou com este problema aqui, o cliente conecta mas nao fica com o ip (nao uso dhcp), quando desconecto o cliente, ele volta com ip correto.



  3. Citação Postado originalmente por netosdr Ver Post
    Como ficaria um script para desconectar um cliente com ip "0.0.0.0"

    Estou com este problema aqui, o cliente conecta mas nao fica com o ip (nao uso dhcp), quando desconecto o cliente, ele volta com ip correto.

    essa pergunta ja eh pros grandes...mas nao foge dessa regra ai nao...

    tem que ver como que captura o LAST IP do Registration e se for igual a 0.0.0.0 ele faz os comandos que precisa.

  4. Eu tentei por aquele script alterando ele mas não tenho experiência...



  5. Citação Postado originalmente por youngrp Ver Post
    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.
    Colega, como ficaria esse script para gerar um arquivo.txt em files dos histórios de clientes com ack alto, bem como envio por email do mesmo.






Tópicos Similares

  1. regra para ack timeout
    Por thenet no fórum Redes
    Respostas: 15
    Último Post: 22-11-2007, 21:58
  2. Ack timeout
    Por EDUipiranga no fórum Redes
    Respostas: 5
    Último Post: 10-09-2007, 11:09
  3. ACK TimeOut fixo ou dinâmico?
    Por marcelomg no fórum Redes
    Respostas: 9
    Último Post: 24-02-2007, 00:38
  4. O que interfere no ACK TimeOut (cartão como AP)
    Por liandrocarniel no fórum Redes
    Respostas: 16
    Último Post: 22-02-2007, 08:41
  5. Ack Timeout
    Por alexsk no fórum Redes
    Respostas: 0
    Último Post: 29-08-2006, 14:25

Visite: BR-Linux ·  VivaOLinux ·  Dicas-L