Configuration de mise en réseau pour Azure IoT Edge pour Linux sur Windows
S’applique à : IoT Edge 1.4
Important
Azure IoT Edge 1.5 LTS et IoT Edge 1.4 sont des versions prises en charge. IoT Edge 1.4 LTS arrive en fin de service le 12 novembre 2024. Si vous utilisez une version antérieure, consultez l’article Mettre à jour IoT Edge.
Cet article vous aide à choisir l'option de mise en réseau la mieux adaptée à votre scénario et vous donne un aperçu des exigences de configuration de l'IoT Edge pour Linux sur Windows (EFLOW).
Pour connecter le IoT Edge pour Linux sur une machine virtuelle Windows (EFLOW) sur un réseau à votre hôte, à d’autres machines virtuelles de votre hôte Windows et à d’autres appareils/emplacements sur un réseau externe, la mise en réseau de la machine virtuelle doit être configurée en conséquence.
Le moyen le plus simple d’établir une mise en réseau de base sur les références SKU client Windows consiste à utiliser le commutateur par défaut, qui est déjà créé lors de l’activation de la fonctionnalité Windows Hyper-V. Toutefois, sur les appareils SKU serveur Windows, la mise en réseau est un peu plus compliquée, car il n’existe aucun commutateur par défaut disponible. Pour plus d’informations sur la création de commutateurs virtuels pour Windows Server, consultez Créer un commutateur virtuel pour Linux sur Windows.
Pour plus d’informations sur les concepts de mise en réseau EFLOW, consultez Mise en réseau de IoT Edge pour Linux sur Windows.
Configurer le commutateur virtuel de machine virtuelle
La première étape avant de déployer la machine virtuelle EFLOW consiste à déterminer le type de commutateur virtuel que vous utilisez. Pour plus d’informations sur les commutateurs virtuels pris en charge par EFLOW, consultez les choix de commutateur virtuel EFLOW. Une fois que vous avez déterminé le type de commutateur virtuel que vous souhaitez utiliser, veillez à créer correctement le commutateur virtuel. Pour plus d’informations sur la création de commutateurs virtuels, consultez Créer un commutateur virtuel pour les machines virtuelles Hyper-V.
Remarque
Si vous utilisez Windows client et que vous souhaitez utiliser le commutateur par défaut, aucune création de commutateur n’est nécessaire et les paramètres -vSwitchType
et -vSwitchName
non plus.
Remarque
Si vous utilisez une machine virtuelle Windows au sein de l’infrastructure VMware et du commutateur externe, consultez la virtualisation imbriquée EFLOW.
Après avoir créé le commutateur virtuel et avant de démarrer votre déploiement, assurez-vous que le nom et le type de votre commutateur virtuel sont correctement configurés et répertoriés sous le système d’exploitation hôte Windows. Pour répertorier tous les commutateurs virtuels de votre système d’exploitation hôte Windows, dans une session PowerShell avec élévation de privilèges, utilisez l’applet de commande PowerShell suivant :
Get-VmSwitch
Selon les commutateurs virtuels de l’hôte Windows, la sortie doit être similaire à ce qui suit :
Name SwitchType NetAdapterInterfaceDescription
---- ---------- ------------------------------
Default Switch Internal
IntOff Internal
EFLOW-Ext External
Pour utiliser un commutateur virtuel spécifique (interne ou externe), veillez à spécifier les paramètres corrects : -vSwitchName
et vSwitchType
. Par exemple, si vous souhaitez déployer la machine virtuelle EFLOW avec un commutateur externe nommé EFLOW-Ext, dans une session PowerShell avec élévation de privilèges, utilisez la commande suivante :
Deploy-Eflow -vSwitchType "External" -vSwitchName "EFLOW-Ext"
Configurer l’allocation d’adresses IP de machine virtuelle
La deuxième étape après avoir choisi le type de commutateur virtuel que vous utilisez consiste à déterminer le type d’allocation d’adresses IP du commutateur virtuel. Pour plus d’informations sur les options d’allocation d’adresses IP, consultez les allocations IP prises en charge par EFLOW. Selon le type de commutateur virtuel que vous utilisez, veillez à utiliser un mécanisme d’allocation d’adresses IP pris en charge.
Par défaut, si aucune adresse IP statique n’est configurée, la machine virtuelle EFLOW tente d’allouer une adresse IP au commutateur virtuel à l’aide du protocole DHCP. Assurez-vous qu’il existe un serveur DHCP sur le réseau de commutateur virtuel ; s’il n’est pas disponible, l’installation de la machine virtuelle EFLOW ne parvient pas à allouer une adresse IP et l’installation échoue. Si vous utilisez le commutateur par défaut, il n’est pas nécessaire de rechercher un serveur DHCP, car le commutateur virtuel dispose déjà du DHCP par défaut. Toutefois, si vous utilisez un commutateur virtuel interne ou externe, vous pouvez vérifier en procédant comme suit :
- Ouvrez une invite de commandes.
- Afficher toutes les configurations et informations IP
ipconfig /all
- Si vous utilisez un commutateur virtuel externe, vérifiez l’interface réseau utilisée pour créer le commutateur virtuel. Si vous utilisez un commutateur virtuel interne , recherchez simplement le nom utilisé pour le commutateur. Une fois le commutateur situé, vérifiez si
DHCP Enabled
énonce oui ou non, puis vérifiez l’adresseDHCP server
.
Si vous utilisez une adresse IP statique, vous devez spécifier trois paramètres lors du déploiement EFLOW : -ip4Address
, ip4GatewayAddress
et ip4PrefixLength
. Si un paramètre est manquant ou incorrect, l’installation de la machine virtuelle EFLOW ne parvient pas à allouer une adresse IP et l’installation échoue. Pour plus d’informations sur le déploiement de machine virtuelle EFLOW, consultez Fonctions PowerShell pour IoT Edge pour Linux sur Windows. Par exemple, si vous souhaitez déployer la machine virtuelle EFLOW avec un commutateur externe nommé EFLOW-Ext et une configuration IP statique, avec une adresse IP égale à 192.168.0.2, l’adresse IP de passerelle égale à 192.168.0.1 et la longueur du préfixe IP égale à 24, puis dans une session PowerShell avec élévation de privilèges, utilisez la commande suivante :
Deploy-Eflow -vSwitchType "External" -vSwitchName "EFLOW-Ext" -ip4Address "192.168.0.2" -ip4GatewayAddress "192.168.0.1" -ip4PrefixLength "24"
Conseil
La machine virtuelle EFLOW conserve la même adresse MAC pour le commutateur virtuel principal (utilisé pendant le déploiement) entre les redémarrages. Si vous utilisez la réservation d’adresses MAC DHCP, vous pouvez obtenir l’adresse MAC du commutateur virtuel principal à l’aide de l’applet de commande PowerShell : Get-EflowVmAddr
.
Vérifier l’allocation d’adresses IP
Il existe plusieurs façons de vérifier l’adresse IP qui a été allouée à la machine virtuelle EFLOW. Tout d’abord, à l’aide d’une session PowerShell avec élévation de privilèges, utilisez l’applet de commande EFLOW :
Get-EflowVmAddr
La sortie doit être similaire à celle-ci :
C:\> Get-EflowVmAddr
[03/31/2022 12:54:31] Querying IP and MAC addresses from virtual machine (DESKTOP-EFLOW)
- Virtual machine MAC: 00:15:5d:4e:15:2c
- Virtual machine IP : 172.27.120.111 retrieved directly from virtual machine
00:15:5d:4e:15:2c
172.27.120.111
Une autre méthode consiste à utiliser l’applet de commande Connect-Eflow
pour vous connecter à distance à la machine virtuelle, puis vous pouvez utiliser la commande bash ifconfig eth0
et vérifier l’interface eth0. La sortie doit ressembler à ce qui suit :
eth0 Link encap:Ethernet HWaddr 00:15:5d:4e:15:2c
inet addr:172.27.120.111 Bcast:172.27.127.255 Mask:255.255.240.0
inet6 addr: fe80::215:5dff:fe4e:152c/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:5636 errors:0 dropped:0 overruns:0 frame:0
TX packets:2214 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:766832 (766.8 KB) TX bytes:427274 (427.2 KB)
Configurer des serveurs DNS de machine virtuelle
Par défaut, la machine virtuelle EFLOW n’a pas de configuration DNS. Les déploiements utilisant DHCP essaient d’obtenir la configuration DNS propagée par le serveur DHCP. Si vous utilisez une adresse IP statique, le serveur DNS doit être configuré manuellement. Pour plus d’informations sur le DNS de machine virtuelle EFLOW, consultez Configuration DNS EFLOW.
Pour vérifier les serveurs DNS utilisés par l’interface par défaut (eth0), vous pouvez utiliser la commande suivante :
resolvectl | grep eth0 -A 8
La sortie doit être similaire à celle-ci. Vérifiez les adresses IP des champs « Serveurs DNS actuels » 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.
Link 2 (eth0)
Current Scopes: DNS
LLMNR setting: yes
MulticastDNS setting: no
DNSOverTLS setting: no
DNSSEC setting: no
DNSSEC supported: no
Current DNS Server: 172.27.112.1
DNS Servers: 172.27.112.1
Si vous devez configurer manuellement les adresses du serveur DNS, vous pouvez utiliser l’applet de commande PowerShell EFLOW Set-EflowVmDNSServers
. Pour plus d’informations sur la configuration DNS de machine virtuelle EFLOW, consultez Fonctions PowerShell pour IoT Edge pour Linux sur Windows.
Vérifier la résolution DNS
Il existe plusieurs façons de vérifier la résolution DNS.
Tout d’abord, à partir de l’intérieur de la machine virtuelle EFLOW, utilisez la commande resolvectl query
pour interroger une URL spécifique. Par exemple, pour vérifier si la résolution de noms fonctionne pour l’adresse microsoft.com, utilisez :
resolvectl query microsoft.com
La sortie doit ressembler à ce qui suit :
PS C:\> resolvectl query
microsoft.com: 40.112.72.205
40.113.200.201
13.77.161.179
104.215.148.63
40.76.4.15
-- Information acquired via protocol DNS in 1.9ms.
-- Data is authenticated: no
Vous pouvez également utiliser la commande dig
pour interroger une URL spécifique. Par exemple, pour vérifier si la résolution de noms fonctionne pour l’adresse microsoft.com, utilisez :
dig microsoft.com
La sortie doit ressembler à ce qui suit :
PS C:\> dig microsoft.com
; <<>> DiG 9.16.22 <<>> microsoft.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 36427
;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;microsoft.com. IN A
;; ANSWER SECTION:
microsoft.com. 0 IN A 40.112.72.205
microsoft.com. 0 IN A 40.113.200.201
microsoft.com. 0 IN A 13.77.161.179
microsoft.com. 0 IN A 104.215.148.63
microsoft.com. 0 IN A 40.76.4.15
;; Query time: 11 msec
;; SERVER: 127.0
Étapes suivantes
En savoir plus sur la sécurité Azure IoT Edge pour Linux sur Windows.
Restez à jour avec les dernières mises à jour IoT Edge pour Linux sur Windows.