Failover HA - Assurer une redondance maximale de son réseau

Bonjour à tous,

J’ai déjà fait un post sur le sujet en réponse à une demande :

Je ne vais pas reprendre ma (trop ?) longue réponse, je vous invite à la lire si vous-êtes intéressé. Je souhaitais compléter avec d’autres éléments et afin de ne pas polluer le post initial, je me permets d’ouvrir ce nouveau sujet.

Pour résumer, j’ai implémenté une solution basée sur OpenMPTCPRouter permettant d’assurer un failover de ma box internet.

C’est bien beau mais j’ai du coup introduit un nouveau composant qui risque lui-même de planter, donc j’augmente mon exposition aux risques ou au mieux l’égale.

Donc comme si ce n’était pas déjà assez compliqué, j’ai souhaité travailler sur un failover… du failover !

Après recherches, il s’est avéré que c’était techniquement possible grâce à l’utilisation d’un logiciel appelé keepalived. Il permet, pour faire simple, d’avoir 2 serveurs, un maitre et un backup chacun sur un IP différente qui peuvent prendre le relais l’un de l’autre sur une IP virtuelle. Ainsi, si mon serveur OpenMPTCProuter vient à lâcher, le second prend le relais sans qu’aucune machine sur le réseau ne s’en aperçoive. Le service est ainsi maintenu.

La plus grande difficulté a été de réussir à couper la connexion vers l’extérieur sur le serveur backup quand le serveur maitre est actif (et inversement). Ca se fait par la mise en place de scripts liés à keepalived.

Autre difficulté, le serveur OpenMPTCPRouter faisait office de DHCP. Je n’ai jamais réussi à faire cohabiter les 2 (tentative de synchro des leases suite à des recherches ne m’ont pas donné satisfaction et tout mon réseau a fini par tomber !).

Je suis donc parti sur le DHCP Adguard Home que j’utilise déjà pour assurer le service DNS avec blocage des pub, filtre parental et interdiction d’accès aux sites suspects.
Evidemment, ce serveur est redondé par un second serveur Adguard Home synchronisé. Pour le DHCP, j’ai découpé mon scope en 2 de manière à ce que chacun attribue des IP dans une plage spécifique sur le même subnet. Exemple, sur un subnet en 192.168.1.0/24, le premier a une plage de 60 IPs de 192.168.1.60 à 192.168.1.120 et le second de 192.168.1.121 à 192.168.1.199 (pas tout à fait 60 mais j’ai des IP fixes à partir de xx.xx.xx.200.

Evidemment, que ce soit pour le backup OpenMPTCPRouter (que c’est long à écrire !!) comme pour Adguard, les services sont hébergés sur des machines physiques différentes, dans des conteneurs docker ou pas.

Il me reste maintenant 2 points de faiblesse non redondés : Mon routeur WIFI et le switch sur lequel tout le monde est branché. Mais là, il ne s’agit plus de problématiques logicielles. Doubler le matériel et bien le configurer est moins difficile, je verrai quand les finances le permettront.

Encore une fois, j’ai mis tout ça en place par pure curiosité et amusement. C’est beaucoup de travail par rapport aux besoins de ma famille : Si Netflix ne fonctionne plus sur la télé, ils le regardent depuis leur téléphone et sont contents quand même. Je n’héberge pas une banque ou une industrie !

Il me reste un 3eme point non sécurisé, c’est le serveur Home Assistant lui-même. Je n’ai à ce jour pas de solution. En effet, j’ai une clé zigbee et un clé zwave et il n’existe pas de solution pour avoir 2 contrôleurs sur un même réseau.

Afin de limiter les risques, je vais essayé de séparer Zigbee et Zwave sur des serveurs différents de Home Assistant, et redonder mon instance Home Assistant libérée de cette problématique. Ce n’est pas gagné, d’autant que la condition est de ne rien modifier dans Home Assistant. Je veux du standard. Je vous tiendrai au courant dans ce sujet si ça vous intéresse et que j’arrive à quelque chose.

Je prends le temps de partager si quelqu’un est intéressé par tout ou partie de cette installation pour mise en place ou simple culture informatique. N’hésitez pas !

Bonne journée,

Matt.

1 « J'aime »