Segundo a documentação do pfSense, “a ideia básica de modelagem do tráfego é aumentar e diminuir as prioridades dos pacotes ou mantê-los sob uma certa velocidade. Esse conceito parece simples, no entanto, o número de maneiras pelas quais esse conceito pode ser aplicado é vasto.” pfSense suporta “Modelador de tráfego” e “Limitador” (e eles podem ser usados simultaneamente), mas neste post vamos focar em “Limitadores”. Vou mostrar como limitar a velocidade de uma determinada interface de servidor VPN cliente/VPN, a velocidade das redes Wi-Fi Visitantes/IoT e até mesmo PCs específicos!
A forma como os Limiters são implementados é um processo simples de 2 etapas:
- Defina limitadores, que descrevem os limites de velocidade que você deseja impor
- Atribua limitadores através das regras do Firewall
Definindo limitadores
Limitadores são como tubos de água (que chamarei de pipe daqui em diante) e seus diâmetros definem quanto volume eles podem suportar. Podemos criar um único pipe para ambas as direções de tráfego (upload e download), mas o compartilhamento faz com que ele trabalhe em half-duplex. Por causa disso, criaremos um pipe por direção, o que dá um controle mais fino e tráfego full-duplex. A direção tráfego é da perspectiva da interface, portanto, se usar limitadores em LAN, a fila de entrada é a direção de upload para a “Internet” e a fila de saída é download vindo da “Internet”.
Para as próximas seções, descreverei como limitar a largura de banda em uma rede Wi-Fi Visitantes como um exemplo concreto, mas depois discutiremos mais aplicações
Exemplo: Limitando a largura de banda Wi-Fi de Visitantes
Se você seguiu meu post sobre isolar o tráfego wifi usando VLANs, você deve ter uma interface VLAN100 no seu pfSense. Usaremos isso como exemplo, mas você pode expandir esse conceito para qualquer outra interface, incluindo LAN
Criando pipe de upstream
Navegue até Firewall >> Traffic Shaper >> Limiters e clique em Novo limitador e faça o seguinte:
- Limitadores
- Habilitar: selecionado
- Nome: VLAN100_Up
- Use um nome intuitivo como este, que refere a interface e direção, etc.
- Bandwidth:
- Bandwidth: 5
- BW type: Mbps
- Schedule: Nenhum
- Máscara:
- Máscara: Endereço de origem
- Geralmente definimos “endereço de origem” para cima direção
- Bits da máscara IPv4: 32
- Bits de máscara iPv6: 128
- Máscara: Endereço de origem
- Descrição: Velocidade de upload da Internet para VLAN100 (wi-fi convidado)
Você pode deixar a opção Fila e Opções Avançadas com os valores padrão. Clique em Salvar e Aplicar alterações para criar este pipe.
Criando pipe de downstream
Repita o mesmo processo de antes, mas agora para a direção a downstream:
- Limitadores
- Habilitar: selecionado
- Nome: VLAN100_Down
- Bandwidth:
- Bandwidth: 5
- BW type: Mbps
- Schedule Nenhum
- Máscara:
- Máscara: Endereço de destino
- Geralmente definimos “endereço de destino” para a direção para baixo
- Bits da máscara IPv4: 32
- Bits de máscara iPv6: 128
- Máscara: Endereço de destino
- Descrição: Velocidade de upload da Internet para VLAN100 (wi-fi convidado)
Você pode deixar a opção Queue e Advanced em seus valores padrão. Clique em Salvar e Aplicar alterações para criar este tubo.
Atribuindo limitadores às regras de firewall
Neste ponto, você criou pelo menos um par de pipe (downstream e upstream) que você deseja usar para limitar alguma interface (ou outra coisa). Agora temos que criar/modificar regras de firewall para começar a usar esses limitadores
Exemplo: Limitando a largura de banda Wi-Fi de Visitantes
Continuando nossa limitação de largura de banda do Wi-Fi de Visitantes, navegue até Firewall >> Regras >> VLAN100 para listar todas as suas regras. Se você seguiu meu post, deve ter uma regra “Regra padrão para permitir somente internet” que permite a conexão à internet. Clique em Editar (ícone de lápis).
Desça até a seção Opções Extras e clique no botão Exibir Avançado até chegar ao parâmetro Pipe Dentro/Fora . É aqui que atribuímos os pipes que criamos antes:
- Dentro: VLAN100_UP
- Fora: VLAN100_Down
Clique em Salvar e Aplicar alterações. Para testar seu limitador, conecte-se à sua rede WiFi de visitantes e realize um teste de velocidade. Você pode usar o velho conhecido https://speedtest.net
Mais cenários e aplicações…
Nas seções anteriores discutimos como limitar as velocidades em uma rede sem fio de visitantes, mas as aplicações são infinitas porque os limitadores são aplicados às regras de firewall individualmente. Cada regra de firewall pode ter seu próprio conjunto de pipes com diferentes limites de velocidade. Nas próximas seções, mencionarei brevemente exemplos, mas não necessariamente um passo a passo. Se você precisar de exemplos específicos e eu posso tentar ajudar!
Limitando velocidades da Internet para IPs específicos
De maneira geral, você precisa dividir o tráfego LAN (através do alias IP RFC1918) em várias regras de firewall, em vez de ter uma única regra “Padrão permitir tudo”.
Certifique-se de ter um conjunto de regras que permitem o tráfego com destino local sem limitadores (por exemplo, destino RFC1918). Todos nós amamos nossa rede local super rápida.
Em seguida, certifique-se de ter regras que lidam com o tráfego da Internet. Você provavelmente precisa de uma regra para o tráfego de entrada da Internet (A origem é “não-RFC1918”) e outra para tráfego de saída (destino é “não-RFC1918”). Essas regras de internet são as que você tem que atribuir os pipes dentro/fora descritos acima!
Limitando a velocidade da Internet para IoT, OpenVPN Server, etc.
Assim como fizemos para Wi-Fi convidado, podemos criar um par de pipes para a interface IoT VLAN ou interfaces de servidor OpenVPN.
Agendamentos (regras de limitação de velocidade baseadas em dia/horário)
Até agora, temos abordado regras que são aplicadas a IPs individuais ou sub-redes (através de interfaces). Mas você também pode adicionar limitadores baseados em dia/horário. Voltando ao exemplo de Wi-Fi visitante, você pode aplicar limite de velocidade apenas para dias e/ou horários específicos! Como? Você cria um cronograma e, ao atribuir os pipes às regras de firewall, você também define o camp Agenda pré criado.
Para criar um cronograma, vá ao Firewall >> Agendas e clique em Adicionar, dê um nome e descrição para o novo agendamento e escolha sua combinação de mês, data e hora para aplicar. Clique em Salvar e Aplicar alterações para terminar, como de costume. Agora, você pode editar sua regra de firewall e selecionar sua agenda junto com os Pipes Dentro/Fora!
Atente-se ao fato de que o agendamento é atribuído à regra de firewall toda, não só para o limitador. Então se estiver aplicando uma agenda na regra principal de Internet (como descrevi aqui), você precisa duplicar a regra em questão e deixá-la sem o agendamento e limitador, para que ela seja utilizada quando o agendamento da regra anterior estiver desabilitando a regra de firewall com o limitador de velocidade. A regra sem agendamento e limitador deve ser posta depois da regra com agendamento/limitador.
Observações finais.
Sempre teste as velocidades depois de fazer alterações nos limitadores para ter certeza de que você está 1) limitando o que você quer e 2) não limitando o que você não quer limitar! É fácil testar o limite de IPs/interfaces e igualmente fácil garantir que dispositivos inesperados sejam afetados por uma configuração incorreta!
É isso, divirta-se (i)limitadamente!