Cette semaine, nous allons voir comment utiliser VirtualHub 2.0 et les librairies 2.0 dans une infrastructure réseau qui fonctionnent en IPv6.
IPv6 est une nouvelle version du système d'adressage d'Internet, conçu pour gérer la croissance du nombre d'appareils connectés. Il offre un espace d'adresses beaucoup plus vaste que son prédécesseur, IPv4, permettant ainsi à plus d'appareils de se connecter et de communiquer sur Internet.
La plupart des utilisateurs n'utilisent pas directement IPv6, car leur réseau local fonctionne en IPv4. Les fournisseurs de services Internet s'occupent de faire la passerelle entre le réseau local en IPv4 et le backbone Internet qui fonctionne en IPv6.
Mais, dans certains cas, il peut être nécessaire d'utiliser nos outils dans un réseau IPv6. C'est pour cette raison que les versions 2.0 de VirtualHub et des librairies supportent IPv6.
Les URL IPv6
Contrairement aux anciennes adresses IPv4, qui étaient sous forme de quatre groupes de chiffres séparés par des points (par exemple, 192.168.0.1), les adresses IPv6 sont plus longues et ont un format différent. Lorsqu'elles sont utilisées dans les navigateurs Web, les adresses IPv6 sont généralement incluses dans les URL de la manière suivante :
http://[2001:0db8:85a3:0000:0000:8a2e:0370:7334]:4444/
Le format d'une adresse IPv6 dans une URL commence par "http://" ou "https://", suivi de "[", l'adresse IPv6 proprement dite, puis de "]", suivi de ":" et du numéro de port (dans ce cas, le port 4444). L'adresse IPv6 est une chaîne hexadécimale de huit groupes de quatre chiffres, séparés par des deux-points. Chaque groupe peut avoir des zéros non significatifs supprimés, ce qui permet de simplifier l'adresse tout en laissant son sens intact.
En résumé, les URL IPv6 dans les navigateurs Web suivent un format spécifique avec des crochets entourant l'adresse IPv6, suivi du numéro de port pour indiquer le service auquel se connecter.
VirtualHub
Par défaut, VirtualHub 2.0 fonctionne uniquement en IPv4 et donc ne répondra pas aux requêtes venant des interfaces IPv6. Si l'on veut utiliser IPv6, il faut lancer VirtualHub avec l'une des deux options suivantes: --enable_ipv6 ou --only_ipv6.
L'option --enable_ipv6 active la pile réseau IPv6 mais garde la pile IPv4 activée. C'est-à-dire que VirtualHub utilisera les interfaces réseau IPv6 et IPv4. L'option --only_ipv6 quant à elle utilisera uniquement les interfaces réseau IPv6.
Par exemple, si on lance VirtualHub 2.0 sur la machine Windows qui a l'adresse IP fe80::471b:5e9a:dfd3:8c70 avec l'option --only_ipv6
C:\tmp>VirtualHub.exe --only_ipv6 [2023-11-01 09:42:30] (01) Yoctopuce VirtualHub 2.0.56201 Beta (dated Aug 21 2023) [2023-11-01 09:42:30] (01) Serial is VIRTHUB2-ee2b373b74 [2023-11-01 09:42:30] (01) Use zone B [2023-11-01 09:42:30] (01) 08:42:30 Use DHCP [2023-11-01 09:42:30] (01) Restore network from .dat file [2023-11-01 09:42:30] (01) NetworkName is DESKTOP-NN7UMR4 [2023-11-01 09:42:30] (01) LogicalName is not set [2023-11-01 09:42:30] (02) Listening port 4444 (IPv6 / non secure) [2023-11-01 09:42:30] (02) Listening port 4443 (IPv6 / secure) [2023-11-01 09:42:30] (02) Port mapper server is listening port 111
Il ne sera joignable qu'avec l'URL http://[fe80::471b:5e9a:dfd3:8c70]:4444/
VirtualHub est accesible avec l'URL http://[fe80::471b:5e9a:dfd3:8c70]:4444/webapp.html
Les librairies 2.0
Les librairies 2.0 ainsi que l'API en ligne de commande supportent IPv6. Pour se connecter a VirtualHub en utilisant IPv6, il faut simplement utiliser une URL au format IPv6 lors de l'appel à RegisterHub.
if (YAPI.RegisterHub("ws://[fe80::471b:5e9a:dfd3:8c70]:4444", ref errsmg) != YAPI.SUCCESS){
MessageBox.Show("RegisterHub error:" + errsmg)
}
Notez que comme en IPv4 il est possible d’omettre le protocole et le numéro de port si l'on utilise le port par défaut:
if (YAPI.RegisterHub("[fe80::471b:5e9a:dfd3:8c70]", ref errsmg) != YAPI.SUCCESS){
MessageBox.Show("RegisterHub error:" + errsmg)
}
Évidemment, si on utilise le hostname au lieu de l'adresse IP le code fonctionne toujours. L'OS s'occupe de trouver l’adresse IP correspondante et l'API se connectera sur la bonne interface.
if (YAPI.RegisterHub("mycomputer.exeample.com", ref errsmg) != YAPI.SUCCESS){
MessageBox.Show("RegisterHub error:" + errsmg)
}
Conclusion
Il est possible d'utiliser VirtualHub ainsi que les API Yoctopuce dans une infrastructure réseau IPv6 si l'on utilise les versions 2.0 de ces outils.