QoS no MikroTik RouterOS 7 para priorizar VoIP e RDP: marcação no mangle, queue tree com prioridades, fq-codel e o cuidado com o FastTrack.
Para que serve
Quando alguém do escritório começa um upload grande para a nuvem ou uma atualização do Windows, a ligação do ramal IP picota e a sessão de RDP no servidor trava. Isso acontece porque os pacotes urgentes ficam na mesma fila que os pacotes de transferência. Com QoS no MikroTik você classifica o tráfego e define quem passa primeiro quando o link enche. Este artigo monta um QoS prático para RouterOS 7: VoIP com prioridade máxima, RDP (e a VPN com o servidor dedicado) em seguida e o restante dividindo o que sobra.
Pré-requisitos
- RouterOS 7 com o firewall base aplicado (artigo «Firewall do MikroTik: regras base de filter e raw comentadas (RouterOS 7)»).
- Velocidade real do link, medida em horário tranquilo. Exemplo: 300 Mbps de download e 150 Mbps de upload.
- Exemplo de rede: WAN em
ether1, LAN embridge(192.168.10.0/24), PABX/telefones em192.168.30.0/24, servidor RDP acessado por203.0.113.20ou pelo túnelwg-datacenter.
Dois conceitos antes de começar
- QoS só funciona onde está o gargalo. Se a fila se forma no modem da operadora, o MikroTik não tem o que priorizar. Por isso as filas são limitadas a cerca de 85% a 90% da velocidade real: o congestionamento passa a acontecer dentro do roteador, onde você manda.
- FastTrack ignora filas. Pacotes acelerados pelo FastTrack não passam pelas queues nem pelo mangle. Ou você desativa o FastTrack, ou garante que ele só acelere conexões sem marca (filtro
connection-mark=no-mark, como no firewall base). Neste artigo marcamos todo o tráfego, então o FastTrack deixa de atuar; em roteadores de CPU fraca com links rápidos, avalie se a CPU aguenta.
Passo 1: classificar o tráfego no mangle
Marque a conexão uma única vez e, a partir dela, os pacotes. É bem mais leve do que inspecionar cada pacote:
/ip firewall mangle
# VoIP: SIP e RTP (ajuste a faixa RTP ao seu PABX; 10000-20000 e comum no Asterisk)
add chain=prerouting action=mark-connection new-connection-mark=con-voip protocol=udp port=5060,5061,10000-20000 \
connection-mark=no-mark comment="QoS: VoIP"
add chain=prerouting action=mark-connection new-connection-mark=con-voip src-address=192.168.30.0/24 \
connection-mark=no-mark comment="QoS: tudo da rede dos telefones"
# RDP e o tunel com o datacenter
add chain=prerouting action=mark-connection new-connection-mark=con-rdp protocol=tcp port=3389 connection-mark=no-mark comment="QoS: RDP"
add chain=prerouting action=mark-connection new-connection-mark=con-rdp protocol=udp port=3389 connection-mark=no-mark
add chain=prerouting action=mark-connection new-connection-mark=con-rdp protocol=udp port=51820 connection-mark=no-mark comment="QoS: WireGuard do datacenter"
add chain=prerouting action=mark-connection new-connection-mark=con-rdp protocol=icmp connection-mark=no-mark
add chain=prerouting action=mark-connection new-connection-mark=con-rdp protocol=udp port=53 connection-mark=no-mark comment="QoS: DNS"
# todo o resto
add chain=prerouting action=mark-connection new-connection-mark=con-geral connection-mark=no-mark comment="QoS: geral"
# marcas de pacote separadas por sentido
add chain=forward action=mark-packet new-packet-mark=voip-up connection-mark=con-voip out-interface-list=WAN passthrough=no
add chain=forward action=mark-packet new-packet-mark=voip-down connection-mark=con-voip in-interface-list=WAN passthrough=no
add chain=forward action=mark-packet new-packet-mark=rdp-up connection-mark=con-rdp out-interface-list=WAN passthrough=no
add chain=forward action=mark-packet new-packet-mark=rdp-down connection-mark=con-rdp in-interface-list=WAN passthrough=no
add chain=forward action=mark-packet new-packet-mark=geral-up connection-mark=con-geral out-interface-list=WAN passthrough=no
add chain=forward action=mark-packet new-packet-mark=geral-down connection-mark=con-geral in-interface-list=WAN passthrough=no
mark-packet direto por porta/endereço, sem mark-connection, ou combine os nomes (por exemplo link1-voip).Sobre o RDP pela VPN: quando o RDP passa dentro do túnel WireGuard, o roteador só enxerga UDP 51820 na WAN. Por isso a regra do WireGuard está na mesma classe do RDP. Se outros usuários fazem transferências grandes pelo mesmo túnel (backup, cópia de arquivos), elas também ganham prioridade; separe-as com um túnel ou porta diferente se for o caso.
Passo 2: criar o tipo de fila
O fq-codel reduz o "bufferbloat" (latência que dispara quando o link enche) e distribui melhor entre fluxos da mesma classe:
/queue type add name=fq-codel-padrao kind=fq-codel
Passo 3: montar a queue tree para upload e download
O upload é controlado na interface WAN; o download, na interface da LAN. Valores para o exemplo de 150/300 Mbps, limitando a cerca de 90%:
/queue tree
# UPLOAD (saida pela WAN)
add name=up-total parent=ether1 max-limit=135M
add name=up-voip parent=up-total packet-mark=voip-up priority=1 limit-at=5M max-limit=135M queue=fq-codel-padrao
add name=up-rdp parent=up-total packet-mark=rdp-up priority=2 limit-at=20M max-limit=135M queue=fq-codel-padrao
add name=up-geral parent=up-total packet-mark=geral-up priority=8 limit-at=10M max-limit=135M queue=fq-codel-padrao
# DOWNLOAD (saida pela LAN)
add name=down-total parent=bridge max-limit=270M
add name=down-voip parent=down-total packet-mark=voip-down priority=1 limit-at=5M max-limit=270M queue=fq-codel-padrao
add name=down-rdp parent=down-total packet-mark=rdp-down priority=2 limit-at=30M max-limit=270M queue=fq-codel-padrao
add name=down-geral parent=down-total packet-mark=geral-down priority=8 limit-at=10M max-limit=270M queue=fq-codel-padrao
- priority: de 1 (maior) a 8 (menor). Quando há disputa, a fila de menor número é atendida primeiro.
- limit-at: banda garantida para a classe mesmo com o link cheio. Calcule o VoIP pela quantidade de chamadas: cerca de 100 kbps por chamada G.711 em cada sentido.
- max-limit nas filhas igual ao total permite que qualquer classe use o link inteiro quando ele está livre.
Se o link é PPPoE, use parent=pppoe-out1 em vez de ether1. Se a LAN tem várias VLANs, use parent=global para o download, mantendo as marcas separadas por sentido.
Alternativa simples: CAKE numa simple queue
Se você só quer acabar com a latência alta durante uploads, sem classes: o RouterOS 7 tem o CAKE, que entende DSCP e equilibra fluxos sozinho.
/queue type add name=cake-wan kind=cake cake-diffserv=diffserv4 cake-nat=yes
/queue simple add name=link target=ether1 max-limit=135M/270M queue=cake-wan/cake-wan
Telefones que marcam DSCP EF (46) passam a ser priorizados automaticamente pelo diffserv4. Não combine CAKE na simple queue com a queue tree acima no mesmo tráfego.
Como saber se funcionou
/ip firewall mangle print stats: os contadores de VoIP e RDP sobem quando há chamada ou sessão aberta./queue tree print stats: cada fila mostra taxa e pacotes. Se tudo estiver zerado, o FastTrack está ignorando as filas.- Teste real: inicie um upload grande e, ao mesmo tempo, faça uma ligação e um
ping -tpara o servidor. A latência deve subir pouco e a voz deve continuar limpa.
Problemas comuns
- Filas sem tráfego: FastTrack ativo sem o filtro
connection-mark=no-mark, ou nomes de packet-mark digitados diferentes entre mangle e queue. - Internet ficou mais lenta que antes: é o efeito do limite em 90%. Se o link real for maior, ajuste o
max-limit. - Voz ainda picota: verifique se a faixa RTP do PABX bate com a regra e se o problema não é perda no próprio link (veja o artigo de diagnóstico desta categoria).
- CPU a 100%: sem FastTrack o roteador trabalha mais. Considere um modelo mais forte ou aplicar QoS só no upload, que é onde o problema costuma estar.
Perguntas frequentes
Simple queue ou queue tree no MikroTik?
Simple queue é ótima para limitar por cliente ou por IP. Para priorizar tipos de tráfego no link inteiro, a queue tree com marcas é mais adequada.
QoS no MikroTik melhora a internet do lado da operadora?
Não. O QoS só controla o que sai e o que o roteador entrega. No download, ele funciona limitando um pouco abaixo da velocidade real para que a fila se forme no MikroTik.
Qual porta o RDP usa?
TCP 3389 e, nas versões atuais do Windows, também UDP 3389. Se o RDP vai pela VPN, a prioridade precisa ser dada ao túnel.
Leitura complementar
Precisa de ajuda?
Se o RDP nas VMs do seu servidor continua lento mesmo com QoS no escritório, abra um ticket com o resultado de um mtr ou traceroute do escritório até o servidor, para verificarmos o caminho do lado do datacenter.
