Il m'est arrivé des bricoles chez Red by SFR. Qui a fini par un changement de box. Qui est promise sous 3 jours (week-end exclus). Et en attendant, mon impatience a activé mes compétences d'ingénieur : est-il possible d'utiliser un autre routeur à la place de celui de SFR ?

Réponse courte : oui. 😆

Réponse longue, je me suis demandé si je pouvais acheter un routeur lamdba et le mettre à la place de la box de SFR. Mais je sais que celle-ci envoie des paramètres spécifiques au DHCP chez SFR. Sans ces paramètres, pas d'IP, pas de connexion. Je le sais parce que quand mon boulot a eu une ligne câble chez SFR, on a eu deux boîtiers, un modem câble et une box, et quand j'ai contacté le support SFR pour savoir ce qu'il fallait faire pour ne pas utiliser leur box mais notre routeur pro, le mec au bout m'a dit tout net qu'il ne pouvait pas donner ces informations et qu'il fallait que j'utilise leur box ou rien. 😒

En cherchant sur le net, je suis tombé sur la page d'un mec qui parle de Tomato. J'utilisais OpenWRT il y a longtemps quand les lignes ADSL étaient vendues pour un seul ordinateur, et je n'y étais plus intéressé depuis que les box routeur sont devenues la norme en France.

Tomato est un firmware alternatif et open-source pour routeurs domestiques. Il a fork en deux projets, AdvancedTomato et FreshTomato, suite à une certaine inactivité du projet original. La page de Blogmotion parle donc de Tomato, et d'un paramètre à passer dans la requête DHCP pour se faise passer pour une Box Plus SFR. Je me suis donc renseigné sur les trois projets, et j'ai cherché quels routeurs étaient compatibles.

On est en 2021, et tous les routeurs modernes en gigabit font WiFi et coûtent plus de 100 €. Il est loin le temps des routeurs filaires à pas cher... 😑 Je me suis tourné vers un Asus RT-AC68U, relativement récent, correctement supporté par FreshTomato et pas trop cher.

Là j'étais complètement préparé à flasher un routeur avec un firmware presque complètement différent du logiciel original, avec des options avancées complexes. Mais j'ai découvert qu'Asus utilisait en fait Tomato comme base de leur firmware... Et que quelqu'un maintenait une version plus avancée de ce firmware, en ajoutant des fonctions de Tomato tout en conservant le look and feel d'Asus, et la possibilité de passer du firmware officiel à la version modifiée de façon presque transparente ! 😮

J'ai donc regardé de plus près Asuswrt-Merlin. Et eurêka, il a l'option DHCP 60 ! 😆

Le secret de SFR est d'authentifier leur box avec une chaîne spécifique sur une option du client DHCP, le vendor class (option 60).

Pour Asuswrt-Merlin, c'est dans Advanced Settings / WAN / Internet Connection, il suffit de mettre neufbox6 dans la case Manual Vendor class (Option 60).

Pour Tomato, c'est dans Advanced / DHCP/DNS / DHCP Client (WAN) / DHCPC Options, il faut mettre --vendorclass=neufbox_NB6VAC-boo (peu importe ce qui suit NB6VAC-). Il est possible qu'il faille également copier l'adresse MAC de la box SFR, mais comme ça marche sans sur AsusWRT-Merlin, c'est probablement facultatif.

Attention, par contre, je ne reçois pas la télé par SFR, et je ne me sers pas du téléphone fixe. Autant le premier point peut être arrangé avec un paramétrage supplémentaire, autant le téléphone il n'existe aucun routeur domestique proposant un port RJ11... Soyez avertis avant de vous lancer.

J'achète et reçois donc un RT-AC68U, je flashe Asuswrt-Merlin, j'ajoute l'option 60 au DHCP, et hop la connexion fonctionne à nouveau ! 😀 Cerise sur le gâteau, le routeur fait client/serveur OpenVPN, je peux même me passer du client sur mon ordinateur pour me connecter au boulot !

Mais.

Je me rends compte que cette solution me fait perdre une partie de l'intérêt d'avoir un Pi Hole à la maison... Car le routeur Asus relaie les requêtes IPv6 SLAAC/RT en ajoutant l'adresse du routeur en DNS. Ce qui par défaut renvoie aux DNS (menteurs) de SFR... 😑 Il est possible de spécifier des adresses de DNS à utiliser par le routeur, mais mon Pi Hole interne a une adresse qui n'est pas forcément fixe... 😑 Ce qui m'a amené à m'interroger sur la façon dont fonctionnait la Box Plus de SFR sur ce point.

SFR a envoyé la nouvelle box jeudi, et elle est arrivée samedi. Je l'ai donc branchée, déjà pour vérifier qu'elle fonctionne, et voir comment est fait le DNS IPv6.

Déjà, la box fonctionne. Elle est en IPv4 only de base, il faut activer IPv6 dans les paramètres et ça revient après un petit moment. Très bien. Et là je regarde sur une des machines connectées, et je vois que si le DNS IPv4 est bien mon Pi Hole, le DNS IPv6 est... inexistant. Il n'y a pas de valeur pour le DNS IPv6 ! C'est pour ça que ça fonctionne si bien, toutes les requêtes DNS, IPv4 ou IPv6, passent par mon Pi Hole, mais en IPv4 ! 🤨

C'est en soi une solution... Pas très élégante, certes, mais qui fonctionne... 🤔

Je me suis alors posé une question au final... Est-ce que m'affranchir des mises à jour parfois bancales de SFR et gagner un client OpenVPN en tête de pont vaut vraiment 115 € (prix de mon RT-AC68U) ? Après le routeur fait WiFi et tout, mais je ne m'en sers pas...

Pour moi, la réponse est... Non. 😅 La Box Plus fonctionne bien en général, et même si les graphes de trafic temps réel du routeur Asus sont sympa, ils ne sont pas indispensables.

Donc au final j'ai "loué" un routeur chez mon enseigne favorite (qui livre le lendemain et qui reprend sans questions 😉) pendant environ 24 h, appris des choses en firmwares routeur alternatifs et en IPv6, et récupéré ma connexion IPv4 + IPv6 sans CGNAT en moins de trois jours. 👍

Supplemental - 2022-08-04

Bon depuis tout ça, j'ai remis un AC68U, la Box Plus a encore planté sans raison... 😑

Et entretemps, Asuswrt-Merlin a ajouté des options pour spécifier des DNS IPv6 pour le réseau local, résolvant mon problème de Pi-Hole. 😉 Et ce routeur est autrement plus stable que la Box Plus, je ne l'ai jamais vu planter, même sous canicule à 39 °C ambiant ! 😆