Motivação

Testar roteadores com a versão mais recente do LibreMesh é crucial para as redes comunitárias que dependem de redes mesh como sua infraestrutura de comunicação. A importância reside no fato de que testes insuficientes dificultam o desenvolvimento de novas versões. Atualmente, a versão oficial do LibreMesh está vinculada ao lançamento de 2019 do OpenWRT. Essa limitação impede o progresso, pois avanços e melhorias frequentemente são deixados inexplorados. Ao realizar testes minuciosos com a versão mais recente, abrimos caminho para recursos aprimorados, maior estabilidade e melhor desempenho geral. É por meio desses testes que identificamos e abordamos possíveis problemas, garantindo uma plataforma robusta e confiável para as redes comunitárias. Avançar além da versão 2019 do OpenWRT abre oportunidades para inovação e mantém o LibreMesh na vanguarda da tecnologia de redes mesh. Portanto, um esforço conjunto nos testes é essencial para impulsionar a evolução do LibreMesh e contribuir para o crescimento contínuo das redes de comunicação baseadas em mesh impulsionadas pela comunidade.#

https://downloads.libremesh.org/development/master-ow23.05.0/

Dispositivos Testados

Eap225-outdoor v3

Testar o roteador TP-Link EAP225-Outdoor V3 é motivado pela crescente demanda por soluções wireless robustas em redes comunitárias, especialmente em ambientes externos como parques. A motivação surge do desejo de enfrentar os desafios únicos apresentados por ambientes externos e acomodar um alto volume de usuários simultaneamente. O EAP225-Outdoor V3 se apresenta como uma solução potencial, projetada para fornecer conectividade Wi-Fi confiável em espaços externos com foco em escalabilidade e desempenho. Notavelmente, destaca-se como a opção mais econômica em sua categoria, tornando-se uma escolha atraente para redes comunitárias com restrições orçamentárias. Testar este roteador em cenários de redes comunitárias torna-se essencial para garantir sua compatibilidade com condições externas e sua capacidade de lidar efetivamente com a carga de usuários esperada. Ao realizar testes minuciosos, os administradores de rede podem verificar a adequação do EAP225-Outdoor V3 para áreas externas impulsionadas pela comunidade, contribuindo para a criação de redes wireless acessíveis e confiáveis em espaços públicos.

Este equipamento teve um processo relativamente simples para instalar o LibreMesh. Seguindo a documentação fornecida pelo OpenWrt, o sistema funcionou normalmente.

Passos

1 - Ligue e defina seu IP para 192.168.0.1 e o gateway para 192.168.0.254. 2 - Faça login na página da web e habilite o acesso SSH, em seguida, faça login usando SSH. 3 - SSH no roteador (ssh user@192.168.0.254) e execute cliclientd stopcs. 4 - Faça o upload do firmware com um nome curto (menos de 63 caracteres).

O roteador então se juntou à malha disponível na comunidade com uma versão mais antiga do Lime.

Problemas

1 - thisnode.info não está funcionando devido a um problema de SSL; às vezes precisamos usar explicitamente HTTP. 2 - O assistente de primeira inicialização não está funcionando. 3 - O suporte remoto não está funcionando, retornando “Por favor, verifique se o pacote ubus-tmate está instalado.” 4 - O acesso ao voucher não está funcionando; no console do navegador, retorna “Uncaught (in promise) TypeError: Cannot read properties of null (reading ‘sort’).”

CPE510 v3

Testar o roteador TP-Link EAP225-Outdoor V3 é motivado pela crescente demanda por soluções wireless robustas em redes comunitárias, especialmente em ambientes externos como parques. A motivação surge do desejo de enfrentar os desafios únicos apresentados por ambientes externos e acomodar um alto volume de usuários simultaneamente. O EAP225-Outdoor V3 se apresenta como uma solução potencial, projetada para fornecer conectividade Wi-Fi confiável em espaços externos com foco em escalabilidade e desempenho. Notavelmente, destaca-se como a opção mais econômica em sua categoria, tornando-se uma escolha atraente para redes comunitárias com restrições orçamentárias. Testar este roteador em cenários de redes comunitárias torna-se essencial para garantir sua compatibilidade com condições externas e sua capacidade de lidar efetivamente com a carga de usuários esperada. Ao realizar testes minuciosos, os administradores de rede podem verificar a adequação do EAP225-Outdoor V3 para áreas externas impulsionadas pela comunidade, contribuindo para a criação de redes wireless acessíveis e confiáveis em espaços públicos.

Este equipamento teve um processo relativamente simples para instalar o LibreMesh. Seguindo a documentação fornecida pelo OpenWrt, o sistema funcionou normalmente.

Passos

1 - Ligue e defina seu IP para 192.168.0.1 e o gateway para 192.168.0.254. 2 - Faça login na página da web e habilite o acesso SSH, em seguida, faça login usando SSH. 3 - SSH no roteador (ssh user@192.168.0.254) e execute cliclientd stopcs. 4 - Faça o upload do firmware com um nome curto (menos de 63 caracteres).

O roteador então se juntou à malha disponível na comunidade com uma versão mais antiga do Lime.

Problemas

1 - thisnode.info não está funcionando devido a um problema de SSL; às vezes precisamos usar explicitamente HTTP. 2 - O assistente de primeira inicialização não está funcionando. 3 - O suporte remoto não está funcionando, retornando “Por favor, verifique se o pacote ubus-tmate está instalado.” 4 - O acesso ao voucher não está funcionando; no console do navegador, retorna “Uncaught (in promise) TypeError: Cannot read properties of null (reading ‘sort’).”

Apesar dos problemas encontrados, este roteador funcionou muito bem no roadmap do libremesh e esses problemas já foram resolvidos e em breve teremos um sistema completo.

Archer AX23 v1

Com as versões antigas do LibreMesh, um roteador amplamente utilizado que quase não está mais no mercado é o TP-Link Archer C7, e um bom substituto para ele poderia ser o Archer AX23. Ao comparar o Archer C7 com o mais recente Archer AX23, torna-se evidente que o AX23 representa um avanço significativo na tecnologia de redes. Enquanto o Archer C7 V1 tem sido uma escolha confiável para redes comunitárias, o AX23 o supera em vários aspectos. O Archer AX23 introduz a tecnologia Wi-Fi 6, oferecendo velocidades significativamente mais rápidas e melhor desempenho geral da rede em comparação com o padrão Wi-Fi 5 mais antigo utilizado pelo Archer C7 V1. Com recursos como capacidade aumentada e eficiência aprimorada no manuseio de vários dispositivos simultaneamente, o AX23 atende às crescentes necessidades de conectividade das redes comunitárias contemporâneas. Além disso, o AX23 incorpora tecnologias avançadas como MU-MIMO e Beamforming, contribuindo para uma conexão sem fio mais estável e eficiente. À medida que as redes comunitárias evoluem, o Archer AX23 surge como uma solução superior e pronta para o futuro, oferecendo capacidades aprimoradas para atender às demandas do cenário digital em constante mudança.

1 - Faça login no sistema TP-Link > faça o upload do firmware. 2 - Escolha o firmware.

Após reiniciar, o roteador funciona com o LibreMesh, mas por algum motivo, o sistema não veio com a faixa de IP correta conforme esperado. Tentei usar o firmware sysupgrade e o roteador quebrou. Para recuperar, mantenha pressionado o botão de reset enquanto liga o roteador e solte o botão de reset quando apenas o LED WAN laranja estiver aceso, em seguida, faça o upload do firmware de fábrica da TP-Link.

Nanostation Ac Loco (airOs v8.7.9)

Por ter dois rádios de 5.8GHz, este equipamento é muito interessante para uso em redes comunitárias. Podemos usar um rádio para a malha e o outro para se conectar aos clientes, o que é crucial para estabelecer uma rede de malha mais estável, evitando problemas como o problema do nó oculto.

Neste caso, o roteador estava inicialmente equipado com a versão 8.7.9 do airOS da Ubiquiti. No entanto, precisei fazer o downgrade para a versão 8.7.0. Infelizmente, o sistema estava restrito e não permitia a instalação de versões mais antigas do firmware.

O que tornou este equipamento mais desafiador é um problema que nem mesmo a comunidade do OpenWrt conseguiu resolver ainda, conforme descrito neste post.

Hipóteses investigadas

1 - Remover parte do programa de atualização de firmware que verifica a versão do arquivo candidato para uma atualização, conforme descrito nos procedimentos comuns para ubiquitis

Com acesso ao terminal SSH, tentei criar um novo arquivo de atualização.

WA# hexdump -Cv /bin/ubntbox | sed 's/14 40 fe fe/00 00 00 00/g' | hexdump -R > /tmp/fwupdate.real
WA# chmod +x /tmp/fwupdate.real 
WA# /tmp/fwupdate.real -m WA.v8.7.0.42152.200203.1256.bin 
Invalid version 'WA.ar934x.v8.7.0.42152.200203.1256'

mas não funcionou.

2 - Utilize o binário do programa de atualização de versão que aceita atualizações:

Como não é possível fazer o downgrade do sistema, foi feita uma tentativa de extrair o binário que verifica o arquivo de atualização da versão anterior, o que já está documentado sobre como proceder.

Assim, utilizando o comando binwalk, extraí os arquivos binários de uma versão WA.ar934x.v8.7.0.42152.200203.1256 do airOS.

binwalk -Me WA.v8.7.0.42152.200203.1256.bin

DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
0             0x0             Ubiquiti firmware header, header size: 264 bytes, ~CRC32: 0x8E4EB358, version: "WA.ar934x.v8.7.0.42152.200203.1256"
268           0x10C           Ubiquiti partition header, header size: 56 bytes, name: "PARTu-boot", base address: 0x9F000000, data size: 231788 bytes
115476        0x1C314         Certificate in DER format (x509 v3), header length: 4, sequence length: 64
143220        0x22F74         U-Boot version string, "U-Boot 1.1.4-s1102 (Mar  5 2019 - 17:13:19)"
143508        0x23094         CRC32 polynomial table, big endian
224688        0x36DB0         CRC32 polynomial table, big endian
232120        0x38AB8         Ubiquiti partition header, header size: 56 bytes, name: "PARTkernel", base address: 0x9F050000, data size: 991878 bytes
232176        0x38AF0         uImage header, header size: 64 bytes, header CRC: 0xA68651F0, created: 2020-02-03 11:03:06, image size: 991814 bytes, Data Address: 0x80002000, Entry Point: 0x80002000, data CRC: 0x6458CA58, OS: Linux, CPU: MIPS, image type: OS Kernel Image, compression type: lzma, image name: "MIPS Ubiquiti Linux-2.6.32.68"
232240        0x38B30         LZMA compressed data, properties: 0x5D, dictionary size: 8388608 bytes, uncompressed size: 2844788 bytes
1224062       0x12AD7E        Ubiquiti partition header, header size: 56 bytes, name: "PARTrootfs", base address: 0x9F150000, data size: 7995392 bytes
1224118       0x12ADB6        Squashfs filesystem, little endian, version 4.0, compression:lzma, size: 7675509 bytes, 988 inodes, blocksize: 262144 bytes, created: 2020-02-03 11:03:08
9219518       0x8CADBE        Ubiquiti firmware additional data, name: script, size: 398 bytes, size2: 398 bytes, CRC32: 8fdcf4e2
9219574       0x8CADF6        gzip compressed data, from Unix, last modified: 2020-02-03 11:01:05
9219980       0x8CAF8C        Signed Ubiquiti end header, RSA 2048 bit, header size: 264 bytes

Assim, na pasta de binários, encontrei o arquivo ubntbox, que serve como o alvo para o link simbólico direcionado do arquivo fwupdate.real. Copiando este binário para o roteador, obtive a seguinte saída:

WA# /tmp/fwupdate.real -m openwrt-ubnt_initramfs.bin 
/tmp/fwupdate.real: can't load library 'libssl.so.1.0.0'

In other words, we need a library for this binary to work since this library has been updated in the new version. I also tried to create a symbolic link from the newer library to this one, but it wasn’t possible to create a symbolic link because the system is set to read-only.

WA# ln -s /lib/libssl.so.1.1 /lib/libssl.so.1.0.0
ln: /lib/libssl.so.1.0.0: Read-only file system

3 - Acessando o u-boot e carregando o firmware na memória flash

Para acessar o u-boot, tive que conectá-lo via porta serial. Para fazer isso, tive que soldar um adaptador flash-serial na circuitaria do roteador e fazer uma conexão USB com o computador para acessar o u-boot do roteador.

Assim que o sistema começa a inicializar, recebemos uma mensagem dizendo Pressione qualquer tecla para interromper a inicialização automática: 0. Pressionar Enter neste ponto interrompe o sistema de inicialização.

U-Boot 1.1.4-s1102 (Mar  5 2019 - 17:13:19)

DRAM:  64 MB
Flash: 16 MB (0xc2, 0x20, 0x18)
PCIe WLAN Module found (#1).
Net:   AR8035
eth0, eth1
Board: Ubiquiti Networks AR9342 board (e7fa-141334.1123.0030.0031)
Radio: 0777:e7fa
Reset: Normal
Hit any key to stop autoboot:  0 
ar7240> 
ar7240> 
ar7240> 

Agora que você tem acesso ao terminal, você pode iniciar o processo de inicialização usando o comando tftpboot.

ar7240> tftpboot
*** Warning: no boot file name; using '1401A8C0.img'
Using eth0 device
TFTP from server 192.168.1.254; our IP address is 192.168.1.20
Filename '1401A8C0.img'.
Load address: 0x81000000
Loading: T T T T 
Retry count exceeded; starting again
Invalid speed detected
*** Warning: no boot file name; using '1401A8C0.img'

Simultaneamente, em um computador, você precisa criar um servidor TFTP com um IP fixo em 192.168.1.254 e servir um arquivo chamado 1401A8C0.img. Este arquivo deve ser uma imagem initramfs do OpenWrt, neste caso, LibreMesh.

Assim que o arquivo for enviado, inicialize o sistema com bootm. Uma vez que o sistema tenha inicializado, você terá acesso a um terminal dentro do OpenWrt para realizar a atualização final.

root@OpenWrt:/tmp# mtd -r write /tmp/libremesh-master-ow23.05.2-default-ath79-generic-ubnt_nanostation-ac-loco-squashfs-sysupgrade.bin firmware
Unlocking firmware ...

Writing from /tmp/libremesh-master-ow23.05.2-default-ath79-generic-ubnt_nanostation-ac-loco-squashfs-sysupgrade.bin to firmware .

O sistema não funcionou exatamente como esperado, mas está em execução com o LibreMesh. No final, quando o rádio é acessado, o roteador trava e exibe esta mensagem no serial:

[  170.973497] jffs2: Node CRC ffffffff != calculated CRC f09e7845 for node at 007e5098
[  170.981767] jffs2: Node CRC ffffffff != calculated CRC f09e7845 for node at 007e5098
[  170.989976] jffs2: Node CRC ffffffff != calculated CRC f09e7845 for node at 007e5098
[  170.998244] jffs2: Node CRC ffffffff != calculated CRC f09e7845 for node at 007e5098
[  171.006297] jffs2: Node CRC ffffffff != calculated CRC f09e7845 for node at 007e5098
[  171.014288] jffs2: Node CRC ffffffff != calculated CRC f09e7845 for node at 007e5098
[  171.022518] jffs2: Node CRC ffffffff != calculated CRC f09e7845 for node at 007e5098
[  171.030505] jffs2: Node CRC ffffffff != calculated CRC f09e7845 for node at 007e5098
[  171.038691] jffs2: Node CRC ffffffff != calculated CRC f09e7845 for node at 007e5098
[  171.046727] jffs2: Node CRC ffffffff != calculated CRC f09e7845 for node at 007e5098
[  171.060059] jffs2: Node CRC ffffffff != calculated CRC f09e7845 for node at 007e5098

Conclusão

O Tplink eap225 outdoor v3 e o cpe510 v3 funcionaram superbamente, alguns problemas relacionados a algumas questões em aberto no projeto libremesh já estão visíveis para serem corrigidos e devem ser ótimas opções para redes comunitárias em 2024. O loco ac Loco (e similares) e ax23 devem ser opções em breve assim que encontrarmos os problemas com esses erros. Não parece ser tão difícil uma vez que o firmware tenha sido gravado na memória do roteador e tenha concluído o processo de inicialização. Os erros encontrados serão relatados e ainda será necessário algum trabalho para resolvê-los.

comments powered by Disqus