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 »

J’aime beaucoup ce sujet tout aussi intéressant qu’inutile donc j’adore :grin:
Chouette projet quopenmtcprouter
Déjà pour alléger ta solution et faciliter la redondance je partirai sur de l’IPv6 tu évites le nat (puisqu’à ça ‹ existe plus en i IPv6)
Pour la redondance des connexion et des routeurs j’utiliserai de l’opnsense qui nativement permet la redondance des connexions et des certains services avec une synchronisation entre 2 routeurs distincts c’est complètement transparent pour l’utilisateur
Après le soucis de tout ton infra c’est l’utilisation de liens ‹  › grand publiques ›’ en pro c’est bien plus simple (mais beaucoup plus cher et ce n’est pas le sujet ici)
Après la redondance du serveur HA tu peux partir sur un cluster HA a base de proxmox mais pour cela il te faut 3 noeuds (pour éviter ce que l’on appel le split brain) tes serveurs sont en complètes synchronisation entre tes noeuds si un tombe un autre prends la main en toute transparence
Après comme tu l’as évoqué les seuls éléments qui ne peuvent être hautement disponibles by design reste le zwave et le zigbee (thread devrait lever cela) grâce à mqtt il est possible d’avoir 2nl serveurs HA qui écoutent les trames zigbee et zwave
Au plaisir d’échanger sur ce sujet passionnant qui même si il est mon quotidien me passionne toujours autant

Oui, sujet pour se faire plaisir, ni plus, ni moins. Des heures de recherches pour finalement passer à autre chose plus tard. Et vu que niveau documentation, on est pas au taf, ben on oublie et faut presque repartir de zero quand on se repenche sur la question !!
J’adorerai mettre en place un cluster proxmox, mais je n’ai pas d’autres machines en dehors de quelques RPI4 mais ils vont avoir du mal à seconder mon nuc i7…
L’opensense peut fonctionner sur des RPI ? Parce que c’est le gros avantage que j’ai vu avec openMTCPTRouter, une vm dans proxmox sur le nuc, un RPI4 pour le lien backup et ça roule (ou presque).
J’ai bossé dans l’informatique aussi et je sais que les choses sont plus faciles avec des solutions intégrées (et une armée de consultants pour les déployer…). Mais c’est justement le côté challenge qui me plait (moins ma femme quand je passe mes nuits à bidouiller, que Netflix ne fonctionne plus ou que les volets ne s’ouvrent pas !!).
Au plaisir d’échanger également !

Matt.

1 « J'aime »

Pour moi openMTCPTRouter n’est pas une solution de HA mais de mutualisation de liens
Opnsense non ne fonctionne que sur X86 (pour l’instant) dans mon cas je le virtualise assez souvent , je connais moins wrt mais ça doit être assez jouable aussi

C’est dommage de faire de la HA pour avoir du downtime

Clairement mais quand on aime jouer…

De toute façon la HA ça marche jamais quand tu en as besoin :rofl:

Peut-être creuser du côté de Banana PI, notamment avec la solution BPI-R4

Et par rapport au sujet général, si il faut redonder dans ce cas c’est l’ensemble des équipements qu’il faut alors prévoir de redonder, du mini-pc au switch, en passant par l’onduleur, etc…
Pour le ZigBee, l’utilisation d’une passerelle en réseau plutôt qu’en USB

ça ne change rien les devices ne sont appairés qu’a un seul coordinateur

Faire de la véritable haute disponibilité pour HA semble impossible vu que certaines intégrations comme Zigbee ne peuvent fonctionner qu’avec un seul appareil (Coordinateur). Pour la plus paranos la solution peut être une solution de secours avec un appareil prêt à être mis en service en cas de panne de celui qui était actif. Le truc étant d’avoir des sauvegardes quotidiennes au minimum. Une restauration d’un HA ne prend que quelques minutes.

Perso ce que j’ai :

  • Installation principale sur Raspberry 4
  • Sauvegarde quotidienne sur NAS Synology qui lui même externalise la sauvegarde
  • Raspeberry 5 de secours utilisé pour d’autres choses mais prêt à lancer une instance docker de HA
  • Clé Sonoff USB de secours achetée lors d’une promo
  • Test effectué et la bascule fonctionne parfaitement
  • Temps de basculement : 1 heure sans se presser

Bref pourquoi de la haute dispo. Dans le cas présent ça suffit amplement.
A mon sens le plus important est le secours de la liaison Internet. Pour ça :

  • Routeur avec double WAN
  • BOX sur WAN1
  • Modem 4G chez un autre opérateur sur WAN2
  • Testé et approuvé une liaison peu tomber, l’accès Internet reste fonctionnel.