🛠 Routeur / passerelle réseau double Gigabit avec OpenWrt et PoE
Objetivos
Transformar la ROCK 3B en router/puerta de enlace: dos puertos Gigabit (gmac0 + gmac1, ambos rgmii-id en el device tree mainline), un puerto alimentable por PoE mediante el HAT Radxa de 25 W (el puerto cercano a la pila de USB), y una sección oficial de OpenWrt en la documentación de Radxa. Caso típico: box → WAN (eth0), LAN (eth1) hacia un switch, la tarjeta alimentada por el PoE del switch — cero alimentación de red eléctrica.
Material
- Radxa ROCK 3B (2 GB son suficientes para enrutamiento), SSD NVMe o eMMC para la persistencia
- HAT PoE Radxa de 25 W + switch PoE (802.3af)
- Consola serie USB-C a 1 500 000 baudios para rescate, cable Ethernet
- >
Código completo
# 1. Prérequis ABSOLU sur toute image non-Radxa : U-Boot récent, sinon eth1 meurt
# (« rk_gmac-dwmac ... eth1: Failed to reset the dma ») — flasher l'image SPI
# Radxa actuelle ou un mainline rock-3b-rk3568_defconfig AVANT tout le reste.
# 2. Option A — OpenWrt (section officielle docs.radxa.com other-os/openwrt) :
# écrire l'image, configurer /etc/config/network (eth0=WAN wan, eth1=LAN lan),
# firewall zone wan=LAN->WAN ; le boot NVMe OpenWrt est du DIY (forum 225022).
# 3. Option B — Debian + NAT manuel :
sudo apt install isc-dhcp-server nftables
sudo sysctl -w net.ipv4.ip_forward=1
sudo nft add table ip nat ; sudo nft add chain ip nat postrouting '{ type nat hook postrouting priority 100 ; }'
sudo nft add rule ip nat postrouting oifname "eth0" masquerade
sudo ip link set eth1 up ; sudo ip addr add 192.168.10.1/24 dev eth1
# 4. Débit par port (~940 Mbit/s attendus) :
sudo apt install iperf3 ; iperf3 -s -D ; iperf3 -c <ip-de-la-carte>
Verificación esperada
ip -br addr muestra eth0 (WAN) y eth1 (LAN) activos; ethtool indica 1000 Mb/s en ambos; un cliente detrás de eth1 sale a Internet (NAT) y iperf3 se acerca a 940 Mbit/s por puerto. La tarjeta funciona, alimentada únicamente por el cable Ethernet del switch PoE.
Errores frecuentes
- La trampa n.º 1 documentada de la tarjeta: solo funciona un puerto porque el bootloader es demasiado antiguo — actualizar U-Boot/SPI antes de culpar al kernel (forum.radxa.com t/25181, resuelto).
- Conectar el PoE al puerto Ethernet equivocado: solo el puerto del lado USB es compatible con el HAT.
- Cadena PoE 802.3af de 15 W vs HAT de 25 W: verificar que el switch proporcione el presupuesto, especialmente con SSD + periféricos USB.
- Bajo OpenWrt, olvidar actualizar la imagen SPI para el arranque NVMe: procedimiento de prueba y error documentado en el foro de OpenWrt, mantener una microSD de respaldo.
- Exponer la interfaz de administración (LuCI/SSH) en la zona WAN sin filtro.
Otros tutoriales para esta placa
- Faire clignoter une LED via le GPIO avec libgpiod
- Lire un bouton poussoir en Python avec python3-libgpiod
- Premier réseau : Ethernet double gigabit, Wi-Fi optionnel et SSH
- Installer et booter le système sur un SSD NVMe (M.2 M-Key)
- Interroger un capteur I2C sur le connecteur 40 broches
- Surveiller température et fréquence CPU, piloter le ventilateur PWM
Ejemplos de código para esta placa
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash