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.
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?
Re: Script de qualidade de enlace (CCQ) com bloqueio/desbloqueio de MAC
Ótima iniciativa, testando...
Re: Script de qualidade de enlace (CCQ) com bloqueio/desbloqueio de MAC
Citação:
Postado originalmente por
netuai
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
Ótima iniciativa, testando...
Muito obrigado.
Re: Script de qualidade de enlace (CCQ) com bloqueio/desbloqueio de MAC
Opa, vou testar numas rbs aqui e ver como se comporta.
Obrigado.
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.
Re: Script de qualidade de enlace (CCQ) com bloqueio/desbloqueio de MAC
Citação:
Postado originalmente por
youngrp
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! :top: