Ma fibre ne tombe presque jamais. Le problème, c'est ce « presque ». Une panne par-ci, des travaux sur la ligne par-là, et me voilà coupé du monde en plein milieu d'une visio ou alors que je pousse du code. Quand ça arrive, c'est rarement cinq minutes : c'est l'après-midi entier.
J'ai un Starlink à côté. Très fiable lui aussi, mais pas parfait : des micro-coupures, une latence qui bouge. Du coup je me suis posé la question : pourquoi choisir ? Pourquoi ne pas garder la fibre par défaut et laisser le Starlink prendre le relais automatiquement quand elle lâche ? C'est exactement ce que je fais maintenant avec OpenMPTCProuter, et c'est ce que je raconte ici.
Petite précision avant de commencer : OMR sait faire deux choses très différentes. Soit agréger les deux liens pour additionner les débits, soit en garder un actif et l'autre en secours. Moi je voulais juste ne plus jamais être coupé, pas aller plus vite. J'ai donc choisi le mode secours. Mais je reviendrai sur l'agrégation plus loin, parce que c'est le même matériel.
Pourquoi MPTCP change tout
Si vous avez déjà bricolé du multi-WAN, vous connaissez le failover classique : quand le lien principal tombe, le routeur bascule sur le secours. Sur le papier c'est bien. En pratique, vos connexions en cours sautent au moment du basculement : la visio se fige, le SSH meurt, le téléchargement repart de zéro. Il faut tout relancer.
OpenMPTCProuter contourne ça grâce à Multipath TCP. L'idée de MPTCP, c'est de faire passer un même flux TCP par plusieurs chemins réseau. Selon comment vous le réglez, il peut utiliser la fibre et le Starlink en même temps (c'est l'agrégation), ou n'en utiliser qu'un en gardant l'autre sous le coude. Dans les deux cas, passer d'un lien à l'autre est totalement transparent : la session ne se rend compte de rien et ne se coupe pas. C'est précisément ce qui fait que, chez moi, le basculement fibre vers Starlink est invisible.
Seul truc à comprendre : pour que ça marche, les deux liens doivent ressortir au même endroit sur Internet. C'est le rôle du VPS, et c'est la partie qui surprend un peu au début.
Comment c'est branché : un routeur chez moi, un VPS dehors
OMR, c'est toujours deux morceaux qui bossent ensemble.
Chez vous, un routeur sous OpenWrt qui reçoit la fibre et le Starlink et décide quoi faire. Et quelque part sur le réseau, un VPS qui sert de point de sortie : c'est lui qui récupère le trafic des deux liens et le renvoie vers le web. Tout ce qui passe entre votre routeur et le VPS est chiffré, et au final vous sortez avec l'IP du VPS.
Deux conséquences à garder en tête. D'abord, votre IP publique devient celle du VPS, à vous de voir si ça vous gêne. Ensuite, le VPS doit pouvoir encaisser au moins le débit du lien qu'il porte (la somme des deux si vous agrégez). Un VPS avec un port à 1 Gbit/s et un gros quota de trafic mensuel fait largement l'affaire, et côté ressources OMR ne demande presque rien : 1 vCPU et 1 Go de RAM tiennent plusieurs centaines de Mbit/s sans broncher.
Le vrai critère, c'est la latence. Prenez un VPS proche de chez vous : plus il est loin, plus ça se sent. OMR conseille de rester sous 500 ms, mais honnêtement, visez le plus bas possible.
J'ai poussé le truc un peu plus loin en montant deux VPS, pour ne pas dépendre d'une seule machine. Un en France chez Dyjix, c'est mon serveur principal (latence minimale depuis ma fibre), et un en Allemagne chez Hetzner en roue de secours. Si le serveur français devient injoignable, OMR peut basculer sur l'allemand. Comme ça la redondance ne s'arrête pas à mes deux box, elle va jusqu'au point de sortie.
Le matériel que j'ai utilisé
Pour le routeur, vous avez le choix entre un boîtier x86 et un routeur ARM sous OpenWrt. Sur de la fibre je conseille franchement le x86 : le chiffrement et le réassemblage MPTCP tapent dans le CPU, et un ARM trop juste va plafonner.
De mon côté, pas un sou de matériel neuf : j'ai ressorti un vieux PC qui dormait. Pour les curieux, voici la bête : carte mère MSI MS-7970, un Core i5-6600, 8 Go de RAM, et une carte réseau Dell quatre ports RJ45 Gigabit. C'est surtout cette carte qui rend la chose pratique : un port pour la Freebox, un pour le Starlink, un pour le réseau local, et il en reste un. Pour ce que j'en fais, l'i5-6600 est très largement surdimensionné (il chiffre du gigabit sans transpirer), mais quitte à avoir un PC qui prend la poussière, autant lui donner un boulot.
Côté branchement, le principe est de sortir vos deux box sur deux ports distincts du routeur OMR, en mode bridge si possible :
- La Freebox : le plus propre, c'est de la passer en bridge depuis Freebox OS pour qu'OMR gère directement l'accès. Sinon vous la laissez en routeur et vous branchez OMR derrière, en double NAT. Ça marche aussi, c'est juste un peu moins élégant.
- Le Starlink : avec le routeur Starlink classique, le plus simple est l'adaptateur Ethernet officiel, en mettant le Wi-Fi Starlink en bypass pour qu'OMR pilote la connexion lui-même.
Au bout du compte, chaque box arrive sur son propre port et OMR les voit comme deux WAN indépendants.
L'installation, dans l'ordre
D'abord le VPS. Prenez un Debian ou un Ubuntu tout propre et lancez le script d'install officiel d'OMR. Il pose le noyau MPTCP, ShadowSocks, Glorytun, Shorewall et tout le nécessaire. À la fin, rebootez : c'est ce redémarrage qui charge le noyau MPTCP, ne le sautez pas. Les clés générées atterrissent dans /root/openmptcprouter_config.txt : gardez ce fichier au chaud, c'est lui qui fait le lien entre le routeur et le VPS. Et si vous montez deux serveurs comme moi, refaites l'opération sur chacun.
Un détail qui m'a fait perdre du temps : le script déplace le SSH sur le port 65222 (au lieu du 22), et il utilise aussi les ports 65101 et 65001. Si vous avez un firewall en amont, pensez-y avant de vous retrouver enfermé dehors.
Ensuite le routeur. Vous flashez l'image OMR correspondant à votre machine (x86_64 pour un mini-PC) et vous démarrez dessus. L'interface ressemble à OpenWrt, avec en plus un tableau de bord pour suivre vos liens.
Puis vous reliez les deux. Dans l'interface OMR, vous renseignez l'IP du VPS et vous collez les clés du fameux fichier. OMR monte les tunnels et vous affiche l'état de chaque lien en direct. OMR sait gérer plusieurs serveurs, donc j'ai déclaré le Dyjix en principal et le Hetzner en secours.
Reste à configurer les deux WAN. Vous assignez la Freebox et le Starlink à leurs interfaces (deux ports de ma carte Dell), et là vous choisissez : agrégation ou master/backup.
Moi j'ai pris master/backup, fibre en master et Starlink en backup. Tant que la fibre tient, tout passe par elle. Dès qu'elle tombe, OMR bascule sur le Starlink en quelques secondes sans couper ce qui tournait. C'est pile ce que je cherchais, et ça a l'avantage de ménager mon forfait de données Starlink, qui ne sert que dans les coups durs.
Si votre besoin est différent, par exemple plus de débit plutôt que de la redondance, alors c'est l'agrégation qu'il vous faut. Les deux liens portent le trafic en parallèle et vous cumulez à peu près leurs débits. Ça vaut le coup quand vos deux connexions jouent dans la même cour et que vous bougez de gros volumes. Chez moi la fibre suffit largement au quotidien et le Starlink n'est qu'un filet, d'où mon choix du secours. Mais c'est juste un réglage : même matériel, même archi, vous pouvez basculer de l'un à l'autre sans rien démonter.
Est-ce que ça marche vraiment ?
Le test est bête mais jouissif : lancez une visio ou un gros téléchargement, et débranchez le câble de la fibre. Si tout est bon, rien ne tombe : ça repart sur le Starlink en quelques secondes, sans couper votre session. Rebranchez, OMR repasse sur la fibre tout seul. C'est ce moment-là qui transforme deux connexions imparfaites en une seule qui ne lâche (presque) jamais.
Gardez un œil sur le tableau de bord d'OMR : il montre la latence, le débit de chaque lien et lequel est actif. Quand la bascule déçoit, c'est presque toujours une histoire de latence ou un VPS trop juste en débit.
Ce qu'il faut savoir avant de se lancer
Soyons honnêtes, ce n'est pas magique. Tout votre trafic passe par le VPS, donc votre débit ne dépassera jamais celui du VPS, et un serveur mal placé gâche tout. Il y a aussi le coût : un abonnement VPS en plus de vos connexions (deux dans mon cas). Et comme le chiffrement mange du CPU, ne lésinez pas sur le routeur.
Dernier point, surtout si vous penchez pour l'agrégation : les usages très sensibles à la latence, genre le jeu en ligne, en profitent moins que les gros transferts, et OMR sait d'ailleurs router ces flux-là sur un seul lien. En secours comme moi, la question ne se pose pas : tant que la fibre est là, c'est elle qui bosse.
Cela dit, le résultat est exactement celui que je voulais. Une coupure fibre qui m'aurait mis dehors pendant des heures passe maintenant inaperçue. Pour quelqu'un dont la journée dépend d'Internet, ça change la vie. Et le plus drôle, c'est que tout ça tourne sur un PC que j'allais jeter.
Je prévois un deuxième article sur la config fine d'OMR : ShadowSocks ou Glorytun, réglages par type de trafic, et comment dompter la latence du Starlink. Si ça vous parle, repassez par ici.