Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.

Link para esta página de comparações

Próxima revisão
Revisão anterior
instalacao_do_servidor_de_medicao_de_velocidade [28/01/2020 22:29]
superuser criada
instalacao_do_servidor_de_medicao_de_velocidade [22/01/2024 20:35] (atual)
superuser
Linha 1: Linha 1:
 +===== Velocidades de Download Homologadas por Modelo =====
 +
 +
 +^ Modelo ​                    ^ Velocidade Máxima ​ ^
 +| Greatek GWR-1200AC ​        | 200 Mbps           |
 +| Intelbras Action RG1200AC ​ | 200 Mbps           |
 +| Intelbras Action GF1200AC ​ | 200 Mbps           |
 +| Multilaser RE708           | 200 Mbps           |
 +| TP-Link EC220-G5 ​          | 350 Mbps           |
 +| TP-Link Archer C5          | 300 Mbps           |
 +| TP-Link Archer C21         | 300 Mbps           |
 +| TP-Link Archer C7          | 300 Mbps           |
 +| TP-Link WDR3600 ​           | 150 Mbps           |
 +| TP-Link WDR4300 ​           | 150 Mbps           |
 +| TP-Link WR2543 ​            | 120 Mbps           |
 +| Demais modelos ​            | 100 Mbps           |
 +
 +^ Modelos TR-069 ​           ^ Velocidade Máxima ​ ^
 +| ZTE H199                  | 550 Mbps           |
 +| ZTE H198                  | 100 Mbps           |
 +| TP-Link EC220-G5 ​         | 230 Mbps           |
 +| FastWireless FW323DAC ​    | 250 Mbps           |
 +| Huawei EG8145V5 ​          | 1000 Mbps          |
 +| Huawei EG8145V5-V2 ​       | 1000 Mbps          |
 +| Huawei EG8245Q2 ​          | 250 Mbps           |
 +| Huawei EG8145X6 ​          | 700 Mbps           |
 +| Huawei HG8121H ​           | 150 Mbps           |
 +| D-Link DIR-842 ​           | 180 Mbps           |
 +| D-Link DIR-841 ​           | 180 Mbps           |
 +| Greatek Stavix ​           | 250 Mbps           |
 +| Greatek GWR1200 ​          | 300 Mbps           |
 +| Unee MP-G421R ​            | 300 Mbps           |
 +| Intelbras WiFiber 121AC   | 350 Mbps           |
 +| Tenda HG9                 | 350 Mbps           |
 +| Nokia Beacon 1 HA-020W-B ​ | 800 Mbps           |
 +| Nokia G-2425G-A ​          | 850 Mbps           |
 +
 +
 +=== Por que existem essas limitações de banda diferentes para cada modelo? ===
 +
 +A medição de velocidade atualmente possui uma limitação de velocidade para cada modelo. O teste de velocidade feito diretamente nos roteadores medirá no máximo as velocidades na tabela abaixo. Para medir velocidades maiores, use um dos medidores convencionais como o Speedtest e Fast.com.
 +
 +Porque testes de velocidade exigem muito processamento,​ e as CPUs existentes nos roteadores são limitadas comparadas a de celulares e computadores. Lembre-se que o roteamento de pacotes nesses roteadores utiliza pouca CPU, e portanto medições feitas por dispositivos na rede podem conseguir resultados maiores.
 +
 +===== Vídeo sobre o Teste de Velocidade =====
 +
 +[[https://​www.youtube.com/​watch?​v=Smh0cqcn0sw]]
 +
 ===== Configuração do Servidor ===== ===== Configuração do Servidor =====
  
-=== Sistemas operacionais testados: ​CentOS 7, Ubuntu ​16.04 e 18.04 === +=== Sistemas operacionais testados: ​=== 
-=== Requisitos de hardware: Placa de rede gigabit. É recomendado que nenhum outro serviço que utilize a rede esteja rodando na máquina. ​===+ 
 +Ubuntu ​20.04,22.04 Debian 10 e 11 
 + 
 +=== Requisitos de hardware: ​=== 
 + 
 +Placa de rede gigabit. ​Contudo, caso ofereça planos de 500 Mbps, ou mais, é recomendado que tenha uma interface 10 Gbps. 
 +É recomendado que nenhum outro serviço que utilize a rede esteja rodando na máquina. ​Recomendamos pelo menos 500MB de RAM livres para o processo do Nginx que será mantido em execução. Recomendamos ao menos 4 núcleos de CPU para download simultâneo dos arquivos durante o teste de velocidade. Ao menos 500MB de espaço devem estar disponíveis para armazenamento dos arquivos de teste que serão baixados durante o teste de velocidade. 
 + 
 +**Atenção! Verifique se o link de rede para o servidor está configurado para gigabit tanto no downlink quanto no uplink!**
   - Atualizar lista de repositórios através do comando: <​code>​   - Atualizar lista de repositórios através do comando: <​code>​
 (Ubuntu) sudo apt-get update (Ubuntu) sudo apt-get update
Linha 15: Linha 71:
 (CentOS) sudo yum install nginx (CentOS) sudo yum install nginx
 </​code>​ </​code>​
-  - Configure o Nginx para receber requisições HTTP através do seguinte trecho de código de exemplo: <​code>​+  ​- Abra o arquivo de configuração do Nginx com o comando: <​code>​nano /​etc/​nginx/​nginx.conf</​code>​ 
 +    - Se você já possui um serviço configurado no Nginx, edite o seu arquivo atual para incluir as configurações abaixo. Ficar atento ao substituir o usuário do nginx "User nginx",​ porque para cada distribuição o nome do usuário será diferente. Por exemplo no Ubuntu18 por padrão o usuário criado é "​www-data"​. 
 +      - Lembramos que por motivos de performance de rede, não recomendamos que outros serviços estejam configurados na mesma máquina. 
 +  ​- Configure o Nginx para receber requisições HTTP editando o arquivo aberto: <​code>​
 user nginx; user nginx;
 worker_processes auto; worker_processes auto;
Linha 37: Linha 96:
   access_log /​var/​log/​nginx/​access.log;​   access_log /​var/​log/​nginx/​access.log;​
   error_log /​var/​log/​nginx/​error.log;​   error_log /​var/​log/​nginx/​error.log;​
- 
-  limit_req_zone $request_uri zone=measure:​1m rate=3r/m; 
  
   include /​etc/​nginx/​conf.d/​*.conf;​   include /​etc/​nginx/​conf.d/​*.conf;​
Linha 44: Linha 101:
 } }
 </​code>​ </​code>​
-    - O trecho de código acima pode ser configurado a partir do comando <​code>​nano /​etc/​nginx/​nginx.conf</​code>​ 
-    - Se você já possui um serviço configurado no nginx, edite o seu arquivo atual para incluir as configurações acima. 
-      - Lembramos que por motivos de performance de rede, não recomendamos que outros serviços estejam configurados na mesma máquina. 
   - Configure os arquivos do Nginx para incluir a configuração do servidor de medição com os comandos: <​code>​   - Configure os arquivos do Nginx para incluir a configuração do servidor de medição com os comandos: <​code>​
 sudo mkdir /​etc/​nginx/​sites-available sudo mkdir /​etc/​nginx/​sites-available
Linha 53: Linha 107:
 sudo ln -s /​etc/​nginx/​sites-available/​measure /​etc/​nginx/​sites-enabled/​measure sudo ln -s /​etc/​nginx/​sites-available/​measure /​etc/​nginx/​sites-enabled/​measure
 </​code>​ </​code>​
-  - Configure ​Nginx para receber e autorizar a comunicação HTTP com o servidor ​de medição através do seguinte trecho de código de exemplo: <​code>​+  - Abra arquivo de configuração do servidor ​com o comando: <​code>​nano /​etc/​nginx/​sites-available/​measure</​code>​ 
 +  - Configure ​o servidor ​para realizar medições editando o arquivo aberto: <​code>​
 server { server {
   listen 80;   listen 80;
   autoindex on;   autoindex on;
 +  client_max_body_size 2g;
   location /measure {   location /measure {
     alias /​etc/​nginx/​flash-measure-data/;​     alias /​etc/​nginx/​flash-measure-data/;​
     sendfile_max_chunk 1m;     sendfile_max_chunk 1m;
-    limit_req zone=measure ​burst=2 nodelay;+  } 
 +  location /measure/tr069 { 
 +    alias /​etc/​nginx/​flash-measure-data/​tr069/;​ 
 +    sendfile_max_chunk 1m; 
 +  } 
 +  location ~ "/​upload/​([0-9a-zA-Z-._]*)$"​ { 
 +    dav_methods PUT; 
 +    client_body_temp_path /​tmp/​incoming;​ 
 +    client_body_in_file_only off; 
 +    alias /​tmp/​incoming/​$1;​ 
 +    create_full_put_path on; 
 +    dav_access group:rw all:r; 
 +    client_body_buffer_size 100m;
   }   }
   location / {   location / {
Linha 67: Linha 135:
 } }
 </​code>​ </​code>​
-    - O trecho de código acima pode ser configurado a partir do comando <​code>​nano /​etc/​nginx/​sites-available/​measure</​code>​ 
     - Você pode substituir o valor da variável "​listen"​ por outra porta que não seja a 80.     - Você pode substituir o valor da variável "​listen"​ por outra porta que não seja a 80.
       - Se você alterar a porta utilizada, lembre-se de configurar o seu firewall para que seus roteadores consigam acessar o servidor!       - Se você alterar a porta utilizada, lembre-se de configurar o seu firewall para que seus roteadores consigam acessar o servidor!
Linha 76: Linha 143:
 sudo mkdir /​etc/​nginx/​flash-measure-data sudo mkdir /​etc/​nginx/​flash-measure-data
 for i in $(seq 1 3); do sudo dd if=/​dev/​urandom of=/​etc/​nginx/​flash-measure-data/​file$i.bin bs=1M count=50; done for i in $(seq 1 3); do sudo dd if=/​dev/​urandom of=/​etc/​nginx/​flash-measure-data/​file$i.bin bs=1M count=50; done
 +</​code>​
 +  - Para gerar os arquivos de medição que serão utilizados nos dispositivos TR-069 utilize os comandos: <​code>​
 +sudo mkdir /​etc/​nginx/​flash-measure-data/​tr069
 +fileSizes=(512 1920 6400 19200 32000 64000 192000 320000 448000 640000 1920000)
 +for i in ${fileSizes[@]};​ do sudo dd if=/​dev/​urandom of=/​etc/​nginx/​flash-measure-data/​tr069/​file_"​$i"​KB.bin bs=1K count=$i; done
 </​code>​ </​code>​
   - (Somente para CentOS) Habilite o serviço Nginx através do comando: <​code>​sudo systemctl enable nginx</​code>​   - (Somente para CentOS) Habilite o serviço Nginx através do comando: <​code>​sudo systemctl enable nginx</​code>​
Linha 82: Linha 154:
 (CentOS) sudo systemctl start nginx (CentOS) sudo systemctl start nginx
 </​code>​ </​code>​
-  - Teste se o servidor está funcionando acessando em qualquer navegador: <​code>​http://<<​ip do servidor>>/​measure</​code>​ +  - Teste se o servidor está funcionando acessando em qualquer navegador: <​code> ​wget http://<<​ip do servidor>>/​measure</​code>​ 
-    - Se você alterou a porta do serviço no passo 5, não se esqueça de incluir a porta na URL:<​code>​http://<<​ip do servidor>>:<<​porta configurada>>/​measure</​code>​+    - Se você alterou a porta do serviço no passo 7, não se esqueça de incluir a porta na URL:<​code> ​wget http://<<​ip do servidor>>:<<​porta configurada>>/​measure</​code>​
     - Você deverá ver uma listagem de arquivos contendo 3 arquivos de 50MB cada: file1.bin, file2.bin, file3.bin     - Você deverá ver uma listagem de arquivos contendo 3 arquivos de 50MB cada: file1.bin, file2.bin, file3.bin
 +    - Confira também se os arquivos para o teste de velocidade em dispositivos TR-069 foram gerados em /​measure/​tr069. Você deverá ver uma listagem de arquivos contendo 10 arquivos de x KB cada nomeados como file_xKB.bin,​ onde x são os valores de 512 a 640000 listados no passo 9.
 +    - Caso os arquivos não sejam exibidos com sucesso, por favor excluir o link para a pasta "/​etc/​nginx/​sites-enabled/​default"​ através do comando abaixo. Por favor antes de excluir, validar se esta configuração está está sendo utilizado por outro serviço.<​code>​rm -f /​etc/​nginx/​sites-enabled/​default</​code>​
 +
 +===== Atualização do Servidor para testes de velocidade em dispositivos TR-069 =====
 +Se você já tem um servidor para teste de velocidade configurado,​ então precisará de poucos passos para habilitar o teste de velocidade para dispositivos TR-069.
 +  - Atualize o Nginx removendo a limitação de conexões para o melhor funcionamento das medições em dispositivos TR-069. Remova a linha: <​code>​limit_req_zone $request_uri zone=measure:​1m rate=3r/​m;</​code>​
 + - Atualize o arquivo de configuração do servidor com a nova rota para os arquivos direcionados ao teste para dispositivos TR-069 com o comando: <​code>​nano /​etc/​nginx/​sites-available/​measure</​code>​
 + - Adicione o trecho relacionado à "​location /​measure/​tr069":​ <​code>​
 +server {
 +  listen 80;
 +  autoindex on;
 +  client_max_body_size 2g;
 +  location /measure {
 +    alias /​etc/​nginx/​flash-measure-data/;​
 +    sendfile_max_chunk 1m;
 +  }
 +  location /​measure/​tr069 {
 +    alias /​etc/​nginx/​flash-measure-data/​tr069/;​
 +    sendfile_max_chunk 1m;
 +  }
 +  location ~ "/​upload/​([0-9a-zA-Z-._]*)$"​ {
 +    dav_methods PUT;
 +    client_body_temp_path /​tmp/​incoming;​
 +    client_body_in_file_only off;
 +    alias /​tmp/​incoming/​$1;​
 +    create_full_put_path on;
 +    dav_access group:rw all:r;
 +    client_body_buffer_size 100m;
 +  }
 +  location / {
 +    return 403;
 +  }
 +}
 + </​code>​
 +  - Você pode substituir o valor da variável "​listen"​ por outra porta que não seja a 80.
 +    - Se você alterar a porta utilizada, lembre-se de configurar o seu firewall para que seus roteadores consigam acessar o servidor!
 +    - Não se esqueça de inserir um ; no final da linha caso altere a porta! Exemplo:<​code>​
 +listen 25752;
 +</​code>​
 +  - Gere os arquivos de medição que serão utilizados nos dispositivos TR-069. Utilize os comandos: <​code>​
 +sudo mkdir /​etc/​nginx/​flash-measure-data/​tr069
 +fileSizes=(512 1920 6400 19200 32000 64000 192000 320000 448000 640000 1920000)
 +for i in ${fileSizes[@]};​ do sudo dd if=/​dev/​urandom of=/​etc/​nginx/​flash-measure-data/​tr069/​file_"​$i"​KB.bin bs=1K count=$i; done
 +</​code>​
 +  - Recarregue o serviço Nginx através do comando: <​code>​
 +(Ubuntu) sudo service nginx restart
 +(CentOS) sudo systemctl restart nginx
 +</​code>​
 + - Teste se o servidor está funcionando acessando em qualquer navegador: <​code>​ wget http://<<​ip do servidor>>/​measure/​tr069</​code>​
 + - Se você alterou a porta do serviço no passo 7, não se esqueça de incluir a porta na URL:<​code>​ wget http://<<​ip do servidor>>:<<​porta configurada>>/​measure/​tr069</​code>​
 + - Você deverá ver uma listagem de arquivos contendo 10 arquivos de x KB cada nomeados como file_xKB.bin,​ onde x são os valores de 512 a 640000 listados no passo 5.
 + - Caso os arquivos não sejam exibidos com sucesso, por favor excluir o link para a pasta "/​etc/​nginx/​sites-enabled/​default"​ através do comando abaixo. Por favor antes de excluir, validar se esta configuração está está sendo utilizado por outro serviço.<​code>​rm -f /​etc/​nginx/​sites-enabled/​default</​code>​
 +
  
 ===== Realizando um Teste de Velocidade ===== ===== Realizando um Teste de Velocidade =====
Linha 92: Linha 217:
   - Aperte o botão para começar a medição e aguarde o resultado   - Aperte o botão para começar a medição e aguarde o resultado
     - Em caso de erro recorrente, certifique-se de que o roteador consegue acessar o servidor de medição     - Em caso de erro recorrente, certifique-se de que o roteador consegue acessar o servidor de medição
-    - Se você configurou uma porta diferente da 80 no passo anteriormente,​ verifique se a regra apropriada está no seu firewall+    - Se você configurou uma porta diferente da 80 no passo anteriormente,​ verifique se a regra apropriada está no seu firewall