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...
[email protected]
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 <[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 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