Le vrai regroupement des canaux Internet — OpenMPTCPRouter

Le vrai regroupement des canaux Internet — OpenMPTCPRouter

Est-il possible de combiner plusieurs canaux Internet en un seul ? Il y a beaucoup d'idĂ©es fausses et de mythes autour de ce sujet, mĂȘme les ingĂ©nieurs rĂ©seau expĂ©rimentĂ©s ne savent souvent pas que c'est possible. Dans la plupart des cas, la combinaison de canaux est Ă  tort confondue avec l'Ă©quilibrage au niveau NAT ou le failover. Mais le vĂ©ritable agrĂ©gat permet d'Ă©tablir une seule connexion TCP simultanĂ©ment sur tous les canaux Internet, par exemple une diffusion vidĂ©o, de sorte qu'en cas de coupure de l'un des canaux Internet, la diffusion ne soit pas interrompue.

Il existe des solutions commerciales coûteuses pour les diffusions vidéo, mais ces appareils coûtent plusieurs milliers de dollars. Cet article décrit la configuration du paquet gratuit et open-source OpenMPTCPRouter, et aborde les mythes populaires sur l'agrégation de canaux.

Mythes sur l'agrégation de canaux

Il y a beaucoup de routeurs domestiques qui prennent en charge la fonction Multi-WAN. Parfois, les fabricants appellent cela l'agrĂ©gation de canaux, ce qui n'est pas tout Ă  fait exact. De nombreux techniciens croient qu'en dehors de LACP et de l'agrĂ©gation au niveau L2, il n'existe pas d'autre type d'agrĂ©gation de canaux. J'ai souvent entendu dire par des personnes travaillant dans les tĂ©lĂ©communications que c'est en fait impossible. Essayons donc de dĂ©mĂȘler les mythes populaires.

Équilibrage au niveau des connexions IP

C'est le moyen le plus accessible et populaire d'utiliser plusieurs canaux Internet en mĂȘme temps. Pour simplifier, imaginons que vous avez trois fournisseurs d'accĂšs Internet, chacun vous attribuant une adresse IP rĂ©elle de son rĂ©seau. Tous ces fournisseurs sont connectĂ©s Ă  un routeur prenant en charge la fonction Multi-WAN. Cela peut ĂȘtre OpenWRT avec le paquet mwan3, mikrotik, ubiquiti ou tout autre routeur domestique, car maintenant cette option n'est plus rare.

Pour modéliser la situation, imaginons que les fournisseurs nous ont attribué les adresses suivantes :

WAN1 — 11.11.11.11
WAN2 — 22.22.22.22
WAN3 — 33.33.33.33

C'est-Ă -dire, en se connectant Ă  un serveur distant example.com À travers chaque fournisseur, le serveur distant verra trois adresses IP source indĂ©pendantes du client. L'Ă©quilibrage permet de rĂ©partir la charge sur les canaux et de les utiliser simultanĂ©ment. Pour simplifier, imaginons que nous rĂ©partissons la charge entre tous les canaux de maniĂšre Ă©gale. En fin de compte, lorsque le client ouvre un site contenant par exemple trois images, il charge chaque image via un fournisseur distinct. Du cĂŽtĂ© du site, cela apparaĂźt comme des connexions provenant de trois adresses IP diffĂ©rentes.

Le vrai regroupement des canaux Internet — OpenMPTCPRouter
Avec l'équilibrage au niveau des connexions, chaque connexion TCP passe par un fournisseur distinct.

Ce mode d'Ă©quilibrage est souvent problĂ©matique pour les utilisateurs. Par exemple, de nombreux sites lient strictement les cookies et les jetons Ă  l'adresse IP du client, et si celle-ci change soudainement, la requĂȘte est rejetĂ©e ou le client est dĂ©connectĂ© du site. Cela se reproduit souvent dans les systĂšmes de banques en ligne et sur d'autres sites avec des rĂšgles strictes concernant les sessions utilisateur. Voici un simple exemple : les fichiers musicaux sur VK.com ne sont disponibles que par un jeton de session valide, qui est liĂ© Ă  l'IP, et les clients utilisant cet Ă©quilibrage rencontrent souvent des problĂšmes de lecture audio, car la requĂȘte est passĂ©e par un autre fournisseur que celui auquel la session est liĂ©e.

Le vrai regroupement des canaux Internet — OpenMPTCPRouter
Lors du téléchargement de torrents, l'équilibrage au niveau des connexions cumule la bande passante de tous les canaux.

Cet équilibrage permet d'additionner la vitesse de la connexion Internet en utilisant plusieurs connexions. Par exemple, si chaque fournisseur a une vitesse de 100 Mbit, lors du téléchargement de torrents, nous obtiendrons 300 Mbit. Car un torrent ouvre de nombreuses connexions, qui sont réparties entre tous les fournisseurs et exploitent ainsi toute la bande.

Il est important de comprendre qu'une seule connexion TCP passera toujours par un seul fournisseur. Ainsi, si nous téléchargeons un gros fichier via HTTP, cette connexion sera réalisée par l'un des fournisseurs, et si la connexion avec ce fournisseur est interrompue, le téléchargement échouera également.

Le vrai regroupement des canaux Internet — OpenMPTCPRouter
Une seule connexion utilise toujours un seul canal Internet.

Cela est Ă©galement vrai pour les diffusions vidĂ©o. Si vous diffusez un flux vidĂ©o sur une plateforme comme Twitch, l'Ă©quilibrage au niveau des connexions IP ne sera d'aucune utilitĂ©, car le flux vidĂ©o sera transmis par une seule connexion IP. Dans ce cas, si l'un des fournisseurs WAN rencontre des problĂšmes de connexion, comme des pertes de paquets ou une diminution de la vitesse, vous ne pourrez pas instantanĂ©ment basculer vers un autre fournisseur. La diffusion devra ĂȘtre arrĂȘtĂ©e et reconnectĂ©e Ă  nouveau.

Agrégation de canaux

L'agrĂ©gation rĂ©elle de canaux permet d'envoyer une seule connexion vers Twitch Ă  travers tous les fournisseurs, de sorte que si l'un des fournisseurs tombe en panne, la connexion ne sera pas interrompue. C'est une tĂąche Ă©tonnamment complexe qui n'a pas encore de solution optimale. Beaucoup de personnes ne savent mĂȘme pas que c'est possible !

D'aprÚs les illustrations précédentes, nous savons qu'un serveur Twitch ne peut accepter notre flux vidéo que d'une seule adresse IP source, ce qui signifie qu'elle doit toujours rester constante, peu importe quels fournisseurs sont en panne ou fonctionnent. Pour cela, nous aurons besoin d'un serveur d'agrégation qui terminera toutes nos connexions et les combinera en une seule.

Le vrai regroupement des canaux Internet — OpenMPTCPRouter
Le serveur d'agrégation combine tous les canaux en un seul tunnel. Toutes les connexions se font via l'adresse du serveur d'agrégation.

Dans ce schéma, tous les fournisseurs sont utilisés, et la coupure de l'un d'eux ne provoquera pas d'interruption de la connexion au serveur Twitch. En essence, c'est un tunnel VPN spécial, dont les fondements reposent sur plusieurs canaux Internet à la fois. L'objectif principal de ce schéma est d'obtenir un canal de communication de la meilleure qualité possible. Si l'un des fournisseurs rencontre des problÚmes, des pertes de paquets ou des augmentations de latence, cela ne doit pas affecter la qualité de la communication, car la charge sera automatiquement redistribuée sur d'autres canaux de meilleure qualité disponibles.

Solutions commerciales

Ce problÚme préoccupe depuis longtemps ceux qui réalisent des diffusions en direct d'événements et n'ont pas accÚs à une connexion Internet de qualité. Pour de telles tùches, il existe plusieurs solutions commerciales, par exemple, l'entreprise Teradek fabrique des routeurs monstrueux qui peuvent accueillir des lots de modems USB :

Le vrai regroupement des canaux Internet — OpenMPTCPRouter
Routeur pour la diffusion vidéo avec fonction de sommation des canaux

Ces dispositifs intÚgrent généralement la possibilité de capturer des signaux vidéo via HDMI ou SDI. Un abonnement au service de sommation des canaux, ainsi qu'à la gestion des flux vidéo, leur réencodage et leur retransmission, est vendu avec le routeur. Le prix de ces appareils commence à partir de 2 000 $ avec un ensemble de modems, plus un abonnement séparé au service.

Parfois, cela peut sembler suffisamment intimidant :

Le vrai regroupement des canaux Internet — OpenMPTCPRouter

Configurer OpenMPTCPRouter

Protocole MP-TCP (MultiPath TCP) a été conçu pour permettre de se connecter simultanément par plusieurs canaux. Par exemple, il est pris en charge par iOS et peut se connecter simultanément à un serveur distant via WiFi et un réseau mobile. Il est important de comprendre qu'il ne s'agit pas de deux connexions TCP distinctes, mais bien d'une seule connexion établie sur deux canaux. Pour que cela fonctionne, le serveur distant doit également prendre en charge MPTCP.

OpenMPTCPRouter est un projet de routeur logiciel open source permettant de vĂ©ritablement sommer des canaux. Les auteurs affirment que le projet est en version alpha, mais qu'il est dĂ©jĂ  utilisable. Il se compose de deux parties : un serveur de sommation qui est hĂ©bergĂ© sur Internet, et un routeur auquel se connectent plusieurs fournisseurs d'accĂšs Ă  Internet et les appareils clients eux-mĂȘmes : ordinateurs, tĂ©lĂ©phones. Un Raspberry Pi, certains routeurs WiFi ou un ordinateur ordinaire peuvent servir de routeur utilisateur. Des versions prĂȘtes Ă  l'emploi sont disponibles pour diffĂ©rentes plateformes, ce qui est trĂšs pratique.

Le vrai regroupement des canaux Internet — OpenMPTCPRouter
Principe de fonctionnement d'OpenMPTCPRouter

Configuration du serveur de sommation

Le serveur de sommation est hébergé sur Internet et termine les connexions de tous les canaux du routeur client en une seule. L'adresse IP de ce serveur sera l'adresse externe lors de la connexion à Internet via OpenMPTCPRouter.

Pour cette tĂąche, nous allons utiliser un serveur VPS sous Debian 10.

Exigences pour le serveur de sommation :

  • MPTCP ne fonctionne pas sur la virtualisation OpenVZ
  • Il doit ĂȘtre possible d'installer un noyau Linux personnalisĂ©

Le serveur est déployé en exécutant une seule commande. Un script installera un noyau prenant en charge mptcp ainsi que tous les paquets nécessaires. Des scripts d'installation sont disponibles pour Ubuntu et Debian.

wget -O - http://www.openmptcprouter.com/server/debian10-x86_64.sh | sh

Résultat de l'installation réussie du serveur.

Le vrai regroupement des canaux Internet — OpenMPTCPRouter

Nous enregistrons les mots de passe, nécessaires pour configurer le routeur client, et nous redémarrons. Il est important de noter qu'aprÚs l'installation, SSH sera disponible sur le port 65222. AprÚs le redémarrage, il faut s'assurer que nous avons démarré avec le nouveau noyau.

uname -a 
Linux test-server.local 4.19.67-mptcp

Nous voyons à cÎté du numéro de version l'inscription mptcp, ce qui indique que le noyau a été installé correctement.

Configuration du routeur client

Sur site du projet des versions prĂȘtes Ă  l'emploi sont disponibles pour certaines plateformes, par exemple Raspberry Pi, Banana Pi, routeurs Lynksys et machines virtuelles.
Cette partie d'openmptcprouter est basée sur OpenWRT, utilisant LuCI comme interface, familiÚre à quiconque a déjà travaillé avec OpenWRT. La distribution pÚse environ 50 Mo !

Le vrai regroupement des canaux Internet — OpenMPTCPRouter

Pour la plateforme de test, j'utiliserai Raspberry Pi et quelques modems USB avec différents opérateurs : MTS et MegaFon. Je suppose qu'il n'est pas nécessaire d'expliquer comment écrire l'image sur une carte SD.

Initialement, le port Ethernet de Raspberry Pi est configuré comme lan avec une adresse IP statique. 192.168.100.1. Pour éviter l'encombrement des cùbles sur la table, j'ai connecté Raspberry Pi à un point d'accÚs WiFi et j'ai attribué une adresse statique à l'adaptateur WiFi de l'ordinateur. 192.168.100.2. Le serveur DHCP par défaut n'est pas activé, il faut donc utiliser des adresses statiques.

Vous pouvez maintenant accéder à l'interface web. 192.168.100.1

Lors de la premiÚre connexion, le systÚme vous demandera de définir le mot de passe root, avec lequel SSH sera également accessible.

Le vrai regroupement des canaux Internet — OpenMPTCPRouter
Dans les paramÚtres LAN, vous pouvez définir le sous-réseau souhaité et activer le serveur DHCP.

J'utilise des modems qui sont reconnus comme des interfaces USB Ethernet avec un serveur DHCP séparé, ce qui a nécessité l'installation de paquets supplémentaires.. La procédure est identique à celle de la configuration des modems dans un OpenWRT standard, je ne l'examinerai donc pas ici.

Ensuite, il faut configurer les interfaces WAN. Par défaut, deux interfaces virtuelles WAN1 et WAN2 sont créées dans le systÚme. Il faut leur attribuer un appareil physique, dans mon cas, ce sont les noms des interfaces des modems USB.

Pour ne pas me perdre dans les noms des interfaces, je recommande de consulter les messages dmesg aprĂšs s'ĂȘtre connectĂ© par SSH.

Étant donnĂ© que mes modems agissent comme des routeurs et possĂšdent leur propre serveur DHCP, j'ai dĂ» modifier les paramĂštres de leurs plages rĂ©seau internes et dĂ©sactiver le serveur DHCP, car Ă  l'origine, les deux modems attribuaient des adresses d'un mĂȘme rĂ©seau, ce qui provoquait un conflit.

OpenMPTCPRouter nĂ©cessite que les adresses des interfaces WAN soient statiques, il faut donc attribuer des sous-rĂ©seaux aux modems et configurer dans le menu system → openmptcprouter → interface settings. Il est Ă©galement nĂ©cessaire de spĂ©cifier l'adresse IP et la clĂ© du serveur obtenue lors de l'Ă©tape d'installation du serveur de sommaire.

Le vrai regroupement des canaux Internet — OpenMPTCPRouter

En cas de configuration réussie, la page d'état devrait afficher une image similaire. On peut voir que le routeur a réussi à se connecter au serveur de sommaire et que les deux canaux fonctionnent normalement.

Le vrai regroupement des canaux Internet — OpenMPTCPRouter

Par défaut, le mode utilisé est shadowsocks + mptcp. C'est un proxy qui encapsule toutes les connexions. Il est initialement configuré pour traiter uniquement le TCP, mais il est possible d'activer également l'UDP.

Le vrai regroupement des canaux Internet — OpenMPTCPRouter

Si la page d'état ne présente pas d'erreurs, on peut considérer que la configuration est terminée.
Avec certains fournisseurs, il peut y avoir une situation oĂč le drapeau mptcp est coupĂ© en cours de route, ce qui entraĂźnerait une telle erreur :

Le vrai regroupement des canaux Internet — OpenMPTCPRouter

Dans ce cas, il est possible d'utiliser un autre mode de fonctionnement, sans MPTCP ; pour plus de détails ici.

Conclusion

Le projet OpenMPTCPRouter est trĂšs intĂ©ressant et important, car c'est peut-ĂȘtre la seule solution ouverte et complĂšte au problĂšme de la somme des canaux. Tout le reste est soit complĂštement fermĂ© et propriĂ©taire, soit juste des modules distincts, difficiles Ă  comprendre pour un utilisateur ordinaire. À ce stade de dĂ©veloppement, le projet est encore assez brut, avec une documentation trĂšs limitĂ©e, de nombreuses choses ne sont tout simplement pas dĂ©crites. Mais il fonctionne nĂ©anmoins. J'espĂšre qu'il continuera Ă  Ă©voluer et que nous obtiendrons des routeurs domestiques capables de combiner les canaux de maniĂšre satisfaisante dĂšs leur sortie de la boĂźte.

Le vrai regroupement des canaux Internet — OpenMPTCPRouter

Suivez notre développeur sur Instagram

Le vrai regroupement des canaux Internet — OpenMPTCPRouter

Source : habr.com

Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS đŸ”„ Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster