🛠 Routeur Linux : bridge WAN/LAN et forwarding sur le R5S
Objectifs
Transformer le NanoPi R5S en routeur/gateway Linux sous Debian ou Armbian. Architecture réseau de la carte : 1× GbE WAN (GMAC natif + PHY Realtek RTL8211F) et 2× 2,5 GbE LAN (deux contrôleurs PCIe Realtek RTL8125BG). Vous allez activer le forwarding IPv4, créer le bridge LAN, configurer l'adresse IP, le NAT masquerade en sortie WAN, et vérifier les vitesses réelles. Sous OpenWrt/FriendlyWrt, l'équivalent se fait en UCI ; ici c'est du Linux nu.
Matériel
- NanoPi R5S sous Debian/Ubuntu FriendlyElec ou Armbian (Armbian renomme les interfaces wan1/lan1/lan2 via udev ; FriendlyElec garde eth0/eth1/eth2 — vérifier avec
ip link) - Box Internet sur le port GbE (WAN), PC 2,5G sur un port LAN
- Accès console pendant la config réseau (risque de couper SSH en configurant WAN/LAN)
Code complet
#!/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
Vérification attendue
ip -br addr montre br-lan en 192.168.69.1 et eth0 en DHCP. Un PC sur le port 2,5G reçoit une adresse en 192.168.69.x et ping 1.1.1.1. ethtool eth1 | grep Speed indique 2500Mb/s, ethtool eth0 1000Mb/s. Référence iperf3 (CNX) : ~2,35 Gbps en Rx et ~1,85 Gbps en Tx par port 2,5G, ~941 Mbps sur le GbE. En forwarding pur, le RK3568B2 tient le gigabit sans difficulté.
Erreurs fréquentes
- Perdre SSH en bridgeant l'interface de connexion : faire la manip en console série/HDMI ou prévoir un accès hors bande.
- Oublier
sysctl net.ipv4.ip_forward=1: le ping sort du LAN mais ne traverse pas. - Noms d'interfaces différents selon la distribution (wan1/lan1/lan2 sous Armbian) : toujours vérifier
ip linkavant les scripts. - Confusion de câblage : le port GbE natif est le WAN ; les deux 2,5G sont les LAN. Les scripts réseau persistants (systemd-networkd/NetworkManager) peuvent écraser la config manuelle au reboot.
- Sous kernel mainline entre 2023 et 2026, des correctifs gmac0 (phy-supply, broche de reset) étaient encore en cours : un WAN muet peut venir d'un kernel intermédiaire, mettre à jour.
Autres tutoriels pour cette carte
Exemples de code pour cette carte
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash