Dela via


Så här konfigurerar du Azure IoT Edge för Linux i Windows på en DMZ

Gäller för:Bockmarkering för IoT Edge 1.5 IoT Edge 1.5

Viktigt!

IoT Edge 1.5 LTS är den version som stöds. IoT Edge 1.4 LTS upphör från och med den 12 november 2024. Om du har en tidigare version läser du Uppdatera IoT Edge.

Den här artikeln beskriver hur du konfigurerar den virtuella Datorn Azure IoT Edge för Linux (EFLOW) för att stödja flera nätverkskort (NIC) och ansluta till flera nätverk. Genom att aktivera flera NIC-stöd kan program som körs på den virtuella EFLOW-datorn kommunicera med enheter som är anslutna till offlinenätverket, samtidigt som IoT Edge används för att skicka data till molnet.

Förutsättningar

Industriscenario

Industri-IoT går om it- och driftteknikkonvergensen. Men att göra traditionella OT-tillgångar mer intelligenta med IT-teknik innebär också en större exponering för cyberattacker. Det här scenariot är en av de främsta orsakerna till att flera miljöer utformas med demilitariserade zoner, även kallade DMZs.

Föreställ dig ett arbetsflödesscenario där du har en nätverkskonfiguration uppdelad i två olika nätverk eller zoner. I den första zonen kan du ha ett säkert nätverk som definierats som offlinenätverket. Offlinenätverket har ingen internetanslutning och är begränsat till intern åtkomst. I den andra zonen kan du ha en demilitariserad zon (DMZ), där du kan ha ett par enheter som har begränsad Internetanslutning. När du flyttar arbetsflödet så att det körs på den virtuella EFLOW-datorn kan det uppstå problem med att komma åt de olika nätverken eftersom den virtuella EFLOW-datorn som standard bara har ett kopplat nätverkskort.

I det här scenariot har du en miljö med vissa enheter som programmerbara logikstyrenheter (PLC) eller OPC UA-kompatibla enheter (Open Platform Communications Unified Architecture) som är anslutna till offlinenätverket och du vill ladda upp all information om enheterna till Azure med hjälp av OPC Publisher-modulen som körs på den virtuella EFLOW-datorn.

Eftersom EFLOW-värdenheten och PLC- eller OPC UA-enheterna är fysiskt anslutna till offlinenätverket kan du använda Azure IoT Edge för Linux på virtuella Nätverkskortskonfigurationer i Windows för att ansluta den virtuella EFLOW-datorn till offlinenätverket. Genom att använda en extern virtuell växel kan du ansluta den virtuella EFLOW-datorn till offlinenätverket och kommunicera direkt med andra offlineenheter.

För det andra nätverket är EFLOW-värdenheten fysiskt ansluten till DMZ (onlinenätverk) med Internet- och Azure-anslutning. Med hjälp av en intern eller extern växel kan du ansluta den virtuella EFLOW-datorn till Azure IoT Hub med hjälp av IoT Edge-moduler och ladda upp den information som skickas av offlineenheterna via offline-nätverkskortet.

Skärmbild av ett EFLOW Industrial IoT-scenario som visar en virtuell EFLOW-dator som är ansluten till ett offline- och onlinenätverk.

Scenariosammanfattning

Skyddat nätverk:

  • Ingen internetanslutning – åtkomsten är begränsad.
  • PLCs eller UPC UA-kompatibla enheter anslutna.
  • Virtuell EFLOW-dator ansluten med en extern virtuell växel.

DMZ:

  • Internetanslutning – Azure-anslutning tillåts.
  • Virtuell EFLOW-dator ansluten till Azure IoT Hub med antingen en intern/extern virtuell växel.
  • OPC Publisher körs som en modul i den virtuella EFLOW-dator som används för att publicera data till Azure.

Konfigurera virtuella vm-nätverksväxlar

Följande steg är specifika för det nätverk som beskrivs i exempelscenariot. Kontrollera att de virtuella växlar som används och de konfigurationer som används överensstämmer med nätverksmiljön.

Kommentar

Stegen i den här artikeln förutsätter att den virtuella EFLOW-datorn har distribuerats med en extern virtuell växel ansluten till det säkra nätverket (offline). Du kan ändra följande steg till den specifika nätverkskonfiguration som du vill uppnå. Mer information om stöd för flera nätverkskort för EFLOW finns i Azure IoT Edge för Linux på virtuella Windows-konfigurationer för flera nätverkskort.

För att slutföra etableringen av den virtuella EFLOW-datorn och kommunicera med Azure måste du tilldela ett annat nätverkskort som är anslutet till DMZ-nätverket (online).

I det här scenariot tilldelar du en extern virtuell växel som är ansluten till DMZ-nätverket. Mer information finns i Skapa en virtuell växel för virtuella Hyper-V-datorer.

Följ dessa steg för att skapa en extern virtuell växel:

  1. Öppna Hyper-V Manager.
  2. I Åtgärder väljer du Hanteraren för virtuell växel.
  3. I Virtuella växlar väljer du Ny virtuell nätverksväxel.
  4. Välj typ Extern och välj sedan Skapa virtuell växel.
  5. Ange ett namn som representerar det säkra nätverket. Till exempel OnlineOPCUA.
  6. Under Anslutningstyp väljer du Externt nätverk och sedan nätverkskortet som är anslutet till ditt DMZ-nätverk.
  7. Välj Använd.

När den externa virtuella växeln har skapats måste du ansluta den till den virtuella EFLOW-datorn med hjälp av följande steg. Om du behöver koppla flera nätverkskort kan du läsa EFLOW Flera nätverkskort.

För den anpassade nya externa virtuella växeln som du skapade använder du följande PowerShell-kommandon för att:

  1. Koppla växeln till din virtuella EFLOW-dator.

    Add-EflowNetwork -vswitchName "OnlineOPCUA" -vswitchType "External"
    

    Skärmbild av att det externa nätverket med namnet OnlineOPCUA har skapats.

  2. Ange en statisk IP-adress.

    Add-EflowVmEndpoint -vswitchName "OnlineOPCUA" -vEndpointName "OnlineEndpoint" -ip4Address 192.168.0.103 -ip4PrefixLength 24 -ip4GatewayAddress 192.168.0.1
    

    Skärmbild av en lyckad konfiguration av OnlineOPCUA-växeln.

När du är klar har du tilldelat onlineOPCUA-växeln till den virtuella EFLOW-datorn. Om du vill kontrollera flera NIC-bifogade filer använder du följande steg:

  1. Öppna en upphöjd PowerShell-session genom att börja med Kör som administratör.

  2. Anslut till den virtuella EFLOW-datorn.

    Connect-EflowVm
    
  3. När du är i den virtuella datorn listar du alla nätverksgränssnitt som tilldelats den virtuella EFLOW-datorn.

    ifconfig
    
  4. Granska IP-konfigurationen och kontrollera att du ser eth0-gränssnittet (anslutet till det säkra nätverket) och eth1-gränssnittet (anslutet till DMZ-nätverket).

    Skärmbild som visar IP-konfigurationen för flera nätverkskort som är anslutna till två olika nätverk.

Konfigurera nätverksroutning för virtuella datorer

När du använder funktionen EFLOW för flera nätverkskort kanske du vill konfigurera de olika vägprioriteringarna. Som standard skapar EFLOW en standardväg per ehtX-gränssnitt som tilldelats den virtuella datorn. EFLOW tilldelar standardvägen en slumpmässig prioritet. Om alla gränssnitt är anslutna till Internet är slumpmässiga prioriteringar kanske inte ett problem. Men om en av nätverkskorten är ansluten till ett offlinenätverk kanske du vill prioritera online-nätverkskortet framför det offlinebaserade nätverkskortet för att få den virtuella EFLOW-datorn ansluten till Internet.

EFLOW använder routningstjänsten för att hantera alternativen för nätverksroutning. Använd följande steg för att kontrollera de tillgängliga vägarna för virtuella EFLOW-datorer:

  1. Öppna en upphöjd PowerShell-session genom att börja med Kör som administratör.

  2. Anslut till den virtuella EFLOW-datorn.

    Connect-EflowVm
    
  3. När du är i den virtuella datorn anger du alla nätverksvägar som konfigurerats på den virtuella EFLOW-datorn.

    sudo route
    

    Skärmbild som visar routningstabellen för den virtuella EFLOW-datorn.

    Dricks

    Föregående bild visar routningskommandots utdata med de två tilldelade nätverkskorten (eth0 och eth1). Den virtuella datorn skapar två olika standardmålregler med olika mått. Ett lägre måttvärde har högre prioritet. Den här routningstabellen varierar beroende på nätverksscenariot som konfigurerades i föregående steg.

Konfiguration av statiska vägar

Varje gång den virtuella EFLOW-datorn startas återskapar nätverkstjänster alla vägar och alla tidigare tilldelade prioriteter kan ändras. För att undvika det här problemet kan du tilldela önskad prioritet för varje väg varje gång den virtuella EFLOW-datorn startar. Du kan skapa en tjänst som körs vid varje vm-start och använder route kommandot för att ange önskade vägprioriteringar.

Skapa först ett bash-skript som kör de kommandon som krävs för att ange vägarna. Efter det nätverksscenario som nämndes tidigare har den virtuella EFLOW-datorn till exempel två nätverkskort (offline- och onlinenätverk). NIC eth0 är ansluten med hjälp av gateway-IP-xxx.xxx.xxx.xxx. NIC eth1 är anslutet med gateway-IP yyy.yyy.yyy.yyyy.

Följande skript återställer standardvägarna för både eth0 och *eth1 och lägger sedan till vägarna med önskat <talmått> . Kom ihåg att ett lägre måttvärde har högre prioritet.

#!/bin/sh

# Wait 30s for the interfaces to be up
sleep 30

# Delete previous eth0 route and create a new one with desired metric
sudo ip route del default via xxx.xxx.xxx.xxx dev eth0
sudo route add -net default gw xxx.xxx.xxx.xxx netmask 0.0.0.0 dev eth0 metric <number>

# Delete previous eth1 route and create a new one with desired metric
sudo ip route del default via yyy.yyy.yyy.yyy dev eth1
sudo route add -net default gw yyy.yyy.yyy.yyy netmask 0.0.0.0 dev eth1 metric <number>

Du kan använda föregående skript för att skapa ett eget anpassat skript som är specifikt för ditt nätverksscenario. När skriptet har definierats sparar du det och tilldelar körbehörighet. Om skriptnamnet till exempel är route-setup.sh kan du tilldela körningsbehörighet med kommandot sudo chmod +x route-setup.sh. Du kan testa om skriptet fungerar korrekt genom att köra det manuellt med kommandot sudo sh ./route-setup.sh och sedan kontrollera routningstabellen sudo route med kommandot .

Det sista steget är att skapa en Linux-tjänst som körs vid start och kör bash-skriptet för att ange vägarna. Du måste skapa en systemenhetsfil för att läsa in tjänsten. Följande är ett exempel på filen.

[Unit]
after=network

[Service]
Type=simple
ExecStart=/bin/bash /home/iotedge-user/route-setup.sh

[Install]
WantedBy=default.target

Om du vill kontrollera att tjänsten fungerar startar du om den virtuella EFLOW-datorn (Stop-EflowVm & Start-EflowVm) och ansluter sedan Connect-EflowVm till den virtuella datorn. Visa en lista över vägar som använder sudo route och kontrollera att de är korrekta. Du bör kunna se de nya standardreglerna med det tilldelade måttet.

Nästa steg

Följ stegen i Konfigurera nätverk för Azure IoT Edge för Linux i Windows för att kontrollera att nätverkskonfigurationerna har tillämpats korrekt.