Bbox Sensation Monitoring

edit 10/04/2013 : Le problème a été apparemment résolu sur les Bbox Sensation ADSL il y a quelques semaines à la suite d’une mise à jour. Depuis l’utilisation du NAT-PMP ne génère plus de plantage de la box ou du Wifi. Le script de monitoring n’est donc plus vraiment utile (mais vous pouvez l’utiliser quand même si ça vous dit).

edit 25/02/2013 : Grâce à l’aide des CM de @bouyguestelecom, on a pu avancer sur le sujet. Ma ligne n’était effectivement pas en cause (test technique à l’appui). Le problème vient apparemment d’une incompatibilité de la Bbox Sensation avec le protocole NAT-PMP utilisé par des clients Torrent (Bittorrent, µTorrent…) mais aussi et surtout par tous les OS et périphériques d’Apple. Ce protocole permet une autodétection et une autoconfiguration réseau en dialoguant entre autres avec la passerelle (donc la box). Lorsqu’il est activé de façon continue, je voyais l’IP locale de la box apparaître dans la liste des peers des softs de P2P (!!) et la Bbox Sensation plantait systématiquement au bout de 1h30~2h. Un correctif serait en cours de développement, maintenant si vous le pouvez, je vous conseille de désactiver le NAT-PMP dans les logiciels qui l’utilisent. Évidemment, Apple ne permet pas de le désactiver (il est utilisé par le service « Bonjour »).

Ceux qui suivent mon Twitter savent que depuis trois semaines j’ai migré de l’offre Freebox Revolution vers l’offre Bbox Sensation de Bouygues. À l’origine, les problèmes de lenteur réseau chez Free, notamment pour tout ce qui concerne les services vidéo type Youtube ou Twitch.

Et depuis trois semaines, on essuie un tas de problèmes avec le modem Bbox Sensation (ADSL). Après un appel au SAV (à éviter : ils m’ont conseillé de reconfigurer mon Wifi en branchant mon iPad à l’aide d’un câble Ethernet) et plusieurs rappels de « Woobies » (Woobees ?) grâce aux Community Managers de @bouyguestelecom, le problème n’est malgré tout toujours pas résolu.

La ligne n’est certainement pas en cause car cela marchait très bien chez Free, mais apparemment cela viendrait du modem Bbox Sensation qui est très instable dans certaines configuration. Et notamment, lorsque la ligne est… utilisée (c’est à dire quand vous faites autre chose que du web).

Évidemment, quand ça marche uniquement quand on l’utilise pas, ce n’est pas spécialement agréable.

Au départ je détectais les plantages de « ligne » en lançant un ping toutes les 15s vers Google. Mais assez rapidement je me suis rendu compte que ce n’est pas la LIGNE qui plante mais la BBOX SENSATION. En effet, un simple ping vers bbox.lan (le nom de la box) montre qu’au bout de 90-100mn, la box se met à ne plus répondre au ping, et très rapidement l’interface web devient très lente puis inaccessible. Enfin, le Wifi plante et la box se bloque avec un voyant (Tel1 dans mon cas) qui passe au rouge.

La seule solution dans ce cas est un redémarrage électrique de la box. Si elle persiste trop longtemps dans cet état, la box TV se bloque également.

Des retours que j’ai à droite et à gauche, je suis loin d’être un cas isolé, car quelques amis et followers sur Twitter m’ont fait part de comportements similaires (= obligation de redémarrer la box plusieurs fois par jour).

Mais il se trouve que Nolife venait d’acheter un Raspberry Pi pour faire quelques tests d’utilisation et bidouiller quelques petites choses pour faire du monitoring – le Raspberry Pi est un tout petit ordinateur qui tient dans la main, coûte environ 30€ et fonctionne sous des systèmes comme Linux.

Et il est tout à fait possible de redémarrer la Bbox Sensation via l’interface web en cliquant sur un bouton.

Et ce n’est pas protégé.

Et je détecte le plantage imminent via un ping qui ne répond pas.

Ping.

Bouton.

Http.

Linux.

Monitoring.

SCRIPT !

Bbox Sensation Monitoring Script

Donc voilà, c’est cadeau de la maison, un script bash qui teste l’état de votre modem Bbox Sensation et qui la redémarre automatiquement dès qu’un début de plantage est détecté.

Le script a été développé et testé sous Linux Debian (raspbian pour être précis). Vous pouvez le lancer comme ça ou passer l’IP de la Bbox Sensation en paramètre (si vous utilisez un autre DNS). Je ne l’ai testé qu’avec mon modèle (Sagemcom F@st3965b).

Je ne suis pas un Bash Master, donc le script est largement perfectible et je pense qu’il y a matière à amélioration.

La seule variable vraiment modifiable est $ping_count qui est actuellement à 1. C’est le nombre de pings effectués toutes les 15 secondes, et le reboot est effectué si aucun ping n’a eu de réponse. Cependant mes tests ont montré que mettre une valeur plus grande que 1 ne sert pas à grand chose, si ce n’est attendre un peu plus quand la Bbox devient instable, et que parfois du coup le script n’arrive plus à redémarrer la box car c’est déjà trop tard.

Vous devez lancer ce script à un moment où la Bbox n’est pas déjà dans un état instable (sinon il y a des chances que l’interface web et le DNS ne répondent déjà plus).

Bien sûr il est tout à fait possible de le lancer à partir d’un Linux tournant dans une VM (ex. VMWare) à partir du moment où vous avez accès à l’interface web de la Bbox de votre VM.

Les seuls paquets dont vous avez besoin sont curl et dnsutils, à installer par exemple en faisant :
apt-get install curl
apt-get install dnsutils

Pour lancer le script et mettre la sortie dans un log, c’est évidemment :
./sensation_monitor.sh > log
et pour voir ce qu’il se passe ET avoir un log :
./sensation_monitor.sh | tee log

J’autorise évidemment Bouygues à réutiliser ce script vu qu’apparemment ils ont du mal à corriger les bugs de leur propre box. Au moins leurs abonnés n’auront plus à se lever 15 fois par jour pour redémarrer leur modem.

Sinon pour info le serveur web utilisé dans la Bbox Sensation est apparemment thttpd (un serveur http datant de 1998 (!)).

Chez moi, le modem Bbox Sensation plante (et donc redémarre) environ toutes les 90mn. Et chez vous ?

edit : Si vous êtes connecté à distance sur la machine Linux qui fait tourner le script, ce dernier risque de ne pas avoir d’effet car lorsque vous vous déconnectez de la machine ou lorsque la Bbox plante vous êtes déconnectés et le script s’arrête de fonctionner. Pour éviter cela il faut d’abord lancer le script en tâche de fond :
./sensation_monitor.sh > log &
Normalement le numéro du processus s’affiche alors (par exemple : « [1] 16432 » -> le numéro qui nous intéresse est 16432).
il faut ensuite taper
disown -h 16432
(remplacez évidemment 16432 par le numéro que vous venez de relever).
Vous pouvez voir l’activité du script en tapant
tail -f log

Comments (4)

Ulraskfévrier 8th, 2013 at 09:10

J’en ai eu des belles moi aussi avec mon ISP (China Telecom)

Par defaut, ils fournissent un modem-routeur wifi Zyxel a tous les abonnes, mais configure en mode bridge en PPPoE.

Pour activer le wifi de l’appareil (qui dispose donc hardwarement du wifi chez tout le monde), il faut payer un abonnement mensuel supplementaire.

Pour activer le mode routeur (alors qu’il y a un switch 4 ports rj45 integres) idem. Et encore, j’ai de la chance, on peut ensuite brancher autant d’ordinateurs qu’on veut. Il parait que sur l’ancien modele, il fallait payer par le nombre de machine que l’on branchait en ethernet !

Les conditions d’utilisations sont ridicule (interdit d’avoir un dongle ou une carte pci wifi sur ses PC fixes. Meme si on ne les utilise pas pour se connecter a la box. C’est juste interdit d’en posseder)

Donc ca, c’est le contexte.

L’an dernier, j’ai demande a passer a la fibre. (FTTB [voir FTTle_quartier ?] + VDSL2 en fait, mais ils appellent ca « fibre optique ». A ce compte la, une Freebox classique c’est aussi « la fibre » puisqu’il y a une fibre optique entre Free et le NRA)

Donc un technicien est venu remplacer le modem/routeur ADSL par un VDSL.

Naivement, je pensais meme pas que cela aurait pu etre un probleme d’avoir relie mon propre routeur a leur routeur bride en mode bridge.

Techniquement, un routeur c’est jamais qu’un ordinateur, donc j’ai relie un ordinateur a leur modem en ethernet, je suis dans les clous. Que mon « ordinateur » communique avec d’autres peripheriques, quels qu’ils soient, c’est pas les oignons de mon ISP. (ou alors il est interdit de faire en sorte que des signaux USB transitent vers une souris ou un clavier ?)

Evidemment, le technicien l’a pas vu comme ca. Je me susi fait engueule comme du poisson pourri, et le gars est reparti avec MON routeur.

J’en ai rachete un aussi sec au magasin d’occasion du coin, ca coute moins cher qu’activer la fonction routeur de leur equipement sur un seul moins. Mais quand meme zut, c’etait mon routeur, et si on interprete litteralement, j’etais conforme aux CGU.

Par contre contrairement a la BBox, tout le materiel fonctionne impeccablement et la connexion est en beton arme.

Patrickfévrier 8th, 2013 at 12:01

Bonjour,
Je suis membre de l’équipe projet ayant participé à l’élaboration de la BBox Sensation.
J’ai moi même un routeur Sensation ADSL à mon domicile et je ne vis pas les mêmes problèmes que vous remontez.
Fournissez moi votre IMEI situé en dessous de votre bbox de sorte à ce que nous regardions votre bbox et votre ligne.
Cordialement,

Hiei-février 16th, 2013 at 16:59

J’ai un ami qui a eu de gros problèmes aussi avec la Livebox, j’aurais donc tendance à penser que ce genre de box « fourre-tout » ne sont pas super fiables.

Il a réglé le problème en achetant un vrai modem/routeur et en rendant sa Livebox (et au final, il fait des économies vu qu’il ne paie plus la location).

Antomars 25th, 2013 at 19:50

Bonjour,

J’ai exactement le même problème et à la lecture de votre article je me suis senti moins seul !
Ma bbox se plante tous les 90 minutes et j’ai « réglé » le problème en mettant un programmateur / timer sur le 230V de la Bbox… Mais ça reste très pénible.

Une question. Je ne suis pas spécialiste en réseau mais je me demande si il ne serait pas possible de régler le problème plus proprment en mettant un autre routeur après la Bbox et en le configurant de telle manière à bloquer les paquets qui perturbent cette dernière?