IoT Edge per Linux in rete 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 fornisce informazioni su come configurare la rete tra il sistema operativo host Windows e la macchina virtuale IoT Edge per Linux in Windows (EFLOW). EFLOW usa una macchina virtuale CBL-Mariner Linux per eseguire moduli IoT Edge. Per altre informazioni sull'architettura EFLOW, vedere Che cos'è Azure IoT Edge per Linux in Windows.

Rete

Per stabilire un canale di comunicazione tra il sistema operativo host Windows e la macchina virtuale EFLOW, viene usato lo stack di rete Hyper-V. Per altre informazioni sulla rete Hyper-V, vedere Nozioni di base sulla rete Hyper-V. La rete di base in EFLOW è semplice; usa due parti, un commutatore virtuale e una rete virtuale.

Il modo più semplice per stabilire la rete di base negli SKU del client Windows consiste nell'usare il commutatore predefinito già creato dalla funzionalità Hyper-V. Durante la distribuzione di EFLOW, se non viene specificato alcun commutatore virtuale specifico usando i -vSwitchName flag e -vSwitchType , la macchina virtuale viene creata usando l'opzione predefinita.

Nei dispositivi SKU di Windows Server, la rete è un po' più complessa perché non è disponibile alcun commutatore predefinito. Tuttavia, è disponibile una guida completa sulla creazione di commutatori virtuali Di Azure IoT Edge per Linux in Windows.

Per gestire diversi tipi di rete, è possibile usare diversi tipi di commutatori virtuali e aggiungere più schede di rete virtuale.

Opzioni del commutatore virtuale

EFLOW supporta due tipi di commutatori virtuali Hyper-V: interni ed esterni. Si sceglierà quale di ognuna di esse si vuole creare prima della distribuzione EFLOW. È possibile usare la console di gestione di Hyper-V o il modulo Hyper-V per Windows PowerShell per creare e gestire commutatori virtuali. Per altre informazioni sulla creazione di un commutatore virtuale, vedere Creare un commutatore virtuale per le macchine virtuali Hyper-V.

È possibile apportare alcune modifiche a un commutatore virtuale dopo averlo creato. Ad esempio, è possibile modificare un commutatore esistente in un tipo diverso, ma questa operazione può influire sulle funzionalità di rete della macchina virtuale EFLOW connessa a tale commutatore. Pertanto, non è consigliabile modificare la configurazione del commutatore virtuale a meno che non si sia commesso un errore o non sia necessario testare qualcosa.

A seconda che la macchina virtuale EFLOW venga distribuita in uno SKU client Windows o in un dispositivo SKU di Windows Server, sono supportati diversi tipi di commutatori, come illustrato nella tabella seguente.

Tipo di commutatore virtuale SKU del client Windows SKU di Windows Server
Esterno Esterno nel client Esterno nel server
Interno - Interno nel server
Opzione predefinita Impostazione predefinita nel client -
  • Commutatore virtuale esterno: si connette a una rete fisica cablata tramite l'associazione a una scheda di rete fisica. Consente alle macchine virtuali di accedere a una rete fisica per comunicare con i dispositivi in una rete esterna. Consente inoltre alle macchine virtuali nello stesso server Hyper-V di comunicare tra loro.

  • Commutatore virtuale interno: si connette a una rete che può essere usata solo dalle macchine virtuali in esecuzione nell'host con il commutatore virtuale e tra l'host e le macchine virtuali.

    Nota

    Il commutatore predefinito è un particolare commutatore virtuale interno creato per impostazione predefinita dopo l'abilitazione di Hyper-V negli SKU del client Windows. Il commutatore virtuale dispone già di un server DHCP per le assegnazioni IP, la condivisione connessione Internet (ICS) abilitata e una tabella NAT. Ai fini di EFLOW, il commutatore predefinito è un commutatore interno virtuale che può essere usato senza ulteriori configurazioni.

Allocazioni di indirizzi IP

Per abilitare le comunicazioni IP di rete vm EFLOW, alla macchina virtuale deve essere assegnato un indirizzo IP. Questo indirizzo IP può essere configurato con due metodi diversi: IP statico o DHCP.

A seconda del tipo di commutatore virtuale usato, la macchina virtuale EFLOW supporta allocazioni IP diverse, come illustrato nella tabella seguente.

Tipo di commutatore virtuale Indirizzo IP statico DHCP
Esterno Esterno con IP statico Esterno con DHCP
Interno Interno con IP statico Interno con DHCP
Opzione predefinita - Impostazione predefinita con DHCP
  • IP statico: questo indirizzo IP viene assegnato in modo permanente alla macchina virtuale EFLOW durante l'installazione e non cambia tra le macchine virtuali EFLOW o i riavvii dell'host Windows. Gli indirizzi IP statici in genere hanno due versioni: IPv4 e IPv6; EFLOW supporta tuttavia solo l'indirizzo IP statico per gli indirizzi IPv4. Nelle reti che usano l'indirizzo IP statico, ogni dispositivo della rete ha il relativo indirizzo senza sovrapposizioni. Durante l'installazione di EFLOW, è necessario immettere l'indirizzo IP4 della macchina virtuale EFLOW(-ip4Address), la lunghezza-ip4PrefixLength del prefisso IP4 IP4 e l'indirizzo IP4 del gateway predefinito(-ip4GatewayAddress). Tutti e tre i parametri devono essere input per la configurazione corretta.

    Ad esempio, se si vuole distribuire la macchina virtuale EFLOW usando un commutatore virtuale esterno denominato ExternalEflow con un indirizzo IP statico 192.168.0.100, il gateway predefinito 192.168.0.1 e una lunghezza del prefisso pari a 24, è necessario il comando di distribuzione seguente

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

    Avviso

    Quando si usa l'indirizzo IP statico, è necessario usare i tre parametri (ip4Address, ip4GatewayAddres, ip4PrefixLength). Inoltre, se l'indirizzo IP non è valido, usato da un altro dispositivo in netowrk o l'indirizzo del gateway non è corretto, l'installazione di EFLOW potrebbe non riuscire perché la macchina virtuale EFLOW non riesce a ottenere un indirizzo IP.

  • DHCP : contrariamente all'INDIRIZZO IP statico, quando si usa DHCP, la macchina virtuale EFLOW viene assegnata con un indirizzo IP dinamico, ovvero un indirizzo che può cambiare. La rete deve avere un server DHCP configurato e operativo per assegnare indirizzi IP dinamici. Il server DHCP assegna un indirizzo IP vacante alla macchina virtuale EFLOW e ad altri utenti connessi alla rete. Pertanto, quando si distribuisce EFLOW tramite DHCP, non sono necessari indirizzi IP, indirizzo gateway o lunghezza del prefisso, perché il server DHCP fornisce tutte le informazioni.

    Avviso

    Quando si distribuisce EFLOW tramite DHCP, è necessario che nella rete sia presente un server DHCP connesso al commutatore virtuale della macchina virtuale EFLOW. Se non è presente alcun server DHCP, l'installazione di EFLOW ha esito negativo perché la macchina virtuale non riesce a ottenere un indirizzo IP.

DNS

Domain Name System (DNS) converte i nomi di dominio leggibili (ad esempio, www.microsoft.com) in indirizzi IP leggibili dal computer (ad esempio, 192.0.2.44). La macchina virtuale EFLOW usa systemd (system and service manager), quindi i servizi DNS o di risoluzione dei nomi vengono forniti alle applicazioni e ai servizi locali tramite il servizio risolto dal sistema.

Per impostazione predefinita, il file di configurazione DNS della macchina virtuale EFLOW contiene lo stub locale 127.0.0.53 come unico server DNS. Viene reindirizzato al file /etc/resolv.conf , usato per aggiungere i server dei nomi usati dal sistema. Lo stub locale è un server DNS eseguito localmente per risolvere le query DNS. In alcuni casi, queste query vengono inoltrate a un altro server DNS nella rete e quindi memorizzate nella cache in locale.

È possibile configurare la macchina virtuale EFLOW per l'uso di un server DNS specifico o di un elenco di server. A tale scopo, è possibile usare il Set-EflowVmDnsServers cmdlet di PowerShell. Per altre informazioni sulla configurazione DNS, vedere Funzioni di PowerShell per IoT Edge per Linux in Windows.

Per controllare i server DNS assegnati alla macchina virtuale EFLOW, dall'interno della macchina virtuale EFLOW, usare il comando : resolvectl status. L'output del comando mostra un elenco dei server DNS configurati per ogni interfaccia. In particolare, è importante controllare lo stato dell'interfaccia eth0 , ovvero l'interfaccia predefinita per la comunicazione della macchina virtuale EFLOW. Assicurarsi inoltre di controllare gli indirizzi IP dei campi ServerDNS 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à.

Screenshot della console che mostra l'output di esempio del comando resolvectl.

Indirizzo MAC statico

Hyper-V consente di creare macchine virtuali con un indirizzo MAC statico o dinamico . Durante la creazione della macchina virtuale EFLOW, l'indirizzo MAC viene generato in modo casuale e archiviato in locale per mantenere lo stesso indirizzo MAC tra le macchine virtuali o i riavvii dell'host Windows. Per eseguire una query sull'indirizzo MAC della macchina virtuale EFLOW, è possibile usare il comando seguente.

Get-EflowVmAddr

Schede di interfaccia di rete multiple

Esistono molti scenari e appliance virtuali di rete che richiedono più schede di interfaccia di rete. La macchina virtuale EFLOW supporta il collegamento di più schede di interfaccia di rete. Con più schede di interfaccia di rete, è possibile gestire meglio il traffico di rete. È anche possibile isolare il traffico tra la scheda di interfaccia di rete front-end e le schede di interfaccia di rete back-end o separare il traffico del piano dati dalla comunicazione del piano di gestione.

Ad esempio, esistono numerosi scenari IoT industriali che richiedono la connessione della macchina virtuale EFLOW a una zona demilitarizzata (DMZ) e alla rete offline in cui sono connessi tutti i dispositivi conformi oPC UA. Si tratta solo di uno degli scenari che possono essere supportati collegando più schede di interfaccia di rete alla macchina virtuale EFLOW.

Per altre informazioni su più schede di interfaccia di rete, vedere Supporto di più schede di interfaccia di rete.

Avviso

Quando si usa la funzionalità EFLOW con più schede di interfaccia di rete, è possibile configurare le diverse priorità di route. Per impostazione predefinita, EFLOW creerà una route predefinita per ogni interfaccia ehtX assegnata alla macchina virtuale e assegnerà una priorità casuale. Se tutte le interfacce sono connesse a Internet, le priorità casuali potrebbero non essere un problema. Tuttavia, se una delle schede di interfaccia di rete è connessa a una rete offline, è possibile assegnare la priorità alla scheda di interfaccia di rete online tramite la scheda di interfaccia di rete offline per ottenere la macchina virtuale EFLOW connessa a Internet. Per altre informazioni sul routing personalizzato, vedere Routing EFLOW.

Passaggi successivi

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

Informazioni su come gestire la configurazione di rete EFLOW per Azure IoT Edge per Linux in Windows