+ Responder ao Tópico



  1. #1

    Padrão Script para ativar/desativar regra em Mangle no Mikrotik

    Amigos, tenho um empresa que usa o meu link dedicado das 08:00hs as 17:00hs, e neste horário eu desativo uma regra em Ip - Mangle(Regra Out-PCC) que redireciona o tráfego do meus clientes para o link dedicado, e quando as 17:00hs ativo novamente para os meus clientes voltarem a utilizar o link dedicado.

    Gostaria de criar um script para ativar a regra automaticamente e desativar.

  2. #2

    Padrão Re: Script para ativar/desativar regra em Mangle no MikroTik RouterOS

    Citação Postado originalmente por vendasubiquiti Ver Post
    Amigos, tenho um empresa que usa o meu link dedicado das 08:00hs as 17:00hs, e neste horário eu desativo uma regra em Ip - Mangle(Regra Out-PCC) que redireciona o tráfego do meus clientes para o link dedicado, e quando as 17:00hs ativo novamente para os meus clientes voltarem a utilizar o link dedicado.

    Gostaria de criar um script para ativar a regra automaticamente e desativar.
    Considerando para X o número da sua regra no Mangle, às 8h, de cada dia, a regra será desativada, conforme código abaixo:

    Código :
    /system scheduler add interval=1d name=schedule-desativar on-event="//ip  firewall mangle disable X" start-date=jun/27/2013 start-time=08:00:00

    Considerando para X o número da sua regra no Mangle, às 17h, de cada dia, a regra será ativada, conforme código abaixo:

    Código :
    /system scheduler add interval=1d name=schedule-ativar    on-event="//ip firewall mangle enable X"  start-date=jun/27/2013 start-time=17:00:00

    Tenha em mente a importância de ter data e hora atualizada (com uso do cliente NTP, nativo no RouterOS), assim como o fuso horário corretamente definido (timezone). Se você está no fuso horário de Brasília, então:

    Código :
    /system clock set time-zone-name=America/Sao_Paulo

    Há ressalvas. Os agendamentos acima não terão efeito caso o RouterOS seja iniciado ou reiniciado, e o horário de execução do agendamento está dentro da janela de downtime, pois não considerará a hora atual para condicionar o último estado da regra. Se desligar o RouterOS às 7h59 e religar às 8h02, não haverá processamento retroativo.

    Tendo isso, uma outra regra precisa ser acionada, nos mesmos moldes do "reboot", no CRON de derivados Unix, que no caso do MikroTik RouterOS, é:

    Código :
    /system scheduler add ... ... ... start-time=startup

    Nesse script, você considerará a hora atual e condicionará a cada (re)inicialização,o estado de ativação ou desativação da regra.

    Com isso, você evita de fazer verificações cíclicas de curta duração (a cada minuto, por exemplo), desonerando assim a alocação de recurso e mantendo o log limpo.

    Espero ter ajudado.

    Saudações,

    Trober

  3. #3

    Padrão Re: Script para ativar/desativar regra em Mangle no Mikrotik

    Trober funciona eu ativar/desativar na regra em Mangle, Seção Time?
    Ela desativa e ativa? ou não funciona assim

  4. #4

    Padrão Re: Script para ativar/desativar regra em Mangle no Mikrotik

    Só não entendi a última regra, como devo preencher os últimos pontinhos "... ... ..."

  5. #5

    Padrão Re: Script para ativar/desativar regra em Mangle no MikroTik

    Citação Postado originalmente por vendasubiquiti Ver Post
    Trober funciona eu ativar/desativar na regra em Mangle, Seção Time?
    Ela desativa e ativa? ou não funciona assim
    Também é possível. A regra só terá efeito dentro do período definido.

    Considerando que "X" é o número da sua regra, o comando abaixo fará a regra ter efeito de segunda-feira à sexta-feira, das 8h às 17h.

    Código :
    /ip firewall mangle set X time=8h-17h,mon,tue,wed,thu,fri

    Saudações,

    Trober

  6. #6
    Moderador Avatar de gamineiro
    Ingresso
    Jan 2008
    Localização
    RS
    Posts
    423
    Posts de Blog
    2

    Padrão Re: Script para ativar/desativar regra em Mangle no Mikrotik

    Excelentes dicas do @trober.

    Fugindo um pouco do escopo do tópico, uma dica de uso do NTP é configurar o NTP Client do RouterOS no roteador de borda, usando os servidores do NTP.BR[1] (a.ntp.br e b.ntp.br). Depois habilite o NTP Server[2] nesse mesmo router. Em todos os outros equipamentos da rede, configure o NTP Client[2] para o SEU servidor.

    Assim você terá alguns benefícios como reduzir o consumo de banda para a internet (quase irrisório) e não necessitar de conexão à internet em todos os dispositivos da rede (equipamentos em bridge, por exemplo).

    [1] http://ntp.br
    [2] http://wiki.mikrotik.com/wiki/Manual:System/Time

    Abraço

  7. #7

    Padrão Re: Script para ativar/desativar regra em Mangle no MikroTik

    Citação Postado originalmente por gamineiro Ver Post
    Excelentes dicas do @trober.
    Fico feliz em ter contribuído

    Citação Postado originalmente por gamineiro Ver Post
    Fugindo um pouco do escopo do tópico, uma dica de uso do NTP é configurar o NTP Client do RouterOS no roteador de borda, usando os servidores do NTP.BR[1] (a.ntp.br e b.ntp.br).
    De forma alguma está fugindo do assunto. O usuário que abriu o tópico tem uma necessidade referente ao eixo do tempo, dentro da "matriz tempo espaço". Logo, a abordagem do NTP está totalmente de acordo com os propósitos deste tópico.

    Citação Postado originalmente por gamineiro Ver Post
    Assim você terá alguns benefícios como reduzir o consumo de banda para a internet (quase irrisório) e não necessitar de conexão à internet em todos os dispositivos da rede (equipamentos em bridge, por exemplo).
    Recomendo atenção ao cliente NTP do RouterOS. Esse serviço só faz requisição na inicialização. Se o servidor NTP for inalcançável no startup, seu RouterOS ficará sem data e hora no sistema, ad eternum. Esse comportamento é bem comum de ocorrer com o uso de roteamento dinâmico, pois há um tempo de espera para anúncio e troca de rotas.

    No caso de interfaces clientes de DHCP ou PPP (que também não são instantâneas), há um trigger que dispara a solicitação somente após a conexão já estabelecida, pois antes disso, parte-se do princípio que o servidor NTP estará inalcançável.

    Em clientes NTP mais inteligentes (ntpdate, por exemplo), este problema não ocorre, pois a verificação é periódica, e não única, como no RouterOS.

    Usei o TCPDUMP e ficou evidente que o RouterOS, até a versão 5.24, não faz "retry" de acesso ao servidor NTP.

    Saudações,

    Trober

  8. #8

    Padrão Re: Script para ativar/desativar regra em Mangle no Mikrotik

    Já notei isso do cliente NTP nao atualizar a data/hora, mas pelo que percebi, em caso a RB já tenha acesso a internet, basta "insistir", abrindo o cliente NTP pelo Winbox e dando Ok na configuracao, e fazendo um ping a um host externo a rede, nos meus casos, bastou para que o RouterOS atualizasse a data.

  9. #9

    Padrão Re: Script para ativar/desativar regra em Mangle no MikroTik

    Citação Postado originalmente por EribertoTorres Ver Post
    Já notei isso do cliente NTP nao atualizar a data/hora, mas pelo que percebi, em caso a RB já tenha acesso a internet, basta "insistir", abrindo o cliente NTP pelo Winbox e dando Ok na configuracao, e fazendo um ping a um host externo a rede, nos meus casos, bastou para que o RouterOS atualizasse a data.
    Eriberto, grato pelo testemunho

    Veja o tamanho do problema se você tiver 200 RBs, hehe. Seria uma afronta pedir para que alguém do NOC fizesse isso manualmente

    A solução "monstro-ogro-porcosa" que adotei for um script que redefine o cliente NTP (desativa, "zera" endereços e modo de operação) e define novamente, a cada 3 horas. Soluçãozinha muito feia, mas foi a forma de contornar as deficiências típicas "Like a MikroTik"

    Saudações,

    Trober

  10. #10

    Padrão Re: Script para ativar/desativar regra em Mangle no MikroTik

    Citação Postado originalmente por trober Ver Post
    Eriberto, grato pelo testemunho

    Veja o tamanho do problema se você tiver 200 RBs, hehe. Seria uma afronta pedir para que alguém do NOC fizesse isso manualmente

    A solução "monstro-ogro-porcosa" que adotei for um script que redefine o cliente NTP (desativa, "zera" endereços e modo de operação) e define novamente, a cada 3 horas. Soluçãozinha muito feia, mas foi a forma de contornar as deficiências típicas "Like a MikroTik"

    Saudações,

    Trober
    Realmente, para quem tem muitas deve ser um problemao, nao havia lembrado desse detalhe, visto que tenho 1 em operacao e 3 em bancada hehe.

    Nao dá para fazer um watchdog e forcar a RB pingar a cada certo tempo? Ou um script para que ela atualize os dados com frequencia? As minhas uma vez que iniciam nao tem problemas com o horário.

  11. #11

    Padrão Re: Script para ativar/desativar regra em Mangle no MikroTik

    Citação Postado originalmente por EribertoTorres Ver Post
    Nao dá para fazer um watchdog e forcar a RB pingar a cada certo tempo?
    Watchdog não é uma boa alternativa, neste caso, devido há existência de contratos com SLA.

    Citação Postado originalmente por EribertoTorres Ver Post
    Ou um script para que ela atualize os dados com frequencia?
    Foi a solução feia que adotei, a cada 3 horas.

    Citação Postado originalmente por EribertoTorres Ver Post
    As minhas uma vez que iniciam nao tem problemas com o horário.
    A obtenção de rotas é estática ou dinâmica?

    Saudações,

    Trober

  12. #12

    Padrão Re: Script para ativar/desativar regra em Mangle no MikroTik

    Citação Postado originalmente por trober Ver Post
    A obtenção de rotas é estática ou dinâmica?

    Saudações,

    Trober
    Nessas alturas, o importante é funcionar hehe. No meu caso tenho apenas uma rota estática, e pelo visto terei problemas quando tiver rotas dinâmicas.

  13. #13

    Padrão Re: Script para ativar/desativar regra em Mangle no MikroTik

    Citação Postado originalmente por EribertoTorres Ver Post
    Nessas alturas, o importante é funcionar hehe. No meu caso tenho apenas uma rota estática, e pelo visto terei problemas quando tiver rotas dinâmicas.
    Sim, sem scripts cíclicos, terá

    Não sei como está no MikroTik RouterOS 6.1, pois estou deixando as "flechadas nas costas" para os early adopters que quiserem trata-lo como "estável".

    Bem que no RouterOS 5.26 poderia ter uma opção chamada "refresh-time", no cliente NTP

    Mas voltando à necessidade do colega que originou o tópico, será que ele já resolveu o problema?

    Saudações,

    Trober

  14. #14

    Padrão Re: Script para ativar/desativar regra em Mangle no MikroTik RouterOS

    Citação Postado originalmente por trober Ver Post
    Considerando para X o número da sua regra no Mangle, às 8h, de cada dia, a regra será desativada, conforme código abaixo:

    Código :
    /system scheduler add interval=1d name=schedule-desativar on-event="//ip  firewall mangle disable X" start-date=jun/27/2013 start-time=08:00:00

    Considerando para X o número da sua regra no Mangle, às 17h, de cada dia, a regra será ativada, conforme código abaixo:

    Código :
    /system scheduler add interval=1d name=schedule-ativar    on-event="//ip firewall mangle enable X"  start-date=jun/27/2013 start-time=17:00:00

    Tenha em mente a importância de ter data e hora atualizada (com uso do cliente NTP, nativo no RouterOS), assim como o fuso horário corretamente definido (timezone). Se você está no fuso horário de Brasília, então:

    Código :
    /system clock set time-zone-name=America/Sao_Paulo

    Há ressalvas. Os agendamentos acima não terão efeito caso o RouterOS seja iniciado ou reiniciado, e o horário de execução do agendamento está dentro da janela de downtime, pois não considerará a hora atual para condicionar o último estado da regra. Se desligar o RouterOS às 7h59 e religar às 8h02, não haverá processamento retroativo.

    Tendo isso, uma outra regra precisa ser acionada, nos mesmos moldes do "reboot", no CRON de derivados Unix, que no caso do MikroTik RouterOS, é:

    Código :
    /system scheduler add ... ... ... start-time=startup

    Nesse script, você considerará a hora atual e condicionará a cada (re)inicialização,o estado de ativação ou desativação da regra.

    Com isso, você evita de fazer verificações cíclicas de curta duração (a cada minuto, por exemplo), desonerando assim a alocação de recurso e mantendo o log limpo.

    Espero ter ajudado.

    Saudações,

    Trober
    Olá @trober, boa noite. Sei que o tópico está antigo mas pesquisando encontrei. O mesmo Já me ajudou, porem surgiu uma duvida c/ relação a varias regras p/ ativar/desativar no Mangle.

    Como ficaria p/ regras X, Y, W, Z... ?

    Abraço e parabéns pela iniciativa!

  15. #15

    Padrão Re: Script para ativar/desativar regra em Mangle no MikroTik RouterOS

    Já consegui resolver, basta só separar usando a vírgula, dessa forma:
    add interval=1d name=desativa_xxxxxx on-event=\ "/ip firewall mangle disable 15,16,17,18,19,20" start-date=\
    apr/15/2015 start-time=18:00:05

    Abraço.

  16. #16

    Padrão

    Citação Postado originalmente por FabianoMartins2 Ver Post
    Já consegui resolver, basta só separar usando a vírgula...
    Que bom ter resolvido e contribuído com a divulgação da solução

  17. #17

    Padrão Re: Script para ativar/desativar regra em Mangle no MikroTik

    [QUOTE=trober;675029]Também é possível. A regra só terá efeito dentro do período definido.

    Considerando que "X" é o número da sua regra, o comando abaixo fará a regra ter efeito de segunda-feira à sexta-feira, das 8h às 17h.

    Código :
    /ip firewall mangle set X time=8h-17h,mon,tue,wed,thu,fri

    Saudações,

    Trober[/QUOTE

    Ok valeu Trober. Só não consegui fazer funcionar dessa forma que postou, ajustando a hora e os dias p/ a scheduler rodar. To na versão 6.22 do RouterOS.

  18. #18

    Padrão Re: Script para ativar/desativar regra em Mangle no Mikrotik

    Olá... gostaria de uma ajuda... preciso desabilitar uma interface sempre que parar de responder a um ping. Seguinte, tenho uma rede cabeada e sempre que algum switch conectado naquela interface parasse, a mesma seria desativada por 20 segundos e reativada assim, a rede volta a funcionar. Estamos tendo muitas oscilações na rede e muitos switches travam. Vamos associar a alimentação do ramal um dispositivo para resetar a rede sem precisar instalar um watchdog, estou na bancada desenvolvendo o reset...