La pandémie a interrompu les travaux pour apporter la fibre à mon logement actuel, à Quimper, et Orange ne semble pas particulièrement motivé pour les reprendre. Après des années à bénéficier du confort de la fibre optique, le retour à l’ADSL est bien rude : au revoir les débits élevés, au revoir la latence réduite, au revoir l’utilisation du réseau à plusieurs sans gêner… Faute de mieux, j’ai cherché une solution pour basculer sur de l’ADSL boostée à la 4G.
Ma première idée a été d’utiliser un produit conçu par Ubiquiti, l’UniFi Security Gateway mieux connu sous le nom d’USG. Ce routeur est équipé pour gérer deux connexions à internet en redondance : si l’une n’est plus disponible, il bascule sur l’autre. La connexion 4G formait notre ligne principale, plus rapide que notre ligne ADSL, connexion secondaire prête à prendre le relai.
C’est une option assez simple à mettre en œuvre, mais qui a des défauts. D’une part, le passage d’une connexion à l’autre n’est pas transparent, il faut compter quelques secondes sans accès à internet si la 4G saute. D’autre part, on dépend toujours des défauts de toute connexion cellulaire : latence plus élevée, changements réguliers d’adresse IP, et pertes de connexion temporaire.
Si vous utilisez comme moi une double connexion 4G et ADSL, il y a une bien meilleure option nommée OpenMPTCPRouter. Derrière ce nom un peu barbare se cache une solution incroyablement sophistiquée sur le plan technique, pas évidente à mettre en œuvre, mais qui fonctionne à merveille une fois que tout est en place. En quoi consiste-t-elle, comment l’installer et que vaut-elle au quotidien ? Suivez le guide !
Au programme :
OpenMPquoi ?
OpenMPTCPRouter, ou OMR pour les intimes, s’installe sur un appareil compatible placé sur votre réseau local. Cet appareil fera alors office de routeur, avec plusieurs casquettes : alimenter le réseau local avec une connexion à internet est le principal, mais il peut aussi reprendre une partie des tâches assurée par les autres routeurs, comme la box de votre fournisseur d’accès à internet.
OpenMPTCPRouter est open source : tout le code en C qui le compose peut être visualisé et téléchargé depuis GitHub, et si Yannick Chabanois est son créateur et principal contributeur depuis sa campagne aindinoise, n’importe qui peut participer au développement du projet. Il repose sur MPTCP, le petit nom de Multipath TCP, une évolution du Transmission Control Protocol qui est l’une des briques de base de tout réseau.
TCP, « protocole de contrôle des transmissions » en français, permet de transférer des données d’un point A à un point B en établissant une connexion entre les deux. Il date des années 1970, mais son grand âge ne le rend pas obsolète pour autant et il reste toujours utilisé aujourd’hui, que ce soit sur internet ou pour la communication entre les appareils sur le réseau local. MPTCP est une surcouche qui introduit un concept majeur : alors que TCP ne peut établir qu’une seule connexion entre deux points, MPTCP peut en établir plusieurs.
Le principal cas d’usage est lié au monde du mobile, ce qui explique d’ailleurs pourquoi Apple a adopté ce nouveau protocole dès iOS 7, quelques mois seulement après sa première standardisation expérimentale. Le constructeur a été le premier à l’adopter à grande échelle et sur un appareil destiné au grand public, parce que MPTCP apporte un gain évident sur un smartphone : la connexion à internet peut se faire en Wi-Fi et sur le réseau cellulaire en même temps. Dans le détail, c’est nettement plus compliqué, mais simplifions en disant que cette évolution permet d’utiliser plusieurs connexions en parallèle pour communiquer sur un réseau.
Apple l’a utilisée au départ pour l’assistant vocal Siri, avec une transition plus fluide entre le Wi-Fi de la maison et le réseau cellulaire à l’extérieur. À l’heure actuelle, iOS l’utilise dans d’autres cas, notamment pour les notifications push. Dans le cas d’OMR, l’objectif n’est plus d’assurer une connexion quand la situation change, mais d’améliorer les débits et la redondance d’une connexion internet fixe, en multipliant les connexions différentes.