Partage via


Réseaux IoT Edge pour Linux sur Windows

S’applique à :Coche IoT Edge 1.4 IoT Edge 1.4

Important

IoT Edge 1.5 LTS et IoT Edge 1.4 sont des versions prises en charge. IoT Edge 1.4 LTS sera en fin de vie le 12 novembre 2024. Si vous utilisez une version antérieure, consultez l’article Mettre à jour IoT Edge.

Cet article fournit des informations sur la configuration des réseaux entre le système d’exploitation hôte Windows et la machine virtuelle IoT Edge pour Linux sur Windows (EFLOW). EFLOW utilise une machine virtuelle Linux CBL-Mariner pour exécuter des modules IoT Edge. Pour plus d’informations sur l’architecture EFLOW, consultez Qu’est-ce qu’Azure IoT Edge pour Linux sur Windows.

Mise en réseau

Pour établir un canal de communication entre le système d’exploitation hôte Windows et la machine virtuelle EFLOW, nous utilisons la pile réseau Hyper-V. Pour plus d’informations sur les réseaux Hyper-V, consultez Principes de base des réseaux Hyper-V. Les réseaux de base dans EFLOW sont simples ; ils utilisent deux composants : un commutateur virtuel et un réseau virtuel.

Le moyen le plus simple d’établir un réseau de base sur des références SKU de client Windows consiste à utiliser le commutateur par défaut déjà créé par la fonctionnalité Hyper-V. Pendant le déploiement EFLOW, si aucun commutateur virtuel spécifique n’est spécifié à l’aide des indicateurs -vSwitchName et -vSwitchType, la machine virtuelle est créée à l’aide du commutateur par défaut.

Sur les appareils de référence SKU Windows Server, les réseaux sont un peu plus complexes, car il n’existe aucun commutateur par défaut disponible. Toutefois, il existe un guide complet sur la création de commutateur virtuel Azure IoT Edge pour Linux sur Windows.

Pour gérer différents types de réseaux, vous pouvez utiliser différents types de commutateurs virtuels et ajouter plusieurs cartes réseau virtuelles.

Choix de commutateur virtuel

EFLOW prend en charge deux types de commutateurs virtuels Hyper-V : internes et externes. Vous choisirez le commutateur de chaque type souhaité lors de sa création avant le déploiement EFLOW. Vous pouvez utiliser le Gestionnaire Hyper-V ou le module Hyper-V pour Windows PowerShell afin de créer et de gérer des commutateurs virtuels. Pour plus d’informations sur la création d’un commutateur virtuel, consultez Créer un commutateur virtuel pour les machines virtuelles Hyper-V.

Vous pouvez apporter des modifications à un commutateur virtuel une fois que vous l’avez créé. Par exemple, il est possible de remplacer un commutateur existant par un autre type de commutateur, mais cela peut affecter les fonctionnalités réseau de la machine virtuelle EFLOW connectée à ce commutateur. Par conséquent, il n’est pas recommandé de modifier la configuration du commutateur virtuel, sauf si vous avez commis une erreur ou que vous avez besoin de tester quelque chose.

Selon que la machine virtuelle EFLOW est déployée dans un appareil de référence SKU client Windows ou SKU Windows Server, nous prenons en charge différents types de commutateurs, comme indiqué dans le tableau suivant.

Type de commutateur virtuel Références SKU de client Windows Références SKU Windows Server
Externe Externe sur le client Externe sur le serveur
Interne - Interne sur le serveur
Commutateur par défaut Par défaut sur le client -
  • Commutateur virtuel externe : se connecte à un réseau câblé physique par le biais d’une liaison à une carte réseau physique. Il permet aux machines virtuelles d’accéder à un réseau physique pour communiquer avec des appareils sur un réseau externe. En outre, il permet aux machines virtuelles sur le même serveur Hyper-V de communiquer.

  • Commutateur virtuel interne : se connecte à un réseau qui peut être utilisé uniquement par les machines virtuelles s’exécutant sur l’hôte où se trouve le commutateur virtuel, et entre l’hôte et les machines virtuelles.

    Remarque

    Le commutateur par défaut est un commutateur virtuel interne particulier créé par défaut une fois qu’Hyper-V est activé dans des références SKU de client Windows. Le commutateur virtuel dispose déjà d’un serveur DHCP pour les affectations IP, du partage de connexion Internet (ICS) activé et d’une table NAT. Dans le cadre d’EFLOW, le commutateur par défaut est un commutateur interne virtuel qui peut être utilisé sans configuration supplémentaire.

Allocations d’adresses IP

Pour autoriser les communications IP réseau des machines virtuelles EFLOW, une adresse IP doit être affectée à la machine virtuelle. Cette adresse IP peut être configurée par deux méthodes différentes : adresse IP statique ou DHCP.

Selon le type de commutateur virtuel utilisé, la machine virtuelle EFLOW prend en charge différentes allocations d’adresses IP, comme indiqué dans le tableau suivant.

Type de commutateur virtuel Adresse IP statique DHCP
Externe Externe avec une adresse IP statique Externe avec DHCP
Interne Interne avec une adresse IP statique Interne avec DHCP
Commutateur par défaut - Par défaut avec DHCP
  • Adresse IP statique : cette adresse IP est affectée définitivement à la machine virtuelle EFLOW pendant l’installation ; elle ne change pas entre les redémarrages de l’hôte Windows ou de la machine virtuelle EFLOW. Les adresses IP statiques ont généralement deux versions : IPv4 et IPv6. Toutefois, EFLOW prend uniquement en charge l’adresse IP statique pour les adresses IPv4. Sur les réseaux utilisant une adresse IP statique, chaque appareil sur le réseau a son adresse sans chevauchement. Pendant l’installation d’EFLOW, vous devez entrer l’adresse IP4 de la machine virtuelle EFLOW(-ip4Address), la longueur du préfixe IP4(-ip4PrefixLength) et l’adresse IP4 de passerelle par défaut(-ip4GatewayAddress). Pour que la configuration soit correcte, les trois paramètres doivent être entrés.

    Par exemple, si vous souhaitez déployer la machine virtuelle EFLOW à l’aide d’un commutateur virtuel externe nommé ExternalEflow avec une adresse IP statique 192.168.0.100, une passerelle par défaut 192.168.0.1 et une longueur de préfixe de 24, la commande de déploiement suivante est nécessaire :

    Deploy-Eflow -vSwitchName "ExternalEflow" -vswitchType "External" -ip4Address 192.168.0.100 -ip4GatewayAddress 192.168.0.1 -ip4PrefixLength 24
    

    Avertissement

    Lorsque vous utilisez une adresse IP statique, les trois paramètres (ip4Address, ip4GatewayAddres, ip4PrefixLength) doivent être utilisés. En outre, si l’adresse IP n’est pas valide ou est utilisée par un autre appareil sur le réseau, ou si l’adresse de la passerelle est incorrecte, l’installation d’EFLOW peut échouer, car la machine virtuelle EFLOW ne peut pas obtenir d’adresse IP.

  • DHCP : contrairement aux adresses IP statiques, lorsque vous utilisez DHCP une adresse IP dynamique (qui peut changer) est affectée à la machine virtuelle EFLOW. Le réseau doit avoir un serveur DHCP configuré et opérationnel pour affecter des adresses IP dynamiques. Le serveur DHCP affecte une adresse IP vacante à la machine virtuelle EFLOW et à d’autres machines connectées au réseau. Par conséquent, lors du déploiement d’EFLOW à l’aide de DHCP, aucune adresse IP, adresse de passerelle ou longueur de préfixe n’est nécessaire, car le serveur DHCP fournit toutes les informations.

    Avertissement

    Lors du déploiement d’EFLOW à l’aide de DHCP, un serveur DHCP doit être présent dans le réseau connecté au commutateur virtuel de machine virtuelle EFLOW. Si aucun serveur DHCP n’est présent, l’installation d’EFLOW échoue, car la machine virtuelle ne peut pas obtenir d’adresse IP.

DNS

Le système DNS (Domain Name System) convertit les noms de domaine lisibles par l’homme (par exemple www.microsoft.com) en adresses IP lisibles par ordinateur (par exemple 192.0.2.44). La machine virtuelle EFLOW utilise systemd (gestionnaire de service et système) ; ainsi, les services DNS ou de résolution de noms sont fournis aux applications et services locaux par le biais du service systemd-resolved.

Par défaut, le fichier de configuration DNS de la machine virtuelle EFLOW contient le stub local 127.0.0.53 comme seul serveur DNS. Ceci est redirigé vers le fichier /etc/resolv.conf, qui est utilisé pour ajouter les serveurs de noms utilisés par le système. Le stub local est un serveur DNS qui s’exécute localement pour résoudre les requêtes DNS. Dans certains cas, ces requêtes sont transférées à un autre serveur DNS du réseau, puis mises en cache localement.

Il est possible de configurer la machine virtuelle EFLOW de façon à utiliser un serveur DNS spécifique ou une liste de serveurs. Pour ce faire, vous pouvez utiliser l’applet de commande PowerShell Set-EflowVmDnsServers. Pour plus d’informations sur la configuration DNS, consultez Fonctions PowerShell pour IoT Edge pour Linux sur Windows.

Pour vérifier les serveurs DNS affectés à la machine virtuelle EFLOW, à partir de la machine virtuelle EFLOW, utilisez la commande suivante : resolvectl status. La sortie de la commande affiche une liste de serveurs DNS configurés pour chaque interface. En particulier, il est important de vérifier l’état de l’interface eth0 qui est l’interface par défaut pour la communication de machine virtuelle EFLOW. Veillez également à vérifier les adresses IP des champs Serveur DNS actuel et Serveurs DNS de la liste. S’il n’y a aucune adresse IP ou si l’adresse IP n’est pas une adresse IP de serveur DNS valide, le service DNS ne fonctionnera pas.

Capture d’écran de la console montrant un exemple de sortie de la commande resolvectl.

Adresse MAC statique

Hyper-V vous permet de créer des machines virtuelles avec une adresse MAC statique ou dynamique. Lors de la création d’une machine virtuelle EFLOW, l’adresse MAC est générée de manière aléatoire et stockée localement, afin de conserver la même adresse MAC entre les redémarrages de l’hôte Windows ou de la machine virtuelle. Pour interroger l’adresse MAC de la machine virtuelle EFLOW, vous pouvez utiliser la commande suivante.

Get-EflowVmAddr

Cartes d’interface réseau multiples

Il existe de nombreuses appliances virtuelles réseau et scénarios qui nécessitent plusieurs cartes réseau. La machine virtuelle EFLOW prend en charge l’attachement de plusieurs cartes réseau. Avec plusieurs cartes réseau, vous pouvez mieux gérer votre trafic réseau. Vous pouvez également isoler le trafic entre la carte réseau front-end et les cartes réseau back-end, ou séparer le trafic du plan de données de la communication du plan de gestion.

Par exemple, il existe de nombreux scénarios IoT industriels qui exigent la connexion de la machine virtuelle EFLOW à une zone démilitarisée (DMZ) et au réseau hors connexion où tous les appareils conformes OPC UA sont connectés. Il s’agit simplement de l’un des multiples scénarios qui peuvent être pris en charge en attachant plusieurs cartes réseau à la machine virtuelle EFLOW.

Pour plus d’informations sur l’utilisation de plusieurs cartes réseau, consultez Prise en charge de plusieurs cartes réseau.

Avertissement

Lors de l’utilisation de plusieurs cartes réseau EFLOW, vous souhaiterez peut-être configurer les différentes priorités de routes. Par défaut, EFLOW crée une route par défaut par interface ehtX affectée à la machine virtuelle, et affecte une priorité aléatoire. Si toutes les interfaces sont connectées à Internet, les priorités aléatoires peuvent ne pas être un problème. En revanche, si l’une des cartes réseau est connectée à un réseau hors connexion, vous souhaiterez peut-être affecter à la carte réseau en ligne une priorité supérieure à la carte réseau hors connexion afin de connecter la machine virtuelle EFLOW à Internet. Pour plus d’informations sur le routage personnalisé, consultez Routage EFLOW.

Étapes suivantes

En savoir plus sur la sécurité Azure IoT Edge pour Linux sur Windows.

Découvrez comment gérer les réseaux EFLOW : Configuration réseau pour Azure IoT Edge pour Linux sur Windows.