- Article mise à jour le 03/05/2025 pour tenir compte des spécificités d’OpenWRT 24.10.
- Article mise à jour le 17/04/2024 pour tenir compte des spécificités d’OpenWRT 23.05.
- Version initiale de l’article : quelque part en 2021.
Bien que je sois le très récent et heureux possesseur d’une Freebox Pop, j’ai fait le choix de continuer à déléguer la gestion de mon réseau ainsi que de mon partage Wi-Fi, non pas à la Pop, mais à OpenWRT.
Les avantages pour moi sont les suivants :
- Plus de contrôle au niveau des règles de firewall (IPv4, IPv6) ainsi que de la configuration du routeur en général.
- Avoir la main sur le choix de ma solution de VPN (WireGuard dans mon cas, mais entre temps Free a fait le même choix).
- Avoir le contrôle de l’anti-pub (une complète maîtrise et non pas une simple activation/désactivation).
- Pouvoir faire du DoH (DNS over HTTPS).
- Pouvoir mettre un contrôle parental configurable aux petits oignons.
- Monitorer mon trafic.
- Mettre en place du Wi-Fi 802.11r (roaming).
- etc…
Je reviendrai sur pas mal de ces points dans différents billets à venir, mais pour le moment, je ne m’intéresserai qu’à la base : avoir un réseau avec une gestion IPv4 / IPv6 (notons que l’IPv6 est obligatoire pour OQee).
Rappel de mon installation sous OpenWRT
Comme évoqué précédemment, j’ai une installation et un réseau domestique assez étendu, le tout propulsé par 2 routeurs Xiaomi Redmi, un AX6000 et un AC2100 (pas cher sur AliExpress). Ils me permettent d’étendre mon Wi-Fi sur les 2 étages que comporte ma maison. Mes routeurs sont tous les 2 dépouillés de leur firmware chinois pour tourner sous OpenWRT dans sa dernière version.
Pour cette configuration, je me suis basé sur différentes sources :
- Les forums d’OpenWRT.
- La documentation d’OpenWRT: Comment obtenir une délégation de préfixe IPv6 sur OpenWrt depuis une Freebox.
- Cet article : Openwrt, IPv6 and Freebox.
Configuration de la Freebox
Mode « Routeur + DMZ » VS mode « Bridge »
Il existe deux modes de configuration possibles : le mode Bridge (ou IP directe) et le mode Routeur avec DMZ.
Après comparaison, j’ai pu constater que le mode Routeur + DMZ est plus simple à mettre en place et à gérer. De plus, chez Free, certaines connexions utilisent une IP partagée (pas mon cas, je suis en full-stack) ce qui peut compliquer l’usage du mode Bridge.

J’ai donc (re)fait une installation en mode Routeur, tout aussi fonctionnelle. Cette configuration me donnant entière satisfaction, j’ai décidé de la conserver.
Comme je suis gentil, je vous laisse les 2 hypothèses et vous laisse argumenter en commentaire. Notez cependant que le mode Routeur vous éloigne de la loi de Murphy 😉 en vous offrant un mode rescue.
La troisième hypothèse étant le double NAT mais là, on complexifie et on est à la limite du dégueulasse.
Hypothèse n°1 : Le mode « Routeur » de la Freebox avec une DMZ
Pour passer en mode routeur, il suffit de laisser la configuration de base de la Freebox. Notez que j’ai juste choisi un sous-réseau différent de mon sous-réseau OpenWRT (192.168.0.1/24
VS 192.168.1.1/24
).

Ensuite, on donne un bail statique au routeur OpenWRT en fonction de son adresse MAC. Dans mon cas 192.168.0.1
.

Et après, on utilise l’option DMZ pour balancer tout le trafic dessus :

Hypothèse n°2 : Bascule en mode Bridge
⚠️ Solution à vos risques et périls !

Tout d’abord, nous allons basculer la Freebox en mode bridge. Ça se passe depuis l’interface de gestion de la Freebox : http://mafreebox.freebox.fr. Vous allez devoir accepter qu’en passant en mode Bridge vous perdez tout un tas de fonctionnalités, mais finalement, quand on en est à mettre OpenWRT à la place de la Freebox, on ne devrait pas trop avoir de soucis pour valider ses choix.

Prise en charge de l’IPv6
À partir de là, que vous soyez en mode Routeur ou Bridge c’est pareil.
Récupération de l’IPv6 du lien local d’OpenWRT
Tout d’abord, il va vous falloir récupérer l’IPv6 d’OpenWRT. Pour cela, il suffit de se connecter dessus en SSH et d’utiliser ifconfig
pour récupérer l’IPv6 de lien local (Scope:Link). Dans mon cas fe80::8ac3:xxxx:xxxx:xxxx
:
$ ifconfig MON_INTERFACE| grep "Scope:Link"
inet6 addr: fe80::8ac3:xxx:xxx:xxx/64 Scope:Link
Pour trouver l’interface sur laquelle filtrer la commande ifconfig
, vous la trouverez sur votre vue interface :

Configuration de la délégation de préfixe IPv6
On va récupérer l’IPv6 déterminée précédemment et la configurer dans l’interface IPv6 de la Freebox en tant « Next hop » du premier nœud de délégation de préfixe :

Notez bien quelque part ces 2 informations, vous en aurez besoin plus tard :
- Le préfixe de la délégation que vous venez de mettre en place (
2a01:e34:xxxx:xxxx::/64
). - L’adresse IPv6 du lien local (
fe80::8c97:xxxx:xxxx:xxxx
).
Remarquez également que l’on désactive le firewall IPv6 de la Freebox, ainsi que le DHCPv6 et les DNS IPv6 (je n’utilise pas ceux de Free) :


Voilà, la partie configuration de la Freebox est finie ! On peut maintenant passer sur l’interface d’OpenWRT.
Configuration d’OpenWRT
Installation des dépendances
Tout d’abord, on suppose que vous avez LuCi d’installée avec quelques outils ainsi que le support de l’IPv6, sinon :
$ opkg install luci-theme-material luci-i18n-base-fr luci-i18n-firewall-fr luci-i18n-opkg-fr luci-i18n-attendedsysupgrade-fr \
ipset curl diffutils speedtest-netperf \
kmod-ipt-nat6
Interfaces WAN & WAN6
Pour la partie WAN/WAN6, la configuration est assez simple :
- WAN :
- Protocole : Client DHCP

Ou en ligne de commande :
$ uci set network.wan.proto='dhcp'
$ uci commit
- WAN6 :
- Protocole : Client DHCPv6
- Demander une adresse IPv6 : try
- Demander le préfixe IPv6 de la longueur (Request IPv6-prefix) : Automatique
- Préfixe IPv6 délégué personnalisé : Cette option n’est n’est plus disponible via LuCi, voir plus bas en ligne de commande.

Ou en ligne de commande :
$ uci set network.wan6.proto='dhcpv6'
$ uci set network.wan6.reqaddress='try'
$ uci set network.wan6.reqprefix='auto'
$ uci set network.wan6.norelease='1'
$ uci commit
⚠️ L’option « Préfixe IPv6 délégué personnalisé » n’est plus présent dans LuCi, il va falloir passer par la ligne de commande :
$ uci delete network.wan6.ip6prefix
$ uci add_list network.wan6.ip6prefix='2a01:e34:xxxx:xxxx::/64'
$ uci commit
Interface LAN
Là encore, la configuration est facile :
- Réglages généraux :
- Protocole : Adresse statique
- Adresse IPv4 : 192.168.1.254
- Masque-réseau IPv4 : 255.255.255.0
- Passerelle IPv4 : vide (il va trouver)
- Diffusion IPv4 : vide (il va trouver)
- Réglages avancés :
- Longueur d’attribution IPv6 : 64 (c’est le /64 de vos préfixes de délégation)
- Indice d’affectation IPv6 : vide
- Suffixe IPv6 : ::254 (pour ressembler à l’IPv4)


Ou en ligne de commande :
$ uci set network.lan.proto='dhcp'
$ uci set network.lan.proto='static'
$ uci set network.lan.ipaddr='192.168.1.254'
$ uci set network.lan.netmask='255.255.255.0'
$ uci del network.lan.ip6hint
$ uci set network.lan.ip6assign='64'
$ uci set network.lan.ip6ifaceid='::254'
$ uci commit
- Serveur DHCP / Paramètres IPv6 :
- Service de publicité de routeur : mode serveur
- Service DHCPv6 : désactivé
- Proxy NDP : désactivé
- Serveur DHCP / Paramètres IPv6 :
- Routeur par défaut : sur le prefixez disponible
- Activer SLAAC : coché


Ou en ligne de commande :
$ uci del dhcp.lan.dns
$ uci uci set dhcp.lan.ra='server'
$ uci set dhcp.lan.ra_default='1'
$ uci set dhcp.lan.ra_slaac='0'
$ uci commit
Ici la question du service DHCPv6 se pose pour l’attribution de baux statiques IPv6. J’ai fait le choix de laisser la Freebox attribuer les IPv6 locales car finalement, elles sont basées sur SLAAC (Stateless Address Auto Configuration) et ne bougent pas (statiques).
J’avais essayé d’utiliser la fonction DHCP d’OpenWRT en jouant sur les suffixes d’IPv6 et les DUID mais cette solution exigeait de passer en mode serveur et posait des soucis sur certains devices. J’ai donc des baux statiques (comme en IPv4) mais je n’ai pas la main sur l’IP générée vu qu’elle est fonction de l’adresse MAC.
Route
À ce stade, un ping6 google.fr
n’est toujours pas opérationnel sur mes machines. Reste à rajouter une route statique depuis l’interface de LuCi. On va router 2000::/3
vers l’adresse IPv6 du lien local que vous avez noté précédemment :

Pour comprendre le pourquoi du comment, je vous invite à lire ce sujet.
Ou en ligne de commande :
$ uci set network.cfg0adf6a.target='2000::/3'
$ uci set network.cfg0adf6a.gateway='fe80::8ac3:xxx:xxx:xxx'
$ uci commit
// On restart tout :
$ service dnsmasq restart
$ service odhcpd restart
$ service network restart
Tester
Pour tester, vous pouvez utiliser plusieurs solutions :
- Allumer votre Freebox Player et regarder la TV sur OQee. Si vous n’avez pas un message qui prend tout l’écran, c’est que vous êtes en IPv6.
- Faire un
ping6 google.fr.
- Utiliser le service de Google.

Je suis maintenant l’heureux possesseur d’un réseau pleinement compatible IPv6 et mes services sont exposés à la fois en IPv4 et en IPv6… Mais ça, ça sera le sujet d’un prochain article.
Contrôle parental sur OpenWRT - Guillaume Kulakowski's blog le 4 mai 2025
[…] de ma série d’articles sur OpenWRT, le firmware Open-source pour votre routeur. Après la mise en œuvre avec Free, la gestion du Wi-Fi 802-11r, je m’attaque à présent au contrôle […]