Somme réelle des canaux Internet - OpenMPTCPRouter

Somme réelle 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, l'agrégation de liens est appelée à tort équilibrage NAT ou basculement. Mais la sommation réelle permet exécuter une seule connexion TCP simultanément sur tous les canaux Internet, par exemple, la diffusion vidéo de sorte que si l'un des canaux Internet est interrompu, la diffusion ne sera pas interrompue.

Il existe des solutions commerciales coûteuses pour la diffusion vidéo, mais de tels appareils coûtent très cher. L'article décrit la configuration du package ouvert et gratuit OpenMPTCPRouter et traite des mythes populaires sur la sommation des canaux.

Mythes sur la sommation des canaux

De nombreux routeurs domestiques prennent en charge la fonction Multi-WAN. Parfois, les fabricants appellent cette sommation de canaux, ce qui n'est pas tout à fait vrai. De nombreux réseauteurs croient qu'en plus de LACP et sommation au niveau de la couche L2, aucune autre agrégation de canaux n'existe. J'ai souvent entendu dire que c'est généralement impossible de la part des gens qui travaillent dans les télécoms. Par conséquent, essayons de comprendre les mythes populaires.

Équilibrage au niveau des connexions IP

C'est le moyen le plus abordable et le plus populaire d'utiliser plusieurs canaux Internet en même temps. Pour simplifier, imaginons que vous ayez trois FAI, chacun vous donnant une adresse IP réelle de leur réseau. Tous ces fournisseurs sont connectés à un routeur prenant en charge la fonction Multi-WAN. Cela peut être OpenWRT avec le package mwan3, mikrotik, ubiquiti ou tout autre routeur domestique, car désormais cette option n'est plus rare.

Pour simuler la situation, imaginons que les prestataires nous donnent les adresses suivantes :

WAN1 — 11.11.11.11
WAN2 — 22.22.22.22
WAN2 — 33.33.33.33

Autrement dit, se connecter à un serveur distant example.com à travers chacun des fournisseurs, le serveur distant verra trois IP source indépendantes du client. L'équilibrage vous permet de répartir la charge sur les canaux et de les utiliser tous les trois en même temps. Pour plus de simplicité, imaginons que nous divisons la charge entre tous les canaux de manière égale. Par conséquent, lorsqu'un client ouvre un site avec trois images de manière conditionnelle, il télécharge chaque image via un fournisseur distinct. Côté site, cela ressemble à des connexions provenant de trois IP différentes.

Somme réelle des canaux Internet - OpenMPTCPRouter
Lors de l'équilibrage au niveau de la connexion, chaque connexion TCP passe par un fournisseur distinct.

Ce mode d'équilibrage pose souvent des problèmes aux utilisateurs. Par exemple, de nombreux sites associent des cookies et des jetons à l'adresse IP du client, et si elle change soudainement, la demande est abandonnée ou le client se déconnecte du site. Ceci est souvent reproduit dans les systèmes client-banque et d'autres sites avec des règles de session utilisateur strictes. Voici un exemple illustratif simple : les fichiers musicaux sur VK.com ne sont disponibles qu'avec une clé de session valide liée à l'IP, et les clients utilisant un tel équilibrage ne lisent souvent pas l'audio, car la demande n'est pas passée par le fournisseur auquel le session est liée.

Somme réelle des canaux Internet - OpenMPTCPRouter
Lors du téléchargement de torrents, l'équilibrage au niveau de la connexion additionne la bande passante de tous les canaux

Un tel équilibrage vous permet d'obtenir la somme de la vitesse du canal Internet lors de l'utilisation de plusieurs connexions. Par exemple, si chacun des trois fournisseurs a une vitesse de 100 mégabits, alors lors du téléchargement de torrents, nous obtiendrons 300 mégabits. Parce que le torrent ouvre de nombreuses connexions qui sont réparties entre tous les fournisseurs et utilisent finalement l'ensemble du canal.

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

Somme réelle des canaux Internet - OpenMPTCPRouter
Une connexion utilisera toujours un seul canal Internet

Ceci est également vrai pour les diffusions vidéo. Si vous diffusez de la vidéo en streaming sur certains Twitch conditionnels, l'équilibrage au niveau des connexions IP n'apportera aucun avantage particulier, car le flux vidéo sera diffusé au sein d'une connexion IP. Dans ce cas, si le fournisseur WAN 3 commence à avoir des problèmes de communication, tels qu'une perte de paquets ou un ralentissement, vous ne pourrez pas passer immédiatement à un autre fournisseur. La diffusion devra être arrêtée et reconnectée.

Véritable sommation de canaux

La sommation réelle des canaux permet de démarrer une connexion au Twitch conditionnel via tous les fournisseurs à la fois de telle sorte que si l'un des fournisseurs tombe en panne, la connexion ne sera pas interrompue. C'est un problème étonnamment difficile, qui n'a toujours pas de solution optimale. Beaucoup ne savent même pas que c'est possible !

D'après les illustrations précédentes, nous nous souvenons que le serveur Twitch conditionnel peut recevoir un flux vidéo de notre part à partir d'une seule adresse IP source, ce qui signifie qu'il doit toujours être constant avec nous, quels que soient les fournisseurs tombés et ceux qui fonctionnent. Pour y parvenir, nous avons besoin d'un serveur de sommation qui mettra fin à toutes nos connexions et les fusionnera en une seule.

Somme réelle des canaux Internet - OpenMPTCPRouter
Le serveur de sommation regroupe tous les canaux dans un tunnel. Toutes les connexions proviennent de l'adresse du serveur de sommation

Ce schéma utilise tous les fournisseurs, et la désactivation de l'un d'entre eux n'entraînera pas de perte de communication avec le serveur Twitch. En fait, il s'agit d'un tunnel VPN spécial, sous le capot duquel se trouvent plusieurs canaux Internet à la fois. La tâche principale d'un tel système est d'obtenir le canal de communication de la plus haute qualité. Si des problèmes commencent chez l'un des fournisseurs, une perte de paquets, une augmentation des retards, cela ne devrait en aucun cas affecter la qualité de la communication, car la charge sera automatiquement répartie sur d'autres meilleurs canaux disponibles.

Solutions commerciales

Ce problème préoccupe depuis longtemps ceux qui diffusent des événements en direct et n'ont pas accès à Internet de haute qualité. Pour de telles tâches, il existe plusieurs solutions commerciales, par exemple, Teradek fabrique de tels routeurs monstrueux dans lesquels sont insérés des packs de modems USB :

Somme réelle des canaux Internet - OpenMPTCPRouter
Routeur vidéo de diffusion avec fonction de sommation de canaux

Ces appareils ont généralement la capacité de capturer de la vidéo via HDMI ou SDI. Avec le routeur, un abonnement au service de sommation de canaux est vendu, ainsi que le traitement du flux vidéo, son transcodage et sa retransmission ultérieure. Le prix de ces appareils commence à partir de 2 XNUMX $ avec un ensemble de modems, plus un abonnement séparé au service.

Parfois, cela semble assez intimidant :

Somme réelle des canaux Internet - OpenMPTCPRouter

Configuration d'OpenMPTCPRouter

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

OuvrirMPTCPRouteur est un projet de routeur logiciel open source qui vous permet de vraiment additionner les canaux. Les auteurs précisent que le projet est au stade de la version alpha, mais qu'il peut déjà être utilisé. Il se compose de deux parties - un serveur de sommation situé sur Internet et un routeur auquel sont connectés plusieurs fournisseurs d'accès Internet et appareils clients eux-mêmes : ordinateurs, téléphones. Un routeur personnalisé peut être un Raspberry Pi, certains routeurs WiFi ou un ordinateur ordinaire. Il existe des assemblages prêts à l'emploi pour différentes plates-formes, ce qui est très pratique.

Somme réelle des canaux Internet - OpenMPTCPRouter
Comment fonctionne OpenMPTCPRouter

Configuration du serveur de synthèse

Le serveur de sommation est situé sur Internet et termine les connexions de tous les canaux du routeur client en un seul. L'adresse IP de ce serveur sera l'adresse externe lors de l'accès à Internet via OpenMPTCPRouter.

Pour cette tâche, nous utiliserons un serveur VPS sur Debian 10.

Configuration requise pour le serveur de sommation :

  • MPTCP ne fonctionne pas sur la virtualisation OpenVZ
  • Il devrait être possible d'installer votre propre noyau Linux

Le serveur est déployé en exécutant une commande. Le script installera le noyau mptcp et tous les packages requis. Des scripts d'installation sont disponibles pour Ubuntu et Debian.

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

Le résultat d'une installation de serveur réussie.

Somme réelle des canaux Internet - OpenMPTCPRouter

Nous enregistrons les mots de passe, nous en aurons besoin pour configurer le routeur client et redémarrer. Il est important de garder à l'esprit qu'après l'installation, SSH sera disponible sur le port 65222. Après le redémarrage, nous devons nous assurer que nous démarrons avec le nouveau noyau

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

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

Configuration d'un routeur client

Sur site du projet Des versions prêtes à l'emploi sont disponibles pour certaines plates-formes, telles que Raspberry Pi, Banana Pi, les routeurs Lynksys et les machines virtuelles.
Cette partie d'openmptcprouter est basée sur OpenWRT, utilisant LuCI comme interface, familière à tous ceux qui ont déjà rencontré OpenWRT. Le kit de distribution pèse environ 50Mb !

Somme réelle des canaux Internet - OpenMPTCPRouter

Comme banc de test, j'utiliserai Raspberry Pi et plusieurs modems USB chez différents opérateurs : MTS et Megafon. Comment écrire une image sur une carte SD, je suppose, pas besoin de le dire.

Initialement, le port Ethernet du Raspberry Pi est configuré en tant que lan avec une adresse IP statique. 192.168.100.1. Afin de ne pas déranger les fils sur la table, j'ai connecté le Raspberry Pi à un point d'accès WiFi et défini une adresse statique sur l'adaptateur WiFi de l'ordinateur 192.168.100.2. Le serveur DHCP n'est pas activé par défaut, des adresses statiques doivent donc être utilisées.

Vous pouvez maintenant accéder à l'interface Web 192.168.100.1

Lors de votre première connexion, le système vous demandera de définir le mot de passe root, SSH sera disponible avec le même mot de passe.

Somme réelle 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 définis comme des interfaces Ethernet USB avec un serveur DHCP séparé, donc cette installation requise forfaits supplémentaires. La procédure est identique à la configuration des modems dans OpenWRT standard, je ne la couvrirai donc pas ici.

Ensuite, vous devez configurer les interfaces WAN. Initialement, deux interfaces virtuelles WAN1 et WAN2 ont été créées dans le système. Ils doivent attribuer un périphérique physique, dans mon cas, ce sont les noms des interfaces de modem USB.

Afin de ne pas vous perdre dans les noms d'interface, je vous conseille de regarder les messages dmesg lorsque vous êtes connecté via SSH.

Étant donné que mes modems agissent eux-mêmes comme des routeurs et ont eux-mêmes un serveur DHCP, j'ai dû modifier les paramètres de leurs plages de réseau interne et désactiver le serveur DHCP, car initialement les deux modems émettent des adresses du même réseau, ce qui provoque un conflit.

OpenMPTCPRouter nécessite que les adresses d'interface WAN soient statiques, nous proposons donc des sous-réseaux pour les modems et les configurons dans le menu système → openmptcprouter → paramètres d'interface. Ici, vous devez également spécifier l'adresse IP et la clé de serveur obtenues lors de l'installation du serveur de sommation.

Somme réelle des canaux Internet - OpenMPTCPRouter

En cas de configuration réussie, une image similaire devrait apparaître sur la page d'état. On peut voir que le routeur a pu atteindre le serveur de sommation et que les deux canaux fonctionnent correctement.

Somme réelle des canaux Internet - OpenMPTCPRouter

Le mode par défaut est shadowsocks + mptcp. C'est un tel proxy qui encapsule toutes les connexions en lui-même. Initialement, il est configuré pour gérer uniquement TCP, mais vous pouvez également activer UDP.

Somme réelle des canaux Internet - OpenMPTCPRouter

S'il n'y a pas d'erreurs sur la page d'état, la configuration peut être considérée comme terminée.
Avec certains fournisseurs, une situation peut survenir lorsque l'indicateur mptcp est tronqué le long du chemin du trafic, puis il y aura une telle erreur :

Somme réelle des canaux Internet - OpenMPTCPRouter

Dans ce cas, vous pouvez utiliser un autre mode de fonctionnement, sans utiliser MPTCP, plus à ce sujet ici.

Conclusion

Le projet OpenMPTCPRouter est très intéressant et important, car c'est peut-être la seule solution complexe ouverte au problème de sommation de canaux. Tout le reste est soit étroitement fermé et propriétaire, soit simplement des modules séparés qu'une personne ordinaire ne peut pas gérer. Au stade actuel de développement, le projet est encore assez brut, une documentation extrêmement pauvre, beaucoup de choses ne sont tout simplement pas décrites. Mais en même temps, ça marche toujours. J'espère qu'il continuera à se développer et que nous aurons des routeurs domestiques capables de combiner les canaux normalement prêts à l'emploi.

Somme réelle des canaux Internet - OpenMPTCPRouter

Suivez notre développeur sur Instagram

Somme réelle des canaux Internet - OpenMPTCPRouter

Source: habr.com

Ajouter un commentaire