Mise en place d'un réseau multi-liens (Wifi et LoRa) avec Multipath TCP
Le projet consiste à vérifier si la connectivité est possible via les modules WiFi et LoRa, en utilisant le protocole réseau MultiPath TCP. L'idée est d'avoir une connexion Internet permanente à un PC, quelle que soit la fiabilité des liens. Par conséquent, ce qui est recherché n'est pas tant la vitesse de ceux-ci (bien que le plus rapide soit le mieux), mais la robustesse, assurant que la connectivité n'est jamais perdue.
Au cours du développement de ce projet, ces technologies devront être installées, configurées et mises en service pour trouver d'éventuels problèmes et solutions lors de leur mise en œuvre, et pour tirer une conclusion sur les résultats obtenus.
Il se poursuivra ensuite à travers les différentes étapes du projet :
Dans un premier temps, deux PCs seront connectés via WiFi sans connexion Internet, et leur connectivité entre eux sera vérifiée ; puis une liaison filaire sera également connectée, à l’aide d’un Switch, afin que vous puissiez avoir deux liaisons pour chaque PC, afin de pouvoir ensuite vérifier votre connectivité en utilisant MultiPath TCP.
Une fois cette première étape franchie, dans une deuxième étape, l’idée est de remplacer les liaisons filaires, par LoStik, pour avoir deux liaisons sans fil pour chaque appareil. Vérifiez d’abord le bon fonctionnement de ces derniers, puis vérifiez leur connectivité à l’aide de MultiPath TCP.
Après cette étape, l’idée est de faire différents tests de communication et de performance, en utilisant un lien, ou l’autre, ou alors les deux en même temps.
L'objectif de ce projet est d'avoir une connexion permanente à Internet avec un PC, quelle que soit la fiabilité des liens. Précisément, le cas d'utilisation prévu est d’avoir une liaison ADSL + LoRa (ou Wi-Fi + LoRa) entre deux PC distants.
L'un des PC joue le rôle de PC “superviseur”. Dans mon cas, il s’appelle Titania. Il est capable de se connecter en permanence à tous les autres PC supervisés appelé Mneme.
Les PC supervisés sont généralement de petits PC (basse consommation, etc.) qui transportent des capteurs pour des mesures ou des missions de sécurité (par exemple, la sauvegarde). Dans ce cas, le nano-pc BananaPi devaient être utilisé, mais comme on le verra plus tard, il a fini par être remplacé par un PC pour faciliter les tests.
Le PC “Superviseur” Titania doit toujours avoir accès aux PC supervisés ici Mneme (télécommandés) pour permettre le diagnostic en cas de panne (par exemple perte de liaison ADSL ou Wi-Fi).
Généralement, en maintenant la liaison dans LoRa avec Lorapipe, il est toujours possible d'effectuer des opérations depuis le PC de contrôle sans avoir à se déplacer sur le site, permettant même au PC supervisé de redémarrer la liaison défectueuse ou de toujours se connecter à distance au réseau qui, sinon, serait inaccessible.
Pour l'administration système, il est établi, à l'aide d'une liaison TCP MultiPath, une liaison avec une robustesse beaucoup plus grande.
Par conséquent, (uniquement pour les besoins d'administration système), il s'agit d'avoir une robustesse comme des solutions avec 2 lignes ADSL. Dans ce stage, la deuxième ligne ADSL est remplacée par la liaison LoRa (ou Wi-Fi + LoRa).
Éléments pour réaliser le projet:
La première chose qui a été faite a été:Installation MPTCP et Lorapipe sur le PC appelé Titania avec processeur amd64.
Une fois le logiciel installé dans Titania, nous procédons à son installation dans le outre PC Mneme:Installation MPTCP et Lorapipe sur le PC appelé Mneme avec processeur i368.
Après avoir installé Lorapipe et MPTCP sur les deux PC, il a été décidé de commencer les tests. Les programmes suivants sont installés et configurés pour améliorer les performances et automatiser certaines tâches:
Afin de se connecter automatiquement entre les PC, il a été décidé de créer un AP Hostapd avec DHCP dans Titania.
Après avoir configuré Hostapd sur Titania, le serveur DHCP a été configuré avec dhcp isc.
Et pour me connecter automatiquement à Mneme, a été utilisé wpa_supplicant.
Une fois les autres liens automatisés, nous avons procédé à la création d'un script pour automatiser le lancement de Lorapipe.
Le premier test qui a été fait a été de tester le fonctionnement de MPTCP avec deux liaisons Wifi et câblage, connectant les différentes interfaces entre elles, transmettant en même temps et démontrant que la plus grande quantité de trafic passe par l'interface du moins de congestion et de pertes.
Dans le deuxième test, nous avons procédé à la configuration et au test du lien LoRa avec Lorapipe, comme vous pouvez le voir lorsque vous utilisez AX.25, un lien est obtenu un peu plus lentement que si nous utilisions PPP, mais ce protocole nous permet de connecter plusieurs appareils, contrairement au PPP, qui ne nous permet que de point à point. Cela nous permettrait de créer un réseau de type Mesh entre tous les appareils, donc si l'un d'entre eux cesse de fonctionner, ils peuvent communiquer indépendamment.
Dans le troisième test, les trois liaisons ont été testées simultanément avec MPTCP, où l'on pouvait voir que les trois liaisons transmettaient en même temps et la charge que chacune d'elles transportait. On voit clairement comment, via la liaison LoRa, il est transmis beaucoup moins que les deux autres, ce qui était attendu par les caractéristiques du LoStik avec Lorapipe.
Dans le quatrième test , lorsque nous avons rencontré le problème selon lequel lorsque le lien avec la priorité la plus élevée était tombé, les deux autres ont cessé de fonctionner, il a donc été décidé d'essayer trois interfaces et réseaux différents. Cela a résolu le problème. Il a été testé en coupant toutes les interfaces et en les restaurant, et à aucun moment la connexion à l'appareil n'a été perdue.
Enfin, en voyant que tout fonctionnait déjà, la liaison LoRa a été améliorée où la latence a été considérablement réduite et la bande passante augmentée. Comme nous pouvons le voir ici.
Comme vous pouvez le voir dans la dernière capture d'écran, il reste encore quelques paquets en double et retransmis. Il s'agit d'un comportement normal d'utilisation de Lorapipe avec LoStik, car ces derniers ne sont pas de très bonne qualité, mais ils sont peu coûteux et suffisants pour les tests sur le terrain.
Aussi en augmentant sa vitesse, il sacrifie un peu de robustesse, il faut trouver l'équilibre en fonction de ce pour quoi on veut l'utiliser.
| Auteurs | Titre de l’article | URL du site |
|---|---|---|
| Sébastien Barré | MultiPath TCP - Linux Kernel implementation | https://multipath-tcp.org/ |
| Iván Fontán González | Análisis y mejora del comportamiento del protocolo MPTCP sobre escenarios de red heterogéneos LTE/WiFi | https://repositorio.unican.es/xmlui/bitstream/handle/10902/8651/385799.pdf?sequence=1&isAllowed=y |
| RF Wireless World | LoRa wireless tutorial | https://www.rfwireless-world.com/Tutorials/LoRa-tutorial.html |
| Lucas Villanueva | Configurar Wifi con IP estática y cifrado WPA2 en Debian | https://www.taringa.net/+linux/configurar-wifi-con-ip-estatica-y-cifrado-wpa2-en-debian-6_12rhwb |
| Javier A. Piendibene | Compartir una red física por WiFi en sistemas con “systemd” | https://wiki.debian.org/es/Compartir_red_fisica_con_WiFi |
| Solvetic Sistemas | Cómo instalar y configurar servidor ISC DHCP en Debian 9 | https://www.solvetic.com/tutoriales/article/4398-como-instalar-configurar-servidor-isc-dhcp-debian-9/ |
| Benjamín García García | Debian Multiarch: Gestionando arquitecturas i386 y amd64. | https://www.diversidadyunpocodetodo.com/debian-multiarch-instalar-i386-amd64/ |
| John Goerzen | LoRa LoStik Pipe & Networking Tools | https://github.com/jgoerzen/lorapipe |