jeudi 31 octobre 2024

Premiers paquets UDP


Le smart télescope Celestron Origin a deux modes de connexion
Le mode « connexion directe » et le mode « réseau domestique ».

Mode Direct

Celestron a fait le choix de :

  • Ne pas utiliser l’interface Ethernet du RasberryPi. L’application installée sur une tablette connectée au réseau local par une interface USB/Ethernet refuse de se connecter à l’Origin.

  • Ne pas permettre de brancher un écran au RasberryPi, Le clavier c'est possible car les ports USB sont accessibles.

Ces choix rendent parfois l’utilisation de l’Origin compliquée et inefficace. C’est le cas de la procédure de première mise en route.

Comme l’accès à un réseau Wifi est contrôlé par un SSID (un identifiant, en général public) et une clé (secrète) et qu’il n’y a aucun moyen de les communiquer à l’Origin c’est lui qui va créer son propre réseau Wifi avec le SSID : Origin-xx Clé: 12345555 et il sera joignable sur ce réseau avec l’adresse IP 1.2.3.4
 
Dans cette situation l'anneau lumineux de l’Origin tourne dans le sens anti horaire.
 
Avec votre tablette vous avez alors deux options :
  • Vous connecter au réseau Wifi de l’Origin et l’utiliser tel quel. C’est ce que l’on est supposé faire pendant une nuit d’observation en pleine campagne, loin du réseau domestique.

  • Vous connecter au réseau Wifi de l’Origin et lui communiquer les informations concernant votre réseau domestique. Après quoi il utilisera ce réseau et les choses seront plus classiques mais toujours dépendante de la qualité de votre Wifi.

TOUT aurait était tellement plus simple et plus fiable en autorisant l’utilisation d’une connexion par câble Ethernet.

Mode réseau domestique

Quand il est en mode « réseau domestique »  l'anneau lumineux tourne dans le sens horaire.
 
En mode réseau domestique, la première chose que fait l’Origin est d’utiliser le protocole DHCP afin d’obtenir sa configuration IP. En général c’est le routeur (la box) qui répond aux requêtes DHCP et lui donne ; son IP, le masque de sous réseaux, l’adresse du routeur, l’adresse d’un ou deux résolveurs DNS
 
Puis, en simplifiant un peu, l’Origin va s’annoncer sur le réseau local en émettant régulièrement des trames UDP destinées au port 55555 de l'adresse IP 255.255.255.255.
  • Le port 55555 (0xD903) est dans l’intervalle [0xC000 - 0xFFFF] attribué aux ports à usage privé. Il ne correspond donc à aucun standard (mais 5 est un chiffre fétiche chez Celestron).
     
  • L’usage de l’adresse 255.255.255.255 est standardisée. Elle est utilisée pour effectuer un broadcast local. C’est à dire que les paquets qui ont cette adresse comme destination sont destinés à tout le monde. Pour ne pas noyer Internet avec ce type de paquets ils ne sont pas routés à l’extérieur du subnet où ils ont été émis. Dans le cas de l’Origin ces paquets contiennent le texte :
    « Identity:Origin-xxx Origin IP Address = 192.168.yyy.zzz »

Capture d'un paquet UDP broadcast - (Cliquez pour agrandir l'image)

 
Cela permet à un programme situé sur le même réseau local de guetter ces paquets UDP et ainsi de connaître le nom (Origin-xxx) et l’IP (192.168.yyy.zzz) de l’Origin. C’est ce que fait l’application qui s’exécute sur la tablette.
 
En fait les choses sont un peu plus compliquées car, en même temps qu'il broadcaste les paquets UDP décrits ci-dessus, l’Origin utilise aussi les protocoles suivants :
  • mDNS (Multicat DNS) a destination de 244.0.0.251 UDP:5353.
     
  • LLMNR (Link-local Multicast Name Resolution ) à destination de 224.0.0.252 UDP:5355.
     
  • IGMPv2/v3 (Internet Group Management Protocol) à destination de 224.0.0.251 et 224.0.0.252. Comme ICMP, IGMP ne dépend ni de UDP ni de TCP et n’a donc pas la notion de port.

- LLMNR est une alternative à mDSN. Ces deux protocoles sont un remplacement/complément décentralisé du DNS classique.
- IGMP permet de gérer la distribution d’un flux de données sur un réseau IP v4 vers plusieurs destinataires (streaming).

Mais on n’a pas besoin de rentrer dans ces détails pour le moment.

Comme il s’agit d’un trafic broadcast il est très simple de l’analyser puisqu’il est destiné à tout le monde. Il suffit d’exécuter Wireshark ou tcpdump sur une machine connectée au même réseau que l’Origin.

Quand on analysera le trafic entre la tablette et l’Origin ce sera un peu plus compliqué