Les Carnets de Byfeel domotique , Objets connectés , DIY , Programmation, Nouvelles Technologies ….

Débridez votre Routeur avec openWRT

Pourquoi utiliser OpenWRT

Pour donner une deuxième vie à vos vieux routeurs, qui dorment au fond de vos placards, ou encore apporter des fonctionnalités avancées à des routeurs souffrant d’un logiciel interne très « pauvre »..

Par exemple :

  • Connexions VPN / serveur VPN
  • Vlans
  • Serveur SSH
  • Répéteur Wifi / bridge / passerelle / etc …
  • la possibilité d’installer des logiciels , comme iperf , bittorrent , analyseur de traffic …..
  • Wifi invité
  • Contrôle parental
  • etc ……

Il existe de nombreux tutos sur la toile , expliquant comment installer OpenWRT . Selon le modèle de routeur, cette manipulation sera plus ou moins facile à effectuer.

Pour illustrer cet article, je vais partir d’un cas concret . Aujourd’hui, j’ai besoin de couvrir une zone où le Wi-Fi ne passe pas très bien. Ma maison, étant ancienne, les murs sont très épais ce qui rend le signal WIFI inutilisable à l’extérieur.

Après plusieurs recherches, j’ai opté pour un modèle de répéteur extérieur WAVLINK AC600. Le firmware proposé par le constructeur est très minimaliste, et propose que très peu de réglage. J’ai donc choisis de le migrer sous OpenWRT. Cette manipulation pourra servir, aussi, pour d’autres modèles de routeurs ou répéteur.

Vérifier la compatibilité du routeur avec OpenWRT

OpenWRT est compatible, avec de nombreux routeurs. Pour vérifier la prise en charge du wavlink, je cherche dans la liste de compatibilités des matériels.

Sur l’emballage de mon routeur , je trouve les informations concernant le modèle de ce dernier

WAVLINK AC600 : Model WL-WN570HA1 Rev A1

Sur la page d’OpenWRT , je renseigne la marque de mon routeur , afin de voir si il existe une compatibilité. Colonne brand.

Le WL-N570HA1 est bien géré , je clic sur les informations constructeurs concernant ce « Device » ( supported Versions ) , afin de m’assurer qu’il s’agit du bon modèle.

La partie la plus interessante , est la suite qui indique le type de matériel utilisé ici Mediatek MT7688AN , et le firmware compatible à installer. Actuellement la version 19.07.3.

Selon le routeur, dans la colonne Firmware openwrt install ( ici vide), vous pourrez trouver un lien vers un firmware qui peut être flashé directement depuis l’interface WEB du constructeur ( ce qui facilite l’installation) . Dans le cas du WAVLINK , le flashage devra s’effectuer via la mise en place d’un serveur TFTP.

Clic sur le lien dans Firmware OpenWRT upgrade , afin de télécharger le firmware à transféré.

A ce jour : openwrt-19.07.3-ramips-mt76x8-wavlink_wl-wn570ha1-squashfs-sysupgrade.bin ( pour le modèle Wavlink AC600 )

Pour information , en dessous du tableau , il est expliqué comment mettre le Routeur WAVLINK en Mode Client TFTP , ainsi que son adresse IP pour le mode boot loader et le nom du fichier à envoyer.

Débrancher le Routeur , maintenir le bouton reset et allumer , le boitier sera en attente de l’envoie du firmware.

Client : 192.168.10.101
Serveur : 192.168.10.100
Filename: firmware.bin

Pour les étapes suivantes , il est préférable d’utiliser un PC non connecté à votre réseau , afin d’éviter les éventuels problèmes de conflits d’IP .

Serveur TFTP

Un clic sur Install OpenWRT ( generic explanation ) , afin de connaitre la procédure Bootloader ( via TFTP ). Je m’interesse au point 2 – Method 2: via Bootloader and an Ethernet port.

  1. Installation serveur TFTP :

Selon le système utilisé Windows , linux ou Mac , il existe plusieurs tutoriel. Ce lien vous envoie sur la page détaillée d’installation via TFTP, en mode client ou server . La partie qui nous interesse est l’installation en mode client ( vu dans la page précédente , le routeur passe en mode client , lorsque l’on démarre en pressant la touche reset ).

il faut commencer par activer ou installer le serveur TFTP. Pour cela il suffit de suivre la documentation suivante :

Sous Mac OSX ou linux , il suffit de suivre les instructions en ligne de commande , les unes aprés les autres. Sous Windows , il est plus facile d’utiliser un programme tiers comme tftpd64 ( pour la version 64 bits ) ou tftpd32.

Dans mon cas j ai flashė à partir d un pc sous Linux , un ancien portable que j ai recyclé avec une distribution Linux . Windows étant plus utilisé , je vais expliquer comment faire sous ce dernier.

  1. Exemple sous Windows
    • Je télécharge la version 64 ou 32 bits de tftpd ( par exemple tftpd64 ) , la version portable édition , permet d’éviter de l’installer.
    • Je décompresse le tout dans un dossier ( exemple c:/tftp )
    • Je teste si le programme fonctionne , si avertissement parefeu , autoriser le programme.
  • copier le fichier du firmware précédemment téléchargé dans le dossier TFTP , et renommé le : firmware.bin , comme indiqué dans la page de description du matériel de OpenWRT.
  • Configurer le PC sur l’adresse IP du serveur TFTP , tel que définit par le constructeur ( info page constructeur OpenWRT ) : Dans mon cas , il s’agit de l’adresse : 192.168.10.100
  • Test du bon fonctionnement : Depuis un autre ordinateur , je démarre une session tftp client , en prenant soin de mettre mon ordinateur de test dans la même classe d’adresse :
    Par exemple sous Mac osX cela donne :
tftp 192.168.10.100
tftp> get firmware.bin
Received 4194590 bytes in 4.0 seconds
tftp>quit

quit , pour sortir . Sur mon serveur tftp , dans la fenêtre log viewer , je peux retrouver l’activité de cette commande.

Tout est prêt , pour flasher le routeur WAVlink AC600, ou tout autre modèle de routeur si compatible avec cette méthode.

Installation systeme OpenWRT

  • Je met mon serveur TFTP en attente de connexion.
  • Dans le cas du WAVLINK AC600 , le cable RJ45 doit être relié a l’injecteur POE fournis avec ( Prise POE ) , afin d’alimenter le routeur. Je relie donc un cable RJ45 entre mon serveur TFTP et la prise disponible sur l’injecteur POE afin de communiquer avec le routeur ( DATA IN ).
  • Je démarre le routeur en maintenant la touche reset pressé , afin qu’il démarre en bootloader , des que la Led clignote je peux relâcher )
  • Le transfert va démarrer automatiquement , on peut suivre le log sur le serveur TFTP.
  • Une fois terminé le routeur reboot , avec OpenWRT installé ( adresse IP par défaut : 192.168.1.1 )

Configuration OpenWRT

Régler la carte reseau du PC , sur une adresse comptatible avec OpenWRT ( 192.168.1.1 ) , mettre par exemple 192.168.1.2 sur le PC.

Puis on se rend sur l’adresse : http://192.168.1.1. Le compte par défaut est root , sans mot de passe.Ci dessous un exemple de l’interface d’accueil , une fois configuré.

Il est alors possible de configurer un mot de passe pour le compte root , de personaliser son routeur … Je vous laisse faire le tour du propriétaire.

Pour continuer , avec mon cas concret , j’ai besoin d’étendre mon wifi afin de couvrir mon jardin , et surtout de pouvoir relier une caméra wifi un peu loin de la maison.

OpenWRT en mode BRIDGE WIFI

Cette explication est basé sur le tuto en ligne : Wi-Fi extender / repeater / bridge configuration.
Sur le PC dédié à la configuration , mettre l’adresse IP , dans la même classe d’adresse IP que le Routeur , par exemple : 192.168.1.2 et désactiver pour l’instant le WIFI sur ce PC.

Parametrage de la carte LAN

L’interface LAN du répéteur WIFI doit être sur une classe d’adresse IP différente du réseau à répété , afin que le service Bridge ( relayd) puisse fonctionner . Par exemple si mon réseau est dans la classe d’adresse : 192.168.5.0/24 mon interface lan ne devra pas étre en 192.168.5.x .

Le paramétrage de l’interface LAN , servira uniquement pour la gestion du logiciel OpenWRT , an cas de problème si plus d’accès via le WIFI. Il sera alors toujours possible de se connecter au routeur , via un cable réseau branché directement sur un port LAN.

Je me connecte à l’interface 192.168.1.1 d’openWRT : Menu network / interfaces

Clic sur EDIT en face de LAN , et j’indique une adresse IP statique , par exemple 192.168.2.1

Dans les onglets suivants :

  • Advanced Settings , je décoche IPV6 management
  • Physical sttings , je décoche Bridge interfaces
  • Firewall settings : Je garde la zone LAN en vert
  • DHCP server : je coche « ignore interface » et IPV6 settings je passe tous sur « disabled »

Puis je clic sur « save » , Un message m’indique que mes réglages sont en attente de validation. En effet l’interface d’openWRT , applique les modification que lorsque l’on clic sur  » Save & Apply  » . En haut de l’interface , un bouton bleu indique les changement en attentes d’application. Il est toujours possible de revenir en arriére , si on s’est trompé.

Si je clic , sur save&apply , OpenWRT va appliquer mes changements et tester si j’ai toujours la main sur le routeur . Comme j’ai choisi une classe d’adresse IP différente 192.168.1.1 à 192.168.2.1 , il va y avoir une erreur et le routeur va de lui même annulé mes modifications et revenir à l’etat précédent.

Pour forcer le changement , je clic sur la petite fléche à coté de save&apply , afin de choisir l’option Apply unchecked ( appliquer sans vérification ).

Je n’oublie pas de repositionner mon Pc sur la nouvelle classe d’adresse IP : Par exemple 192.168.2.2

Connexion au WIFI

Clic sur Network / Wireless …

Selon le routeur, les cartes WIFI sont visibles. Ici sur le modéle Wavlink les deux cartes réseaux WIFI 2,4 Ghz ( 802.11 bgn) et WIFI 5ghz ( 802.11 nac ) sont pris en compte .

Par défaut , un reseau par carte WIFI est en attente d’activation SSID : OpenWRT Sans protection Accès libre. Je conseilles de les supprimer ( Remove ) et de cliquer sur Save&apply .

Je clic maintenant sur Scan , afin de me relier à mon réseau WIFI. Selon votre emplacement , plusieurs réseaux peuvent apparaitre , clic sur le votre et Join Network.

Je renseigne la clé de sécurité de mon WIFI dans WPA Passphrase , et je choisi la zone LAN pour le Parefeu puis SUBMIT.

Une fenêtre s’ouvre pour terminer la configuration et verifier les paramètres du Client WIFI . Les paramètres à verifier sont les suivants :

  • Operating frequency : Régler les paramètres de votre WIFI , si vous êtes en N , mettre mode en N ou legacy pour assurer une compatibilité avec les anciens routeurs ( b ou g ) . Channel : mettre le même numéro que votre WIFI par exemple le canal 11 ou auto, et WIDTH et la largeur de la bande ( 20 ou 40 Mhz si disponible ).
  • Les autres paramètres , peuvent rester par défaut.
  • Submit puis Save&Apply pour appliquer.

Le routeur est maintenant connecté à votre WIFI. Dans Associated Stations , on retrouve les infos de la borne d’accès ( adresse MAC ) ainsi que le niveau du signal.

Il suffit de tester la connexion internet , dans le menu : Network / diagnostics et clic sur ping par défaut vers openwrt.org

PING openwrt.org (139.59.209.225): 56 data bytes
64 bytes from 139.59.209.225: seq=0 ttl=52 time=49.771 ms
64 bytes from 139.59.209.225: seq=1 ttl=52 time=39.475 ms
64 bytes from 139.59.209.225: seq=2 ttl=52 time=27.889 ms
64 bytes from 139.59.209.225: seq=3 ttl=52 time=50.243 ms
64 bytes from 139.59.209.225: seq=4 ttl=52 time=142.483 ms

--- openwrt.org ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max = 27.889/61.972/142.483 ms

Installation du service Relayd

Sur la documentation openWRT , il est précisé qu’il est possible de ne plus utiliser le service relayd , si les routeurs sont compatibles WDS . J’ai testé cette methode , mais elle ne me convient pas , je préfère utiliser le service bridge.

Openwrt WDS

Menu System / Software : update list , afin de mettre en jour la liste des paquetages. Dans la case filter : je renseigne relayd. J’ installe en premier le package relayd ( qui ajoute la fonction Bridge ) , puis le paquet lucy-proto-relay qui ajoute les fonctionnalité à l’interface Web.

Je vérifie que le service soit bien activé dans le menu : System / startup

Dans le menu Network / interface : je clic sur ADD New Interface . Je lui donne un nom , par exemple Extender ( ou Répéteur , bridge etc … ) , et choisi le protocole : Relay Bridge pour cette interface . Si l’option relay bridge n’apparait pas , c’est que l’option luci-proto-relay n’a pas été installé. Puis clic sur CREATE INTERFACE

Et dans le menu firewall settings , je choisi la même zone ( vert par défaut ) que le LAN et WWAN . Je sauvegarde.

Verifier les parametres suivants :

  • onglet : General setting – Relay between LAN et WWAN
  • onglet : Advanced settings – décocher IPV6
  • onglet : Firewall , choisir la zone LAN et WWAN ( vert )

Un Save&Apply , pour appliquer les paramètres du bridge.

Création du point d’accès WIFI d’extention

Il ne reste plus qu’a créer un Point d’accès WIFI . Dans mon exemple , je vais créer un point d’accès en WIFI 2,4 GHZ ( 802.11 bgn ).

Menu Interfaces / Wireless , et je clic sur ADD , en face de l’interface concerné. Je régle les parametres : type reseau ( legacy / n … ) channel. Mode : ACESS POINT , Je lui donne un nom SSID , et configure la sécurité. Je rattache à la carte LAN

Puis save&apply

Votre nouveau wifi devrait apparaitre , il ne reste plus qu’a tester.

Il ne reste plus qu’a valider les regles du firewall. Menu Network / Firewall et à modifier la zone LAN (en vert ) sur accept pour les trois champs.

Activer le protocole bonjour ( mdns ) à traverser votre Repeteur.

Comme expliqué au début , le but est d’installer une caméra WIFI , compatible Homekit dans le jardin. Une fois connecté sur le répéteur , j’ai enfin accés à la vidéo de maniére fluide. Par contre , dans l’application homekit , les mises a jours de capture ne se font pas , et l’application m’affiche que la caméra n’est pas joignable.

Le problème , vient que le protocole Mdns , n’est pas routé par relayd . Pour cela il va falloir installé le protocole Linux ( équivalent à mdns ) AVAHI.

Menu systeme / Software / update list et chercher avahi et installer les services.

Pour configurer Avahi , il va falloir modifier le fichier en ligne de commande . Connexion en ssh .

ssh root@192.168.8.x ( adresse ip du routeur )

BusyBox v1.30.1 () built-in shell (ash)

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------
 OpenWrt 19.07.3, r11063-85e04e9f46
 -----------------------------------------------------
root@WiFI-jardin:~#
vi /etc/avahi/avahi-daemon.conf

il faut editer le fichier avahi-daemon.conf avec l’éditeur vi , est indiqué : enable-reflector=yes ( no par défaut ).

[server]
#host-name=foo
#domain-name=local
use-ipv4=yes
use-ipv6=yes
check-response-ttl=no
use-iff-running=no

[publish]
publish-addresses=yes
publish-hinfo=yes
publish-workstation=no
publish-domain=yes
#publish-dns-servers=192.168.1.1
#publish-resolv-conf-dns-servers=yes

[reflector]
enable-reflector=yes
reflect-ipv=no

[rlimits]
#rlimit-as=
rlimit-core=0
rlimit-data=4194304
rlimit-fsize=0
rlimit-nofile=30
rlimit-stack=4194304
rlimit-nproc=3

il ne reste plus qu’a sauvegarder son fichier ; Escape :w pour enregistrer et escape :q pour sortir.

Je reboot mon routeur et le tour est joué.

Bonus : installer iperf3 sur le routeur

Il est possible d’installer ifperf3 , pour mesurer le debit entre votre répéteur et votre serveur. Dans le menu Software , recherché iperf3 puis installation.

Pour l’utiliser , il faudra se connecter en SSH et executer la commande

iperf3 -c adresseip serveur iperf

2 commentaires sur “Débridez votre Routeur avec openWRT”

Les commentaires sont fermés.