Testes de hardware de rede em condições reais
O Midair testa routers, gateways e dispositivos ligados a partir de máquinas de teste colocadas à volta deles. Escolhe as condições de rede, e cada execução guarda as suas evidências.
Um dispositivo de rede raramente falha numa ligação limpa de laboratório. Falha quando uma ligação cai, se perdem pacotes ou muitos clientes se ligam ao mesmo tempo. A bancada cria cada uma destas situações de propósito.
O que são testes de hardware de rede.O dispositivo, testado dos dois lados.
Os testes de hardware de rede verificam como um router, um gateway ou um dispositivo ligado trata tráfego real. As máquinas de teste ficam do lado WAN e do lado LAN, enviam tráfego através do dispositivo e verificam o que sai.
O dispositivo em teste não precisa de agente de teste. Os agentes correm nas máquinas à volta dele, e o Test Environment coordena-os na mesma execução.
O resultado depende do firmware, da configuração e do estado da rede. O Midair guarda os três junto ao veredicto.
Condições de rede.Escolha uma para ver o teste que corre.
O desenho é uma bancada de exemplo. Cada condição acende as ligações que altera e mostra um registo de exemplo.
Um cliente Wi-Fi liga-se
- O que a bancada faz
- A máquina cliente Wi-Fi liga-se à rede indicada nas definições da bancada. Obtém um endereço por DHCP e faz ping a uma máquina do lado WAN.
- Teste
wifi/connect_ping- Falha quando
- O cliente não se associa em 30 segundos, não obtém endereço ou perde algum dos quatro pings.
Registo de exemplo · run 214 · wifi/connect_ping
stepBring wlan0 up
stepDescribe 'bench-5g' in the WiFi subtree of Agt_WiFi
ringAssociated after 4 second(s)
ringAddress on wlan0 is 192.168.8.23
stepPing 192.0.2.1 through wlan0
ringSent 4, received 4, lost 0%
ringRound trip time min/avg/max/mdev = 1.91/2.34/3.05/0.42 ms
testPASSEDPerda de pacotes na WAN
- O que a bancada faz
- A máquina WAN acrescenta 2% de perda de pacotes na ligação ao router, com o netem. Depois, um cliente LAN descarrega um ficheiro através do router.
- Teste
wan/http_download- Falha quando
- A descarga para, ou a taxa de transferência fica abaixo do limite definido no teste.
Registo de exemplo · run 221 · wan/http_download · loss=2%
netemwan0: loss 2%
stepDownload 64 MiB from 192.0.2.1 on Agt_LAN
ring64 MiB in 11.8 s, 45.5 Mbit/s
checkrate 45.5 Mbit/s, limit 20 Mbit/s
testPASSEDLatência alta
- O que a bancada faz
- O netem acrescenta 150 ms de atraso e 30 ms de jitter na ligação WAN. Um cliente LAN envia tráfego TCP para a máquina WAN com o iperf3.
- Teste
wan/tcp_throughput- Falha quando
- O débito fica abaixo do limite definido no teste, ou a ligação é reiniciada.
Registo de exemplo · run 222 · wan/tcp_throughput · delay=150ms
netemwan0: delay 150 ms 30 ms
iperf3Agt_LAN -> Agt_WAN, TCP, 4 streams, 30 s
ringreceiver 38.2 Mbit/s, 412 retransmits
checklimit 50 Mbit/s
testFAILED expected PASSED
verdictThroughput 38.2 Mbit/s is below 50 Mbit/sLigação WAN em baixo
- O que a bancada faz
- A máquina WAN desliga a sua interface durante 20 segundos e volta a ligá-la. Os clientes LAN continuam a fazer ping ao router e a um endereço WAN.
- Teste
wan/link_flap- Falha quando
- O tráfego LAN para enquanto a WAN está em baixo, ou o tráfego WAN não volta em 60 segundos.
Registo de exemplo · run 223 · wan/link_flap · down=20s
linkwan0 down
ringLAN ping to the router: 20 of 20 replies
linkwan0 up
ringWAN traffic back after 7 s, limit 60 s
testPASSEDMuitos clientes ao mesmo tempo
- O que a bancada faz
- Dezasseis clientes LAN correm em namespaces de rede numa só máquina. Obtêm endereços por DHCP e enviam tráfego através do router ao mesmo tempo.
- Teste
lan/many_clients- Falha quando
- Um cliente não obtém endereço, ou o débito total fica abaixo do limite definido no teste.
Registo de exemplo · run 224 · lan/many_clients · clients=16
dhcp16 of 16 clients got an address
iperf316 clients -> Agt_WAN, TCP, 60 s
ringtotal 902 Mbit/s, lowest client 51.8 Mbit/s
checklimit 800 Mbit/s
testPASSEDO que a bancada controla.Incluído no Test Environment.
- netem
- Atraso, jitter, perda, duplicação e reordenação de pacotes numa interface de uma máquina de teste.
- tbf
- Um limite de débito numa ligação, para testar um uplink lento.
- Interfaces
- Ligações em cima e em baixo, endereços, rotas e namespaces de rede nas máquinas de teste.
- Serviços
- Servidores DHCP e PPPoE numa máquina de teste, para o dispositivo encontrar o upstream que espera.
- Wi-Fi
- Definições de ponto de acesso e de cliente através do tsf-wifi, em OpenWrt (UCI) ou com hostapd e wpa_supplicant.
- Tráfego
- iperf e iperf3 com uma interface comum, e também netperf, wrk e TRex. O teste lê os resultados e decide o veredicto.
- Captura
- Captura de pacotes nas máquinas de teste durante o teste.
- Switches, energia
- Um agente switch-ctl para switches geridos e controlo da alimentação para cortar e repor a energia do dispositivo.
Reproduzir uma falha.De um veredicto vermelho a uma segunda execução.
Uma execução falha
A lista de falhas mostra o teste, os seus parâmetros e o texto do veredicto que o teste escreveu.
run 417 · bench lab-net · fw 3.1.2 · failures wifi/connect_ping FAILED expected PASSED verdict 25% of the packets to 192.0.2.1 were lost 1 unexpected of 18
Ver o que a execução usou
O registo guarda as definições da bancada, a configuração e os commits exatos da suite e das suas bibliotecas.
run 417 · configuration
env.lab-net WIFI_SSID=bench-5g
WIFI_SECURITY=wpa2 WIFI_STANDARD=ax
TA_WIFI_A_IF=wlan0
builder.conf.lock suite 9c41e07 tsf-wifi 4e1c9a2
firmware 3.1.2Executar de novo
Execute a mesma suite com a mesma configuração. O Midair cria um registo novo e mantém o primeiro como estava.
run 418 · same configuration as run 417 wifi/connect_ping FAILED expected PASSED verdict 25% of the packets to 192.0.2.1 were lost run 417 is kept as it was
Ler os dois registos
O mesmo veredicto com a mesma configuração significa que a falha se reproduz. Se a segunda execução passar, a falha é intermitente e o teste precisa de mais repetições.
wifi/connect_ping · two records run 417 FAILED 25% lost fw 3.1.2 lock 9c41e07 run 418 FAILED 25% lost fw 3.1.2 lock 9c41e07 same verdict, same configuration: it reproduces
Leituras.Do nosso trabalho de engenharia.
Perguntas.Respostas curtas.
O que são testes de hardware de rede?
Os testes de hardware de rede verificam como routers, gateways e dispositivos ligados tratam tráfego real e falhas reais de rede. Máquinas de teste em cada lado do dispositivo enviam tráfego através dele e verificam o resultado.
O dispositivo precisa de um agente de teste?
Não. Os agentes correm em máquinas ao lado do dispositivo. O dispositivo só precisa das suas interfaces de rede normais. Uma consola série e uma tomada controlada ajudam, mas são opcionais.
Que condições de rede a bancada consegue criar?
Com o netem numa máquina de teste: atraso, jitter, perda, duplicação e reordenação de pacotes. A bancada também limita o débito de uma ligação, desliga uma ligação e corre muitos clientes ao mesmo tempo.
Que ferramentas de tráfego os testes podem usar?
O Test Environment tem wrappers prontos para iperf, iperf3, netperf, wrk e TRex. O teste lê os resultados e decide o veredicto.
Podemos testar Wi-Fi?
Sim. O tsf-wifi configura pontos de acesso e clientes em OpenWrt ou com hostapd e wpa_supplicant. A suite de exemplo liga-se a uma rede, obtém um endereço e faz ping através dela.
Encaixa na nossa CI?
Sim. As execuções começam a partir da sua CI, por exemplo com o plugin para Jenkins. Um assistente de IA pode lançar execuções e ler falhas através de MCP.
Comece por um dispositivo e uma condição.Depois junte o resto da bancada.
Compare os planos na página de preços. Os preços são mensais, em euros.
Iniciar o seu piloto