+ Responder ao Tópico



  1. #1

    Post Script de qualidade de enlace (CCQ) com bloqueio/desbloqueio de MAC

    Olá,

    Como todos devem saber, a qualidade do enlace de dois pontos é medida através do CCQ. Tendo isso como base é possível controlar e isolar os clientes com problema de forma rápida e descomplicada. Script funciona apenas no RouterOS 3.0 e superiores. Não irei fazer para versões antigas (crackeadas), favor não insistir.

    Código :
    # ====================================================
    #  CCQ Script 1.0 - Public Release (RouterOS 3.x/4.x)
    #  
    #      Victor G. Volpe ([email protected])
    # ====================================================
     
    # Interface monitorada
    :local if "AP-Master";
    # Porcentagem mínima de CCQ
    :local ccq 70;
    # Bloquear MAC (1=Ligado/0=Desligado)
    :local block 1;
    # Desbloquear MAC após X segundos (0=Desligado)
    :local unblock 60;
     
    # ======================================================================
    #  ATENÇÃO ! FIM DA CONFIGURAÇÃO. NÃO ALTERE MAIS NADA DAQUI PRA BAIXO.
    # ======================================================================
    :local mac;
    :foreach i in=[/interface wireless registration-table find interface=$if] do={
      :if ([/interface wireless registration-table get $i tx-ccq] < $ccq) do={
        :log warning ("[CCQ Script] Interface: $if - MAC: " . [/interface wireless registration-table get $i mac-address] . " - Tx CCQ: " . [/interface wireless registration-table get $i tx-ccq] . "%");
        :if ($block = 1) do={
          :set mac [/interface wireless registration-table get $i mac-address];
          /interface wireless access-list disable [/interface wireless access-list find mac-address=$mac];
          :if ($unblock > 0) do={
            /system scheduler add name="$mac" interval=$unblock on-event="/interface wireless access-list enable [/interface wireless access-list find mac-address=$mac];/system scheduler remove [/system scheduler find name=\"$mac\"];";
          };
        };
        /interface wireless registration-table remove $i;
      };
    };
    Para funcionar corretamente você deverá criar um novo cronograma em "System > Scheduler", conforme mostra a figura abaixo:
    http://img585.imageshack.us/img585/7985/sche.png
    Aonde "Interval" é o intervalo em que o script será executado e "On Event" fica o nome do script que você criou em "System > Script".

    Favor manter os créditos caso forem postar em outros fóruns e não se esqueça de agradecer.

    Obrigado.

  2. #2

    Thumbs up Re: Script de qualidade de enlace (CCQ) com bloqueio/desbloqueio de MAC

    Cara muito show, vou testar aqui e colocar depoimento, mas me conta uma coisa, eu tenho que por estas regras nas rbs finais ne... e se ela estiver em bridge, tem problema?



  3. #3

    Padrão Re: Script de qualidade de enlace (CCQ) com bloqueio/desbloqueio de MAC

    Ótima iniciativa, testando...

  4. #4

    Padrão Re: Script de qualidade de enlace (CCQ) com bloqueio/desbloqueio de MAC

    Citação Postado originalmente por netuai Ver Post
    Cara muito show, vou testar aqui e colocar depoimento, mas me conta uma coisa, eu tenho que por estas regras nas rbs finais ne... e se ela estiver em bridge, tem problema?
    Sim, pois é monitorado diretamente na interface. Não se esqueça de colocar o nome certinho da interface, no meu caso aqui se chama AP-Master

    Citação Postado originalmente por farias Ver Post
    Ótima iniciativa, testando...
    Muito obrigado.



  5. #5
    Patrocinador Avatar de edcomrocha
    Ingresso
    Aug 2007
    Localização
    São Paulo, Brazil, Brazil
    Posts
    840

    Padrão Re: Script de qualidade de enlace (CCQ) com bloqueio/desbloqueio de MAC

    Opa, vou testar numas rbs aqui e ver como se comporta.

    Obrigado.

  6. #6

    Padrão Re: Script de qualidade de enlace (CCQ) com bloqueio/desbloqueio de MAC

    Para quem utiliza PPPoE use o script abaixo, pois quando o cliente está apenas enlaçado não há trocas de pacotes necessários para calcular o CCQ e assim alguns terão seu MAC bloqueado sem motivo válido...

    Código :
    # ====================================================
    #  CCQ Script 1.1 - Public Release (RouterOS 3.x/4.x)
    #  
    #      Victor G. Volpe ([email protected])
    # ====================================================
     
    # Interface monitorada
    :local if "AP-Master";
    # Porcentagem mínima de CCQ
    :local ccq 70;
    # Bloquear MAC (1=Ligado/0=Desligado)
    :local block 1;
    # Desbloquear MAC após X segundos (0=Desligado)
    :local unblock 60;
     
    # ======================================================================
    #  ATENÇÃO ! FIM DA CONFIGURAÇÃO. NÃO ALTERE MAIS NADA DAQUI PRA BAIXO.
    # ======================================================================
    :local mac;
    :foreach i in=[/interface wireless registration-table find interface=$if] do={
      :if ([/interface wireless registration-table get $i tx-ccq] < $ccq) do={
        :set mac [/interface wireless registration-table get $i mac-address];
        :if ([/ppp active find caller-id=$mac] != "") do={
          :log warning ("[CCQ Script] Interface: $if - MAC: $mac - Tx CCQ: " . [/interface wireless registration-table get $i tx-ccq] . "% - PPPoE: " . [/ppp active get [/ppp active find caller-id=$mac] name] . "");
          :if ($block = 1) do={
            /interface wireless access-list disable [/interface wireless access-list find mac-address=$mac];
            :if ($unblock > 0) do={
              /system scheduler add name="$mac" interval=$unblock on-event="/interface wireless access-list enable [/interface wireless access-list find mac-address=$mac];/system scheduler remove [/system scheduler find name=\"$mac\"];";
            };
          };
          /ppp active remove [/ppp active find caller-id=$mac];
          /interface wireless registration-table remove $i;
        };
      };
    };
    Atenção ! Este script não funciona com HotSpot, apenas com autenticação PPPoE.



  7. #7

    Question Re: Script de qualidade de enlace (CCQ) com bloqueio/desbloqueio de MAC

    Citação Postado originalmente por youngrp Ver Post
    Olá,

    Como todos devem saber, a qualidade do enlace de dois pontos é medida através do CCQ. Tendo isso como base é possível controlar e isolar os clientes com problema de forma rápida e descomplicada. Script funciona apenas no RouterOS 3.0 e superiores. Não irei fazer para versões antigas (crackeadas), favor não insistir.

    Código :
    # ====================================================
    #  CCQ Script 1.0 - Public Release (RouterOS 3.x/4.x)
    #  
    #      Victor G. Volpe ([email protected])
    # ====================================================
     
    # Interface monitorada
    :local if "AP-Master";
    # Porcentagem mínima de CCQ
    :local ccq 70;
    # Bloquear MAC (1=Ligado/0=Desligado)
    :local block 1;
    # Desbloquear MAC após X segundos (0=Desligado)
    :local unblock 60;
     
    # ======================================================================
    #  ATENÇÃO ! FIM DA CONFIGURAÇÃO. NÃO ALTERE MAIS NADA DAQUI PRA BAIXO.
    # ======================================================================
    :local mac;
    :foreach i in=[/interface wireless registration-table find interface=$if] do={
      :if ([/interface wireless registration-table get $i tx-ccq] < $ccq) do={
        :log warning ("[CCQ Script] Interface: $if - MAC: " . [/interface wireless registration-table get $i mac-address] . " - Tx CCQ: " . [/interface wireless registration-table get $i tx-ccq] . "%");
        :if ($block = 1) do={
          :set mac [/interface wireless registration-table get $i mac-address];
          /interface wireless access-list disable [/interface wireless access-list find mac-address=$mac];
          :if ($unblock > 0) do={
            /system scheduler add name="$mac" interval=$unblock on-event="/interface wireless access-list enable [/interface wireless access-list find mac-address=$mac];/system scheduler remove [/system scheduler find name=\"$mac\"];";
          };
        };
        /interface wireless registration-table remove $i;
      };
    };
    Para funcionar corretamente você deverá criar um novo cronograma em "System > Scheduler", conforme mostra a figura abaixo:
    http://img585.imageshack.us/img585/7985/sche.png
    Aonde "Interval" é o intervalo em que o script será executado e "On Event" fica o nome do script que você criou em "System > Script".

    Favor manter os créditos caso forem postar em outros fóruns e não se esqueça de agradecer.

    Obrigado.
    Amigo ja vi que deve ser posto na RB, como os colegas falaram, mas uso um RB411AR com cartão onboard (desativado) e um R52H ativo, e tb tenho uma bridge ativa, qual das interfaces devo aplicar no script o cartão ou a bridge?

    * uso dhcp e hotspot

    Abraço e Parabéns pelo script!
    Última edição por mamaunet; 15-05-2011 às 18:16.