Condividi tramite


Configurazione di rete per Azure IoT Edge per Linux in Windows

Si applica a:Segno di spunta IoT Edge 1.4 IoT Edge 1.4

Importante

Le versioni di IoT Edge 1.5 LTS e IoT Edge 1.4 sono supportate. IoT Edge 1.4 LTS è di fine vita il 12 novembre 2024. Se si usa una versione precedente, vedere Aggiornare IoT Edge.

Questo articolo illustra come decidere quale opzione di rete è ideale per lo scenario e fornire informazioni dettagliate sui requisiti di configurazione di IoT Edge per Linux in Windows (EFLOW).

Per connettere la macchina virtuale IoT Edge per Linux in Windows (EFLOW) tramite una rete all'host, ad altre macchine virtuali nell'host Windows e ad altri dispositivi/posizioni in una rete esterna, è necessario configurare di conseguenza la rete della macchina virtuale.

Il modo più semplice per stabilire la rete di base negli SKU del client Windows consiste nell'usare l'opzione predefinita, già creata quando si abilita la funzionalità Windows Hyper-V. Tuttavia, nei dispositivi SKU di Windows Server, la rete è un po'più complessa perché non è disponibile alcun commutatore predefinito. Per altre informazioni sulla creazione di commutatori virtuali per Windows Server, vedere Creare un commutatore virtuale per Linux in Windows.

Per altre informazioni sui concetti relativi alla rete EFLOW, vedere IoT Edge per Linux in rete Windows.

Configurare il commutatore virtuale della macchina virtuale

Il primo passaggio prima di distribuire la macchina virtuale EFLOW consiste nel determinare il tipo di commutatore virtuale usato. Per altre informazioni sui commutatori virtuali supportati da EFLOW, vedere Opzioni del commutatore virtuale EFLOW. Dopo aver determinato il tipo di commutatore virtuale da usare, assicurarsi di creare correttamente il commutatore virtuale. Per altre informazioni sulla creazione di commutatori virtuali, vedere Creare un commutatore virtuale per le macchine virtuali Hyper-V.

Nota

Se si usa il client Windows e si vuole usare l'opzione predefinita, non è necessaria alcuna creazione dell'opzione e non -vSwitchType sono necessari parametri e -vSwitchName .

Nota

Se si usa una macchina virtuale Windows all'interno dell'infrastruttura VMware e del commutatore esterno, vedere Virtualizzazione annidata EFLOW.

Dopo aver creato il commutatore virtuale e prima di avviare la distribuzione, assicurarsi che il nome e il tipo del commutatore virtuale siano configurati correttamente e siano elencati nel sistema operativo host Windows. Per elencare tutti i commutatori virtuali nel sistema operativo host Windows, in una sessione di PowerShell con privilegi elevati, usare il cmdlet di PowerShell seguente:

Get-VmSwitch

A seconda dei commutatori virtuali dell'host Windows, l'output dovrebbe essere simile al seguente:

Name           SwitchType NetAdapterInterfaceDescription
----           ---------- ------------------------------
Default Switch Internal
IntOff         Internal
EFLOW-Ext      External

Per usare un commutatore virtuale specifico (interno o esterno), assicurarsi di specificare i parametri corretti: -vSwitchName e vSwitchType. Ad esempio, se si vuole distribuire la macchina virtuale EFLOW con un commutatore esterno denominato EFLOW-Ext, in una sessione di PowerShell con privilegi elevati usare il comando seguente:

Deploy-Eflow -vSwitchType "External" -vSwitchName "EFLOW-Ext"

Configurare l'allocazione degli indirizzi IP della macchina virtuale

Il secondo passaggio dopo aver deciso il tipo di commutatore virtuale in uso consiste nel determinare il tipo di allocazione degli indirizzi IP del commutatore virtuale. Per altre informazioni sulle opzioni di allocazione IP, vedere Allocazioni IP supportate da EFLOW. A seconda del tipo di commutatore virtuale in uso, assicurarsi di usare un meccanismo di allocazione degli indirizzi IP supportato.

Per impostazione predefinita, se non è configurato alcun indirizzo IP statico, la macchina virtuale EFLOW tenta di allocare un indirizzo IP al commutatore virtuale tramite DHCP. Assicurarsi che nella rete del commutatore virtuale sia presente un server DHCP; se non disponibile, l'installazione della macchina virtuale EFLOW non riesce ad allocare un indirizzo IP e l'installazione non riesce. Se si usa l'opzione predefinita, non è necessario verificare la presenza di un server DHCP, perché il commutatore virtuale ha già DHCP per impostazione predefinita. Tuttavia, se si usa un commutatore virtuale interno o esterno , è possibile verificare seguendo questa procedura:

  1. Apri un prompt dei comandi.
  2. Visualizzare tutte le configurazioni IP e le informazioni
    ipconfig /all
    
  3. Se si usa un commutatore virtuale esterno , controllare l'interfaccia di rete usata per creare il commutatore virtuale. Se si usa un commutatore virtuale interno , è sufficiente cercare il nome usato per l'opzione. Dopo aver individuato l'opzione, controllare se DHCP Enabled è indicato o No e controllare l'indirizzo DHCP server .

Se si usa un indirizzo IP statico, è necessario specificare tre parametri durante la distribuzione EFLOW: -ip4Addresse ip4GatewayAddressip4PrefixLength. Se manca o non è corretto un parametro, l'installazione della macchina virtuale EFLOW non riesce ad allocare un indirizzo IP e l'installazione non riesce. Per altre informazioni sulla distribuzione di macchine virtuali EFLOW, vedere Funzioni di PowerShell per IoT Edge per Linux in Windows. Ad esempio, se si vuole distribuire la macchina virtuale EFLOW con un commutatore esterno denominato EFLOW-Ext e una configurazione IP statica, con un indirizzo IP uguale a 192.168.0.2, l'indirizzo IP del gateway è uguale a 192.168.0.1 e la lunghezza del prefisso IP uguale a 24, quindi in una sessione di PowerShell con privilegi elevati usare il comando seguente:

Deploy-Eflow -vSwitchType "External" -vSwitchName "EFLOW-Ext" -ip4Address "192.168.0.2" -ip4GatewayAddress "192.168.0.1" -ip4PrefixLength "24"

Suggerimento

La macchina virtuale EFLOW manterrà lo stesso indirizzo MAC per il commutatore virtuale principale (usato durante la distribuzione) tra i riavvii. Se si usa la prenotazione di indirizzi MAC DHCP, è possibile ottenere l'indirizzo MAC del commutatore virtuale principale usando il cmdlet di PowerShell: Get-EflowVmAddr.

Controllare l'allocazione IP

Esistono diversi modi per controllare l'indirizzo IP allocato alla macchina virtuale EFLOW. Prima di tutto, usando una sessione di PowerShell con privilegi elevati, usare il cmdlet EFLOW:

Get-EflowVmAddr

L'output dovrebbe essere simile al seguente:

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

Un altro modo consiste nell'usare il Connect-Eflow cmdlet per eseguire la connessione remota alla macchina virtuale, quindi è possibile usare il ifconfig eth0 comando bash e verificare la presenza dell'interfaccia eth0 . L'output avrà un aspetto analogo al seguente:

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)

Configurare i server DNS della macchina virtuale

Per impostazione predefinita, la macchina virtuale EFLOW non ha alcuna configurazione DNS. Le distribuzioni che usano DHCP tentano di ottenere la configurazione DNS propagata dal server DHCP. Se si usa un indirizzo IP statico, il server DNS deve essere configurato manualmente. Per altre informazioni sul DNS della macchina virtuale EFLOW, vedere Configurazione DNS EFLOW.

Per controllare i server DNS usati dall'interfaccia predefinita (eth0), è possibile usare il comando seguente:

resolvectl | grep eth0 -A 8

L'output dovrebbe essere simile al seguente. Controllare gli indirizzi IP dei campi "Server DNS correnti" e "Server DNS" dell'elenco. Se non è presente alcun indirizzo IP o l'indirizzo IP non è un indirizzo IP del server DNS valido, il servizio DNS non funzionerà.

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

Se è necessario configurare manualmente gli indirizzi del server DNS, è possibile usare il cmdlet Set-EflowVmDNSServersdi PowerShell EFLOW . Per altre informazioni sulla configurazione DNS della macchina virtuale EFLOW, vedere Funzioni di PowerShell per IoT Edge per Linux in Windows.

Controllare la risoluzione DNS

Esistono diversi modi per controllare la risoluzione DNS.

Prima di tutto, dall'interno della macchina virtuale EFLOW, usare il resolvectl query comando per eseguire query su un URL specifico. Ad esempio, per verificare se la risoluzione dei nomi funziona per l'indirizzo microsoft.com, usare:

resolvectl query microsoft.com

L'output avrà un aspetto analogo al seguente:

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

È anche possibile usare il dig comando per eseguire query su un URL specifico. Ad esempio, per verificare se la risoluzione dei nomi funziona per l'indirizzo microsoft.com, usare:

dig microsoft.com

L'output avrà un aspetto analogo al seguente:

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

Passaggi successivi

Altre informazioni su Azure IoT Edge per Linux in Sicurezza di Windows.

Rimanere aggiornati con gli aggiornamenti più recenti di IoT Edge per Linux in Windows.