#  > Telecomunicações >  > Redes >  >  Mikrotik - PCQ

## Magal

*Mikrotik - PCQ*

PCQ (Per Connection Queue) é uma fila que pode ser usada para uniformizar dinamicamente ou moldar o tráfego para vários usuários, usando pouca administração. É possível dividir os cenários PCQ em três grandes grupos: Igualdade de largura de banda para um determinado número de usuários; Alguma largura de banda distribuída com igualdade entre os usuários; Largura de banda desconhecida distribuída com igualdade entre os usuários.
*Igualdade de largura de banda para um determinado número de usuários.*

http://lfaria.files.wordpress.com/2008/01/pcq.png 
Existem duas formas de fazer isso: usando mangle e queue tree, ou, usando simple queue.

1. Marque todos os pacotes com packet-mark all:

/ip firewall mangle add chain=prerouting action=mark-packet new-packet-mark=all passthrough=no

2. Configurar dois queue types PCQ - um para download e outro para upload. Dst-address é classificador do tráfego de download do usuário, src-address para o tráfego de upload:

/queue type add name=PCQ_download kind=pcq pcq-rate=64000 pcq-classifier=dst-address
/queue type add name=PCQ_upload kind=pcq pcq-rate=32000 pcq-classifier=src-address

3. Finalmente, duas queue rules são necessárias, uma para download e um para upload:

/queue tree add parent=global-in queue=PCQ_download packet-mark=all
/queue tree add parent=global-out queue=PCQ_upload packet-mark=all

Se você não gosta de usar mangle ou queue tree, você pode ignorar esta etapa 1, mantendo as etapas 2 e 3 e passaria a criar uma simple queue como mostrado aqui:

/queue simple add queue=PCQ_upload/PCQ_download target-addresses=192.168.0.0/24

----------


## striteiro

:Shakehands: Muito Bom...Testando

----------


## angelangra

uma duvida posso usar normalmente com o hotspot?
Tenho cliente com velocidade diferente.

----------


## alcimarbezerra

> uma duvida posso usar normalmente com o hotspot?
> Tenho cliente com velocidade diferente.


O PCQ ele vai tenta equalizar ao maximo a velocidade do cliente ou seja se você tem 1mb e 50 cliente online ele vai tenta deixa dividido por igual para todos que estiverem em uso.

Não importa quanto o cliente terá, nesse exemplo o Magal fez uma rede toda então toda a rede vai ser dividida por igual.

----------


## iuredaluz

> O PCQ ele vai tenta equalizar ao maximo a velocidade do cliente ou seja se você tem 1mb e 50 cliente online ele vai tenta deixa dividido por igual para todos que estiverem em uso.
> 
> Não importa quanto o cliente terá, nesse exemplo o Magal fez uma rede toda então toda a rede vai ser dividida por igual.


 
Isso server por exemplo, para usar em varios clientes? Com mascara /32
ou seja

tenho 1mb, e 50 clientes online...
varios queue simple /32 usando PCQ, ele iria deixar todos por igual? pra um não usar mais e outro menos?

----------


## lucianogf

boa magal!

----------


## Raniel

> Isso server por exemplo, para usar em varios clientes? Com mascara /32
> ou seja
> 
> tenho 1mb, e 50 clientes online...
> varios queue simple /32 usando PCQ, ele iria deixar todos por igual? pra um não usar mais e outro menos?


Você pode criar vários pcq's para seus clientes.

----------


## angelangra

> Você pode criar vários pcq's para seus clientes.


 
Como ficaria PCQ para cada profile no hotspot?

Porque tenho cliente de 300k, 150k, 100k e 90k.

----------


## Raniel

Você colocaria um pcq para cada profile. Cada um com um valor determinado por você que será divido pelos clientes do grupo, no caso.

----------


## ederamboni

muito boa ideai, ja tinha pensado em fazer assim mas nao tive tempo.
economizei muito tempo com a sujestao, PARABENS

----------


## Mikrotinho

Meus parabéns,
A duvida agora é saber como ativar isso somente nos finais de semana, e voltar ao normal na segunda-feira.

----------


## Raniel

Script + scheduler, isto faz o que necessita.

----------


## Mikrotinho

> Script + scheduler, isto faz o que necessita.


Tá, o problema é que eu sou *underlinux baby* no assunto, se puder ajudar em como fazer o script eu agradeceria!

----------


## Raniel

O que você tem que fazer?
2 scripts (um para ativar e o outro para desativar) e 2 scheduler para executar no tempo programado.

----------


## Mikrotinho

> O que você tem que fazer?
> 2 scripts (um para ativar e o outro para desativar) e 2 scheduler para executar no tempo programado.


hehe, deixa pra lá...
Algum dia eu descubro como fazer esses scripts.

----------


## Raniel

Basta pesquisar.... Mas fala ae do que necessita que faremos um exemplo para te.

----------


## Magal

*Aqui tem mais sobre o PCQ:* PCQ parâmetros e exemplos

----------


## danyelvip

muito boa a regra...soh uma duvida...
como eu usaria para um perfil de 128k no hotspot?

----------


## Johnat

> Meus parabéns,
> A duvida agora é saber como ativar isso somente nos finais de semana, e voltar ao normal na segunda-feira.


 amigo para vc basta criai apenas um scrip e um sheduler com a data em q o scrip devera ser executado por exemplo todos os sabados a partir da meia noite, para o scrip tente aprimorar esse ai abaixo q roda no meu servidor

queue tree disable [/queue tree find packet-mark=all]
:delay 14400
queue tree enable [/queue tree find packet-mark=all]

amigo so mude o packet-mark= colocando ali sua marcação do PCQ, em delay coloque o tempo em que o PCQ devera ser ativado novamente, por exemplo na segunda-feira, o tempo devera ser em segundos. por exemplo se vc quiser desativar o PCQ no sabado programa la no sheduler a data. Para desativar na segunda calcule em segundos por exemplo 2 dias são 172800 segundos que deverão ser colocados la em delay. Espero que consiga amigo!

----------


## smith

vlw mano vo testar aqui tb

----------


## danyelvip

muito boa a regra...soh uma duvida...
como eu usaria para um perfil de 128k no hotspot?

----------


## fitimacedo

Muito Bao Postagem em Magsal valeu!!!!

----------


## lucianogf

é isso aí Magsal! hehehe

----------


## Magal

kkkkkkkkkkkkkk



> é isso aí Magsal! hehehe

----------


## cooperrj

Magal, me tira so uma duvida.
Tenho varios pops, sendo cada pop com uma faixa de rede para os clientes.
Vi no exemplo que no meu caso o ideial seria usar o queue simple ao inves do mangle... So que eu precisava dividir meu link entre os pops, se eu colocar no queue simples a velocidade que eu quero nesse pop funcionaria?

Abraços.

----------


## Raniel

Se você tem um servidor central, pode sim controlar a velocidade dos pops. Basta controlar o ip de cada um deles.

----------


## cooperrj

Blz mestre, irei fazer isso entao... Tenho um mk central para controlar tudo.  :Party:

----------


## cooperrj

Essas 2 linhas...



> /queue type add name=PCQ_download kind=pcq pcq-rate=64000 pcq-classifier=dst-address
> /queue type add name=PCQ_upload kind=pcq pcq-rate=32000 pcq-classifier=src-address


Servem para controlar todos os clientes a 64/32 ou seria o minimo que o cliente chegaria? Ou nada haver com as 2 reespostas? rs

----------


## Raniel

Este é apenas um tipo de controle criado, senda assim, eles não vão controlar apenas criando, tem que setar na queue="" também, mas é para isto mesmo controle de down/up de cada cliente, mas precisa setar o queue="PCQ_down ou PCQ_up" em todas as entradas que criar já que a mesma vem com o default.

----------


## cooperrj

Deixa eu ver se entendi.
No queue type coloco o controle de banda dos usuarios, no caso quero que todos naveguem a 300/150 ae coloco no queue type...
E no queue simple coloco o valor total de link que a faixa poderia usar ao todo...

Seria isso?

----------


## Raniel

Completando...
O pcq não serve apenas para controle de clientes e também de serviços.

----------


## Raniel

> Deixa eu ver se entendi.
> No queue type coloco o controle de banda dos usuarios, no caso quero que todos naveguem a 300/150 ae coloco no queue type...
> E no queue simple coloco o valor total de link que a faixa poderia usar ao todo...
> 
> Seria isso?


Para fazer o controle por queue simple, precisaria usar apenas a etapa 3 listada na 1ª pag.

----------


## 2KILLER2

Uma pergunta, caso meu link seja 4mb e tenha apenas um cliente logado baixando com p2p e gerenciador de donwload como orbit a toda banda, qual o tempo que o servidor demoraria para dividir a banda para o próximo cliente que acabou de logar, teria um delay, alguem ja testou?

----------


## Rodrigo Rogobol

Pessoal me desculpe ai mas acredito tem muita gente ai como eu ta com dificuldade de fazer o PCQ funcionar blz.
1º Coisa é quando uso esse script:
/queue type add name=PCQ_download kind=pcq pcq-rate=64000 pcq-classifier=dst-address
/queue type add name=PCQ_upload kind=pcq pcq-rate=32000 pcq-classifier=src-address

/queue tree add parent=global-in queue=PCQ_download packet-mark=all
/queue tree add parent=global-out queue=PCQ_upload packet-mark=all 

/queue simple add queue=PCQ_upload/PCQ_download target-addresses=192.168.0.0/24 

Aqui a pergunta como vou usar esse sem marcar todos pacotes??? eu coloquei ele assim ele nao pega nenhum pacote na queue tree fica em 0 tanto no download e Upload

e acaba não dividindo a banda nenhuma.


Alguem tem isso funcionando perfeitamente e testado com certeza ???

se alguem puder me ajudar fico agradecido

----------


## kilder

to com uma dúvida em relação, ao PCQ!
eu preciso criar Queues Types para cada velocidade vendida?

Se usar queue tree ele pega e divide automaticamente?
Se usar queue simple 0/24 ele divide automaticamente pra toda a range?
Se usar queue simple individual apenas setando o queue type para cada cliente ele faz o mesmo trabalho?


Desculpe o monte de perguntas!

----------


## Raniel

Sim*.

----------


## kilder

> 1. Marque todos os pacotes com packet-mark all:
> 
> /ip firewall mangle add chain=prerouting action=mark-packet new-packet-mark=all passthrough=no
> 
> 2. Configurar dois queue types PCQ - um para download e outro para upload. Dst-address é classificador do tráfego de download do usuário, src-address para o tráfego de upload:
> 
> /queue type add name=PCQ_download kind=pcq pcq-rate=64000 pcq-classifier=dst-address
> /queue type add name=PCQ_upload kind=pcq pcq-rate=32000 pcq-classifier=src-address
> 
> ...


Nesse exemplo do Magal, então cada cliente da faixa 192.168.0.0/24 teria 64/32 ou eles iriam dividar essa banda?

----------


## froyer

> Nesse exemplo do Magal, então cada cliente da faixa 192.168.0.0/24 teria 64/32 ou eles iriam dividar essa banda?


Neste exemplo do magal, como ele definiu o valor pcq-rate, entao cada usuario usará no maximo 64/32 de banda até atingir o maximo da banda disponivel, depois disso a banda será dividida igualmente entre todos os usuarios...
Se o pcq-rate ficar setado em 0 (zero), e somente 1 usuario estiver conectado, ele vai poder usar toda a banda disponivel (se vc tiver um link de 2mb por exemplo, e cliente vai navegar nesta velocidade), se 2 usuarios estiverem conectado, cada um utilizará 1mb, e assim por diante...
Repare que no exemplo do Magal, embora o link seja de 2mb por exemplo, mas mesmo que soh tenha 1 cliente conectado, o maximo q ele usara sera 64/32 ... pq como eu disse acima, este valor foi escolhido em pcq-rate...

----------


## maxmelo

sera q alguem poderia citar um exemplo q ja esteja funcionando com varias banda, eu por exeplo tenho 75k/150k, 150k/300k, 300k/600k e 500k/1Mb, uso hotspot e servidor dhcp.

----------


## Raniel

Olá amigo,
Você pode fazer quantas bandas quiser mas lembre-se que, se tratando de PCQ, será dividida entre os vários usuário. ex: se fizer um src-address de 256k e dst-address 512k com 10 usuários conectados, você terá o seguinte calcúlo:


```
256k / 10 = 25,6k de upload
512k / 10 = 51,2k de download
```

 PCQ é ideal para QoS.
Para fazer o que quer aqui está um exemplo(256k/512k):



> /que type add name="up-banda_B" kind=pcq pcq-rate=512k pcq-classifier=src-address





> /que type add name="down-banda_B" kind=pcq pcq-rate=512k pcq-classifier=dst-address


Aí só escolher este pcq para os usuários desejados. Para outras bandas, fazer novos pcq's.

----------


## wsdanado

Amigos eu uso hotspot dhcp e web cacher eu posso usar PCQ quais regras e como eu poderia usar? Muito Grato.

----------


## AndrioPJ

> Neste exemplo do magal, como ele definiu o valor pcq-rate, entao cada usuario usará no maximo 64/32 de banda até atingir o maximo da banda disponivel, depois disso a banda será dividida igualmente entre todos os usuarios...
> Se o pcq-rate ficar setado em 0 (zero), e somente 1 usuario estiver conectado, ele vai poder usar toda a banda disponivel (se vc tiver um link de 2mb por exemplo, e cliente vai navegar nesta velocidade), se 2 usuarios estiverem conectado, cada um utilizará 1mb, e assim por diante...
> Repare que no exemplo do Magal, embora o link seja de 2mb por exemplo, mas mesmo que soh tenha 1 cliente conectado, o maximo q ele usara sera 64/32 ... pq como eu disse acima, este valor foi escolhido em pcq-rate...


O pcq seria ideial tbm para cache full...
ja que, se tiver mais de 1 usuario usando o cache full... cada um tera igual largura, certo!?

mas deixa eu ver se entendi sua configuracao exata:
criamos um type de queue para o pcq...
nele, se setarmos o rate... nao importa q tenha 1 usuario, esse rate sera a largura de banda maxima do mesmo... se tiver 2 usuario, esse rate sera dividido igualmente entre os dois, correto?

----------


## Raniel

O pcq é uma velocidade dividida para todos que estejam fazendo parte dele. Não?

----------


## luhanmcs

com o "pcq" eu poderia fazer isso?? (expliquei em outro topico pois nao sabia o lugar correto)
[link]https://under-linux.org/f226/contole-de-banda-automatico-queue-list-134725[/link]

----------


## 1929

> ...
> mas deixa eu ver se entendi sua configuracao exata:
> criamos um type de queue para o pcq...
> nele, se setarmos o rate... nao importa q tenha 1 usuario, esse rate sera a largura de banda maxima do mesmo... se tiver 2 usuario, esse rate sera dividido igualmente entre os dois, correto?


Andrio, para dividir por igual não dá para setar em pcq-rates. Se limitar aqui em pcq-rates ele vai limitar pelo valor colocado ali.
Eu acho que voce quer fazer o mesmo que eu, liberar banda quando sobra. Daí é só deixar em branco o pcq-rates.
Amanhã vamos tentar fazer aqui e ver no que vai dar.

Tem outro tópico que o Magal postou e o Luciano traduziu que mostram bem com desenhos.

Quanto ao cache ir a full, eu não saberia dizer com certeza. Mas acho que alguma limitação teria que ter, senão pode sobrecarregar de tráfego o rádio.

----------


## jmathayde

ressuscitando o post do colega , ainda nao tive o intendimento usando este metodo com hotspot ativo .Alguem ja conseguiu fazer ?

Modalidades diferentes de velocidade

----------


## 1929

> ressuscitando o post do colega , ainda nao tive o intendimento usando este metodo com hotspot ativo .Alguem ja conseguiu fazer ?
> 
> Modalidades diferentes de velocidade



Li, e reli várias vêzes o primeiro post do tópico. E misturando com o que li em outros tópicos entendi como fazer a configuração.
Mas agora a dúvida é: Usando o hotspot, eu não crio mais um plano de velocidade no "user profiles" e faço as filas pcq para cada grupo de usuários?
Porque no hotspot quando o usuário loga é criado dinamicamente uma simple queues para ele baseado no que está no Profile dele. Ísto deixaria de existir?

----------


## AndrioPJ

> Li, e reli várias vêzes o primeiro post do tópico. E misturando com o que li em outros tópicos entendi como fazer a configuração.
> Mas agora a dúvida é: Usando o hotspot, eu não crio mais um plano de velocidade no "user profiles" e faço as filas pcq para cada grupo de usuários?
> Porque no hotspot quando o usuário loga é criado dinamicamente uma simple queues para ele baseado no que está no Profile dele. Ísto deixaria de existir?


 depois de estudar e implementar.
sim, é isso mesmo.
a unica parte chata é que nao tem pcq com burst (ainda!!!)

----------


## jmathayde

imaginei isso , obrigado pela resposta 



obs : vcs não dormem nao hehehehe , tao vendo o oscar

----------


## jrhackerjsvj

> *Aqui tem mais sobre o PCQ:* PCQ parâmetros e exemplos



Amigo, em primeiro lugar, gostaria de parabenizar o material postado, abaixo tenho algumas dúvidas que gostaria da orientação de vocês:


Meu Server MK, esta inicialmente configurado com controle de banda pelo "Simple Queues" definindo o limite máximo de banda que o user deverá usar, no tutorial vi as regras que tem que serem criadas...

A pergunta é: 

1- Após criar as regras, conforme mostra no inicio do tópico, eu terei que tirar a limitação dos Host, um por um, ou a regra já quebra a limitação?

2 - Em caso de necessidade, se tiver que limitar a banda de um user especifico, isto poderá ser feito mesmo com as regras ativas de PCQ?

3 - Não vi explicamdo, mas, deve ser acrescentado alguma informação em cada "IPHost" para que funcione o PCQ?? ***Algo deverá ser alterado na Guia "Avançado do SimpleQueue para funciona o direcionamento de pacotes de forma congruente?

4 - Pelo que entendi o PCQ distribui os dados "link" para todos os host conectados, em pacotes iguais, correto?


Obrigado pelo apoio.

----------


## Dessloki

A Simple Queue pode ser aplicado por grupo onde você terá que obrigatoriamente informar a mascara da sua rede ex:.172.16.8.1/24 ou 192.168.0.1/24 aou ainda 10.0.0.1/24 que seja de acordo com sua mascara ok, 
Para criar uma regra para cada cliente voce pode add uma simple queue exclusiva para este IP/32, novamente obrigatoriamente vc deverá informar a mascara e é ai que muita gente erra e preenche o IP ex.:172.16.8.60 , essa regra não funciona se nao colocar o /32 depois do IP.! 172.16.8.60/32 afinal é obrigatorio isolar este IP lembrem-se regras para um IP específico "/32" sempre, e tudo funciona.
Cuidado! se por acaso o amigo já tiver outras regras de simple queue que envolvam o bloco do IP em questão mantenha a regra /32 antes da /16 ou /24 de acordo com sua mascara.
Para concluir caso queira utilizar Simple Queue em APBridge numa rede com proxy tem que habilitar o Firewall da Bridge Settings e habilitar arp em wireless.

----------


## marcelonx

Nossa... agora que entendi como funciona direito esse pcq... é espetacular!!!

Cara, com pouquissima administração da pra fazer um controle de banda super eficiente com ele.
O que coloco no rate do queue type é a velocidade individual, e o que coloco no max limit é a velocidade total. Tipo, tenho 10 clientes com 100k, mas quero limitar a banda total de todos em 900k, eu coloco no pcq rate 100k e no max limit do simple queue 900k, escolhendo o queue type criado... é bom d+ isso!

----------


## lourena

Muito bom, consegui configurar o PCQ para uns 50 computadores, porem no Log aparece continuamente menssagens do firewall: "forward in: bridge1 out: ether2, src-mac xxxx, proto TCP [ACK,FIN], 192.168.1.22:3270->68.232.37.39:80, len 20" o que significa? Não entendi como calcular Limit e Total Limit no Queue Type dependendo da quantia de computadores de cada perfil. Alguem poderia me ajudar?

----------


## ltolsilv

Salve galera, Li varias vezes esse tuto, mas nao consegui fazer isso funcionar na minha rede.

Tenho um pc rodando mk 3.30, Hotspot, DHCP auto, Sub Redes, WebProxy e Cache full.

Tudo funciona de boa, Porém gostaria de fazer o seguinte.

Grupo 1 (x users) = 1 Mega
Grupo 2 (x users) = 2 Mega
Grupo 3 (x users) = 3 Mega 

E assim por diante! 
Não sei como fazer isso funcionar, testei o exemplo do inicio, mas dai todos ficariam com a mesma velocidade, Eu gostaria de criar grupos distintos.

Alguem se habilita a me ajudar a configurar? Lembrando que uso sub redes e sou LINUX BABY.

Grato desde já!

----------


## bandanet

ola sou novo aki no forum,bom tenho uma rede com 80 cliente e link de 10 megas,faço controle de banda com 100k/1m,mais quando chega a noite fica uma faixa de 40 cliente online ai ta ficando super lenta,queria saber tem uma maneira de configurar mikotik melhor,to aprendendo mexer mikrotik agora,[email protected],se puderem me ajudar mande email...

----------


## 1929

Guilherme, vamos tentar aqui mesmo no forum.
Tem muita gente disposta a ajudar.

Uma coisa que pode estar acontecendo com você é este 100k de upload.
Imagina estes 40 solicitando envio de dados? Vamos deixar por uma média menor, 2000 kbps.
Daí a pergunta: este link de 10mega é adsl? Se for, ele não tem 2000kbps para enviar o UP e daí dá lentidão também.

----------


## bigjow

boa tarde galera, queria ver com vcs que sao mais entendidos dos assuntos, o seguinte
aqui uso um mikrotik 3.30 com hotspot, e um sistema de cache, queria ver o seguinte
se tem como com o pcq, controlar somente a velocidade de saida do cache, por exemplo: um cliente de 512kbps no hotspot, navega normalmente a 512kbps, mais quando ele acessar algo do cache, e poder usar a velocidade de 2 megas por exemplo, entenderam?ai cada um cliente que acessar algum conteudo do cache, ultilizasse o mesmo a 2 megas cada.desde ja grato

----------


## wld.net1

O protocolo @*Arthur Bernardes* funciona da seguinte forma, por exemplo você seta em queues type= 10Mb daí ele divide entre os usuários a principio a resposta básica seria essa segue um pequeno esboço.

----------


## wld.net1

Isso como vc está vendo em um bloco /16, /24, /25 não importa.

----------


## wld.net1

Outro exemplo mais claro como ocorre a divisão

----------


## 1929

Só para brincar um pouco contigo @*Arthur Bernardes* ... faltavam 3 dias para completar um ano mas veio a resposta .....heheheh

----------


## wld.net1

:Big Grin:   :Thrasher:

----------


## 1929

é aquilo que eu digo, "Underlinux pode tardar, mas não falha"

----------


## wld.net1

> é aquilo que eu digo, "Underlinux pode tardar, mas não falha"


Isso mesmo[emoji298] [emoji298]

----------


## speedyplus

bom dia queria aplicar esse esquema na minha empresa ,, temos pouco link 20 megas , em media 40 computadores , hj faço por mikrotik queues cada usuario tem no caso 4 megas ,, esse seu esquema seria mais vantajoso ???? e como seria

----------

