OpenWRT dans mon réseau domestique

OpenWRT

Jusqu’à présent j’avais un réseau domestique assez simple : 1 Freebox mini 4K qui faisait office de routeur et gérait également mon Wi-Fi. Le problème est qu’avec le confinement et le fait de connecter plus de PCs dans toute la maison on a vite rencontré des problèmes de stabilité Wi-Fi sur la box.

Schéma basée sur la Freebox 4K
Schéma représentant mon réseau avant le confinement

Choix du routeur et mise en place d’OpenWRT

Bref, ça me trottait dans la tête depuis un petit moment et j’ai donc décidé de profiter d’une promo sur AliExpress pour acheter non pas 1 mais 2 routeurs Wi-Fi ! J’ai fait le choix de Xiaomi Redmi AC2100 pour leur rapport qualité / prix (32€ l’un !) mais surtout pour leur compatibilité avec OpenWRT. En effet, le firmware open-source s’installe facilement avec uniquement des manipulations software sans passer par la case fer à souder !

Xiaomi Redmi AC2100
Routeur Xiaomi Redmi AC2100

Le but de la manœuvre était de :

  • Remplacer le routeur de la Freebox 4K par OpenWRT.
  • Placer un Access Point à l’étage pour avoir une bonne qualité de réception (j’ai du RJ-45 qui distribue le réseau dans chaque pièce de la maison).
  • Avoir une gestion intelligente des déplacements au sein de la maison. Pour cela j’utilise le Wi-Fi 802.11r, c’est à dire le fast roaming qui permet de passer d’un AP à un autre facilement.

Configuration de la Freebox

Mon réseau sous OpenWRT
Mon réseau avec 2 routeurs OpenWRT

Concernant la Freebox, je n’ai pas encore fait le grand saut de la passer en mode bridge. Pour le moment, j’ai juste activé une DMZ qui renvoie tout sur mon routeur. J’ai sécurité les accès à mon serveur domestique en coupant les accès SSH ainsi que le gestionnaire d’administration (OpenMediaVault) grâce à la mise en place d’un VPN Wireguard.

Luci sous OpenWRT
Interface web Luci sous OpenWRT

Contrôle parental avec OpenWRT & OpenDNS

Confinement toujours, mon grand utilise de plus en plus un PC, j’ai donc mis en place un contrôle parental. Le contrôle est basé sur OpenDNS et des baux statiques liés aux adresses MAC. Pour finir j’ai également mis en place des plages horaires d’utilisation.

OpenDNS
Configuration du contrôle parental sous OpenDNS

Anti-pub avec AdBlock

La Freebox possède un anti pub mais on n’a pas la main dessus. Grace à OpenWRT, j’ai entièrement repris le contrôle sur mon anti pub en installant AdBlock directement sur le routeur.

Luci AdBlock
Interface d’AdBlock sur Luci

Monitoring

Pour monitorer tout ceci, je passe par Collectd, InfluxDB et Grafana. Le monitoring me permet notamment de visualiser les bascules entre fréquences et AP du 802.11r.

Rétrolien

[…] évoqué précédemment, j’ai une installation et un réseau domestique assez étendu, le tout propulsé par 2 […]

[…] façons de procéder, j’ai fait le choix de la performance et j’ai donc mes 2 routeurs Xiaomi Redmi AC2100 qui sont connectés ensemble via un câble […]

Commentaires

Alban

De Alban le 14 août 2020

Bonjour, j'ai essayé d'installé Openwrt sur un Redmi AC2100 mais en lançant la commande :
sudo python3 pppoe-simulator.py

J'ai une erreur au bout de quelque secondes, il ne s'affiche pas Client->Server mais :
Waiting for packets
Traceback (most recent call last):
File "pppoe-simulator.py", line 183, in
sniff(prn=packet_callback, filter="pppoed or pppoes", lfilter=isNotOutgoing)
File "/usr/lib/python3/dist-packages/scapy/sendrecv.py", line 780, in sniff
r = prn(p)
File "pppoe-simulator.py", line 63, in packet_callback
for tag in pkt[PPPoED][PPPoED_Tags].tag_list:
NameError: name 'PPPoED_Tags' is not defined

Avez-vous été confronté à ce problème ?
Merci.

Guillaume Kulakowski

Non par contre je suis passé en root pas en sudo.

Nati

De Nati le 2 décembre 2020

Hi Alban, i handle the same issue, did you solve it ?

root@nati-VirtualBox:/home/nati/ac2100-openwrt-guide-master# python3 pppoe-simulator.py
WARNING: No route found for IPv6 destination :: (no default route?). This affects only IPv6
Waiting for packets
Traceback (most recent call last):
File "pppoe-simulator.py", line 183, in
sniff(prn=packet_callback, filter="pppoed or pppoes", lfilter=isNotOutgoing)
File "/usr/lib/python3/dist-packages/scapy/sendrecv.py", line 603, in sniff
r = prn(p)
File "pppoe-simulator.py", line 63, in packet_callback
for tag in pkt[PPPoED][PPPoED_Tags].tag_list:
NameError: name 'PPPoED_Tags' is not defined

Alban

De Alban le 2 décembre 2020

Hello, I was given a workaround. I've read on internet that the firmware version I had was corrected, it didn't have this way to install openwrt anymore, maybe it was related.
Luckily, this new firmware also had a new way to install openwrt, really easier. I found a video explaining this other solution.

Guillaume Kulakowski

It's not possible to downgrade ?

Alban

De Alban le 2 décembre 2020

I tried to downgrade using the official redmi software and an older firmware file but I still had the same issue. But the new way to get access to the router to install orpnwrt is really easier.

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Réseaux sociaux

%d blogueurs aiment cette page :