Aller au contenu

Résoudre le bug de déconnexion de la freebox (mode bridge) - tutox.fr


Ldfa

Messages recommandés

fbox.jpg

Voilà maintenant 6 mois que j’ai mis ma box en mode « bridge« (pont) et collé un routeur autonome pour toute la maison.Tout se passe dans le meilleur des mondes, mais c’était sans compter l’apparition de quelques déconnexions intempestives.Symptômes: la passerelle n’est plus joignable et du coup internet non plus! Légèrement gênant tout de même, n’est ce pas ?
Alors ça ne le fait pas tous les jours mais au plus haut de la crise ça peut se produire jusqu’à 3 fois par semaine :-/ Evidemment, un simple reboot de mon routeur ne suffit pas. Le seul moyen de résoudre le problème est de redémarrer physiquement la box .

Après quelques recherches sur le net, je me suis aperçu que d’autres freenautes rencontraient ce problème. Du coup on se sent moins seul et des solutions semblent exister. Voyons voir ça de plus près et tentons d’automatiser tout ça !

awkward robot GIF

Solution avec l’API de freeboxOS :

Cette API mise à disposition permet d’utiliser un tas de fonctions qui permettent d’inter-agir à distance avec notre box. Entre autres: on peut planifier le wifi, redémarrer la box, accéder au disque dur, avoir des infos de connexion…
Bref , l’exemple le plus parlant est sans doute celui de l’application « freebox compagnon » . Vous savez celle qui permet de prendre le contrôle total de la box à partir de son smartphone. Et bien nous aussi,on va faire pareil mais en beaucoup plus simple. Seule la fonction « redémarrer la box à distance » nous intéresse pour solutionner notre problème de déconnexions aléatoires.

Ce que notre script doit faire:

Vérifier la connectivité de la box vers l’extérieur toutes les 4 minutes. En cas d’échec, il la reboot et nous notifie par mail. Ce script, dans l’idéal est à copier et planifier sur le routeur placé derrière la box mais il peut très bien l’être sur un simple raspberry connecté au LAN.

1 – Télécharger le script « reboot_freebox »

Pour l’occasion voici un petit script « maison » sans prétention, il est simplissime mais fait le job.Tout est dispo en libre ici et il comprend 4 fichiers:

image.png

– Télécharger les sources:
git clone https://gitlab.com/benzoga33/reboot_freebox.git

cd reboot_freebox

chmod u+x rebootFbox.sh

2 – Obtenir le jeton pour être autorisé à utiliser l’API

prérequis:

Pour autoriser notre script à accéder et utiliser l’API de freeboxOS, il faut en faire la demande officielle à la freebox comme ceci dans votre terminal:

– Charger d’abord les fonctions de l’API:

source ./freeboxos_bash_api.sh

– Faire la demande d’autorisation auprès de la box :

authorise_application APP_ID APP_NAME APP_VERSION DEVICE_NAME

Ce qui donne dans notre cas:

authorize_application 'rebootFbox.sh' 'script reboot freebox' '1.0.0' 'rpi'

Please grant/deny access to the application on the Freebox LCD…
Authorization granted

Valider sur la box avec le bouton « flèche de droite » 

Capture-du-2019-12-05-09-48-48.png

Notez bien les 2 valeurs de retour que sont:

MY_APP_ID= »rebootFbox.sh »
MY_APP_TOKEN= »gBa4YPo28ZVGl2BwEKBmE1ySNXN9BCVKxClL1XZir6P9Yrx1JOPaepFzlF1p2SAl »

Dans la liste des applis autorisées sur l’ihm on retrouve maintenant notre script .

Capture-du-2019-12-05-09-43-10.png

Dernier paramétrage avant de pouvoir tester l’API:

Capture-du-2019-12-04-17-24-23.png

Augmenter les droits du script via l’ihm:
– cocher « Modifications des réglages de la freebox »

Bravo, vous venez de faire le plus difficile. Il ne reste plus qu’à tester tout ça!

3 – Test de « reboot » en ligne de commande:

Maintenant, on passe aux choses sérieuses. On prévient tout le monde que ça risque de couper.

la commande se construit comme suit:

login_freebox « $MY_APP_ID » « $MY_APP_TOKEN »

ce qui donne par exemple:

login_freebox rebootFbox.sh gQa4YPo28UVGl2BwDKBmE1oSNXN9CVKxClL7XZir6P9Yrx6JOPXepFklF1p9ZAl

reboot_freebox

Si tout s’est bien passé la box redémarre. Maintenant il faut automatiser tout ça et simuler la déconnexion pour s’assurer que le script se déclenche bien lorsque la passerelle n’est plus joignable.

Test du script : « rebootFbox.sh »

Editer la crontab (exécution du test de connexion toutes les 4 mn)

*/4 * * * * /root/reboot_freebox/rebootFbox.sh

Puis ajouter une règle sur votre parefeu pour bloquer l’IP publique de votre passerelle ainsi que le domaine « mafreebox.free.fr ».
Au bout de 4 mn la box , doit redémarrer et s’en suit une notification par mail. N’oubliez pas de supprimer la règle , une fois que vois êtes sûr que le script fonctionne bien!

Voilà , j’espère que ce script pourra servir.Pour info, je l’ai testé sur une freebox v6.Bien conscient que cette simple « rustine » ne résout pas le problème de fond. Mais Free n’est visiblement pas pressé de « patcher » pour des geeks qui s’entêtent à ne pas utiliser pas le mode routeur de leur box.

Sources:

https://wiki.deimos.fr/Rebooter_sa_Freebox_Server_6_en_ligne_de_commande.html
https://www.canaletto.fr/post/surveiller-et-redemarrer-une-freebox-a-distance
https://dev.freebox.fr/bugs/task/22818

Afficher l’article complet

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.