[Routeur] Firmware alternatif: passage à FreshTomato

Au début de l’année 2018, j’avais effectué de nombreuses transformation du côté de mon LAN, transformations que j’avais évoqué brièvement dans « Du côté du LAN« , s’en prendre le temps de rentrer dans les détails. A ce moment là, j’avais effectué un changement de firmware sur mon routeur R7000, afin d’utiliser AdvancedTomato. Interface moderne, gain en fonctionnalités et en personnalisation, il m’est difficile d’envisager un retour en arrière.

Petit bémol à l’horizon, il n’y a pas eu de mise à jour effectuée sur ce firmware depuis novembre 2017. C’est pourquoi, en ce début d’année 2019, j’effectue une nouvelle migration, cette fois vers FreshTomato. Le projet est actif depuis plusieurs mois déjà et semble globalement plutôt stable, d’après les retours que j’ai pu lire sur la toile. Le projet est un fork de TomatoByShibby, système qui constituait déjà la base de AdvancedTomato, AdvancedTomato apportant surtout une refonte graphique de l’interface.

Pour l’installation de AdvancedTomato, je m’étais aidé de la vidéo « Netgear R7000 – How to install Tomato-ARM » dont je retiens les étapes d’installation suivantes:

  • Remise à zéro de la configuration du système du routeur.
  • Installation de l’image initiale du firmware.
  • Installation de l’image AIO (All In One) du firmware.
  • Suppression du contenu de la NVRAM.
  • Redémarrage

Par ailleurs, j’avais noté cette discussion explorant les moyens de désactiver l’allumage des différentes LEDs du routeur et éviter l’effet sapin de Noël la nuit. Possibilité maintenant offerte directement dans l’interface web du firmware.

Parmi les autres informations à noter, les informations de connexion des deux images « initial » et « AIO » de FreshTomato sont les suivantes :

  • Initial image : admin/password
  • AIO image : admin/admin

Ayant eu besoin de davantage d’informations dans les logs, j’ai cherché comment augmenter le niveau de verbosité, la commande à utiliser est donc nvram set mwan_debug=8 suivie d’un nvram commit , 8 étant le niveau maximal et 0 le niveau minimal.

Après maintenant plusieurs jours d’utilisation, je n’ai pas détecté de problèmes particuliers une fois la connexion établie. J’ai toutefois rencontré quelques problèmes à l’établissement de la connexion, car celle-ci ne s’effectue pas correctement lors du premier échange de récupération des paramètres IP auprès du DHCP du fournisseur d’accès. Le routeur reçoit bien une IP (172.16.77.155) et un masque de réseau (255.255.255.255), mais pas de passerelle (0.0.0.0), donc pas de connexion WAN. Déclencher immédiatemment une demande de renouvellement du bail DHCP via le bouton renew de l’interface permet de recevoir une configuration valide. Il me semble donc que la première négociation effectué au démarrage ou après application d’une nouvelle configuration du réseau, n’envoie pas les options d’authentification 77 et 90 requises par le serveur DHCP.

Pour palier à ce problème, j’ai ajouté le script suivant dans l’onglet « WAN Up (main) », qui vérifie la présence d’une passerelle valide une fois la connexion WAN établie. Dans le cas contraire, la connexion est réinitialisée afin de forcer une nouvelle requête DHCP, valide cette fois.

if [ "$(nvram get wan_gateway)" = "0.0.0.0" ]; then
  service wan restart
fi

Afin de parer à toutes éventualités, j’ai également configuré la vérification périodique de l’IP de la passerelle, via le service de cron proposé par le firmware.

[[ "$(nvram get wan_gateway)" = "0.0.0.0" ]] && service wan restart

Reste maintenant à profiter de ce nouveau firmware et à croiser les doigts, pour que celui-ci soit aussi stable que son prédécesseur !

Anonyme

Auteur/autrice : Victor

Ingénieur en informatique de formation et de métier, j’administre ce serveur et son domaine et privilégie l'utilisation de logiciels libres au quotidien. Je construis progressivement mon "cloud" personnel service après service pour conserver un certain contrôle sur mes données numériques.

2 réflexions sur « [Routeur] Firmware alternatif: passage à FreshTomato »

  1. Bonjour et merci bien pour ce partage et ces informations.
    Ayant également un R7000 avec lequel je me trainais un firmware constructeur depuis des années sans oser basculer sur un firmware opensource, je me suis décidé à basculer hier.
    Je pensais partir sur un Advanced Tomato avant de m’apercevoir qu’il n’était plus maintenu, et grâce à vous, j’ai pu faire la bascule sans trop de difficulté vers un Fresh Tomato (petite frayeur au premier reboot après l’install de l’image initiale, mais un hard reboot + DHCP manuel m’a tout de suite rassuré)
    J’ai également lu votre dernier article pour la mise à jour vers le 2020.2 (version vers laquelle je suis partie) : dans les 2 cas (initial ou AIO pour ma part), il n’y a ABSOLUMENT aucune règle sur le compte root : pour moi, j’ai du mettre en premier lieu « admin/@newdig » sur l’init, puis « admin(ou root?)/admin » sur la v 2020.2. J’ai l’impression que c’est vraiment aléatoire, et il semble qu’il existe une back door pour récupérer le mot de passe -> https://www.myopenrouter.com/forum/r7000-bricked-flashed-dd-wrt-tomato-cannot-login-userpw-denied#post-35894
    Pour ma part, pas de souci à l’init de la connexion au fournisseur : récupération de l’adresse IP Public sans aucun problème, donc pas de script à mettre en place.
    Je peux enfin faire fonctionner mon VPN perso, les débit de ma fressbox (en mode bridge) sont montés comme je les avais rarement vu (CTF activé), bref, merci bien pour votre article vraiment top.

    1. Bonjour Cédric !
      Merci pour ce témoignage. Content que votre passage à un firmware alternatif se soit bien déroulé.
      Du côté de l’init, l’une des dernières versions m’a également permis de me passer des scripts précédemment mis en place.

Répondre à Victor Annuler la réponse

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *