Boa noite a todos, vou contribuir com um script que tem a função de dobrar a velocidade de cada cliente, (semelhante a função turbo do mk-auth) antes de tudo quero deixar claro que esse script foi adaptado para essa função, o script original tem outra função que é adicionar o cache full individual para cada cliente, e é de autoria da thagos hyper cache, o script abaixo verifica cada controle de banda individual na simple queue do mikrotik e adiciona as regras de marcar pacotes no mangle e dobra a velocidade no queue tree.
o script pode ser facilmente alterado nas variáveis que estão #comentadas
Funciona com pppoe e hotspot
o script não verifica o cliente por tipo autenticação e sim a simple queue, ex: se o cliente tem autenticação hotspot ele pega o login e ip do cliente e faz a marcação...
se o cliente tem autenticação pppoe ele pega o login e a interface e faz a marcação.
#===================================
# Dobra a velocidade baseado no
# plano contratado pelo cliente
#
#===================================
#
# Limite de velocidade do Turbo (aqui é o limite máximo que pode chegar em Mbps pode ser
# alterado para mais ou para menos, o mínimo é 1 que é referente a 1Mbps )
:local LimiteMaxClientes 10 ; \
#
# Velocidade do cliente * Multiplicador = Velocidade Dobrada ou seja multiplicando por 2
:local Multiplicador 2 ; \
#
# Velocidade máxima para poder usar Turbo ( em Mbps )
:local LimitePlano 5 ; \
#
# Velocidade mínima para poder usar Turbo ( em kbps )
:local MinPlano 100 ; \
#
#
#
#
#
#
# Remove as regras antigas do mangle
:foreach b in [/ip firewall mangle find where comment="Conexao-Turbo"] do={ /ip firewall mangle remove $b }; \
#
# Remove as queues antigas
:foreach c in [/queue tree find where comment="Conexao-Turbo"] do={ /queue tree remove $c }; \
#
#
#
#
#
# Para cada queue de cliente gera as regras
:foreach n in [/queue simple find] do={ \
:local targetaddress [/queue simple get $n target-addresses] ;\
:local queuename [/queue simple get $n name] ;\
:local interfacename [/queue simple get $n interface] ;\
:local prioridade [/queue simple get $n priority] ;\
:local limitemaximo [/queue simple get $n max-limit] ;\
:local limitemaxfull [:pick "$limitemaximo" "$([:find "$limitemaximo" "/" -1 ] + 1)" "$([:len "$limitemaximo"] - 1)" ] ; \
:local limitemaxunidade [:pick "$limitemaximo" "$([:len "$limitemaximo"] - 1)"]; \
:local limitemaxfullturbo "$($limitemaxfull * $Multiplicador)"; \
:local limitemaxplano "$LimitePlano";\
:local limitemax $LimiteMaxClientes ;\
:if ("$limitemaxunidade" = "k") do={ \
:set limitemax "$($LimiteMaxClientes * 1024)" ;\
:set limitemaxplano "$($LimitePlano * 1024)" ;\
} else { \
:if ("$limitemaxunidade" = "K") do={ \
:set limitemax "$($LimiteMaxClientes * 1024)" ;\
:set limitemaxplano "$($LimitePlano * 1024)" ;\
} else { \
:set MinPlano [:tonum "$($MinPlano / 1024)"];\
};\
};\
:if ($limitemaxfullturbo > $limitemax) do={ :set limitemaxfullturbo $limitemax } ;\
:if ($limitemaxfull <= $limitemaxplano) do={ \
:if ($limitemaxfull >= $MinPlano) do={ \
#
#
#
##
# Regra que marca os pacotes
:if ("$interfacename" = "all") do={ \
/ip firewall mangle add action="mark-packet" chain="forward" comment="Conexao-Turbo" \
disabled="no" dst-address="$targetaddress" new-packet-mark="Conexao-Turbo-$queuename" passthrough="no" ; \
} else { \
#
/ip firewall mangle add action=mark-packet chain="forward" comment="Conexao-Turbo" \
disabled="no" out-interface="$interfacename" new-packet-mark="Conexao-Turbo-$queuename" passthrough="no" ; \
}; \
##
#
##
# Queue tree com o limite por cliente
/queue tree add burst-limit=0 burst-threshold=0 burst-time=0s comment="Conexao-Turbo" \
disabled=no max-limit="$limitemaxfullturbo$limitemaxunidade" name="Conexao-Turbo-$queuename" \
packet-mark="Conexao-Turbo-$queuename" parent=global-out priority="$prioridade" \
queue=default ; \
##
#
#
}; \
}; \
}
:log info "Conexao Turbo" \
#==============================
#===- Edited by Jonas Oliveira
#==============================
para automatizar o script é preciso criar o agendamento de acordo com cada necessidade,
em anexo está todo o script com o agendamento da seguinte forma,
conexão turbo inicia a partir das 00:00hr e termina as 08:00hr da manhã para mudar esse tempo altere em system scheduler "iniciar-turbo" e "fim-turbo", atenção para o funcionamento correto do script, o relogio do mikrotik tem que está ajustado.
espero que esse script ajude!
Um abraço a todos e fiquem com Deus.
Respostas
muito bom, testado e aprovado
vou testar mas parece excelente
Testei aqui e funcionou 1000%, sempre quis fazer com que na madrugada fosse liberado mais banda, porem com o Plano Turbo do Mk Auth não tive sucesso, pois as regras nem sempre funcionavam direito, mas com essa aqui ficou muito bom.
qual a versão da rb que vc testou? pq aqui uso a 6.0 e não está dando certo da erro ( script error: input dows not match any value of value-name) quando rodo o script conexao-turbo.
Levi Ferreira disse:
uso na versão5.24
Aline disse:
mas não tem oque explicar ja ta tudo ai
Aline disse:
segue erro que aparece
cara na boa essa versao que vc ta usando na sua RB é lixo demais.
seguinte tenta na versao 5.24, vc ta pegando as regras em anexo?
Aline disse: