Diferenças

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

Link para esta página de comparações

Ambos lados da revisão anterior Revisão anterior
Próxima revisão
Revisão anterior
Última revisão Ambos lados da revisão seguinte
instalacao_do_servidor_de_medicao_de_velocidade [31/01/2020 21:49]
superuser
instalacao_do_servidor_de_medicao_de_velocidade [20/12/2023 16:33]
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 ===== ===== Vídeo sobre o Teste de Velocidade =====
  
Linha 5: Linha 49:
 ===== 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 19: 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 41: 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 48: 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 57: 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;
Linha 64: Linha 115:
     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 / {   location / {
Linha 71: Linha 125:
 } }
 </​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 80: Linha 133:
 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 86: Linha 144:
 (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;
 +  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 / {
 +    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 96: Linha 197:
   - 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