Testar corretamente o desempenho da Sophos Firewall com iPerf3
O iPerf3 mede o débito TCP ou UDP entre dois pontos finais definidos. Permite verificar se um percurso entre VLANs, através de uma Sophos Firewall ou por um túnel VPN é mais lento do que o esperado. No entanto, um único valor alto ou baixo ainda não prova que existe um problema na firewall.
Um teste fiável exige primeiro um baseline sem o percurso suspeito. Depois, repete-se a mesma medição através da firewall. A direção, a duração, o protocolo, os streams, a regra de firewall e os perfis de segurança devem permanecer documentados; caso contrário, comparam-se resultados que, do ponto de vista técnico, não são comparáveis.
⚠️ Planear o teste de carga: o iPerf3 pode ocupar totalmente uma ligação. Os testes em produção devem ser realizados numa janela de manutenção ou deliberadamente abaixo da largura de banda disponível. Nunca deixe o servidor acessível a partir da Internet sem necessidade.
O que mede o iPerf3
O iPerf3 é composto por um servidor e um cliente. Por predefinição, o cliente envia os dados de teste para o servidor. A opção -R inverte a direção. O valor medido aplica-se sempre apenas a estes pontos finais, a este percurso e a estes parâmetros específicos.
Os três tipos de teste mais importantes respondem a perguntas diferentes:
| Teste | O que indica |
|---|---|
| TCP, um stream | Débito de uma ligação individual típica, incluindo controlo de congestionamento e retransmissões |
| TCP, vários streams | Capacidade total utilizável quando um único stream é limitado pela latência ou pelo desempenho do ponto final |
| UDP com largura de banda alvo | Perda, Jitter e Bitrate alcançada com uma carga deliberadamente definida |
O iPerf3 não mede o desempenho das aplicações. SMB, RDP, VoIP ou uma aplicação Web podem estar lentos apesar de bons valores do iPerf. Inversamente, um único stream TCP num percurso com elevada latência pode ficar abaixo da capacidade disponível da ligação, mesmo que a firewall e a WAN estejam a funcionar corretamente.
Para um teste de Internet diretamente na perspetiva do appliance, o artigo Teste de velocidade da Internet da Sophos Firewall por SSH é mais adequado. O iPerf3 é mais eficaz quando se pretende analisar dois pontos finais controlados e o percurso entre ambos.
Planear o percurso de teste e o baseline
Antes do primeiro comando, definem-se o cliente, o servidor e o percurso a testar. Uma sequência de medição adequada tem três etapas:
- Baseline dos pontos finais: testar o cliente e o servidor na mesma rede local ou através de um switch rápido conhecido. Se este valor já for baixo, analisar primeiro o cliente, o servidor, a NIC, a firewall do sistema anfitrião, o hipervisor ou a WLAN.
- Percurso pela firewall: testar os mesmos pontos finais através das VLANs ou zonas previstas e da regra real da Sophos Firewall.
- Percurso WAN ou VPN: só depois repetir o teste através do fornecedor, SD-WAN, Site-to-Site VPN ou Remote Access.
Os pontos finais ligados por cabo são mais adequados do que os clientes WLAN para avaliar a firewall. Em ambos os sistemas, devem ser conhecidos os mecanismos de poupança de energia, a utilização da CPU, as NICs virtuais e o tráfego paralelo. Sempre que possível, o servidor e o cliente devem utilizar a mesma versão principal do iPerf3; o iPerf2 e o iPerf3 não são compatíveis.
Preparar a regra de firewall
Por predefinição, o iPerf3 utiliza a porta 5201. Um teste TCP requer TCP 5201. Num teste UDP, os dados de teste são transmitidos por UDP 5201, mas a ligação de controlo continua a utilizar TCP. Por isso, um grupo de serviços Sophos para testes UDP deve incluir TCP e UDP 5201.
A regra temporária em Rules and policies > Firewall rules deve permitir apenas o endereço IP de origem, o endereço IP de destino e o serviço iPerf específicos. Ative Log firewall traffic e anote a Rule ID. Não crie uma regra Any abrangente nem uma publicação na Internet apenas para iniciar o teste mais depressa.
Depois de guardar, verifique no Log viewer se é exatamente esta regra que está a ser aplicada. Se a associação não for clara, consulte Testar regras da Sophos Firewall de forma direcionada.
Instalar o iPerf3 e proteger o servidor
A documentação oficial do projeto e os pacotes de código-fonte estão disponíveis em ESnet iPerf3. A ESnet indica Ubuntu Linux, FreeBSD e macOS como plataformas oficialmente suportadas. Na prática, os pacotes binários para Windows são frequentemente fornecidos por terceiros; a iPerf.fr disponibiliza uma visão geral conhecida.

No sistema de destino, inicie o servidor da seguinte forma:
iperf3 -s
É mais seguro associar o processo ao IP de teste e terminá-lo automaticamente após uma ligação de cliente:
iperf3 -s -B 10.10.10.50 -1
-B associa o iPerf3 ao endereço indicado. -1 aceita, no máximo, uma ligação de cliente e termina depois o servidor. O comando tem de ser novamente iniciado para cada teste individual seguinte. Caso se utilize outra porta, esta tem de ser indicada de forma idêntica em ambos os lados:
iperf3 -s -B 10.10.10.50 -p 5200 -1
A firewall local do sistema anfitrião no servidor também pode bloquear a porta. Restrinja igualmente esta autorização à origem do teste e ao período necessário.
Testar TCP nas duas direções
O primeiro teste utiliza um único stream TCP e decorre durante 30 segundos:
iperf3 -c 10.10.10.50 -t 30

Por predefinição, o cliente envia para o servidor. Em seguida, testa-se a direção oposta com os mesmos pontos finais:
iperf3 -c 10.10.10.50 -t 30 -R
Se existirem diferenças acentuadas entre as duas direções, é mais provável que a causa seja uma largura de banda WAN assimétrica, o routing, SD-WAN, erros de interface, parâmetros VPN ou um ponto final do que um limite geral de débito.
Só depois do teste com um único stream deve, se necessário, ser feita uma comparação com quatro streams paralelos:
iperf3 -c 10.10.10.50 -t 30 -P 4
Se -P 4 for significativamente mais rápido, um único fluxo TCP pode estar limitado pela latência, pela janela TCP ou pelo desempenho do ponto final. O resultado não corresponde automaticamente à velocidade atingida por uma única aplicação. --bidir sobrecarrega ambas as direções em simultâneo e é mais adequado para um teste de stress direcionado do que para uma comparação clara das direções.
Testar UDP de forma controlada
Um teste UDP necessita sempre de uma largura de banda alvo realista. Sem -b, o iPerf3 utiliza por predefinição apenas 1 Mbit/s; este valor não permite avaliar um percurso de 100 Mbit/s ou Gigabit.
Exemplo com 100 Mbit/s:
iperf3 -c 10.10.10.50 -u -b 100M -t 30
Não comece imediatamente com a taxa teórica da ligação. Teste primeiro, por exemplo, 60 a 80 por cento da largura de banda útil esperada e aumente depois gradualmente o valor alvo. Numa VPN, também é necessário considerar o overhead do protocolo e da encriptação.
Para UDP, três valores são determinantes:
- Bitrate: taxa de dados efetivamente alcançada.
- Jitter: variação do tempo de trânsito entre os pacotes.
- Lost/Total Datagrams: perda de pacotes detetada pelo receiver.
Uma largura de banda alvo deliberadamente demasiado elevada provoca, por si só, perda de pacotes. Trata-se de um teste de limite, mas não prova que a firewall esteja com problemas. A direção oposta também é testada separadamente com -R em UDP.
Observar a Sophos Firewall durante o teste
Um resultado do iPerf só se torna conclusivo quando é correlacionado no tempo com a firewall. Durante o teste de 30 segundos, devem estar visíveis os seguintes elementos:
- No Log viewer, confirme que a Firewall Rule ID, a origem, o destino, o serviço e a ligação permitida estão corretos.
- No Control center, CPU, Memory, Bandwidth e Sessions mostram se o appliance atinge algum limite durante o teste.
- Em Diagnostics > System graphs, verifique nos Interface graphs os valores Bits, Drops, Errors e Collisions das interfaces envolvidas.
- Em Diagnostics > Packet capture, um filtro restrito ao cliente, ao servidor e à porta 5201 pode mostrar se os pacotes são descartados ou processados por módulos inesperados.
O Packet Capture mostra, entre outros dados, o número da regra de firewall e os números das políticas Web, Application e IPS. Mantenha a captura curta, aplique filtros restritos e pare-a novamente após o teste. O artigo Packet Capture na Sophos Firewall descreve a análise com mais detalhe.
Isolar os perfis de segurança
Se o baseline dos pontos finais for bom e apenas o percurso pela firewall estiver lento, não desative tudo ao mesmo tempo. Comece por documentar a regra efetivamente aplicada e os respetivos perfis de segurança. Depois, numa janela de manutenção, altere exatamente uma variável e repita o mesmo teste.
Uma regra de diagnóstico sem inspeção adicional só pode abranger estritamente a origem do teste, o destino do teste e o serviço iPerf. Após a medição comparativa, desative-a ou remova-a de imediato. Desta forma, é possível determinar se IPS, Application Control, Traffic Shaping ou outra política está envolvida, sem deixar o restante tráfego desprotegido.
Interpretar corretamente os resultados
Em TCP, são importantes os resumos de sender e receiver, bem como as retransmissões. Um número elevado de retransmissões indica perda ou perturbação no percurso, e não necessariamente falta de CPU na firewall. Um bom valor de baseline local e um valor baixo através da firewall restringem a investigação, mas ainda não identificam a causa.
Padrões típicos:
- Lento já na mesma LAN: verificar os pontos finais, os controladores da NIC, a plataforma virtual, a firewall do sistema anfitrião ou a WLAN.
- Lento apenas através da firewall: analisar a regra, os perfis de segurança, o Traffic Shaping, os erros de interface e a carga do sistema.
- Lento apenas através da VPN: verificar a qualidade da WAN, a latência, o perfil de encriptação, a rota do túnel, bem como MTU e MSS.
- Lento apenas numa direção: comparar o teste inverso, os contadores das interfaces, o routing assimétrico e o upstream do fornecedor.
- Um único stream é lento, vários streams são rápidos: avaliar a latência, a janela TCP e o desempenho dos pontos finais antes de assumir um limite da firewall.
- Apenas um servidor público é lento: a utilização, a distância ou o peering do servidor externo podem limitar o resultado.
Os servidores iPerf públicos são adequados, no máximo, para uma comparação aproximada da Internet. Para diagnosticar a firewall, uma VPN ou uma ligação entre localizações, um servidor próprio e controlado no lado oposto fornece resultados mais fiáveis.
Documentar a medição e repor a configuração
Para que uma comparação anterior e posterior continue a ser compreensível, registe pelo menos a data, o cliente, o servidor, a direção, o comando, a Rule ID, os perfis de segurança, o percurso VPN ou WAN e o resultado de sender/receiver. Durante uma análise de erros, altere sempre apenas uma variável entre duas execuções.
Após a conclusão:
- Termine o servidor iPerf3.
- Remova a autorização na firewall do sistema anfitrião.
- Desative ou elimine a regra temporária da Sophos Firewall e o serviço de teste, caso já não sejam necessários.
- Reponha os perfis de segurança alterados no estado previsto.
- Verifique novamente no Log viewer e nos contadores das interfaces se existem drops ou erros.
FAQ
O iPerf3 mede a velocidade da Internet da Sophos Firewall?
Um teste UDP necessita das portas TCP e UDP 5201?
Porque é que o teste UDP sem -b é tão lento?
-b, a largura de banda alvo predefinida para UDP é de 1 Mbit/s. Para uma medição significativa, é necessário definir uma largura de banda alvo realista e aumentá-la gradualmente.Porque se deve testar a direção oposta com -R?
-R faz com que o servidor envie para o cliente sem trocar as funções dos dispositivos finais. Assim, tornam-se mais rapidamente visíveis problemas de ligação assimétrica, routing, VPN ou interface.