Déploiement d’un routeur R7000 supplémentaire sous FreshTomato

Ca y est, le domicile parentale est enfin équipé en fibre optique, en remplacement d’une connexion Adsl vieillissante. Si la qualité et la stabilité du signal s’est donc grandement améliorée, l’organisation physique du réseau a quelque peu changée. La box fibre du fournisseur d’accès se retrouve à la cave, avec l’impact que vous devinez sur la couverture du signal WiFi.

Pour palier au problème, et plutôt que de souscrire à une option de répétiteur WiFi facturée mensuellement, je me suis procuré un routeur R7000 d’occasion. Comme d’habitude, plutôt que de rester sur le firmware Netgear, j’ai immédiatement procédé à l’installation de FreshTomato, pour disposer d’un système bien plus à jour et de nombreuses fonctionnalités supplémentaires, en particulier: des règles de filtrage DNS directement au niveau du routeur.

Sans rentrer dans les détails, la procédure d’installation tient en quelques étapes:

Principales difficultés dans l’opération: ne pas oublier qu’il faut commencer par installer l’image initial et ensuite, trouver ou retrouver les couples utilisateur/mot de passe à utiliser pour chaque image. Ce qui nous donne:

  • initial: admin/@newdig ou root/admin
  • AIO: root/admin

Et pour de plus amples détails, direction la documentation en anglais: Installing FreshTomato.

FreshTomato v2020.2

J’ai migré mon router vers la version 2020.2 de FreshTomato. Quelques sueurs froides en essayant de me reconnecter à l’interface d’admin. Le couple login/mot de passe à utiliser cette fois est : root/password.

Idem, si vous n’avez pas changer le nom du compte dans votre configuration, après restauration, il faudra utiliser root à la place de admin.

À première vue, toutes les fonctionnalités que j’utilise semblent fonctionner correctement. Toutefois, comme sur la version précédente, la tentative de création d’une interface sans fil virtuelle, pour la mise en place d’un réseau wifi invité séparé du réseau principal, ne fonctionne pas, car celle-ci conduit à rendre inutilisable l’ensemble des réseaux wifi configurés.

[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 !