Página 1 de 6 12345 ... ÚltimoÚltimo
+ Responder ao Tópico



  1. 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 13:20. Razão: solucao para o ares

  2. 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 13:15.



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

    mais mesmo assim valeu ae!!

  4. 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:	293
Tamanho: 	65,9 KB
ID:      	1126  
    Última edição por undrtkr; 24-09-2007 às 13:19.



  5. 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?






Tópicos Similares

  1. Portas UDP - Passíveis de ataque?
    Por juniovitorino no fórum Segurança
    Respostas: 2
    Último Post: 15-02-2007, 11:01
  2. Firmware WL-5460AP controle de portas
    Por mpsbr2004 no fórum Redes
    Respostas: 1
    Último Post: 07-01-2007, 09:40
  3. Controle dinâmico de banda - ALTQ
    Por kaist no fórum Sistemas Operacionais
    Respostas: 2
    Último Post: 18-09-2005, 17:41
  4. Redirecionamento de porta ip dinamico!
    Por thelast no fórum Servidores de Rede
    Respostas: 5
    Último Post: 30-07-2005, 09:59
  5. Firewall com controle de portas
    Por haas no fórum Servidores de Rede
    Respostas: 2
    Último Post: 29-03-2004, 15:27

Visite: BR-Linux ·  VivaOLinux ·  Dicas-L