Après avoir configuré les paramètres d'initialisation procédez à la configuration de ppp:
PPP est le moyen le plus rapide pour exécuter TCP / IP sur LoRa avec lorapipe. Il est soumis à certaines limitations:
• Deux appareils au plus doivent utiliser la fréquence. PPP ne peut pas prendre en charge la communication ad hoc vers plusieurs appareils comme le fait AX.25.
• La compression PPP ne doit pas être activée. En effet, PPP suppose normalement une connexion sans perte et tous les paquets perdus deviennent suffisamment chers pour que PPP puisse les gérer, car la compression doit être rétablie. Mieux vaut utiliser la compression au niveau du protocole; par exemple, avec ssh -C.
Pour configurer PPP, sur un périphérique, créez /etc/ppp/peers/lora avec ce contenu:
hide-password noauth debug nodefaultroute 192.168.2.3:192.168.2.2 mru 1024 pasivo 115200 nobsdcomp nodeflate
Sur l'autre appareil, modifiez l'ordre de ces adresses IP. Maintenant, allumez-le à chaque extrémité avec une commande comme celle-ci, exécutez-le toujours sur target / release / lorapipe:
socat EXEC:'pppd nodetach file /etc/ppp/peers/lora,pty,rawer' \ EXEC:'lorapipe --txslot 2000 --initfile=init-fast.txt --maxpacketsize 100 --txwait 120 /dev/ttyUSB0 pipe,pty,rawer'
Selon les documents PPP, une MRU de 296 peut convenir pour des liaisons plus lentes. Cela vous permettra désormais de faire un ping via le lien. Des options supplémentaires peuvent être ajoutées pour ajouter par exemple une certaine authentification au démarrage et ainsi de suite (bien que notez que LoRa, étant RF, signifie qu'une session pourrait être détournée, alors ne mettez pas trop de stock dans cela comme limite ; il est préférable d'ajouter des règles de pare-feu, etc.) Bien sûr, ssh peut très bien fonctionner à ce sujet, et dans mes tests, PPP était la méthode la plus rapide pour exécuter SSH sur LoRa, battant même AX.25. Mais alors, cela a du sens, car AX.25 doit ajouter des bits d'adressage à chaque trame, car il s'agit d'un protocole de type LAN.
Une fois cette dernière commande utilisée, les liens seraient les suivants:
Sur le PC Mneme:
root@mneme:/home/gabriel/Téléchargements/lorapipe-master# ip a
2: enp5s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether b4:b5:2f:78:b1:c7 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.77/24 brd 192.168.1.255 scope global dynamic enp5s0
valid_lft 80162sec preferred_lft 80162sec
inet6 fe80::b6b5:2fff:fe78:b1c7/64 scope link
valid_lft forever preferred_lft forever
3: wlo1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 68:94:23:0b:ce:ef brd ff:ff:ff:ff:ff:ff
inet 192.168.1.100/24 brd 192.168.1.255 scope global dynamic noprefixroute wlo1
valid_lft 80208sec preferred_lft 80208sec
inet6 fe80::206f:adb1:c5a1:a358/64 scope link noprefixroute
valid_lft forever preferred_lft forever
14: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1024 qdisc pfifo_fast state UNKNOWN group default qlen 3
link/ppp
inet 192.168.2.3 peer 192.168.2.2/32 scope global ppp0
valid_lft forever preferred_lft forever
Où, le lien filaire enp5s0 a l'ip 192.168.1.77, le lien wifi wlo1192.168.1.100 et le lien point à point ppp 192.168.2.3.
Sur le PC Titania:
root@titania:/home/gabriel# ip a
2: enp5s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether a4:5d:36:c9:b0:7b brd ff:ff:ff:ff:ff:ff
inet 192.168.1.5/24 brd 192.168.1.255 scope global dynamic enp5s0
valid_lft 70921sec preferred_lft 70921sec
inet6 fe80::a65d:36ff:fec9:b07b/64 scope link
valid_lft forever preferred_lft forever
3: wlo1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 3c:77:e6:0a:c2:b7 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.60/24 brd 192.168.1.255 scope global noprefixroute wlo1
valid_lft forever preferred_lft forever
inet6 fe80::867:77aa:2184:907f/64 scope link noprefixroute
valid_lft forever preferred_lft forever
16: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1024 qdisc pfifo_fast state UNKNOWN group default qlen 3
link/ppp
inet 192.168.2.2 peer 192.168.2.3/32 scope global ppp0
valid_lft forever preferred_lft forever
Où, le lien filaire enp5s0 a l'IP 192.168.1.5, le lien wifi 192.168.1.60 wlo1 et le lien point à point ppp 192.168.2.2. Et les tables de routage:
root@mneme:/home/gabriel/Téléchargements/lorapipe-master# ip route default via 192.168.1.254 dev enp5s0 default via 192.168.1.254 dev wlo1 proto dhcp metric 600 192.168.1.0/24 dev enp5s0 proto kernel scope link src 192.168.1.77 192.168.1.0/24 dev wlo1 proto kernel scope link src 192.168.1.100 metric 600 192.168.2.2 dev ppp0 proto kernel scope link src 192.168.2.3
root@titania:/home/gabriel# ip route default via 192.168.1.254 dev enp5s0 default via 192.168.1.254 dev wlo1 proto static metric 600 192.168.1.0/24 dev enp5s0 proto kernel scope link src 192.168.1.5 192.168.1.0/24 dev wlo1 proto kernel scope link src 192.168.1.60 metric 600 192.168.2.3 dev ppp0 proto kernel scope link src 192.168.2.2
Ce qui nous montre que nos ordinateurs peuvent transmettre de trois manières différentes en même temps. Un via des câbles connectés à mon réseau Lan, un autre via wifi connecté à mon réseau Lan et un autre via une liaison radio point à point avec le LoStik.
Nous avons maintenant fait un test de connectivité, en téléchargeant un fichier de Titania dans Mneme, et en regardant le transfert en utilisant Ifstat et Wireshark.
Ifstat Mneme:
Comme vous pouvez le voir, le fichier est téléchargé à travers les trois interfaces en même temps, mais le lien radio est beaucoup plus lent que les deux autres liens, nous pouvons également le voir lors du ping d'un PC à l'autre, où l'on voit que il a une latence très élevée.
Ensuite, on peut voir dans Wireshark que les interfaces utilisent le protocole MPTCP: