pierrot10
Posts: 106
Joined: Mon Dec 15, 2014 3:17 pm

Comment envoyer des données via WWAN0 au lieu de WLAN0

Wed Apr 01, 2020 4:58 pm

Bonjour à tous,

Je suis en train de tester des modules sur un Rasberry Pi3.

Le projet consiste à utiliser un Raspoberry Pi avec un IoT LoRa Gateway HAT https://uk.pi-supply.com/products/iot-l ... pi?lang=fr et un module 3/4G de Sixfab https://sixfab.com/product/raspberry-pi ... cie-cards/ avec un Quectel https://sixfab.com/product/quectel-ec25 ... te-module/

Image

J'ai pu tout mettre ensemble et les installations se sont bien déroulées. Le module 3/4G de Sixfab se connecte très bien au réseau célullaire, via l'interface WWAN0. Par contre la passerelle LoRaWAN n'est vue par TTN (The Tings Network) https://www.thethingsnetwork.org/ que lors que le Raspberry est connecté via WLAN du routeur WiFi de mon domicile, soit quand je configure le WiFi du Raspberry. J'ai un peu comme l'impression que le IoT LoRa Gateway arrive à se connecter que via le WLAN0, et pas avec l'interface WWAN0.

Ma question est donc, est ce que je peux configurer mon Raspberry pour que toutes les connections ne se fassemt que via l'interface WWAN0, et que celle du WLAN0 soit redirigée vers le WWAN0? Ou que le Raspberry prenne en préférence lw WWAN0, si les deux sont valides? Ou qu'il prend que le WWAN0 :) ?

Je pensais que toutes connections passaient automatiquement via une interface valide, soit le WWAN si WLAN n'est pas connecté.

Afin de bien compendre ma configuration, mon installation et ma quetsion, j'ai écris ici https://eco-sensors.ch/iot-lora-gateway ... pberry-4g/ un article qui explique, j'espère clèrement, la préparation du Raspberry avec ses HATs

A noter, que l'installation de la passerelle est expliquée ici https://eco-sensors.ch/iot-lora-gateway-pour-raspberry/
Puis l'ajout du module 3/4G ici https://eco-sensors.ch/iot-lora-gateway ... pberry-4g/

En espèrant que je fournis ainsi toutes les informations nécessaires sur mon installation, pour comprendre pourquoi la passerelle n'arrive pas à communiquer avec le server TTN (The Things Networks) via l'interface WWAN0

Milles mercis pour vos lumières

epoch1970
Posts: 5022
Joined: Thu May 05, 2016 9:33 am
Location: Paris, France

Re: Comment envoyer de donnée via WWAN0 au lieu de WLAN0

Wed Apr 01, 2020 5:34 pm

pierrot10 wrote:
Wed Apr 01, 2020 4:58 pm
Ma question est donc, est ce que je peux configurer mon Raspberry pour que toutes les connections ne se fassemt que vis l'interface WWAN0, et que celle du WLAN0 soit redirigée vers le WWAN0?

Je pensais que toutes connections passaient automtiquement via une interface valide, soit le WWAN sir WLAn n'est pas connecté.
J'ai regardé rapidement les liens, je ne vois pas quel est le routage obtenu à la fin sur la machine.

- Si la machine ne précise pas de route par défaut, les connections ne se font que sur le voisinage réseau. La route par défaut est la route vers partout ailleurs, autrement dit la route vers internet.
La route par défaut définie dans la machine pointe sur le routeur du réseau local, qui lui-même connaît l'adresse d'un autre routeur en amont, celui d'un ISP en général.

- Si la machine a plusieurs routes par défaut configurées en même temps, la logique de routage dans la machine choisit la route dont la priorité est la plus forte. La métrique d'une route est l'un des attributs de sa priorité. Par défaut, avec la métrique 0, une route a la priorité maximale. Si on spécifie une valeur de métrique, ex. 1 ou 512, la priorité de la route décroit.
Avec Raspbian, par défaut, les routes qui passent par l'interface ethernet ont la priorité 202 et les routes qui passent par WiFi ont la priorité 303. Il n'y a pas de route par défaut à métrique 0.
Autrement dit lorsqu'un Pi est connecté chez soi au routeur de l'ISP, et que eth0 et wlan0 sont toutes deux actives, c'est ethernet qui est utilisé (202 < 303).

- La métrique est un attribut de la route, mais en général elle est rattachée à la configuration de l'interface ; toutes les routes passant par une interface ont la même priorité. Par ex. avec "ip route add ..." on peut spécifier l'option "metric XXX" ; dans dhcpcd.conf on peut utiliser le mot-clé "metric YYY" dans la configuration d'une interface, et toutes les routes créées par dhcpcd et qui passent par cette interface, porteront cette valeur de métrique.


Pour résumer : 1) pour accéder à internet il faut une route par défaut. 2) S'il y en a plusieurs, celle avec la plus petite métrique gagne. 3) On peut régler la valeur de métrique dans la configuration des interfaces, ou lors de la création des routes elles-mêmes.
"S'il n'y a pas de solution, c'est qu'il n'y a pas de problème." Les Shadoks, J. Rouxel

pierrot10
Posts: 106
Joined: Mon Dec 15, 2014 3:17 pm

Re: Comment envoyer des données via WWAN0 au lieu de WLAN0

Wed Apr 01, 2020 7:36 pm

Hello
Merci pour ta longue réponse mais je t'avoue n'avoir pas tout compris :D

Ma machine, donc mon Raspberry, ne précise pas de route, les routes se font pas le voisinage réseau. Que veux-tu dire par voisinage réseau.
Les interfaces?

Dans mon cas, je connecte mon Raspberry soir au WiFI (WLAN), soit au câble Ethernet (ET) ou à mon moduel 3G (WWAN). Dans les deux derniers, je ne vois pas comment ils peuvent se connecter à un réseau voisin tout comme le WiFi, puisqu'il faut un SSID et un PSK.

Pour LoRaWAN oui en effet, mais mon problème ne se trouve pas à ce niveau, puisque je travaille sur ma passerelle qui doit se connecter au servezr TTN via le module 3/4G et via l'interface WWAN0. Comme je l'ai écris mon module se connecte très bien au réseau célullaire.

Malgré ceci, ma passerelle n'arrive pas à concter le serveur TTN que vis l'interface WLAN meme quand le WLAN, le WiFi est déconnecter.

Tu parlais de priorité, si le WiFi n'est pas configuré, le WLN ne peut pas être prioritaire non?
Avec Raspbian, par défaut, les routes qui passent par l'interface ethernet ont la priorité 202 et les routes qui passent par WiFi ont la priorité 303. Il n'y a pas de route par défaut à métrique 0
Autrement dit lorsqu'un Pi est connecté chez soi au routeur de l'ISP, et que eth0 et wlan0 sont toutes deux actives, c'est ethernet qui est utilisé (202 < 303).
OK, Mon câble ethernet est déconnecté (ETH0), mon WiFi n'est pas connecté, ni configuré (WLAN0), mon module 4G (WWAN0) est connecté, quelles sont les priorités? Je suppose que WWAN0 est prioritaire?

Si non comment alors définir ces priorités pour que WWANo soit prioritaire même, ideéalement sauf que WLAN est configuré et connecté?

Je me demande si c'est possible que ce module https://uk.pi-supply.com/products/iot-l ... pi?lang=fr ne "sache" pas utiliser WWAN0 :D

epoch1970
Posts: 5022
Joined: Thu May 05, 2016 9:33 am
Location: Paris, France

Re: Comment envoyer des données via WWAN0 au lieu de WLAN0

Wed Apr 01, 2020 7:56 pm

Je n'ai aucune idée de comment fonctionne LoRA mais ça ne peut pas être pas magique.
Les interfaces inactives ne sont pas prises en compte. Si wlan0 est inactif, il n'est pas utilisé, fin de l'histoire. Le Wifi intégré peut se désactiver dans config.txt, au passage.

Le site de TTN est à la cave pour moi donc je n'irai pas lire la doc.
Si seule wwan0 est active, il faut configurer les routes nécessaires pour passer de 10.111.11.209 (fourni pas swisscom ?) à l'infra de TTN. La machine devrait avoir une route qui pointe vers TTN, via un routeur de Swisscom. Ou bien une route par défaut, via un routeur de Swisscom.
"ip route" ou "route" sur la machine donne l'état de la table de routage.
"S'il n'y a pas de solution, c'est qu'il n'y a pas de problème." Les Shadoks, J. Rouxel

pierrot10
Posts: 106
Joined: Mon Dec 15, 2014 3:17 pm

Re: Comment envoyer des données via WWAN0 au lieu de WLAN0

Wed Apr 01, 2020 8:07 pm

Hello
Non alors il faut pas se soucier de LoRa.
Il y a une passerlle LoRa et des Noeuds. Les noeuds envoient les donneés à la passerelle qui elle les transmet au serveur TTN.
Dans ma problématique, elle se trouve juste au niveau de la passerlele qui se trouve sur le Raspberry. TTN est juste un serveur qui recoit les données, mais je pense que tu l'avais compris.

Il doit avoir une connection célullaire de mon Raspberry, et ca ca marche car je peux pinger et ifconfig WWAN0 me retourne une adresse IP fournit par swisscom, Je peux pinguer un serveur distant.

Il me semble que ma passerelle ne sait pas qu'elle interface utiliser, ou elle ne sait qu'utiliser l'interface WLAN.

Code: Select all

il faut configurer les routes nécessaires pour passer de 10.111.11.209
Donc il faudrait configurer les routes pour passer par WWAN0? Mais comment faire ceci?

pierrot10
Posts: 106
Joined: Mon Dec 15, 2014 3:17 pm

Re: Comment envoyer des données via WWAN0 au lieu de WLAN0

Wed Apr 01, 2020 8:16 pm

Je viens de voir ceci (je ne connais pas trop les routages

Code: Select all

route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    202    0        0 eth0
0.0.0.0         12.234.78.17    0.0.0.0         UG    203    0        0 wwan0
12.234.78.0     0.0.0.0         255.255.255.224 U     203    0        0 wwan0
169.254.0.0     0.0.0.0         255.255.0.0     U     203    0        0 wwan0
192.168.1.0     0.0.0.0         255.255.255.0   U     202    0        0 eth0
(J'ai modifié les deux premier bloque mon IP wwan0)

Est-ce normal d'avoir plusieurs wwan0?

Code: Select all

ip route
default via 192.168.1.1 dev eth0 proto dhcp src 192.168.1.107 metric 202 
default via 12.234.78.17 dev wwan0 proto dhcp src 10.203.78.16 metric 203 mtu 1500 
12.234.78.0/27 dev wwan0 proto dhcp scope link src 10.203.78.16 metric 203 mtu 1500 
169.254.0.0/16 dev wwan0 scope link src 169.254.212.149 metric 203 
192.168.1.0/24 dev eth0 proto dhcp scope link src 192.168.1.107 metric 202
PS, j'ai connecté mon cable ethernet pour acceder mon Raspberry avce mon laptop, mon WiFi étant désactiver

epoch1970
Posts: 5022
Joined: Thu May 05, 2016 9:33 am
Location: Paris, France

Re: Comment envoyer des données via WWAN0 au lieu de WLAN0

Wed Apr 01, 2020 10:25 pm

Bravo
pierrot10 wrote:
Wed Apr 01, 2020 8:16 pm

Code: Select all

ip route
default via 192.168.1.1 dev eth0 proto dhcp src 192.168.1.107 metric 202 
default via 12.234.78.17 dev wwan0 proto dhcp src 10.203.78.16 metric 203 mtu 1500 
12.234.78.0/27 dev wwan0 proto dhcp scope link src 10.203.78.16 metric 203 mtu 1500 
192.168.1.0/24 dev eth0 proto dhcp scope link src 192.168.1.107 metric 202
Donc, ethernet a la priorité (202) sur wwan0 (203). Les routes sont installées par dhcpcd on dirait (un client DHCP en tout cas.) Tout est bon.

Si le wifi était activé, il aurait la priorité 303 et wwan0 passerait à 204 (ou 304 et 203)
Donc le wifi n'a jamais eu la priorité sur le wwan dans cette machine. Ethernet a la priorité dessus.

Pour être sûr d'utiliser le lien wwan, il faut débrancher le lien ethernet. Ou alors donner la métrique 210, par ex., à eth0.
Internet devrait être accessible depuis la machine, via wwan0. Depuis la console, un ping vers 8.8.8.8 (par ex.) devrait marcher.

La question qui reste est l'accès à TTN. Mais d'après ce que je vois ici, la machine est bien sur internet (via 12.234.78.17, réseau AT&T on dirait), no problemo.
"S'il n'y a pas de solution, c'est qu'il n'y a pas de problème." Les Shadoks, J. Rouxel

pierrot10
Posts: 106
Joined: Mon Dec 15, 2014 3:17 pm

Re: Comment envoyer des données via WWAN0 au lieu de WLAN0

Thu Apr 02, 2020 10:56 am

Hello Merci pour ta réponse.
Je ne peux malheureusement plus esser car hier j'ai tenter d'installer RaspAP et vu que le sfot de la passerelle a aussi installer un lighthttpd, RaspAP a tout écraser :D :D . Quoi, il y a un conflit, et bref je dois tout reinstaller pour avoir un truc de propre :D

Une fois l'erreur faire, je me suis BEN OUI!! :D :D
Je me suis aussi rendu compte qu'il me fallait un hotspaot, particulierement pour acceder à ma gateway, soit à mon Raspberry, quand la passerelle est dans la nature.
Ne connaissant non pluspas beaucoup RaspAP, il va falloir que je creusement pour une installation personnalisé, soit dans un autre dossier, comme par xemeple /car/www/raspap, sans que ca touche /www/var/html

Je vais vite réinstaller tout cela, car c'est aussi important pour moi de résoudre la problématique que l'on discute, sans hotspot.

Pourrais tu juste me dire, en attendant, comment je donne un métrix, ou un priorité de routage?
J'avais aussi vu hier une commande pour effacer le routage par défaut, mais je n'ai plus cette page. Je crois que c'était un truc du genre

Code: Select all

sudo route delete  default eth0
Pout TTN, je ne me fais pas de soucis, quand la passerelle qui est sur mon raspberry, saura communiqué via wwan0, elle sera vue par TTN.

merci pour ton suivi
Last edited by pierrot10 on Thu Apr 02, 2020 12:05 pm, edited 1 time in total.

epoch1970
Posts: 5022
Joined: Thu May 05, 2016 9:33 am
Location: Paris, France

Re: Comment envoyer des données via WWAN0 au lieu de WLAN0

Thu Apr 02, 2020 12:02 pm

Si c'est l'ami dhcpcd qui s'occupe de tout (comme sur Raspbian en standard),
alors une ligne comme ça dans /etc/dhcpcd.conf devrait modifier la priorité pour l'interface wwan0 :

Code: Select all


interface wwan0
# Max. priority for wwan0
metric 0

Il faut laisser une ligne vide avant "interface", et après la dernière option spécifique à cette interface. Comme ça dhcpcd comprend que le bloc de lignes s'applique uniquement à l'interface en question.
Il faudrait rajouter ce bloc plutôt en fin de fichier, comme ça toutes les options globales spécifiées plus haut dans le fichier sont aussi appliquées à l'interface.

Si le réseau est géré par un autre package que dhcpcd, ça sera une autre syntaxe...

Bricoler les routes à la main est bien sûr possible. Par un script perso c'est un peu plus délicat, car s'il déraille, la machine ne communique plus.
Donc l'idéal c'est de laisser dhcpcd faire la configuration automatique d'après le serveur DHCP, il fait assez bien les choses. Il permet aussi d'exécuter un "scriptlet" perso, nommé /etc/dhcpcd.exit-hook. Le script est lancé automatiquement lorsqu'une interface est configurée/déconfigurée.
(un peu de lecture sur ArchWiki)

Ceci dit, voici un très bon résumé de l'utilisation de la commande "ip", dont ip route.
"route" et "ifconfig" deviennent obsolètes, autant connaître "ip" leur remplaçant
"S'il n'y a pas de solution, c'est qu'il n'y a pas de problème." Les Shadoks, J. Rouxel

pierrot10
Posts: 106
Joined: Mon Dec 15, 2014 3:17 pm

Re: Comment envoyer des données via WWAN0 au lieu de WLAN0

Thu Apr 02, 2020 2:22 pm

Hello
malheruesement ca ne fonctionne pas.
J'ai refais toute mon installation et en bas du fichier /etc/dhcpcd.conf, j'ai ajouté

Code: Select all

interface wwan0
# Max. priority for wwan0
metric 0
La passerelle esr toujours pas vue par TTN alors qu'elle est quand on passe par WLAN0.
Actuellement, ni le WiFi, ni le cable Ethernet est connecté et quand je fais route, il n'affiche que wwan0.

Je suis sûre que je dois trouver une solution pour "dire" que tout doit passer par wwan0, et il me semble que la passerelle https://uk.pi-supply.com/products/iot-l ... pi?lang=fr ne comprend pas ca :oops:

epoch1970
Posts: 5022
Joined: Thu May 05, 2016 9:33 am
Location: Paris, France

Re: Comment envoyer des données via WWAN0 au lieu de WLAN0

Thu Apr 02, 2020 4:01 pm

Que renvoie "ip route" ?
"S'il n'y a pas de solution, c'est qu'il n'y a pas de problème." Les Shadoks, J. Rouxel

pierrot10
Posts: 106
Joined: Mon Dec 15, 2014 3:17 pm

Re: Comment envoyer des données via WWAN0 au lieu de WLAN0

Thu Apr 02, 2020 4:49 pm

Hello
Ip route revoi ceci

Code: Select all

ip route
default via 192.168.1.1 dev eth0 proto dhcp src 192.168.1.107 metric 202 
169.254.0.0/16 dev wwan0 scope link src 169.254.88.71 
192.168.1.0/24 dev eth0 proto dhcp scope link src 192.168.1.107 metric 202 
 
Note, que je viens de reconnecter mon cable ethernet sur mon routeur de la maison pour acceder à mon Raspberry avec mon laptop

192.168.1.1 est la passerelle de mon appartement

Je en comprends pas ce qu'est le 169.254.xxx.xxx, n'est pas une adresse qui est attribué par défaut? en tout cas, ca ne vient pas de mon routeur ni de mon fournissuer cellulaire. L'adresse IP de mon fournissuer comment par 10.164.8x.xxx
wwan0: flags=4291<UP,BROADCAST,RUNNING,NOARP,MULTICAST> mtu 1500
inet 10.164.8x.xxx netmask 255.255.255.240 broadcast 10.164.8x.xx7
inet6 fe80::3e2a:21e9:c9bc:3d14 prefixlen 64 scopeid 0x20<link>
ether 06:80:34:96:21:5b txqueuelen 1000 (Ethernet)
RX packets 31 bytes 2789 (2.7 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 115 bytes 18052 (17.6 KiB)
TX errors 0 dropped 10 overruns 0 carrier 0 collisions 0
Dans le route, on devrait pas voir, pour wan, une adrese cohérente avec 10.164.yyy.yy?

Par contre, si je fais

Code: Select all

route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.164.8x.200   0.0.0.0         UG    0      0        0 wwan0
0.0.0.0         192.168.1.1     0.0.0.0         UG    202    0        0 eth0
10.164.8x.xxx   0.0.0.0         255.255.255.240 U     0      0        0 wwan0
169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 wwan0
192.168.1.0     0.0.0.0         255.255.255.0   U     202    0        0 eth0
On voir la Gateway du fournissuer. Mais est-ce que ceci est normal?
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 wwan0
Je préfere demander avant, mais ceci ne pourrait pas aider

Code: Select all

ip route add default dev wwan0
si la syntaxe est correct?

pierrot10
Posts: 106
Joined: Mon Dec 15, 2014 3:17 pm

Re: Comment envoyer des données via WWAN0 au lieu de WLAN0

Fri Apr 03, 2020 3:33 pm

J'observe aussi un truc de marrant.

Quand je plug mon câble ethernet et je redémarra mon Raspberry, la passerelle est vue par TTN, je pense via eth0. Le WiFI n'est pas vonfigurer.
Si je retire mon câble Ethernet, il transmet toujours et ca ne peut etre que vis wwan0.

Si à ce stade, je redémmare mon Raspberry et je laisse mon câble Ethernet débranchl, il ne transmet plus au démarrage, même si je rebranche mon câble Etnernet.

Dans l'état actuelle, si je veux qu'il transmette via wwan0, je dois brancher mon cable Ethernet, le redémarrer, puis retirer mon câble Ethernet. Après avoir fait ceci, la paserelle est vue tous le env. 15sec par TTN. (Funny)

epoch1970
Posts: 5022
Joined: Thu May 05, 2016 9:33 am
Location: Paris, France

Re: Comment envoyer des données via WWAN0 au lieu de WLAN0

Fri Apr 03, 2020 4:15 pm

"route -n" et "ip route" sont équivalents. Les 2 résultats n'etaient pas au même moment.

169.254.x.x c'est une adresse zeroconf qui est donnée lorsque DHCP a échoué. Zeroconf ne marche que pour le réseau local, pas pour aller sur internet. Une fois que DHCP a délivré une IP, l'adresse zeroconf est supprimée.

Je ne sais pas ce qui pourrait rendre wwan de la présence du cable ethernet au démarrage ??
"S'il n'y a pas de solution, c'est qu'il n'y a pas de problème." Les Shadoks, J. Rouxel

Return to “Français”