🛠 Routeur Linux : bridge WAN/LAN et forwarding sur le R5S
Objetivos
Transformar el NanoPi R5S en un router/gateway Linux bajo Debian o Armbian. Arquitectura de red de la placa: 1× GbE WAN (GMAC nativo + PHY Realtek RTL8211F) y 2× 2,5 GbE LAN (dos controladores PCIe Realtek RTL8125BG). Vas a activar el reenvío IPv4, crear el bridge LAN, configurar la dirección IP, el NAT masquerade en la salida WAN y verificar las velocidades reales. En OpenWrt/FriendlyWrt, el equivalente se hace con UCI; aquí es Linux puro.
Material
- NanoPi R5S con Debian/Ubuntu FriendlyElec o Armbian (Armbian renombra las interfaces wan1/lan1/lan2 mediante udev; FriendlyElec mantiene eth0/eth1/eth2 — verificar con
ip link) - Caja de Internet en el puerto GbE (WAN), PC 2,5G en un puerto LAN
- Acceso a consola durante la configuración de red (riesgo de cortar SSH al configurar WAN/LAN)
Código completo
#!/bin/bash
# routeur_r5s.sh — routeur Linux minimal sur NanoPi R5S (root requis)
set -e
WAN=eth0; LAN=eth1 # adapter : eth0=GbE WAN, eth1/eth2=2,5G LAN
# 1) Forwarding IPv4/IPv6 persistant
cat > /etc/sysctl.d/99-routeur.conf <<'EOF'
net.ipv4.ip_forward=1
net.ipv6.conf.all.forwarding=1
net.ipv4.conf.all.rp_filter=1
EOF
sysctl --system
# 2) Bridge LAN sur les deux ports 2,5G + IP
ip link add br-lan type bridge
ip link set $LAN master br-lan
ip link set eth2 master br-lan
ip addr add 192.168.69.1/24 dev br-lan
ip link set br-lan up
# 3) WAN en DHCP puis NAT masquerade
dhclient $WAN
iptables -t nat -A POSTROUTING -o $WAN -j MASQUERADE
iptables -A FORWARD -i br-lan -o $WAN -j ACCEPT
iptables -A FORWARD -i $WAN -o br-lan -m state --state RELATED,ESTABLISHED -j ACCEPT
# 4) DHCP simple pour le LAN (installer dnsmasq au préalable)
sudo apt install -y dnsmasq
cp /dev/null /etc/dnsmasq.conf
dnsmasq --interface=br-lan --dhcp-range=192.168.69.50,192.168.69.200,255.255.255.0,12h
Verificación esperada
ip -br addr muestra br-lan en 192.168.69.1 y eth0 en DHCP. Un PC en el puerto 2,5G recibe una dirección en 192.168.69.x y hace ping a 1.1.1.1. ethtool eth1 | grep Speed indica 2500Mb/s, ethtool eth0 1000Mb/s. Referencia iperf3 (CNX): ~2,35 Gbps en Rx y ~1,85 Gbps en Tx por puerto 2,5G, ~941 Mbps en el GbE. En reenvío puro, el RK3568B2 soporta el gigabit sin dificultad.
Errores frecuentes
- Perder SSH al hacer bridge en la interfaz de conexión: realizar la operación en consola serie/HDMI o prever un acceso fuera de banda.
- Olvidar
sysctl net.ipv4.ip_forward=1: el ping sale de la LAN pero no la atraviesa. - Nombres de interfaces diferentes según la distribución (wan1/lan1/lan2 bajo Armbian): siempre verificar
ip linkantes de los scripts. - Confusión de cableado: el puerto GbE nativo es el WAN; los dos 2,5G son los LAN. Los scripts de red persistentes (systemd-networkd/NetworkManager) pueden sobrescribir la configuración manual al reiniciar.
- Bajo kernel mainline entre 2023 y 2026, aún estaban en curso parches para gmac0 (phy-supply, pin de reset): un WAN mudo puede deberse a un kernel intermedio, actualizar.
Otros tutoriales para esta placa
Ejemplos de código para esta placa
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash