VyOS QoS: Como Priorizar VoIP e Tráfego Crítico na Rede

10 min de leitura Redes e Segurança
VyOS QoS: Como Priorizar VoIP e Tráfego Crítico na Rede

Introdução à Qualidade de Serviço (QoS) no VyOS

A estabilidade da rede é um pilar fundamental para qualquer organização moderna. Enquanto a largura de banda (bandwidth) determina o volume máximo de dados que pode trafegar, a Qualidade de Serviço (QoS) garante que os pacotes certos cheguem primeiro, especialmente durante períodos de congestionamento. Para administradores de sistemas e engenheiros de rede que utilizam o VyOS como roteador Linux de alto desempenho, implementar QoS não é apenas uma otimização, mas uma necessidade crítica para a continuidade dos negócios.

O VyOS oferece um framework robusto baseado em traffic policies, permitindo a classificação, marcação e limitação de tráfego com granularidade fina. Neste tutorial, abordaremos como configurar políticas de QoS para priorizar aplicações sensíveis à latência, como VoIP (Voz sobre IP) e videoconferência, enquanto controlamos o uso de banda por usuários ou departamentos menos críticos.

Conceitos Fundamentais: Classificação e Marcação

Antes de aplicar as configurações, é essencial compreender os dois mecanismos principais que o VyOS utiliza para gerenciar o tráfego:

  • Classificação (Classification): O processo de identificar pacotes com base em critérios como endereço IP de origem/destino, porta TCP/UDP, protocolo ou marcação DSCP existente.
  • Marcação (Marking) e Ações: Uma vez classificado, o pacote pode ser marcado com um valor DSCP (Differentiated Services Code Point) para priorização na fila ou limitado a uma taxa específica (shaping/policing).

O protocolo DiffServ, utilizado pelo VyOS, opera sobre o campo DSCP do cabeçalho IP. Valores mais altos indicam maior prioridade. Para VoIP, os valores padrão geralmente incluem EF (Expedited Forwarding) para voz e AF31 ou AF41 para vídeo.

Passo 1: Acessando o Ambiente de Configuração do VyOS

O primeiro passo é acessar a linha de comando do seu roteador VyOS. Você pode fazer isso via SSH ou console físico. Ao entrar no modo operacional, você deve transitar para o modo de configuração.

vtysh
# Ou, se estiver usando o shell nativo do VyOS:
configure

Todo o gerenciamento de tráfego no VyOS ocorre sob a hierarquia set traffic. Não é necessário reiniciar serviços para aplicar mudanças; o VyOS aplica as regras em tempo real.

Passo 2: Definindo Grupos de Endereço e Portas

A primeira etapa prática é definir quais IPs e portas serão priorizados. Vamos criar um grupo de endereços IP para os servidores VoIP da nossa empresa (por exemplo, Asterisk ou FreePBX) e definir as portas padrão SIP (5060-5061) e RTP (portas dinâmicas).

Comece definindo o grupo de hosts:

set traffic host-prefix SERVER_VoIP description 'Rede dos servidores VoIP'

Agora, adicione os IPs específicos dentro desse grupo. Suponha que seus servidores estejam na sub-rede 192.168.10.0/24:

set traffic host-prefix SERVER_VoIP prefix 192.168.10.0/24

Em seguida, defina os grupos de portas para VoIP. O protocolo SIP usa a porta 5060 (UDP/TCP) e o fluxo de mídia RTP geralmente utiliza um range de portas UDP dinâmicas. Para simplificar este exemplo, vamos focar na porta SIP e definir um intervalo comum de RTP:

set traffic port-range RTP_PORTS start 10000
set traffic port-range RTP_PORTS end 20000

Essas definições serão referenciadas posteriormente nas regras de classificação.

Passo 3: Criando a Política de Tráfego (Traffic Policy)

Agora, criamos a estrutura que conterá as regras de priorização. No VyOS, usamos set traffic policy. Vamos nomear nossa política como QoS_CRITICAL.

set traffic policy QoS_CRITICAL description 'Priorização de VoIP e Tráfego Crítico'

Dentro desta política, precisamos definir as regras. As regras são avaliadas em ordem sequencial; a primeira correspondência vence.

3.1: Regra para Voz (VoIP)

Vamos criar uma regra que identifica o tráfego de voz e o marca com EF (Expedited Forwarding), que corresponde ao valor DSCP 46. Isso garante que os pacotes de voz sejam entregues com a menor latência possível.

set traffic policy QoS_CRITICAL rule 10 description 'Priorizar Tráfego de Voz (VoIP)'
set traffic policy QoS_CRITICAL rule 10 match source prefix SERVER_VoIP
set traffic policy QoS_CRITICAL rule 10 match destination port-range RTP_PORTS
set traffic policy QoS_CRITICAL rule 10 match protocol udp
set traffic policy QoS_CRITICAL rule 10 set dscp-value EF

Explicação técnica:

  • rule 10: O número indica a ordem de precedência.
  • match source prefix SERVER_VoIP: Verifica se o pacote vem dos nossos servidores definidos no Passo 2.
  • match destination port-range RTP_PORTS: Verifica se o destino está nas portas de mídia.
  • set dscp-value EF: Marca o pacote para prioridade máxima.

Não esqueça de adicionar uma regra similar para a sinalização SIP (porta 5060), pois ela também requer baixa latência para evitar atrasos no estabelecimento da chamada:

set traffic policy QoS_CRITICAL rule 20 description 'Priorizar Sinalização SIP'
set traffic policy QoS_CRITICAL rule 20 match source prefix SERVER_VoIP
set traffic policy QoS_CRITICAL rule 20 match destination port 5060
set traffic policy QoS_CRITICAL rule 20 match protocol udp
set traffic policy QoS_CRITICAL rule 20 set dscp-value AF41

3.2: Regra para Tráfego Normal (Default)

Todo tráfego não classificado nas regras anteriores deve ser tratado como padrão. É boa prática marcar o tráfego restante com BE (Best Effort) ou 0 para garantir que ele não interfira no tráfego prioritário.

set traffic policy QoS_CRITICAL rule 100 description 'Tráfego Padrão (Best Effort)'
set traffic policy QoS_CRITICAL rule 100 set dscp-value BE

Passo 4: Configurando o Shaping de Banda (Limitação)

A priorização DSCP diz ao roteador quem tem preferência, mas não limita quanto banda alguém pode usar. Para evitar que um único usuário ou departamento saturar a conexão de internet, utilizamos o traffic shaping.

O VyOS utiliza o módulo tbf (Token Bucket Filter) ou cbq. Para a maioria dos casos domésticos e pequenas empresas, o tbf é suficiente e mais simples de configurar.

4.1: Definir a Taxa de Shaping Global

Suponha que sua banda larga de upload seja de 50 Mbps. É recomendado reservar cerca de 10-20% para controle, deixando o restante disponível. Vamos definir o shaping global na interface WAN (por exemplo, eth1). Primeiro, defina a taxa máxima:

set traffic shaping rate-limit GLOBAL bandwidth 50Mbit
set traffic shaping rate-limit GLOBAL burst 15000
set traffic shaping rate-limit GLOBAL minburst 3750

Agora, aplique essa política de limitação à interface de saída:

set interfaces ethernet eth1 qos shape-default GLOBAL

4.2: Limitar Tráfego Não Crítico

Se você quiser limitar explicitamente o tráfego de baixa prioridade (como downloads pesados ou streaming) para garantir que eles não roubem banda do VoIP, pode criar uma regra de shaping específica.

set traffic shaping class LOW_PRIORITY bandwidth 20Mbit
set traffic shaping class LOW_PRIORITY burst 15000

E então, vincule essa classe às regras de baixa prioridade na sua política de tráfego. Note que o VyOS permite associar classes de shaping diretamente nas rules da policy:

set traffic policy QoS_CRITICAL rule 100 match dscp-value BE
set traffic policy QoS_CRITICAL rule 100 set traffic-shape-class LOW_PRIORITY

Isso garante que, se a rede estiver congestionada, o tráfego "Best Effort" seja limitado a 20 Mbps, enquanto o VoIP continua fluindo livremente dentro dos limites da largura de banda total.

Passo 5: Aplicando a Configuração

Após definir todas as regras, políticas e classes de shaping, é necessário salvar a configuração para que ela persista após uma reinicialização.

save
exit

O VyOS não requer reinicialização do serviço. As mudanças são aplicadas instantaneamente ao kernel Linux via Netfilter e TC (Traffic Control). Para verificar se as regras foram carregadas corretamente, utilize os comandos de diagnóstico.

Passo 6: Validação e Diagnóstico

A verificação da configuração é crucial para garantir que o tráfego está sendo classificado como esperado. O VyOS oferece ferramentas poderosas para isso.

6.1: Verificar Políticas de Tráfego

No modo operacional, execute:

show traffic policy

Isso exibirá a estrutura hierárquica das suas regras. Verifique se as match conditions estão corretas e se os valores DSCP estão definidos.

6.2: Monitorar Estatísticas em Tempo Real

Para ver o tráfego sendo processado, use:

watch traffic policy

Este comando atualiza a tela periodicamente, mostrando o número de pacotes e bytes correspondentes a cada regra. Se você estiver fazendo uma chamada VoIP, deve observar um aumento constante na contagem da rule 10 (VoIP).

6.3: Verificar Filas de Tráfego (TC)

Para uma visão mais técnica das filas no kernel Linux:

show traffic shaping stats

Isso mostra o status dos classes de shaping, útil para depurar problemas de limitação de banda.

Boas Práticas e Considerações Finais

A implementação de QoS no VyOS é uma ferramenta poderosa, mas requer cuidado. Aqui estão algumas diretrizes essenciais para manter a saúde da sua rede:

  • Teste em Horários de Baixo Tráfego: Antes de aplicar políticas agressivas, teste-as em momentos de baixa demanda para observar o comportamento baseline.
  • Monitore a Latência e Jitter: Use ferramentas como mtr ou soluções de monitoramento (Zabbix, PRTG) para verificar se a latência entre os endpoints VoIP caiu após a implementação.
  • Evite "Starvation": Não limite demais o tráfego de baixa prioridade. Se você cortar 90% da banda disponível para downloads, seus usuários reclamarão. O objetivo é garantir a qualidade do crítico, não punir o restante.
  • Considerações sobre NAT e QoS: O VyOS processa QoS na ordem correta (classificação antes de NAT), mas certifique-se de que suas regras de match considerem os endereços IP internos ou externos conforme a direção do tráfego (inbound vs outbound). Geralmente, o shaping é aplicado na saída (outbound) da interface WAN.

A configuração de QoS transforma seu roteador VyOS de um simples encaminhador de pacotes em um gestor inteligente de recursos. Ao priorizar VoIP e tráfego crítico, você assegura que a comunicação empresarial permaneça fluida, mesmo sob pressão de uso intensivo da banda larga.

Lembre-se: a documentação oficial do VyOS é atualizada constantemente. Consulte sempre os repositórios oficiais para verificar novas funcionalidades no módulo traffic e ajustar suas estratégias conforme a evolução da infraestrutura de rede.

Compartilhar: Link copiado!
Esse tutorial foi útil?

Comentários (0)

Seja o primeiro a comentar.

Deixe seu comentário

Seu comentário será analisado antes de ser publicado.

0/2000