Yoctopuce et les réseaux non routés

Yoctopuce et les réseaux non routés

On a l'habitude de voir les connexions IP comme un moyen d'accéder à Internet, mais en fait il est parfaitement possible de construire des réseaux qui n'ont pas de connectivité vers l'extérieur. On appelle ça des réseaux non routés. Ils ont leur utilité, mais ils introduisent aussi quelques difficultés. Cette semaine, on vous explique comment utiliser des modules Yoctopuce dans un réseau non routé.



Vous pourriez avoir diverses raisons de vouloir construire un réseau non routé, par exemple:

  • Vous avez à faire une démonstration d'équipements en réseau à un endroit où il n'y a tout simplement pas de réseau.
  • Le réseau mis à votre disposition ne vous inspire pas trop confiance.
  • Vous voulez vous affranchir de la longueur maximale d'un câble USB en utilisant des YoctoHub-Ethernet.


Le hardware

La construction du réseau hardware est tout à fait triviale. En plus de l'ordinateur de contrôle et des YoctoHub-Ethernet, vous aurez besoin d'un switch Ethernet et de câbles UTP. Vous trouverez ce genre d'équipement pour une somme modique dans n'importe quel magasin avec un rayon informatique décent. On vous suggère de choisir un switch avec des ports PoE, ainsi vous n'aurez pas besoin d'alimenter explicitement chaque YoctoHub-Ethernet: l'alimentation se fera par le câble réseau. Connectez tout votre petit monde au switch Ethernet et c'est prêt. Si vous souhaitez utiliser des YoctoHub-Wireless-g, il vous faudra ajouter un point d'accès WiFi que vous connecterez au switch. Certains points d'accès WiFi peuvent aussi être alimentés par PoE.

Réseau non routé, l'utilisation d'un switch PoE vous simplifiera la vie
Réseau non routé, l'utilisation d'un switch PoE vous simplifiera la vie



Maintenant il s'agit d'affecter une adresse IP à chaque nœud. D'habitude ce genre cette tache est effectuée discrètement par le routeur DSL, mais dans ce cas de réseau non-routé vous allez devoir vous en occuper vous-même..

Affectation des adresses IP

Dans un réseau IP, chaque nœud doit impérativement avoir une adresse IP différente. Lorsque deux machines ont la même adresse IP sur le même de réseau, cela peut avoir des conséquences complètement imprévisibles, voire franchement néfastes. Il y a plusieurs manières d'attribuer ces adresses.

Adresses IP statiques

Dans ce cas, vous définissez vous-même l'adresse IP de chaque nœud, c'est la méthode la plus fastidieuse: vous devez configurer chaque nœud manuellement et si vous changez d'avis plus tard vous devez avoir un accès physique au nœud pour reconfigurer son adresse. Sous Windows 10, trouver l'interface pour configurer l'adresse IP d'une machine tient un peu du jeu de piste, il faut passer par :
Menu démarrer / Paramètres Windows / Réseau et internet / Modifier les options de l'adaptateur / Ethernet / Propriétés / Internet Protocol Version 4 / Propriétés

Configuration d'une adresse IP statique  192.168.99.1 sous Windows
Configuration d'une adresse IP statique 192.168.99.1 sous Windows


Sur un YoctoHub-Ethernet, c'est un peu plus simple, le réglage est accessible directement depuis la configuration du module.

Configuration d'une adresse IP statique  192.168.99.2 d'un YoctoHub. Pour un réseau non routé, laissez le champ router vide
Configuration d'une adresse IP statique 192.168.99.2 d'un YoctoHub. Pour un réseau non routé, laissez le champ router vide



Adresses DHCP dynamiques

Dans ce cas, plutôt que de définir manuellement une adresse IP dans chaque nœud, vous pouvez configurer chaque nœud pour que son adresse IP soit automatiquement affectée par un serveur, qu'on appelle un serveur DHCP. Sous Windows, vous pouvez par exemple installer ce serveur DHCP gratuit sur votre machine de contrôle. Il vous suffit de configurer chaque nœud une bonne fois pour toutes pour qu'il utilise votre serveur DHCP, et tout le reste suivra. Notez que les YoctoHubs sont livrés pré-configurés pour utiliser un serveur DHCP.

Configuration du serveur DHCP
Configuration du serveur DHCP



Le problème avec cette méthode, c'est que vous ne savez pas trop quelle adresse va être attribuée à quel nœud, et surtout vous ne pouvez pas être sûr à 100% que le serveur affectera les mêmes adresses aux mêmes nœuds lors du prochain démarrage. Mais il y a une parade.

Adresses DHCP Statiques

La plupart des serveurs DHCP permettent de prédéfinir quelle adresse sera attribuée à quel client en fonction de son adresse MAC, c'est ce qu'on appelle une réservation. Et l'adresse MAC de chaque équipement réseau est censée être unique au monde. Une fois que vous connaissez l'adresse MAC de votre nœud, il suffit de faire la réservation correspondante dans la configuration du serveur. Notez que l'adresse MAC des YoctoHubs est affichée directement dans leur interface. Dans le cas du serveur DHCP donné en exemple, pour affecter l'adresse IP 192.168.99.2 au nœud ayant l'adresse MAC 00:04:A3:BD:4F:EB, il vous suffit d'ajouter la section suivante dans le fichier config.ini du serveur DHCP.

[00:04:A3:BD:4F:EB] IPADDR=192.168.99.2


Cette méthode est celle que l'on vous recommande car elle permet d'attribuer des adresses IP de manière prévisible, tout en centralisant la configuration du système. Attention, une fois que vous aurez changé la réservation d'une adresse, vous devrez faire redémarrer le nœud correspondant pour qu'il en tienne compte.

Pour finir avec l'attribution d'adresses IP par DHCP, voici quelques conseils que vous serez bien avisés de suivre:

  • Si vous voulez éviter les problèmes de poule et d'œuf, on vous recommande d'affecter une adresse purement statique à la machine qui sert de serveur DHCP.
  • Choisissez de préférence une plage d'adresses non conventionnelle, comme 192.168.99.x plutôt que 192.168.0.x ou 192.168.1.x
  • Ne faites pas de test de serveur DHCP sur votre réseau de production où il y probablement déjà un serveur DHCP. Dites-vous bien que si deux machines obtiennent la même adresse IP en même temps, vous serez instantanément téléporté en enfer.


Serveur de temps

De nombreuses machines réseau comptent sur Internet pour connaître l'heure exacte: elles se connectent à intervalle régulier à un serveur de temps pour synchroniser leur horloge interne. C'est le cas des YoctoHub-Ethernet. Ils ont besoin de connaître l'heure pour, entre autres, régler l'horloge des modules Yoctopuce qui leur sont connectés, c'est important si vous comptez utiliser les dataloggers des senseurs Yoctopuce et obtenir un horodatage correct. Une des premières choses que va donc faire un YoctoHub-Ethernet au démarrage, c'est de contacter un serveur NTP (Network Time Protocol). Il y a des serveurs NTP plein Internet, mais sans connectivité vers l'extérieur, ils ne sont d'aucune utilité.

Windows propose un serveur NTP en standard, cependant pour des raisons qu'on ignore il sert par défaut des paquets NTP avec le champ Stratum à zéro, ce qui est interprété comme un message "kiss-o'-death" par les clients. Tout client NTP qui reçoit ce message "kiss-o'-death" de la part d'un serveur est prié de ne plus re-contacter le-dit serveur (RFC 4330, section 8). La gestion du "kiss-o'-death" étant implémentée dans les YoctoHubs, ils ne marchent pas trop bien avec le serveur de Microsoft. La manière la plus simple de régler le problème est probablement d'installer un autre server NTP, comme celui-ci, il est gratuit et son installation est toute simple: il suffit de faire next..next..next.

Une fois votre serveur NTP en place, il vous faudra configurer vos YoctoHub-Ethernet pour qu'ils utilisent votre serveur. Notez que vous n'avez pas forcement besoin de vous connecter sur l'interface du YoctoHub pour le faire: vous pouvez utiliser l'API en ligne de commande. Imaginez que l'adresse IP du YoctoHub soit 192.168.99.2 et que l'adresse du serveur NTP soit 192.168.99.1, il vous suffit alors de taper la commande suivante:

C:\>YNetwork -s -r 192.168.99.2 set_ntpServer 192.168.99.1


si vous avez besoin de remettre le serveur NTP par défaut, utilisez simplement

C:\>YNetwork -s -r 192.168.99.2 set_ntpServer ""



Watchdog réseau

Pour conclure, un dernier conseil: Tous les modules réseau Yoctopuce disposent d'un réglage qui leur permet de redémarrer automatiquement en cas de perte de connectivité réseau prolongée. Cette connectivité est testée en vérifiant le callback HTTP, s'il est défini, et le serveur NTP dans le cas contraire. Si vous avez décidé de ne pas utiliser de serveur NTP sur votre réseau non-routé, vérifiez que ce réglage est bien désactivé.


Commenter aucun commentaire Retour au blog












Yoctopuce, get your stuff connected.