Fiz tambem os cadastro no access-list.. nao roda em na versao 4beta3,3.25,3.27etc... apenas na 3.23... sera que da para chamar o super Alexandre Correa.. ?
VAleu..![]()
Fiz tambem os cadastro no access-list.. nao roda em na versao 4beta3,3.25,3.27etc... apenas na 3.23... sera que da para chamar o super Alexandre Correa.. ?
VAleu..![]()
Para quem usa RBs como Bridge, fiz uma adaptação do script do Alexandre:
http://www.forumweb.com.br/tecnologi...zado-mikrotik/
Última edição por EdilsonLSouza; 23-08-2009 às 20:26.
Funciona normal em todas as versões.
Testei com as versões 3.13, 3.27 e 3.28
Uma Dúvida..
que linguagem é essa?
Phyton?
existem algum que posso estudar sobre o uso dessa linguagem para mikrotik?
abraço
Amigos, uso MK em modo Bidge aqui no provedor, clientes autenticando via PPPoe em Linux. Queria saber dos amigos se o o ack de um cliente muda "durante" a navegação, pois se isso ocorrer, no meu caso acho que vai ser inviavel colocar script pois derrubaria a conexão pppoe do cliente e ele ficaria travado até terminar o timeout. Alguém implementou em um ambiente semelhante?
Abraço!
vc poderia nos ajudar nesta questão
estou tendo dificuldades em aplicar esta configuração nos meus mk, não entendo bem de scripts....poderia me ajudar...
bruno.paespedro@gmail.com
testei os dois nao versao 3.22 e nao funcionou
Código :# Defina abaixo o valor mínimo de ACK :global ack 35; # 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; }; };
Código :# #Lista as estacoes que estao com ACK acima do limite com opcao para desconecta-las # # Autor: Alexandre Jeronimo Correa <ajcorrea@gmail.com> # 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 35; :local cut 1; ############ 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="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 #####################################
o que pode estar errado ?
nas duas so aparece no log a msg "procurando clientes com ACK maior que 35
e nao faz mais nada ou mostra os clientes e nao derruba os que esta com ACK alto.
outra coisa o primeiro na versao 2.9.27 crack funcionou
o segundo naversao 4.x funcionou
mais na versao 3.22 nenhum dos dois funcionou aki :/
funciona nas versoes 3.x !!! na 2.x nao deve funcionar...
e funciona em TODAS !!! as interfaces precisam ter ack-dinamico e estar em ap-bridge !! só isso !!
Resussitando o topico sobre ack tenho duvidas aqui , e nao consigo entender direito
RB 3.25 ate fuciona , mais ele nao bloqueia o maltito mac , ai o script desconcta e la vem o safado conectar denovo , como faço para que o mac fique sem conectar no RB