Página 1 de 2 12 ÚltimoÚltimo
+ Responder ao Tópico



  1. #1

    Padrão controle dinamico de portas UDP (solucao para o ares)

    bom acho q não é só eu q tenho problemas com clientes q ultrapassam as velocidades dos queues devido aos programinhas de P2P como o famoso ares

    bom como eu tenho clientes q usam voip e o tal ares junto, fica dificil bloquear as portas UDP deles

    logo pensei em criar um script, de tantos em tantos minuto checaria a velocidade de cada cliente, se ela estivesse 10% acima do contratado o script bloquearia as portas UDP, quando a velocidade baixar 20% do contratado o script habilitaria novamente as portas UDP

    assim foi, cheguei até comentar com o amigo alexsuarezferreira no msn q estava preparando esse script, mas nao imaginava q iria acabar logo, em 6 horas de bateção de cabeça terminei e vou deixar aqui pro pessoal, pra quem quiser testar

    Requisitos:
    Simple Queue em todos clientes com Priority=8
    Faixas de IPs clientes q comecem com "1" ex: 192.168.x.x, 10.x.x.x
    Última edição por undrtkr; 24-09-2007 às 14:20. Razão: solucao para o ares

  2. #2

    Padrão

    Scheduler:
    Código :
    /system scheduler add name=controle_udp on-event=controle_udp interval=3m
    aqui o valor interval pode ser mudado pro valor q desejarem fazer a verificacao

    Scripts:
    Código :
    /system script add
    name="controle_udp" owner="admin" policy=ftp,reboot,read,write,policy,test,winbox,password source=
         :foreach i in=[/que sim find priority=8] do={
                   :global ip [/que sim get $i target-address];
                   :set ip [:pick [:tostr $ip] 0 [:find [:tostr $ip] "/"]];
     
                   :local rate [/que sim get [/que sim find target-address=$ip] rate];
                   :global rxrate [:pick $rate 0 [:find $rate "/"]];
                   :global txrate [:pick $rate ([:find $rate "/"]+1) [:len $rate]];
     
                   :local limit [/que sim get [/que sim find target-address=$ip] max-limit];
                   :local rxlimit [:pick $limit 0 [:find $limit "/"]];
                   :local txlimit [:pick $limit ([:find $limit "/"]+1) [:len $limit]];
                   :set rxlimit ($rxlimit + ($rxlimit / 10));
                   :set txlimit ($txlimit + ($txlimit / 10));
     
                   :if (($txrate > $txlimit) || ($rxrate > $rxlimit)) do={ /sys scri run [/sys scri find name=bloqueia_udp] };
     
                   :foreach j in=[/ip fire fil find src-port=1025-65535] do={
                             :local ipblock [/ip fire fil get $j comment];
                             :set ipblock [:pick [:tostr $ipblock] [:find $ipblock "1"] [:len $ipblock]];
                             :if ($ip = $ipblock) do={
                                  :local txlimit20 ($txlimit - ($txlimit / 5));
                                  :local rxlimit20 ($rxlimit - ($rxlimit / 5));
                                 :if (($rxrate < $rxlimit20) && ($txrate < $txlimit20)) do={ /sys scri run [/sys scri find name=desbloqueia_udp] };
                              }
                   }
          }

    Código :
    /system script add name="bloqueia_udp" owner="admin" policy=ftp,reboot,read,write,policy,test,winbox,password source=
         :log warning ("Cliente " . $ip . " ultrapassou a banda! (up: " . ($rxrate/1024) . "kbps / down: " . ($txrate/1024) . "kbps)");
         :log warning ("Bloqueando portas UDP do IP: " . $ip);
     
         /ip firewall filter add chain=forward src-address=$ip protocol=udp src-port=1025-65535 dst-port=1025-65535 action=drop comment=("Bloqueio das p
    ortas UDP por excesso de banda - " . $ip)


    Código :
    /system script add  name="desbloqueia_udp" owner="admin" policy=ftp,reboot,read,write,policy,test,winbox,password source=
         :log info ("Cliente " . $ip . " voltou para banda normal! (up: " . ($rxrate/1024) . "kbps / down: " . ($txrate/1024) . "kbps)");
         :log info ("Desbloqueando portas UDP do IP: " . $ip);
     
         /ip firewall filter remove [/ip fire fil find comment=("Bloqueio das portas UDP por excesso de banda - " . $ip)];

    quem axar interessante, pode testar

    lembrando q esse script foi criado por mim, e estou liberando ele publicamente pra quem quiser usa-lo
    Última edição por undrtkr; 24-09-2007 às 14:15.

  3. #3

    Padrão

    tenho impressão de já ter visto esse script no site gringo do mikrotik!!

    mais mesmo assim valeu ae!!

  4. #4

    Padrão

    Citação Postado originalmente por kilderman Ver Post
    tenho impressão de já ter visto esse script no site gringo do mikrotik!!

    mais mesmo assim valeu ae!!
    kilderman, o script fui eu q escrevi, e procurei um monte no forum gringo algo parecido e nao achei

    mas postei um topico sobre ele ontem a noite, pode pesquisar é uma idéia original do brasil hehehe (a idéia talvez nao, mas a mente q escreveu sim)

    o script já esta funcional aqui no meu provedor, bloqueando e desbloqueando as UDP dos clientes com ares, porem tive q mudar o scheduler para 3 minutos senão o cliente ja voltava a subir a banda durantes os 15 minutos

    segue imagem dele rodando no meu mikrotik:
    Miniaturas de Anexos Miniaturas de Anexos Clique na imagem para uma versão maior

Nome:	         script_rodando.JPG
Visualizações:	332
Tamanho: 	65,9 KB
ID:      	1126  
    Última edição por undrtkr; 24-09-2007 às 14:19.

  5. #5

    Padrão

    Muito boa iniciativa mano, mais quando tendo adicionar o 1° script da o seguinte erro:

    invalid value for argument target-addresses
    invalid item number

    Oq pode ser isto?

  6. #6

    Padrão

    Citação Postado originalmente por rogeriodj Ver Post
    Muito boa iniciativa mano, mais quando tendo adicionar o 1° script da o seguinte erro:

    invalid value for argument target-addresses
    invalid item number

    Oq pode ser isto?
    da uma verificada o correto seria
    target-addresses -> target-address

  7. #7

    Padrão

    Citação Postado originalmente por undrtkr Ver Post
    kilderman, o script fui eu q escrevi, e procurei um monte no forum gringo algo parecido e nao achei

    mas postei um topico sobre ele ontem a noite, pode pesquisar é uma idéia original do brasil hehehe (a idéia talvez nao, mas a mente q escreveu sim)

    o script já esta funcional aqui no meu provedor, bloqueando e desbloqueando as UDP dos clientes com ares, porem tive q mudar o scheduler para 3 minutos senão o cliente ja voltava a subir a banda durantes os 15 minutos

    segue imagem dele rodando no meu mikrotik:


    Olá camarada!!


    Você poderia postar as suas regras aqui, para que fique exatamente como a sua, mostrando quem foi bloqueado e quanto foi o excesso?


    Valeu?

  8. #8

    Padrão

    Citação Postado originalmente por Roberto21 Ver Post
    Olá camarada!!


    Você poderia postar as suas regras aqui, para que fique exatamente como a sua, mostrando quem foi bloqueado e quanto foi o excesso?


    Valeu?
    Roberto, vc nao vai precisar de nenhuma regra alem das q eu passei mais acima
    baste ter uma QUEUE para cada cliente com priority=8

    e esperar o script rodar, vc vai ver a acao dele no log como na foto q postei anteriormente, caso a banda ultrapasse 10% do max limit ele bloqueia as portas, caso a banda abaixe 20% do max limit ele volta a liberar as portas

  9. #9

    Padrão

    Citação Postado originalmente por undrtkr Ver Post
    Roberto, vc nao vai precisar de nenhuma regra alem das q eu passei mais acima
    baste ter uma QUEUE para cada cliente com priority=8

    e esperar o script rodar, vc vai ver a acao dele no log como na foto q postei anteriormente, caso a banda ultrapasse 10% do max limit ele bloqueia as portas, caso a banda abaixe 20% do max limit ele volta a liberar as portas
    blz-vlw, vou testar.

  10. #10

  11. #11

    Padrão

    Meu amigo, minha rede dos clientes aki sao 40.40.0.0/24 e 50.50.0/24
    tem como funcionar?

  12. #12

    Padrão

    Infelizmente não consegui colocar pra rodar o seu script, ta o mesmo erro, mais valeu, se alguem teve esse mesmo erro e conseguiu resolver me dê uma dica pra mim testar aqui tbm! Valeusss!

    Erro:
    invalid value for argument target-addresses
    invalid item number

  13. #13

    Padrão

    "lembrando q esse script foi criado por mim, e estou liberando ele publicamente pra quem quiser usa-lo"

    Valeu pela iniciativa, esse problema do ares está gerando várias iniciativas e o que noto são as formas diferentes de raciocínio, muito bom!

    Não será agora, mas guardei as regras para teste futuro, uma pergunta que versão do Mk usa?

  14. #14

    Arrow

    Amigo esse seu script de controle dinâmico de portas UDP pode ser usado na versão do mikrotik 2.9.27 estou querendo fazer um teste aqui no meu servidor a, por favor, coloca as regra do scrip em um bloco de nota para agente baixa. blz

  15. #15

    Padrão

    Silvawireless tem sim, infelizmente agora nao to meu PC, mas assim q tiver nele lhe envio por PM o script para redes q comecem com 40 e 50

    lfaria obrigado pelo apoio, o q alguem procura liberando algo do tipo é consideracao pelo feito, quanto ao mikrotik esse script eu fiz no 2.9.6 crack, porem ja comprei 3 licenças q estao em 3 CF-IDE só esperando pra ser migrado

    rogeriodj qual a versao do teu MK? provavelmente deve ser esse o teu problema, me passe por MP o print de alguma queue de cliente sua pra mim verificar

    joabjunior, creio q só testando no 2.9.27, logo q puder postarei em TXT

    estou fazendo mais algumas melhorias nesse script, esses ultimos dias tenho notado alguns bugs nele, mas funciona normalmente

    até mais

  16. #16

    Padrão

    Citação Postado originalmente por undrtkr Ver Post
    lfaria obrigado pelo apoio, o q alguem procura liberando algo do tipo é consideracao pelo feito, quanto ao mikrotik esse script eu fiz no 2.9.6 crack, porem ja comprei 3 licenças q estao em 3 CF-IDE só esperando pra ser migrado
    Esse lance da versão deve fazer muita diferença. Além do feito vc me despertou a curiosidade nos scripts do Mk. Eu sabia que existia, mas com certeza são bem mais poderosos do que esperava.

    Dei uma olhada no manual e vi que são muitos comandos. Uma coisa que eu gostaria de fazer é um jeito de restartar o meu modem Velox através de um script que possa checar a performance ou existência da conexão Velox e decidir em reiniciar o modem, tudo isso via telnet.

    Ainda vou ter que ralar muito...

  17. #17

    Padrão

    Ola amigo eu uso a versão 2.9.27, sera q pode ser isso o meu problema?






    http://img215.imageshack.us/img215/6606/queuelv6.jpg

  18. #18

    Padrão

    Achei Muito interessante seu iscript e achei mto bôa a sua iniciativa de compartilhar, más ele não funfou aqui no meu mk. Tá dando erro, o meu é versão 2.6. Não teria como vc dar um export e disponibilizar num bloco de notas???? valew!

    Outra coisa... se não me engano o seu mk é o msmo do meu 2.6, não teria como vc postar as suas configurações de queques? pq o meu tá controlando blz más na tela principal onde mostra o "rate" que é a taixa de transferência de cada cliente ele não está mostrando a velocidade real, penso q pode ser alguma config.

    Desde já agradeço.
    Última edição por izaufernandes; 27-09-2007 às 09:21.

  19. #19

    Padrão

    pois é galera, desculpem a demora mas estou resolvendo uns problemas grandes poraqui entao faltou tempo

    to vendo q o MK 2.9.27 é bem diferente do 2.9.6 q eu tava usando aqui

    teria de reescrever uma parte do codigo, vou instalar no vmware o 2.9.27 e adaptar o script pra ele pq é esse o problema,

    assim que der posto aqui ambos em txt como pedido

    agradeço a paciencia de vcs

  20. #20

    Padrão

    Citação Postado originalmente por izaufernandes Ver Post
    Achei Muito interessante seu iscript e achei mto bôa a sua iniciativa de compartilhar, más ele não funfou aqui no meu mk. Tá dando erro, o meu é versão 2.6. Não teria como vc dar um export e disponibilizar num bloco de notas???? valew!

    Outra coisa... se não me engano o seu mk é o msmo do meu 2.6, não teria como vc postar as suas configurações de queques? pq o meu tá controlando blz más na tela principal onde mostra o "rate" que é a taixa de transferência de cada cliente ele não está mostrando a velocidade real, penso q pode ser alguma config.

    Desde já agradeço.
    o MK q eu uso é o 2.9.6, porem vou migrar o script para o 2.9.27 q muita gente usa, e tbm para o 2.9.46 das minhas licencas

    a questao de nao mostrar a velocidade real nunca vi acontecer, geralmente acontece de o cliente passar da velocidade contratada devido aos programas de P2P, ou o trafego do cliente nao esta passando pela queue

    me diga exatamente qual a sua versao do MK q eu posso te ajudar