Creazione del commutatore virtuale di Azure IoT Edge per Linux in Windows

Si applica a:IoT Edge 1.4 checkmark IoT Edge 1.4

Importante

IoT Edge 1.4 è la versione supportata. Se si usa una versione precedente, vedere Aggiornare IoT Edge.

Azure IoT Edge per Linux in Windows usa un commutatore virtuale nel computer host per comunicare con la macchina virtuale. Le versioni desktop di Windows sono dotate di un commutatore predefinito che può essere usato, ma Windows Server non lo è. Prima di poter distribuire IoT Edge per Linux in Windows in un dispositivo Windows Server, è necessario creare un commutatore virtuale. Inoltre, è possibile usare questa guida per creare il commutatore virtuale personalizzato, se necessario.

Questo articolo illustra come creare un commutatore virtuale in un dispositivo Windows per installare IoT Edge per Linux in Windows. Questo processo è suddiviso nei passaggi seguenti:

  • Creare un commutatore virtuale
  • Creare una tabella NAT
  • Installare e configurare un server DHCP

Prerequisiti

Creare un commutatore virtuale

I passaggi seguenti in questa sezione sono una guida generica per la creazione di un commutatore virtuale. Assicurarsi che la configurazione del commutatore virtuale sia allineata all'ambiente di rete.

Nota

I passaggi seguenti descrivono come creare un commutatore virtuale interno o privato . Per altre informazioni sulla creazione di un commutatore esterno , vedere Creare un commutatore virtuale per le macchine virtuali Hyper-V. Si noti che se si usa una macchina virtuale di Azure, il commutatore virtuale non può essere Esterno.

  1. Aprire PowerShell in una sessione con privilegi elevati. A tale scopo, aprire il riquadro Start in Windows e digitare "PowerShell". Fare clic con il pulsante destro del mouse sull'app Windows PowerShell visualizzata e selezionare Esegui come amministratore.

  2. Controllare i commutatori virtuali nell'host Windows e assicurarsi di non avere già un commutatore virtuale che può essere usato. A tale scopo, eseguire il comando Get-VMSwitch seguente in PowerShell:

    Get-VMSwitch
    

    Se è già stato creato un commutatore virtuale denominato Switch predefinito e non è necessario un commutatore virtuale personalizzato, è necessario essere in grado di installare IoT Edge per Linux in Windows senza seguire i passaggi rimanenti di questa guida.

  3. Creare un nuovo commutatore di macchina virtuale con un nome di propria scelta e un tipo di commutatore interno o privato eseguendo il comando New-VMSwitch seguente, sostituendo i valori segnaposto:

    New-VMSwitch -Name "{switchName}" -SwitchType {switchType}
    
  4. Per ottenere l'indirizzo IP per l'opzione creata, è prima necessario ottenere il relativo indice di interfaccia. È possibile ottenere questo valore eseguendo il comando Get-NetAdapter seguente, sostituendo il valore segnaposto:

    (Get-NetAdapter -Name "{switchName}").ifIndex
    

    Potrebbe essere necessario modificare il valore del parametro per seguire il NamevEthernet ({switchName}) modello se viene visualizzato un errore quando si tenta di eseguire questo comando. Dovrebbe essere visualizzato un output simile all'esempio seguente:

    Screenshot of the output from running the Get-NetAdapter command, highlighting the interface index value.

    Prendere nota del valore dell'indice dell'interfaccia, perché sarà necessario usarlo nei passaggi successivi.

  5. L'indirizzo IP del commutatore virtuale risultante sarà diverso per ogni ambiente. Si noti che per il resto dei comandi di questa guida si useranno gli indirizzi IP derivati dalla famiglia 172.20.X.Y . Tuttavia, è possibile usare la propria famiglia di indirizzi e indirizzi IP.

    Verranno creati e usati gli indirizzi IP seguenti:

    Indirizzo IP Modello Esempio
    IP del gateway xxx.xxx.xxx.1 172.20.0.1
    Indirizzo IP NAT xxx.xxx.xxx.0 172.20.0.0
    Indirizzo IP iniziale xxx.xxx.xxx.100 172.20.0.100
    Indirizzo IP finale xxx.xxx.xxx.200 172.20.0.200
  6. Impostare l'indirizzo IP del gateway sostituendo l'ultimo ottetto della famiglia di indirizzi IP del commutatore virtuale con un nuovo valore numerico. Ad esempio, sostituire l'ultimo ottetto con 1 e ottenere l'indirizzo 172.20.0.1. Eseguire il comando New-NetIPAddress seguente per impostare il nuovo indirizzo IP del gateway, sostituendo i valori segnaposto:

    New-NetIPAddress -IPAddress {gatewayIp} -PrefixLength 24 -InterfaceIndex {interfaceIndex}
    

    L'esecuzione di questo comando dovrebbe restituire informazioni simili all'esempio seguente:

    Screenshot of the output from running the New-NetIPAddress command.

  7. Creare un oggetto NAT (Network Address Translation) che converte un indirizzo di rete interno in una rete esterna. Usare lo stesso indirizzo della famiglia IPv4 dei passaggi precedenti. In base alla tabella del passaggio sei, l'indirizzo IP NAT corrisponde alla famiglia di indirizzi IP originale, ad eccezione del fatto che l'ultimo ottetto viene sostituito con un nuovo valore numerico, ad esempio 0. Eseguire il comando New-NetNat seguente per impostare l'indirizzo IP NAT, sostituendo i valori segnaposto:

    New-NetNat -Name "{switchName}" -InternalIPInterfaceAddressPrefix "{natIp}/24"
    

    L'esecuzione di questo comando dovrebbe restituire informazioni simili all'esempio seguente:

    Screenshot of the output from running the New-NetNat command.

L'opzione è stata creata. Successivamente, si configurerà il DNS.

Creare un server DHCP

Nota

È possibile continuare l'installazione senza un server DHCP purché la macchina virtuale EFLOW venga distribuita usando i parametri IP statici (ip4Address, ip4GatewayAddress, ip4PrefixLength). Se verrà usata l'allocazione ip dinamica, assicurarsi di continuare con l'installazione del server DHCP.

Avviso

L'autorizzazione potrebbe essere necessaria per distribuire un server DHCP in un ambiente di rete aziendale. Controllare se la configurazione del commutatore virtuale è conforme ai criteri della rete aziendale. Per altre informazioni, vedere Distribuire DHCP con Windows PowerShell.

  1. Controllare se la funzionalità Server DHCP è installata nel computer host. Cercare la colonna Installa stato . Se il valore è "Installato", è possibile ignorare il passaggio seguente.

    Get-WindowsFeature -Name 'DHCP'
    
  2. Se il server DHCP non è già installato, eseguire il comando seguente:

    Install-WindowsFeature -Name 'DHCP' -IncludeManagementTools
    
  3. Aggiungere il server DHCP ai gruppi di sicurezza locali predefiniti e riavviare il server.

    netsh dhcp add securitygroups
    Restart-Service dhcpserver
    

    Durante l'avvio del server DHCP verranno visualizzati i messaggi di avviso seguenti: WARNING: Waiting for service 'DHCP Server (dhcpserver)' to start...

  4. Per configurare l'intervallo di indirizzi IP DHCP da rendere disponibili, è necessario impostare un indirizzo IP come indirizzo IP iniziale e un indirizzo IP come indirizzo IP finale. Questo intervallo è definito dai parametri StartRange e EndRange nel comando Add-DhcpServerv4Scope. È anche necessario impostare la subnet mask quando si esegue questo comando, che sarà 255.255.255.255.0. In base ai modelli di indirizzo IP e agli esempi nella tabella della sezione precedente, impostando StartRange su 169.254.229.100 e EndRange come 169.254.229.200 renderanno disponibili 100 indirizzi IP. Eseguire il comando seguente, sostituendo i segnaposto con i propri valori:

    Add-DhcpServerV4Scope -Name "AzureIoTEdgeScope" -StartRange {startIp} -EndRange {endIp} -SubnetMask 255.255.255.0 -State Active
    

    Questo comando non deve produrre alcun output.

  5. Assegnare gli indirizzi IP NAT e gateway creati nella sezione precedente al server DHCP e riavviare il server per caricare la configurazione. Il primo comando non dovrebbe produrre alcun output, ma riavviare il server DHCP dovrebbe restituire gli stessi messaggi di avviso ricevuti al momento dell'operazione nel terzo passaggio di questa sezione.

    Set-DhcpServerV4OptionValue -ScopeID {startIp} -Router {gatewayIp}
    Restart-service dhcpserver
    

Passaggi successivi

Seguire la procedura descritta in Installare ed effettuare il provisioning di Azure IoT Edge per Linux in un dispositivo Windows per configurare un dispositivo con IoT Edge per Linux in Windows.