Página 4 de 10 PrimeiroPrimeiro 123456789 ... ÚltimoÚltimo
+ Responder ao Tópico



  1. #61

    Padrão Re: PPoE - QoS Dinâmico e Individual

    Citação Postado originalmente por JonasMT Ver Post
    Aqui quando cliente desconecta do pppoe e volta ele nao adicionar a regra correta de parent tbm, ao deletar da queue ai que ele adicona tudo pelas metade. Mais alguem com esse problema?
    vc notou se quando ele desconecta se está sendo excluído automaticamente as regras desse cliente?

  2. #62

    Padrão Re: PPoE - QoS Dinâmico e Individual

    Citação Postado originalmente por JonasMT Ver Post
    Aqui quando cliente desconecta do pppoe e volta ele nao adicionar a regra correta de parent tbm, ao deletar da queue ai que ele adicona tudo pelas metade. Mais alguem com esse problema?
    Mesmo problema aqui!!

    Vamos achara o problema @AndrioPJ dai sim vai ficar TOP.

  3. #63

    Padrão Re: PPoE - QoS Dinâmico e Individual

    Citação Postado originalmente por AndrioPJ Ver Post
    vc notou se quando ele desconecta se está sendo excluído automaticamente as regras desse cliente?
    Nao deleta e creio ser justamente esse o problema, ao fazer manual ele se perde de vez.

  4. #64

    Padrão Re: PPoE - QoS Dinâmico e Individual

    Coloquem um ( :delay 3s; ) no início do script que vai resolver, boa noite a todos

  5. #65

    Padrão Re: PPoE - QoS Dinâmico e Individual

    Citação Postado originalmente por jrdecezere Ver Post
    Coloquem um ( :delay 3s; ) no início do script que vai resolver, boa noite a todos
    Alguem testo a dica acima?

  6. #66

    Padrão Re: PPoE - QoS Dinâmico e Individual

    Citação Postado originalmente por JonasMT Ver Post
    Alguem testo a dica acima?
    Eu uso delay em quase todas as regras dos Scripts, até mesmo nas do mk-auth.

  7. #67

    Padrão Re: PPoE - QoS Dinâmico e Individual

    Citação Postado originalmente por JonasMT Ver Post
    Nao deleta e creio ser justamente esse o problema, ao fazer manual ele se perde de vez.
    Vc adicionou a regra na aba Scripts > On Down ???

  8. #68

    Padrão Re: PPoE - QoS Dinâmico e Individual

    Citação Postado originalmente por AndrioPJ Ver Post
    Prezados,

    Resolvido!!!
    Mais tarde devo atualizar o script.

    O que eu fiz?

    Quando o script vai buscar o valor do Burst-time, o valor vem assim "upload/download", exemplo:
    30s/30s

    ou

    1m20/1m20

    Então, primeiramente eu isolei o download:
    Código :
        :local burstt [/queue simple get $i burst-time];
        :local indexExplod [:find $burstt "/"];
        :local lenth [:len $burstt];
        :local bt [:pick $burstt ($indexExplod + 1) ($lenth - 1)];

    Pronto, com o código acima eu tenho apenas o valor do download.
    O problema é quando o tempo é maior que 59s, ai o mikrotik altera de segundos para minutos.
    ou seja, 80s vira 1m20

    Se tentarmos adicionar uma regra com o valor 1m20, dá erro, e a regra não é adicionada.
    Então temos que converter esse 1m20 para 80 segundos.

    Consegui fazer isso com o script abaixo:
    Código :
        :local indexExplod [:find $bt "m"];
        :local lenth [:len $bt];
        :local bt0 {:pick $bt 0 ];
        :local bt1 [:pick $bt ($indexExplod + 1) ($lenth - 1)];
        :local bt2 [:pick $bt ($indexExplod + 1) $lenth ];
        :local cBt [(($bt0 * 60) + $bt1)];

    Resumindo:
    Primeiro isolei o valor e depois transformei ele em segundos.
    Massa

  9. #69

    Padrão Re: PPoE - QoS Dinâmico e Individual

    Assim que chegar a minha ccr de backup eu irei testar

  10. #70

    Padrão Re: PPoE - QoS Dinâmico e Individual

    Citação Postado originalmente por AndrioPJ Ver Post
    Vc adicionou a regra na aba Scripts > On Down ???
    Sim foi adicionado!

  11. #71

    Padrão Re: PPoE - QoS Dinâmico e Individual

    a regra esta 100% estável? posso testar?

  12. #72

    Padrão Re: PPoE - QoS Dinâmico e Individual

    Citação Postado originalmente por alextaws Ver Post
    a regra esta 100% estável? posso testar?
    Aqui tive os problema que citei acima, quando cai pppoe ele nao recria as regras corretas. Deletei tudo copie novamente e problema continuo, fui obrigado a tirar.

  13. #73

    Padrão Re: PPoE - QoS Dinâmico e Individual

    Citação Postado originalmente por leandromidia Ver Post
    Jonas, no meu caso, quando um cliente cai, a regra é removida, assim que ele entra, a regra é criada, tudo automaticamente.
    Não tive problemas.
    Anexo 67101
    Qual versao do router se ta usando? Aqui ele cria pelas metade, se deletar ela manualmente por completo ai é que nao cria nada, ou pega o parent global unknown.

    Aqui sao cerca 920 sessão pppoe

  14. #74

    Padrão Re: PPoE - QoS Dinâmico e Individual

    Aqui não uso Burst. Qual como devo por o script?

    Meus planos hoje são: 2megas, 3megas, 4megas e 5megas.

    Clientes usando IP público sem nat.

    Obrigado

  15. #75

    Padrão Re: PPoE - QoS Dinâmico e Individual

    Vou testar aqui. Tô tendo problemas depois das 9 horas até as 00:00 do cliente não conseguir consumir a banda toda nas redes sociais e YouTube mesmo com link sobrando. Acredito que seja o fornecedor e estamos para trocar o mesmo.

  16. #76

    Padrão Re: PPoE - QoS Dinâmico e Individual

    Que tópico meus colegas!!! Altíssimo nível!! Por isso antes de testar essas regras eu gostaria de ler algum material sobre QoS no RouterOS. Gostaria de ter um entendimento mais aprofundado sobre o tema antes de aplicar uma solução tão sofisticada. Alguém tem um material para disponibilizar aqui?

  17. #77

    Padrão Re: PPoE - QoS Dinâmico e Individual

    Tem um PDF de uma apresentação do mum. Muito boa. Atenção que mudou o QoS da versão 6. Tem muita gente falando coisas da versão anterior.

  18. #78

    Padrão Re: PPoE - QoS Dinâmico e Individual

    Opa, se puder deixar o link aí, seria de grande ajuda.

  19. #79

    Padrão Re: PPoE - QoS Dinâmico e Individual

    Boa tarde muito boa a contribuição. Adicionei as regras na rb 3011 com 210 conexões ppoe, com planos 1,2 e 3 megas tudo funcionando perfeitamente. Notei uma boa melhora na navegação dos clientes.

  20. #80

    Padrão Re: PPoE - QoS Dinâmico e Individual

    Citação Postado originalmente por AndrioPJ Ver Post
    Prezados,

    De uns tempo pra cá, vira e mexe recebemos ligações de clientes reclamando que não conseguem acessar nada ou que está extremamente lento, e quando vamos ver a conexão, o consumo de banda do cliente está em 100%.
    Em 90% dos casos é com destino a IP da Microsoft, o que nos leva a crer ser atualização.

    Sendo que desde o lançamento do Windows 10, a quantidade de ligações desse tipo aumentou.

    Diante de tal problema, resolvi ir atrás de alguma solução de QoS individual e automático.
    Consegui achar alguns exemplos de scripts na internet, fiz algumas modificações para poder gerar QoS automático para clientes com ou sem Burst.

    O que ele faz?
    A cada nova conexão, ele analisa os dados da Simple Queue desse cliente, e cria algumas regras no Queue Tree, com 5 tipos de priorização, conforme o tamanho do pacote (independente de site, protocolo ou serviço).

    A principio tem funcionado bem.

    Segue abaixo o script:

    Código :
    /ip firewall mangle
    add action=mark-connection chain=forward comment=QoS-Andriopj_Client_PPPoE new-connection-mark=QoS_conn_Down out-interface=all-ppp passthrough=yes
    add action=mark-packet chain=forward connection-bytes=0-524288 connection-mark=QoS_conn_Down new-packet-mark=QoS-Andriopj_512K passthrough=yes
    add action=mark-packet chain=forward connection-bytes=524289-5242880 connection-mark=QoS_conn_Down new-packet-mark=QoS-Andriopj_5M passthrough=yes
    add action=mark-packet chain=forward connection-bytes=5242881-20971520 connection-mark=QoS_conn_Down new-packet-mark=QoS-Andriopj_20M passthrough=yes
    add action=mark-packet chain=forward connection-bytes=20971521-52428800 connection-mark=QoS_conn_Down new-packet-mark=QoS-Andriopj_50M passthrough=yes
    add action=mark-packet chain=forward connection-bytes=52428801-0 connection-mark=QoS_conn_Down new-packet-mark=QoS-Andriopj_Infinity passthrough=yes

    Esse você adiciona em PPP > Profile
    Abra cada um dos Profiles > aba Scripts > On Up
    Código :
    :foreach i in=[/queue simple find where name="<pppoe-$user>"] do={
        :local qName [/queue simple get $i name];
        :local rLimit [/queue simple get $i max-limit];
        :local indexExplod [:find $rLimit "/"];
        :local lenth [:len $rLimit];
        :local rl [:pick $rLimit ($indexExplod + 1) ($lenth - 1)];
        :local rlUnity [:pick $rLimit ($lenth - 1) $lenth];
        :local burstl [/queue simple get $i burst-limit];
        :local indexExplod [:find $burstl "/"];
        :local lenth [:len $burstl];
        :local bl [:pick $burstl ($indexExplod + 1) ($lenth - 1)];
        :local blUnity [:pick $burstl ($lenth - 1) $lenth];
        :local burstt [/queue simple get $i burst-time];
        :local indexExplod [:find $burstt "/"];
        :local lenth [:len $burstt];
        :local bt [:pick $burstt ($indexExplod + 1) ($lenth - 1)];
        :local indexExplod [:find $bt "m"];
        :local lenth [:len $bt];
        :local bt0 [:pick $bt 0];
        :local bt1 [:pick $bt ($indexExplod + 1) $lenth];
        :local burstth [/queue simple get $i burst-threshold];
        :local indexExplod [:find $burstth "/"];
        :local lenth [:len $burstth];
        :local bth [:pick $burstth ($indexExplod + 1) ($lenth - 1)];
        :local bthUnity [:pick $burstth ($lenth - 1) $lenth];
        :local c512k [($rl * 55 / 100)];
        :local c5M [($rl * 25 / 100)];
        :local c20M [($rl * 20 / 100)];
        :local c50M [($rl * 15 / 100)];
        :local cInf [($rl * 10 / 100)];
        :local cBt [(($bt0 * 60) + $bt1)];
        :if ([:len $bl] != 0) do={
            :log warning "QoS ADD === $qName";
    #        :log warning "Com Burst";
    #        :log warning "Max Limit === $rl $rlUnity";
    #        :log warning "Burst Limit === $bl $blUnity";
    #        :log warning "Burst Thr === $bth $bthUnity";
    #        :log warning "Burst Time=== $cBt";
    /queue tree add name="QoS_$qName" parent="$interface" queue="default" max-limit="$($rl)$rlUnity" burst-limit="$($bl)$blUnity" burst-time="$cBt" burst-threshold="$($bth)$bthUnity" bucket-size=0.20;
            /queue tree add name="2-512k_$qName" parent="QoS_$qName" packet-mark="QoS-Andriopj_512K" queue="default" priority="4" limit-at="$($c512k)$rlUnity" max-limit="$($rl)$rlUnity" burst-limit="$($bl)$blUnity" burst-time="$cBt" burst-threshold="$($bth)$bthUnity";
            /queue tree add name="4-5M_$qName" parent="QoS_$qName" packet-mark="QoS-Andriopj_5M" queue="default" priority="5" limit-at="$($c5M)$rlUnity" max-limit="$($rl)$rlUnity";
            /queue tree add name="6-20M_$qName" parent="QoS_$qName" packet-mark="QoS-Andriopj_20M" queue="default" priority="6" limit-at="$($c20M)$rlUnity" max-limit="$($rl)$rlUnity";
            /queue tree add name="7-50M_$qName" parent="QoS_$qName" packet-mark="QoS-Andriopj_50M" queue="default" priority="7" limit-at="$($c50M)$rlUnity" max-limit="$($rl)$rlUnity";
            /queue tree add name="8-Inf_$qName" parent="QoS_$qName" packet-mark="QoS-Andriopj_Infinity" queue="default" priority="8" limit-at="$($cInf)$rlUnity" max-limit="$($rl)$rlUnity";
            } \
        else={
            :log warning "QoS ADD === $qName";
            /queue tree add name="QoS_$qName" parent="$interface" queue="default" max-limit="$($rl)$rlUnity" bucket-size=0.20;
            /queue tree add name="2-512k_$qName" parent="QoS_$qName" packet-mark="QoS-Andriopj_512K" queue="default" priority="2" limit-at="$($c512k)$rlUnity" max-limit="$($rl)$rlUnity";
            /queue tree add name="4-5M_$qName" parent="QoS_$qName" packet-mark="QoS-Andriopj_5M" queue="default" priority="4" limit-at="$($c5M)$rlUnity" max-limit="$($rl)$rlUnity";
            /queue tree add name="6-20M_$qName" parent="QoS_$qName" packet-mark="QoS-Andriopj_20M" queue="default" priority="6" limit-at="$($c20M)$rlUnity" max-limit="$($rl)$rlUnity";
            /queue tree add name="7-50M_$qName" parent="QoS_$qName" packet-mark="QoS-Andriopj_50M" queue="default" priority="7" limit-at="$($c50M)$rlUnity" max-limit="$($rl)$rlUnity";
            /queue tree add name="8-Inf_$qName" parent="QoS_$qName" packet-mark="QoS-Andriopj_Infinity" queue="default" priority="8" limit-at="$($cInf)$rlUnity" max-limit="$($rl)$rlUnity";
     
     }
    }


    Esse você adiciona em PPP > Profile
    Abra cada um dos Profiles > aba Scripts > On Down
    Código :
    /queue tree remove [find where parent="QoS_<pppoe-$user>"]
    /queue tree remove [find where name="QoS_<pppoe-$user>"]
    :foreach a in=[/queue tree find where invalid] do={ /queue tree remove $a };


    Pronto, agora seu concentrador já deve estar criando o QoS automaticamente para cada cliente que se conectar/reconectar.
    Anexo 66869


    Fontes:
    https://wiki.mikrotik.com/wiki/Manual:Scripting
    https://wiki.mikrotik.com/wiki/Manua...pting-examples
    https://forum.mikrotik.com/viewtopic.php?t=61974
    https://forum.mikrotik.com/viewtopic.php?t=4887
    http://mk-auth.com.br/forum/topics/qos-din-mico-pppoe
    https://forum.mikrotik.com/viewtopic.php?t=11534
    AndrioPJ...você esta de parabéns pela dedicação e principalmente pela boa vontade/iniciativa em compartilhar este material.

    Router OS v6.37.5...ao aplicar as regras nos profiles de cada plano não surgiu efeito no On Up e On Down, percebi que o meu servidor PPPoE esta considerando/usando os profiles "remotos" do servidor Radius (sistema de gestão), então apliquei as regras no ServerProfile (é o default profile do servidor PPPoE) e bombou.

    Inicialmente tudo funcionando perfeitamente, tanto na conexão como na queda do túnel PPPoE do cliente, vou acompanhar o desempenho para deixar um Feedback na sequencia.

    Sei que este detalhe não é tão simples assim, mas quanto ao Queue Type alguém tem alguma sugestão para o melhor Kind (pcq ou pfifo ou sfq) ???