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
instalacao_do_servidor_de_medicao_de_velocidade [31/01/2020 23:36]
superuser
instalacao_do_servidor_de_medicao_de_velocidade [22/01/2024 20:35] (atual)
superuser
Linha 1: Linha 1:
 ===== Velocidades de Download Homologadas por Modelo ===== ===== Velocidades de Download Homologadas por 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. 
  
 ^ Modelo ​                    ^ Velocidade Máxima ​ ^ ^ Modelo ​                    ^ Velocidade Máxima ​ ^
 | Greatek GWR-1200AC ​        | 200 Mbps           | | Greatek GWR-1200AC ​        | 200 Mbps           |
 | Intelbras Action RG1200AC ​ | 200 Mbps           | | Intelbras Action RG1200AC ​ | 200 Mbps           |
 +| Intelbras Action GF1200AC ​ | 200 Mbps           |
 | Multilaser RE708           | 200 Mbps           | | Multilaser RE708           | 200 Mbps           |
 +| TP-Link EC220-G5 ​          | 350 Mbps           |
 | TP-Link Archer C5          | 300 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 WDR3600 ​           | 150 Mbps           |
 | TP-Link WDR4300 ​           | 150 Mbps           | | TP-Link WDR4300 ​           | 150 Mbps           |
Linha 13: Linha 16:
 | Demais modelos ​            | 100 Mbps           | | Demais modelos ​            | 100 Mbps           |
  
-=== Por que existem essas limitações?​ ===+^ 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. 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.
Linha 23: 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!** **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>​
Linha 39: Linha 72:
 </​code>​ </​code>​
   - Abra o arquivo de configuração do Nginx com o comando: <​code>​nano /​etc/​nginx/​nginx.conf</​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.+    - 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.       - 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>​   - Configure o Nginx para receber requisições HTTP editando o arquivo aberto: <​code>​
Linha 63: 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 81: Linha 112:
   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 99: 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 105: 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 7, 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 =====