Azure IoT Edge-eszközök csatlakoztatása hierarchia létrehozásához
A következőkre vonatkozik: IoT Edge 1.5 IoT Edge 1.4
Fontos
Az IoT Edge 1.5 LTS és az IoT Edge 1.4 LTS támogatott kiadások. Az IoT Edge 1.4 LTS 2024. november 12-én megszűnik. Ha egy korábbi kiadáson dolgozik, olvassa el az IoT Edge frissítése című témakört.
Ez a cikk az IoT Edge-átjáró és egy alsóbb rétegbeli IoT Edge-eszköz közötti megbízható kapcsolat létrehozásának lépéseit ismerteti. Ezt a konfigurációt beágyazott élnek is nevezik.
Átjáróforgatókönyvekben az IoT Edge-eszköz lehet átjáró és alsóbb rétegbeli eszköz is. Több IoT Edge-átjáró rétegzhető az eszközök hierarchiájának létrehozásához. Az alsóbb rétegbeli (gyermek) eszközök az átjáró (szülő) eszközén keresztül hitelesíthetik és küldhetnek vagy fogadhatnak üzeneteket.
Az átjáróhierarchia IoT Edge-eszközeinek két különböző konfigurációja van, és ez a cikk mindkettőt ismerteti. Az első a legfelső szintű IoT Edge-eszköz. Ha több IoT Edge-eszköz csatlakozik egymáshoz, minden olyan eszköz, amely nem rendelkezik szülőeszközrel, de közvetlenül az IoT Hubhoz csatlakozik, a legfelső rétegben találhatónak minősül. Ez az eszköz felel az alatta lévő összes eszköz kéréseinek kezeléséért. A másik konfiguráció a hierarchia alsó rétegében lévő összes IoT Edge-eszközre vonatkozik. Ezek az eszközök lehetnek átjárók más alsóbb rétegbeli IoT- és IoT Edge-eszközök számára, de a kommunikációt a saját szülőeszközükön is át kell irányítaniuk.
Egyes hálózati architektúrák megkövetelik, hogy csak a hierarchia legfelső IoT Edge-eszköze csatlakozzon a felhőhöz. Ebben a konfigurációban a hierarchia alsó rétegeiben található összes IoT Edge-eszköz csak az átjáró (szülő) eszközével és az alsóbb rétegbeli (gyermek) eszközökkel tud kommunikálni.
A cikk összes lépése az IoT Edge-eszköz transzparens átjáróként való konfigurálására épül, amely az IoT Edge-eszközt átjáróként állítja be az alsóbb rétegbeli IoT-eszközökhöz. Az összes átjáróforgatókönyvre ugyanazok az alapvető lépések vonatkoznak:
- Hitelesítés: IoT Hub-identitások létrehozása az átjáróhierarchiában lévő összes eszközhöz.
- Engedélyezés: Állítsa be a szülő-gyermek kapcsolatot az IoT Hubban, hogy engedélyezze az alsóbb rétegbeli eszközök számára, hogy úgy csatlakozzanak a szülőeszközhöz, mintha az IoT Hubhoz csatlakoznának.
- Átjárófelderítés: Győződjön meg arról, hogy az alsóbb rétegbeli eszköz megtalálja a szülőeszközét a helyi hálózaton.
- Biztonságos kapcsolat: Hozzon létre egy biztonságos kapcsolatot olyan megbízható tanúsítványokkal, amelyek ugyanahhoz a lánchoz tartoznak.
Előfeltételek
- Ingyenes vagy standard IoT Hub.
- Legalább két IoT Edge-eszköz, az egyik a felső rétegbeli eszköz és egy vagy több alsó rétegbeli eszköz. Ha nem érhetők el IoT Edge-eszközök, futtathatja az Azure IoT Edge-et Ubuntu virtuális gépeken.
- Ha az Azure CLI használatával hoz létre és kezel eszközöket, telepítse az Azure IoT-bővítményt.
Tipp.
Ez a cikk részletes lépéseket és beállításokat tartalmaz a forgatókönyvhöz megfelelő átjáróhierarchia létrehozásához. Irányított oktatóanyagért lásd : IoT Edge-eszközök hierarchiájának létrehozása átjárókkal.
Átjáróhierarchia létrehozása
IoT Edge-átjáróhierarchiát úgy hozhat létre, hogy szülő-gyermek kapcsolatokat határoz meg az IoT Edge-eszközökhöz a forgatókönyvben. A szülőeszközt új eszközidentitás létrehozásakor, illetve meglévő eszközidentitás szülő- és gyermekazonosítóinak kezelésekor is beállíthatja.
A szülő-gyermek kapcsolatok beállításának lépése engedélyezi az alsóbb rétegbeli eszközök számára, hogy úgy csatlakozzanak a szülőeszközhöz, mintha az IoT Hubhoz csatlakoznának.
Csak az IoT Edge-eszközök lehetnek szülőeszközök, de az IoT Edge-eszközök és az IoT-eszközök is lehetnek gyermekek. Egy szülőnek sok gyermeke lehet, de egy gyermeknek csak egy szülője lehet. Az átjáróhierarchia úgy jön létre, hogy összeláncolják a szülő-gyermek csoportokat, hogy az egyik eszköz gyermeke a másik szülője legyen.
Alapértelmezés szerint a szülő legfeljebb 100 gyermekkel rendelkezhet. Ezt a korlátot úgy módosíthatja, hogy beállítja a Max Csatlakozás edClients környezeti változót a szülőeszköz EdgeHub-moduljában.
Az Azure Portalon kezelheti a szülő-gyermek kapcsolatot új eszközidentitások létrehozásakor vagy meglévő eszközök szerkesztésével.
Új IoT Edge-eszköz létrehozásakor lehetősége van szülő- és gyermekeszközöket választani a központ meglévő IoT Edge-eszközeinek listájából.
- Az Azure Portalon keresse meg az IoT hubot.
- Válassza az Eszközök lehetőséget az Eszközfelügyelet menüben.
- Válassza az Eszköz hozzáadása lehetőséget, majd jelölje be az IoT Edge-eszköz jelölőnégyzetet.
- Az eszközazonosító és a hitelesítési beállítások megadása mellett beállíthatja a szülőeszközt vagy a Gyermekeszközök kiválasztása lehetőséget.
- Válassza ki a szülőként vagy gyermekként használni kívánt eszközt vagy eszközöket.
A meglévő eszközökhöz szülő-gyermek kapcsolatokat is létrehozhat vagy kezelhet.
- Az Azure Portalon keresse meg az IoT hubot.
- Válassza az Eszközök lehetőséget az Eszközfelügyelet menüben.
- Válassza ki a listából a kezelni kívánt IoT Edge-eszközt .
- Válassza a Szülőeszközfogaskerék beállítása ikont vagy a Gyermekeszközök kezelése lehetőséget.
- Adjon hozzá vagy távolítson el minden szülő- vagy gyermekeszközt.
Feljegyzés
Ha programozott módon szeretne szülő-gyermek kapcsolatokat létesíteni, használhatja a C#, Java vagy Node.js IoT Hub Service SDK-t.
Íme egy példa a gyermekeszközök C# SDK-val való hozzárendelésére. A feladat RegistryManager_AddAndRemoveDeviceWithScope()
bemutatja, hogyan hozhat létre programozott módon háromrétegű hierarchiát. Az IoT Edge-eszközök szülőként az első rétegben találhatóak. Egy másik IoT Edge-eszköz a második rétegben található, amely gyermekként és szülőként is szolgál. Végül egy IoT-eszköz a harmadik rétegben található, a legalacsonyabb rétegbeli gyermekeszközként.
Tanúsítványok előállítása
Az azonos átjáróhierarchiában lévő eszközökre egységes tanúsítványláncot kell telepíteni, hogy biztonságos kommunikációt alakítson ki egymás között. A hierarchia minden eszközének, akár egy IoT Edge-eszköznek, akár egy alsóbb rétegbeli IoT-eszköznek szüksége van ugyanahhoz a legfelső szintű hitelesítésszolgáltatói tanúsítványhoz. A hierarchiában lévő minden IoT Edge-eszköz ezt a legfelső szintű hitelesítésszolgáltatói tanúsítványt használja az eszköz ca-tanúsítványának gyökérként.
Ezzel a beállítással minden alsóbb rétegbeli IoT Edge-eszköz ellenőrizheti a szülő identitását, ha ellenőrzi, hogy a csatlakoztatott EdgeHub rendelkezik-e a megosztott legfelső szintű hitelesítésszolgáltató tanúsítványával aláírt kiszolgálótanúsítvánnyal.
Az IoT Edge tanúsítványkövetelményeiről további információt az Azure IoT Edge tanúsítványhasználatának ismertetése című témakörben talál.
Hozza létre vagy kérje le a következő tanúsítványokat:
- Legfelső szintű hitelesítésszolgáltatói tanúsítvány, amely az adott átjáróhierarchiában lévő összes eszköz legfelső megosztott tanúsítványa. Ez a tanúsítvány minden eszközön telepítve van.
- A főtanúsítvány-láncba felvenni kívánt köztes tanúsítványok.
- Az eszköz hitelesítésszolgáltatói tanúsítványaés titkos kulcsa, amelyet a fő- és köztes tanúsítványok hoznak létre. Az átjáróhierarchia minden egyes IoT Edge-eszközéhez egy egyedi eszköz ca-tanúsítványra van szüksége.
Használhat önaláírt hitelesítésszolgáltatót, vagy vásárolhat egyet egy megbízható kereskedelmi hitelesítésszolgáltatótól, például Baltimore-tól, Verisigntől, Digicerttől vagy GlobalSign-től.
Ha nem rendelkezik saját, teszteléshez használható tanúsítványokkal, hozzon létre egy gyökér- és köztes tanúsítványkészletet, majd hozzon létre IoT Edge-eszköz ca-tanúsítványokat minden eszközhöz. Ebben a cikkben a tesztelési hitelesítésszolgáltatói tanúsítványokkal létrehozott teszttanúsítványokat fogjuk használni mintákhoz és oktatóanyagokhoz. Az alábbi parancsok például létrehoznak egy legfelső szintű hitelesítésszolgáltatói tanúsítványt, egy szülőeszköz-tanúsítványt és egy gyermekeszköz-tanúsítványt.
# !!! For test only - do not use in production !!! # Create the the root CA test certificate ./certGen.sh create_root_and_intermediate # Create the parent (gateway) device test certificate # signed by the shared root CA certificate ./certGen.sh create_edge_device_ca_certificate "gateway" # Create the downstream device test certificate # signed by the shared root CA certificate ./certGen.sh create_edge_device_ca_certificate "downstream"
Figyelmeztetés
Ne használjon éles tesztszkriptek által létrehozott tanúsítványokat. Szigorúan kódolt jelszavakat tartalmaznak, és alapértelmezés szerint 30 nap elteltével lejárnak. A tesztelési hitelesítésszolgáltatói tanúsítványokat bemutató célokra biztosítjuk, hogy könnyebben megérthesse a hitelesítésszolgáltatói tanúsítványokat. Saját biztonsági ajánlott eljárásokat használhat a minősítések létrehozásához és az élettartam-kezeléshez éles környezetben.
A teszttanúsítványok létrehozásával kapcsolatos további információkért tekintse meg az IoT Edge-eszközfunkciók teszteléséhez szükséges demótanúsítványok létrehozását ismertető témakört.
A tanúsítványokat és kulcsokat minden eszközre át kell vinnie. Használhat USB-meghajtót, olyan szolgáltatást, mint az Azure Key Vault, vagy egy olyan funkcióval, mint a Biztonságos fájlmásolás. Válasszon a forgatókönyvnek leginkább megfelelő módszerek közül. Másolja a fájlokat a tanúsítványok és kulcsok előnyben részesített könyvtárába. Tanúsítványokhoz és
/var/aziot/secrets
kulcsokhoz használható/var/aziot/certs
.
A tanúsítványok eszközre való telepítéséről további információt az IoT Edge-eszközön található tanúsítványok kezelése című témakörben talál.
Szülőeszköz konfigurálása
A szülőeszköz konfigurálásához nyisson meg egy helyi vagy távoli parancshéjat.
A biztonságos kapcsolatok engedélyezéséhez egy átjáróforgatókönyvben minden IoT Edge-szülőeszközt egyedi eszköz-hitelesítésszolgáltatói tanúsítvánnyal és az átjáróhierarchia összes eszköze által megosztott legfelső szintű hitelesítésszolgáltatói tanúsítvány másolatával kell konfigurálni.
Ellenőrizze, hogy a tanúsítványok megfelelnek-e a formátumkövetelményeknek.
A legfelső szintű hitelesítésszolgáltatói tanúsítvány, a szülőeszköz hitelesítésszolgáltatói tanúsítványa és a szülő titkos kulcs átvitele a szülőeszközre.
Másolja a tanúsítványokat és a kulcsokat a megfelelő könyvtárakba. Az eszköztanúsítványok előnyben részesített könyvtárai
/var/aziot/certs
a tanúsítványok és/var/aziot/secrets
a kulcsok.### Copy device certificate ### # If the device certificate and keys directories don't exist, create, set ownership, and set permissions sudo mkdir -p /var/aziot/certs sudo chown aziotcs:aziotcs /var/aziot/certs sudo chmod 755 /var/aziot/certs sudo mkdir -p /var/aziot/secrets sudo chown aziotks:aziotks /var/aziot/secrets sudo chmod 700 /var/aziot/secrets # Copy full-chain device certificate and private key into the correct directory sudo cp iot-edge-device-ca-gateway-full-chain.cert.pem /var/aziot/certs sudo cp iot-edge-device-ca-gateway.key.pem /var/aziot/secrets ### Root certificate ### # Copy root certificate into the /certs directory sudo cp azure-iot-test-only.root.ca.cert.pem /var/aziot/certs # Copy root certificate into the CA certificate directory and add .crt extension. # The root certificate must be in the CA certificate directory to install it in the certificate store. # Use the appropriate copy command for your device OS or if using EFLOW. # For Ubuntu and Debian, use /usr/local/share/ca-certificates/ sudo cp azure-iot-test-only.root.ca.cert.pem /usr/local/share/azure-iot-test-only.root.ca.cert.pem.crt # For EFLOW, use /etc/pki/ca-trust/source/anchors/ sudo cp azure-iot-test-only.root.ca.cert.pem /etc/pki/ca-trust/source/anchors/azure-iot-test-only.root.ca.pem.crt
Módosítsa a tanúsítványok és kulcsok tulajdonjogát és engedélyeit.
# Give aziotcs ownership to certificates # Read and write for aziotcs, read-only for others sudo chown -R aziotcs:aziotcs /var/aziot/certs sudo find /var/aziot/certs -type f -name "*.*" -exec chmod 644 {} \; # Give aziotks ownership to private keys # Read and write for aziotks, no permission for others sudo chown -R aziotks:aziotks /var/aziot/secrets sudo find /var/aziot/secrets -type f -name "*.*" -exec chmod 600 {} \; # Verify permissions of directories and files sudo ls -Rla /var/aziot
A megfelelő tulajdonjoggal és engedéllyel rendelkező lista kimenete a következőhöz hasonló:
azureUser@vm:/var/aziot$ sudo ls -Rla /var/aziot /var/aziot: total 16 drwxr-xr-x 4 root root 4096 Dec 14 00:16 . drwxr-xr-x 15 root root 4096 Dec 14 00:15 .. drwxr-xr-x 2 aziotcs aziotcs 4096 Jan 14 00:31 certs drwx------ 2 aziotks aziotks 4096 Jan 23 17:23 secrets /var/aziot/certs: total 20 drwxr-xr-x 2 aziotcs aziotcs 4096 Jan 14 00:31 . drwxr-xr-x 4 root root 4096 Dec 14 00:16 .. -rw-r--r-- 1 aziotcs aziotcs 1984 Jan 14 00:24 azure-iot-test-only.root.ca.cert.pem -rw-r--r-- 1 aziotcs aziotcs 5887 Jan 14 00:27 iot-edge-device-ca-gateway-full-chain.cert.pem /var/aziot/secrets: total 16 drwx------ 2 aziotks aziotks 4096 Jan 23 17:23 . drwxr-xr-x 4 root root 4096 Dec 14 00:16 .. -rw------- 1 aziotks aziotks 3243 Jan 14 00:28 iot-edge-device-ca-gateway.key.pem
Telepítse a legfelső szintű hitelesítésszolgáltatói tanúsítványt a szülő IoT Edge-eszközön a tanúsítványtároló platformspecifikus paranccsal történő frissítésével.
# Update the certificate store # For Ubuntu or Debian - use update-ca-certificates sudo update-ca-certificates # For EFLOW or RHEL - use update-ca-trust sudo update-ca-trust
További információ az EFLOW-ban való használatról
update-ca-trust
: CBL-Mariner SSL CA-tanúsítványok kezelése.
A parancs egy tanúsítványt /etc/ssl/certs
tartalmaz.
Updating certificates in /etc/ssl/certs...
1 added, 0 removed; done.
Szülőkonfigurációs fájl frissítése
Az IoT Edge-nek már telepítve kell lennie az eszközön. Ha nem, kövesse a lépéseket egyetlen Linux IoT Edge-eszköz manuális kiépítéséhez.
Ellenőrizze, hogy a
/etc/aziot/config.toml
konfigurációs fájl létezik-e a szülőeszközön.Ha a konfigurációs fájl nem létezik az eszközön, az alábbi paranccsal hozza létre a sablonfájl alapján:
sudo cp /etc/aziot/config.toml.edge.template /etc/aziot/config.toml
A sablonfájl hivatkozásként is használható konfigurációs paraméterek hozzáadásához ebben a szakaszban.
Nyissa meg az IoT Edge konfigurációs fájlját egy szerkesztő használatával. A fájl megnyitásához használja például a
nano
szerkesztőt/etc/aziot/config.toml
.sudo nano /etc/aziot/config.toml
Keresse meg a gazdagépnév paramétert, vagy adja hozzá a konfigurációs fájl elejéhez. Frissítse az értéket úgy, hogy az legyen a teljes tartománynév (FQDN) vagy az IoT Edge szülőeszközÉNEK IP-címe. Példa:
hostname = "10.0.0.4"
Az átjárófelderítés engedélyezéséhez minden IoT Edge-átjárónak (szülőeszköznek) meg kell adnia egy gazdagépnév-paramétert , amelyet gyermekeszközei a helyi hálózaton való kereséshez fognak használni. Minden alsóbb rétegbeli IoT Edge-eszköznek meg kell adnia egy parent_hostname paramétert a szülő azonosításához. Olyan hierarchikus forgatókönyvben, amelyben egyetlen IoT Edge-eszköz szülő- és gyermekeszköz is, mindkét paraméterre szükség van.
A gazdagépnévnek és trust_bundle_cert paramétereknek a konfigurációs fájl elején kell lenniük a szakaszok előtt. Ha a paramétert a megadott szakaszok előtt hozzáadja, akkor a paraméter megfelelően lesz alkalmazva.
Használjon 64 karakternél rövidebb gazdagépnevet, amely a kiszolgálótanúsítványok közös nevének karakterkorlátja.
Konzisztensnek kell lennie az átjáróhierarchia gazdagépnév-mintájával. Használjon teljes tartományneveket vagy IP-címeket, de mindkettőt nem. Az alsóbb rétegbeli eszközök csatlakoztatásához teljes tartománynévre vagy IP-címre van szükség.
Állítsa be a gazdagépnevet az edgeHub-tároló létrehozása előtt. Ha az edgeHub fut, a konfigurációs fájl gazdagépnevének módosítása csak a tároló újbóli létrehozása után lép érvénybe. A gazdagépnév alkalmazásának ellenőrzéséről további információt a szülőkonfiguráció ellenőrzéséről szóló szakaszban talál.
Keresse meg a Megbízhatósági köteg tanúsítványparamétert , vagy adja hozzá a konfigurációs fájl elejéhez.
Frissítse a paramétert
trust_bundle_cert
az URI fájllal az eszköz legfelső szintű hitelesítésszolgáltatói tanúsítványára. Példa:trust_bundle_cert = "file:///var/aziot/certs/azure-iot-test-only.root.ca.cert.pem"
Keresse meg vagy adja hozzá az Edge CA tanúsítványszakaszt a konfigurációs fájlban. Frissítse a tanúsítványt
cert
és a titkos kulcspk
paramétereit a teljes láncú tanúsítvány és kulcsfájlok fájl URI-elérési útvonalaival a szülő IoT Edge-eszközön. Az IoT Edge megköveteli, hogy a tanúsítvány és a titkos kulcs szövegalapú, adatvédelmi szempontból továbbfejlesztett levelezési (PEM) formátumban legyen. Példa:[edge_ca] cert = "file:///var/aziot/certs/iot-edge-device-ca-gateway-full-chain.cert.pem" pk = "file:///var/aziot/secrets/iot-edge-device-ca-gateway.key.pem"
Ellenőrizze, hogy az IoT Edge-eszköz az IoT Edge-ügynök megfelelő verzióját használja-e az indításkor. Keresse meg az Alapértelmezett Edge-ügynök szakaszt, és állítsa az IoT Edge képértékét az 1.5-ös verzióra. Példa:
[agent.config] image = "mcr.microsoft.com/azureiotedge-agent:1.5"
A szülőkonfigurációs fájl elejének az alábbi példához hasonlóan kell kinéznie.
hostname = "10.0.0.4" trust_bundle_cert = "file:///var/aziot/certs/azure-iot-test-only.root.ca.cert.pem" [edge_ca] cert = "file:///var/aziot/certs/iot-edge-device-ca-gateway-full-chain.cert.pem" pk = "file:///var/aziot/secrets/iot-edge-device-ca-gateway.key.pem"
Mentse és zárja be a
config.toml
konfigurációs fájlt. Ha például a nanoszerkesztőt használja, válassza a Ctrl+O - Write Out, az Enter és a Ctrl+X - Exit billentyűkombinációt.Ha korábban már használt más tanúsítványokat az IoT Edge-hez, törölje a fájlokat a következő két könyvtárból, hogy biztosan alkalmazza az új tanúsítványokat:
/var/lib/aziot/certd/certs
/var/lib/aziot/keyd/keys
Alkalmazza a módosításokat.
sudo iotedge config apply
Ellenőrizze, hogy vannak-e hibák a konfigurációban.
sudo iotedge check --verbose
Feljegyzés
Egy újonnan kiépített eszközön az IoT Edge Hubhoz kapcsolódó hiba jelenhet meg:
× éles üzemkészség: Az Edge Hub tárolókönyvtára megmarad a gazdagép fájlrendszerén – Hiba
Nem sikerült ellenőrizni az edgeHub-tároló aktuális állapotát
Ez a hiba egy újonnan kiépített eszközön várható, mert az IoT Edge Hub modul nem fut. A hiba megoldásához az IoT Hubban állítsa be az eszköz moduljait, és hozzon létre egy üzembe helyezést. Az eszköz központi telepítésének létrehozása elindítja a modulokat az eszközön, beleértve az IoT Edge Hub modult is.
Szülőkonfiguráció ellenőrzése
A gazdagépnévnek minősített tartománynévnek (FQDN) vagy az IoT Edge-eszköz IP-címének kell lennie, mivel az IoT Edge ezt az értéket használja a kiszolgálótanúsítványban, amikor az alsóbb rétegbeli eszközök csatlakoznak. Az értékeknek egyeznie kell, vagy ip-címeltérési hibát fog kapni.
A gazdagépnév ellenőrzéséhez meg kell vizsgálnia az edgeHub-tároló környezeti változóit.
Sorolja fel a futó IoT Edge-tárolókat.
iotedge list
Ellenőrizze, hogy az edgeAgent és az edgeHub-tárolók futnak-e. A parancs kimenetének az alábbi példához hasonlónak kell lennie.
NAME STATUS DESCRIPTION CONFIG SimulatedTemperatureSensor running Up 5 seconds mcr.microsoft.com/azureiotedge-simulated-temperature-sensor:1.0 edgeAgent running Up 17 seconds mcr.microsoft.com/azureiotedge-agent:1.5 edgeHub running Up 6 seconds mcr.microsoft.com/azureiotedge-hub:1.5
Vizsgálja meg az edgeHub-tárolót .
sudo docker inspect edgeHub
A kimenetben keresse meg az EdgeDeviceHostName paramétert az Env szakaszban.
"EdgeDeviceHostName=10.0.0.4"
Ellenőrizze, hogy az EdgeDeviceHostName paraméter értéke megegyezik-e a
config.toml
gazdagépnév beállításával. Ha nem egyezik, az edgeHub-tároló a konfiguráció módosításakor és alkalmazásakor futott. Az EdgeDeviceHostName frissítéséhez távolítsa el az edgeAgent tárolót.sudo docker rm -f edgeAgent
Az edgeAgent és az edgeHub-tárolók néhány percen belül újra létre lesznek hozva és elindulnak. Az EdgeHub-tároló futtatása után vizsgálja meg a tárolót, és ellenőrizze, hogy az EdgeDeviceHostName paraméter megfelel-e a konfigurációs fájlnak.
Alsóbb rétegbeli eszköz konfigurálása
Az alsóbb rétegbeli eszköz konfigurálásához nyisson meg egy helyi vagy távoli parancshéjat.
A biztonságos kapcsolatok engedélyezéséhez egy átjáróforgatókönyv minden IoT Edge-alsóbb rétegbeli eszközét egyedi eszköz-hitelesítésszolgáltatói tanúsítvánnyal és az átjáróhierarchiában lévő összes eszköz által megosztott legfelső szintű hitelesítésszolgáltatói tanúsítvány másolatával kell konfigurálni.
Ellenőrizze, hogy a tanúsítványok megfelelnek-e a formátumkövetelményeknek.
A legfelső szintű hitelesítésszolgáltatói tanúsítvány, a gyermekeszköz hitelesítésszolgáltatói tanúsítványa és a gyermek titkos kulcs átvitele az alsóbb rétegbeli eszközre.
Másolja a tanúsítványokat és a kulcsokat a megfelelő könyvtárakba. Az eszköztanúsítványok előnyben részesített könyvtárai
/var/aziot/certs
a tanúsítványok és/var/aziot/secrets
a kulcsok.### Copy device certificate ### # If the device certificate and keys directories don't exist, create, set ownership, and set permissions sudo mkdir -p /var/aziot/certs sudo chown aziotcs:aziotcs /var/aziot/certs sudo chmod 755 /var/aziot/certs sudo mkdir -p /var/aziot/secrets sudo chown aziotks:aziotks /var/aziot/secrets sudo chmod 700 /var/aziot/secrets # Copy device full-chain certificate and private key into the correct directory sudo cp iot-device-downstream-full-chain.cert.pem /var/aziot/certs sudo cp iot-device-downstream.key.pem /var/aziot/secrets ### Root certificate ### # Copy root certificate into the /certs directory sudo cp azure-iot-test-only.root.ca.cert.pem /var/aziot/certs # Copy root certificate into the CA certificate directory and add .crt extension. # The root certificate must be in the CA certificate directory to install it in the certificate store. # Use the appropriate copy command for your device OS or if using EFLOW. # For Ubuntu and Debian, use /usr/local/share/ca-certificates/ sudo cp azure-iot-test-only.root.ca.cert.pem /usr/local/share/azure-iot-test-only.root.ca.cert.pem.crt # For EFLOW, use /etc/pki/ca-trust/source/anchors/ sudo cp azure-iot-test-only.root.ca.cert.pem /etc/pki/ca-trust/source/anchors/azure-iot-test-only.root.ca.pem.crt
Módosítsa a tanúsítványok és kulcsok tulajdonjogát és engedélyeit.
# Give aziotcs ownership to certificates # Read and write for aziotcs, read-only for others sudo chown -R aziotcs:aziotcs /var/aziot/certs sudo find /var/aziot/certs -type f -name "*.*" -exec chmod 644 {} \; # Give aziotks ownership to private keys # Read and write for aziotks, no permission for others sudo chown -R aziotks:aziotks /var/aziot/secrets sudo find /var/aziot/secrets -type f -name "*.*" -exec chmod 600 {} \;
Telepítse a legfelső szintű hitelesítésszolgáltatói tanúsítványt az alsóbb rétegbeli IoT Edge-eszközön a tanúsítványtároló platformspecifikus paranccsal történő frissítésével.
# Update the certificate store # For Ubuntu or Debian - use update-ca-certificates sudo update-ca-certificates # For EFLOW or RHEL - use update-ca-trust sudo update-ca-trust
További információ az EFLOW-ban való használatról
update-ca-trust
: CBL-Mariner SSL CA-tanúsítványok kezelése.
A parancs egy tanúsítványt /etc/ssl/certs
tartalmaz.
Updating certificates in /etc/ssl/certs...
1 added, 0 removed; done.
Alsóbb rétegbeli konfigurációs fájl frissítése
Az IoT Edge-nek már telepítve kell lennie az eszközön. Ha nem, kövesse a lépéseket egyetlen Linux IoT Edge-eszköz manuális kiépítéséhez.
Ellenőrizze, hogy a
/etc/aziot/config.toml
konfigurációs fájl létezik-e az alsóbb rétegbeli eszközön.Ha a konfigurációs fájl nem létezik az eszközön, az alábbi paranccsal hozza létre a sablonfájl alapján:
sudo cp /etc/aziot/config.toml.edge.template /etc/aziot/config.toml
A sablonfájl hivatkozásként is használható konfigurációs paraméterek hozzáadásához ebben a szakaszban.
Nyissa meg az IoT Edge konfigurációs fájlját egy szerkesztő használatával. A fájl megnyitásához használja például a
nano
szerkesztőt/etc/aziot/config.toml
.sudo nano /etc/aziot/config.toml
Keresse meg a parent_hostname paramétert, vagy adja hozzá a konfigurációs fájl elejéhez Minden alsóbb rétegbeli IoT Edge-eszköznek meg kell adnia egy parent_hostname paramétert a szülő azonosításához. Frissítse a paramétert
parent_hostname
úgy, hogy a szülőeszköz teljes tartományneve vagy IP-címe legyen, a szülőeszköz konfigurációs fájljában található gazdagépnévként megadottaknak megfelelően. Példa:parent_hostname = "10.0.0.4"
Keresse meg a Megbízhatósági köteg tanúsítványparamétert , vagy adja hozzá a konfigurációs fájl elejéhez.
Frissítse a paramétert
trust_bundle_cert
az URI fájllal az eszköz legfelső szintű hitelesítésszolgáltatói tanúsítványára. Példa:trust_bundle_cert = "file:///var/aziot/certs/azure-iot-test-only.root.ca.cert.pem"
Keresse meg vagy adja hozzá az Edge CA tanúsítványszakaszt a konfigurációs fájlban. Frissítse a tanúsítványt
cert
és a titkos kulcspk
paramétereit az IoT Edge alsóbb rétegbeli eszközén található teljes láncú tanúsítvány és kulcsfájlok fájl URI-elérési útvonalaival. Az IoT Edge megköveteli, hogy a tanúsítvány és a titkos kulcs szövegalapú, adatvédelmi szempontból továbbfejlesztett levelezési (PEM) formátumban legyen. Példa:[edge_ca] cert = "file:///var/aziot/certs/iot-device-downstream-full-chain.cert.pem" pk = "file:///var/aziot/secrets/iot-device-downstream.key.pem"
Ellenőrizze, hogy az IoT Edge-eszköz az IoT Edge-ügynök megfelelő verzióját használja-e az indításkor. Keresse meg az Alapértelmezett Edge-ügynök szakaszt, és állítsa az IoT Edge képértékét az 1.5-ös verzióra. Példa:
[agent.config] image: "mcr.microsoft.com/azureiotedge-agent:1.5"
Az alsóbb rétegbeli konfigurációs fájl elejének az alábbi példához hasonlóan kell kinéznie.
parent_hostname = "10.0.0.4" trust_bundle_cert = "file:///var/aziot/certs/azure-iot-test-only.root.ca.cert.pem" [edge_ca] cert = "file:///var/aziot/certs/iot-device-downstream-full-chain.cert.pem" pk = "file:///var/aziot/secrets/iot-device-downstream.key.pem"
Mentse és zárja be a
config.toml
konfigurációs fájlt. Ha például a nanoszerkesztőt használja, válassza a Ctrl+O - Write Out, az Enter és a Ctrl+X - Exit billentyűkombinációt.Ha korábban már használt más tanúsítványokat az IoT Edge-hez, törölje a fájlokat a következő két könyvtárból, hogy biztosan alkalmazza az új tanúsítványokat:
/var/lib/aziot/certd/certs
/var/lib/aziot/keyd/keys
Alkalmazza a módosításokat.
sudo iotedge config apply
Ellenőrizze, hogy vannak-e hibák a konfigurációban.
sudo iotedge check --verbose
Tipp.
Az IoT Edge ellenőrző eszköz tárolóval végzi el a diagnosztikai ellenőrzés egy részét. Ha ezt az eszközt alsóbb rétegbeli IoT Edge-eszközökön szeretné használni, győződjön meg arról, hogy hozzáférnek a tárolórendszerképhez
mcr.microsoft.com/azureiotedge-diagnostics:latest
, vagy rendelkeznek a tárolólemezképpel a privát tárolóregisztrációs adatbázisban.Feljegyzés
Egy újonnan kiépített eszközön az IoT Edge Hubhoz kapcsolódó hiba jelenhet meg:
× éles üzemkészség: Az Edge Hub tárolókönyvtára megmarad a gazdagép fájlrendszerén – Hiba
Nem sikerült ellenőrizni az edgeHub-tároló aktuális állapotát
Ez a hiba egy újonnan kiépített eszközön várható, mert az IoT Edge Hub modul nem fut. A hiba megoldásához az IoT Hubban állítsa be az eszköz moduljait, és hozzon létre egy üzembe helyezést. Az eszköz központi telepítésének létrehozása elindítja a modulokat az eszközön, beleértve az IoT Edge Hub modult is.
Alsóbb rétegbeli eszközök hálózati elkülönítése
A cikkben eddig ismertetett lépések átjáróként vagy alsóbb rétegbeli eszközként állítják be az IoT Edge-eszközöket, és megbízható kapcsolatot hoznak létre közöttük. Az átjáróeszköz kezeli az alsóbb rétegbeli eszköz és az IoT Hub közötti interakciókat, beleértve a hitelesítést és az üzenetek útválasztását. Az alsóbb rétegbeli IoT Edge-eszközökön üzembe helyezett modulok továbbra is létrehozhatnak saját kapcsolatokat a felhőszolgáltatásokhoz.
Egyes hálózati architektúrák, például az ISA-95 szabványt követők, igyekeznek minimalizálni az internetkapcsolatok számát. Ezekben a forgatókönyvekben közvetlen internetkapcsolat nélkül konfigurálhatja az alsóbb rétegbeli IoT Edge-eszközöket. Az IoT Hub-kommunikáció átjáróeszközön keresztüli útválasztásán túl az alsóbb rétegbeli IoT Edge-eszközök az átjáróeszközre támaszkodhatnak az összes felhőkapcsolat esetében.
Ehhez a hálózati konfigurációhoz csak az átjáróhierarchia felső rétegében lévő IoT Edge-eszköznek kell közvetlen kapcsolatot létesítenie a felhővel. Az alsó rétegekben lévő IoT Edge-eszközök csak a szülőeszközükkel vagy bármely gyermekeszközükkel kommunikálhatnak. Az átjáróeszközök speciális moduljai lehetővé teszik ezt a forgatókönyvet, beleértve a következőket:
Az API-proxymodul minden olyan IoT Edge-átjárón szükséges, amely alatt egy másik IoT Edge-eszköz található. Ez azt jelenti, hogy az átjáróhierarchia minden rétegében kell lennie, kivéve az alsó réteget. Ez a modul egy nginx fordított proxyt használ a HTTP-adatok hálózati rétegeken keresztüli átirányításához egyetlen porton keresztül. A modul iker- és környezeti változóival nagymértékben konfigurálható, így az átjáró forgatókönyvére vonatkozó követelményeknek megfelelően módosítható.
A Docker beállításjegyzék-modul az IoT Edge-átjárón helyezhető üzembe az átjáróhierarchia felső rétegében . Ez a modul felelős a tárolólemezképek lekéréséért és gyorsítótárazásáért az alsó rétegekben lévő összes IoT Edge-eszköz nevében. A modul felső rétegben való üzembe helyezésének alternatíva egy helyi beállításjegyzék használata, vagy a tárolólemezképek manuális betöltése az eszközökre, és a modul lekérési szabályzatának beállítása soha.
Az IoT Edge-en futó Azure Blob Storage az átjáróhierarchia felső rétegében található IoT Edge-átjárón helyezhető üzembe. Ez a modul felelős a blobok feltöltéséért az alsó rétegekben lévő összes IoT Edge-eszköz nevében. A blobok feltöltésének lehetősége hasznos hibaelhárítási funkciókat is lehetővé tesz az alacsonyabb rétegekben lévő IoT Edge-eszközökhöz, például a modulnapló feltöltéséhez és a csomagok feltöltésének támogatásához.
Hálózati konfiguráció
A felső rétegben lévő összes átjáróeszköz esetében a hálózati operátoroknak a következőkre van szükségük:
Adjon meg statikus IP-címet vagy teljes tartománynevet (FQDN).
Engedélyezze a kimenő kommunikációt erről az IP-címről az Azure IoT Hub-gazdagépnév felé a 443-es (HTTPS) és az 5671-es (AMQP) porton keresztül.
Engedélyezze a kimenő kommunikációt erről az IP-címről az Azure Container Registry-állomásnév felé a 443-os (HTTPS) porton keresztül.
Az API-proxymodul egyszerre csak egy tárolóregisztrációs adatbázis kapcsolatait képes kezelni. Javasoljuk, hogy minden tárolórendszerképet, beleértve a Microsoft Container Registry (mcr.microsoft.com) által biztosított nyilvános lemezképeket is, tárolja a privát tárolóregisztrációs adatbázisban.
Az alsó rétegben lévő összes átjáróeszköz esetében a hálózati operátoroknak a következőkre van szükségük:
- Adjon meg egy statikus IP-címet.
- Engedélyezze a kimenő kommunikációt erről az IP-címről a szülőátjáró IP-címére a 443-es (HTTPS) és az 5671-es (AMQP) porton keresztül.
Modulok üzembe helyezése felső rétegbeli eszközökre
Az átjáróhierarchia felső rétegében található IoT Edge-eszköz rendelkezik olyan szükséges modulokkal, amelyeket üzembe kell helyezni, az eszközön futtatható számítási feladatok moduljai mellett.
Az API proxymodul úgy lett kialakítva, hogy testre szabható legyen a leggyakoribb átjáróforgatókönyvek kezelésére. Ez a cikk egy példa a modulok alapkonfigurációban való beállítására. Részletesebb információkért és példákért tekintse meg az API-proxymodul konfigurálását az átjáróhierarchia forgatókönyvéhez .
Az Azure Portalon keresse meg az IoT hubot.
Válassza az Eszközök lehetőséget az Eszközfelügyelet menüben.
Válassza ki a listából a felső rétegben konfigurálni kívánt IoT Edge-eszközt.
Válassza a Set modules (Modulok beállítása) lehetőséget.
Az IoT Edge-modulok szakaszban válassza a Hozzáadás, majd a Marketplace-modul kiválasztása lehetőséget.
Keresse meg és válassza ki az IoT Edge API proxymodult .
Válassza ki az API-proxymodul nevét az üzembe helyezett modulok listájából, és frissítse a következő modulbeállításokat:
A Környezeti változók lapon frissítse a NGINX_DEFAULT_PORT értékét a következőre
443
: .A Tároló létrehozása beállításlapon frissítse a portkötéseket a 443-as portra való hivatkozáshoz.
{ "HostConfig": { "PortBindings": { "443/tcp": [ { "HostPort": "443" } ] } } }
Ezek a módosítások konfigurálják az API-proxymodult a 443-as port figyelésére. A portkötés ütközésének megakadályozása érdekében konfigurálnia kell az edgeHub modult, hogy ne figyelje a 443-at. Ehelyett az API-proxymodul az edgeHub-forgalmat a 443-es porton irányítja át.
Válassza a Futtatókörnyezet Gépház lehetőséget, és keresse meg az edgeHub-modul létrehozási beállításait. Törölje a 443-as port kötését, és hagyja meg az 5671-8883-at.
{ "HostConfig": { "PortBindings": { "5671/tcp": [ { "HostPort": "5671" } ], "8883/tcp": [ { "HostPort": "8883" } ] } } }
A Mentés gombra kattintva mentheti a módosításokat a futtatókörnyezet beállításaiba.
Válassza ismét a Hozzáadás lehetőséget, majd válassza az IoT Edge-modult.
Adja meg a következő értékeket a Docker beállításjegyzék-modul üzembe helyezéséhez:
IoT Edge-modul neve:
registry
A Modul beállításai lap Kép URI-ja:
registry:latest
A Környezeti változók lapon adja hozzá a következő környezeti változókat:
Név:
REGISTRY_PROXY_REMOTEURL
Érték: Annak a tárolóregisztrációs adatbázisnak az URL-címe, amelyhez le szeretné képezni ezt a beállításjegyzék-modult. Például:https://myregistry.azurecr
.A beállításjegyzék-modul csak egy tárolóregisztrációs adatbázishoz tud megfeleltetni, ezért azt javasoljuk, hogy az összes tárolólemezképet egyetlen privát tárolóregisztrációs adatbázisba rendelje.
Név:
REGISTRY_PROXY_USERNAME
Érték: A tárolóregisztrációs adatbázisba való hitelesítéshez használt felhasználónév.Név:
REGISTRY_PROXY_PASSWORD
Érték: A tárolóregisztrációs adatbázisba való hitelesítéshez szükséges jelszó.
A Tároló létrehozása beállítások lapon illessze be a következőt:
{ "HostConfig": { "PortBindings": { "5000/tcp": [ { "HostPort": "5000" } ] } } }
Válassza a Hozzáadás lehetőséget a modul üzembe helyezéséhez való hozzáadásához.
Válassza a Következő: Útvonalak lehetőséget a következő lépéshez.
Ha engedélyezni szeretné, hogy az alsóbb rétegbeli eszközökről érkező eszközökről érkező üzenetek elérjék az IoT Hubot, adjon meg egy útvonalat, amely minden üzenetet átad az IoT Hubnak. Példa:
- Név:
Route
- Érték:
FROM /messages/* INTO $upstream
- Név:
Az utolsó lépéshez válassza a Véleményezés + létrehozás lehetőséget .
Válassza a Létrehozás lehetőséget az eszközön való üzembe helyezéshez.
Modulok üzembe helyezése alsó rétegbeli eszközökre
Az átjáróhierarchia alsó rétegeiben található IoT Edge-eszközöknek van egy szükséges moduljuk, amelyet üzembe kell helyezni rajtuk, az eszközön futtatható számítási feladatok moduljai mellett.
Tároló lemezképeinek átirányítása lekérések
Az átjáróhierarchiákban lévő IoT Edge-eszközökhöz szükséges proxymodul megvitatása előtt fontos tisztában lenni azzal, hogy az alsó rétegekben lévő IoT Edge-eszközök hogyan kapják meg a modulképeket.
Ha az alsó rétegbeli eszközök nem tudnak csatlakozni a felhőhöz, de azt szeretné, hogy a szokásos módon kérjék le a modulrendszerképeket, akkor az átjáróhierarchia felső rétegbeli eszközét konfigurálni kell a kérések kezeléséhez. A felső rétegbeli eszköznek futtatnia kell egy Docker-beállításjegyzék-modult, amely a tárolóregisztrációs adatbázishoz van hozzárendelve. Ezután konfigurálja az API-proxymodult a tárolókérések átirányításához. Ezeket a részleteket a cikk korábbi szakaszai ismertetik. Ebben a konfigurációban az alsó rétegbeli eszközöknek nem a felhőbeli tárolóregisztrációs adatbázisokra, hanem a felső rétegben futó beállításjegyzékre kell mutatniuk.
Például a hívás mcr.microsoft.com/azureiotedge-api-proxy:1.1
helyett az alsó rétegbeli eszközöknek kell meghívni $upstream:443/azureiotedge-api-proxy:1.1
őket.
A $upstream paraméter egy alsó rétegbeli eszköz szülőjére mutat, így a kérés végigvezeti az összes réteget, amíg el nem éri azt a felső réteget, amely proxykörnyezettel rendelkezik, és a tárolókéréseket a beállításjegyzék-modulhoz irányítja. A :443
példában szereplő portot a szülőeszköz API-proxymodulja által figyelt portra kell cserélni.
Az API-proxymodul csak egy beállításjegyzék-modulhoz tud irányítani, és minden beállításjegyzék-modul csak egy tárolóregisztrációs adatbázishoz tud megfeleltetni. Ezért minden olyan lemezképet, amelyet az alsó rétegbeli eszközöknek le kell húzni, egyetlen tárolóregisztrációs adatbázisban kell tárolniuk.
Ha nem szeretné, hogy az alsó rétegbeli eszközök modul-lekéréses kérelmeket hajtsanak létre egy átjáróhierarchián keresztül, egy másik lehetőség egy helyi beállításjegyzék-megoldás kezelése. Vagy küldje le a modulrendszerképeket az eszközökre az üzembe helyezések létrehozása előtt, majd állítsa az imagePullPolicyértéket soha.
Az IoT Edge-ügynök bootstrapálása
Az IoT Edge-ügynök az első futtatókörnyezeti összetevő, amely bármilyen IoT Edge-eszközön elindul. Meg kell győződnie arról, hogy az alsóbb rétegbeli IoT Edge-eszközök hozzáférhetnek az EdgeAgent modul lemezképéhez, amikor elindulnak, majd hozzáférhetnek az üzembe helyezésekhez, és elindíthatják a modul többi lemezképét.
Amikor bemegy egy IoT Edge-eszköz konfigurációs fájljába a hitelesítési adatok, tanúsítványok és szülő gazdagépnév megadásához, frissítse az edgeAgent tárolórendszerképet is.
Ha a legfelső szintű átjáróeszköz tárolórendszerkép-kérelmek kezelésére van konfigurálva, cserélje le mcr.microsoft.com
a szülő gazdagépnevet és az API-proxy figyelési portot. Az üzembe helyezési jegyzékben parancsikonként használhatja $upstream
, de ehhez az edgeHub-modulnak kell kezelnie az útválasztást, és ez a modul jelenleg nem indult el. Példa:
[agent]
name = "edgeAgent"
type = "docker"
[agent.config]
image: "{Parent FQDN or IP}:443/azureiotedge-agent:1.5"
Ha helyi tárolóregisztrációs adatbázist használ, vagy manuálisan adja meg a tárolólemezképeket az eszközön, ennek megfelelően frissítse a konfigurációs fájlt.
Futtatókörnyezet konfigurálása és proxymodul üzembe helyezése
Az API-proxymodul szükséges a felhő és az alsóbb rétegbeli IoT Edge-eszközök közötti összes kommunikáció útválasztásához. A hierarchia alsó rétegében lévő IoT Edge-eszközöknek nincs szükségük erre a modulra, ha nincsenek alsóbb rétegbeli IoT Edge-eszközök.
Az API proxymodul úgy lett kialakítva, hogy testre szabható legyen a leggyakoribb átjáróforgatókönyvek kezelésére. Ez a cikk röviden ismerteti a modulok alapkonfigurációban való beállításának lépéseit. Részletesebb információkért és példákért tekintse meg az API-proxymodul konfigurálását az átjáróhierarchia forgatókönyvéhez .
Az Azure Portalon keresse meg az IoT hubot.
Válassza az Eszközök lehetőséget az Eszközfelügyelet menüben.
Válassza ki a listából a konfigurálni kívánt alsó rétegbeli IoT Edge-eszközt.
Válassza a Set modules (Modulok beállítása) lehetőséget.
Az IoT Edge-modulok szakaszban válassza a Hozzáadás, majd a Marketplace-modul kiválasztása lehetőséget.
Keresse meg és válassza ki az IoT Edge API proxymodult .
Válassza ki az API-proxymodul nevét az üzembe helyezett modulok listájából, és frissítse a következő modulbeállításokat:
A Modul beállításai lapon frissítse a Kép URI értékét. Cserélje le a
mcr.microsoft.com
elemet a$upstream:443
kérdésre.A Környezeti változók lapon frissítse a NGINX_DEFAULT_PORT értékét a következőre
443
: .A Tároló létrehozása beállításlapon frissítse a portkötéseket a 443-as portra való hivatkozáshoz.
{ "HostConfig": { "PortBindings": { "443/tcp": [ { "HostPort": "443" } ] } } }
Ezek a módosítások konfigurálják az API-proxymodult a 443-as port figyelésére. A portkötés ütközésének megakadályozása érdekében konfigurálnia kell az edgeHub modult, hogy ne figyelje a 443-at. Ehelyett az API-proxymodul az edgeHub-forgalmat a 443-es porton irányítja át.
Válassza a Futtatókörnyezet Gépház lehetőséget.
Frissítse az edgeHub-modul beállításait:
- A Kép mezőben cserélje le a következőre
mcr.microsoft.com
$upstream:443
: . - A Beállítások létrehozása mezőben törölje a 443-as port kötését, és hagyja meg az 5671-8883-at.
{ "HostConfig": { "PortBindings": { "5671/tcp": [ { "HostPort": "5671" } ], "8883/tcp": [ { "HostPort": "8883" } ] } } }
- A Kép mezőben cserélje le a következőre
Frissítse az edgeAgent modul beállításait:
- A Kép mezőben cserélje le a következőre
mcr.microsoft.com
$upstream:443
: .
- A Kép mezőben cserélje le a következőre
A Mentés gombra kattintva mentheti a módosításokat a futtatókörnyezet beállításaiba.
Válassza a Következő: Útvonalak lehetőséget a következő lépéshez.
Ha engedélyezni szeretné, hogy az alsóbb rétegbeli eszközökről érkező eszközökről érkező üzenetek elérjék az IoT Hubot, adjon meg egy útvonalat, amely az összes üzenetet átadja.
$upstream
A felsőbb rétegbeli paraméter alsó rétegbeli eszközök esetén a szülőeszközre mutat. Példa:- Név:
Route
- Érték:
FROM /messages/* INTO $upstream
- Név:
Az utolsó lépéshez válassza a Véleményezés + létrehozás lehetőséget .
Válassza a Létrehozás lehetőséget az eszközön való üzembe helyezéshez.
A gyermek és a szülő közötti kapcsolat ellenőrzése
Ellenőrizze a TLS/SSL kapcsolatot a gyermek és a szülő között az alábbi
openssl
parancs futtatásával az alsóbb rétegbeli eszközön. Cserélje le<parent hostname>
a szülő teljes tartománynevét vagy IP-címét.openssl s_client -connect <parent hostname>:8883 </dev/null 2>&1 >/dev/null
A parancsnak az alábbi példához hasonlóan érvényesítenie kell a szülőtanúsítvány-lánc sikeres érvényesítését:
azureUser@child-vm:~$ openssl s_client -connect <parent hostname>:8883 </dev/null 2>&1 >/dev/null Can't use SSL_get_servername depth=3 CN = Azure_IoT_Hub_CA_Cert_Test_Only verify return:1 depth=2 CN = Azure_IoT_Hub_Intermediate_Cert_Test_Only verify return:1 depth=1 CN = gateway.ca verify return:1 depth=0 CN = <parent hostname> verify return:1 DONE
A "Nem használható SSL_get_servername" üzenet figyelmen kívül hagyható.
Az
depth=0 CN =
értéknek meg kell egyeznie a szülő konfigurációs fájljában megadott állomásnév paraméterévelconfig.toml
.Ha a parancs túllépi az időkorlátot, előfordulhat, hogy blokkolt portok vannak a gyermek és a szülőeszközök között. Tekintse át az eszközök hálózati konfigurációját és beállításait.
Figyelmeztetés
Ha nem használ teljes láncú tanúsítványt az átjáró
[edge_ca]
szakaszában, az az alsóbb rétegbeli eszköz tanúsítványérvényesítési hibáit eredményezi. A fenti parancs például aopenssl s_client ...
következőt hozza létre:Can't use SSL_get_servername depth=1 CN = gateway.ca verify error:num=20:unable to get local issuer certificate verify return:1 depth=0 CN = <parent hostname> verify return:1 DONE
Ugyanez a probléma az alsóbb rétegbeli IoT Edge-eszközhöz csatlakozó TLS-kompatibilis eszközök esetében is jelentkezik, ha a teljes láncú eszköztanúsítványt nem használják és konfigurálják az alsóbb rétegbeli eszközön.
A Microsoft Defender for IoT integrálása az IoT Edge-átjáróval
Alsóbb rétegbeli eszközökkel integrálható a Microsoft Defender for IoT mikroügynöke az IoT Edge-átjáróval alsóbb rétegbeli eszközproxy használatával.
További információ az IoT-alapú Defender mikroügynökről.
A Microsoft Defender for IoT integrálása az IoT Edge-rel alsóbb rétegbeli eszközproxy használatával:
Jelentkezzen be az Azure Portalra.
Az IoT Hub>
Your Hub
>eszközfelügyeleti>eszközeinek megnyitásaVálassza ki az eszközt.
Válassza ki a modul ikerpéldányát, amelyet ezekből az
DefenderIotMicroAgent
utasításokból hozott létre.Válassza ki a gombot a Csatlakozás ion sztring (elsődleges kulcs) másolásához.
Illessze be a Csatlakozás ion sztringet egy szövegszerkesztő alkalmazásba, és adja hozzá a GatewayHostName nevet a sztringhez. Például:
HostName=nested11.azure-devices.net;DeviceId=downstream1;ModuleId=module1;SharedAccessKey=xxx;GatewayHostName=10.16.7.4
.Nyisson meg egy terminált az alsóbb rétegbeli eszközön.
A következő paranccsal helyezze az utf-8 kódolt kapcsolati sztring az Felhőhöz készült Defender ügynökkönyvtárában a következő elérési úton található fájlba
connection_string.txt
:/etc/defender_iot_micro_agent/connection_string.txt
sudo bash -c 'echo "<connection string>" > /etc/defender_iot_micro_agent/connection_string.txt'
A
connection_string.txt
fájlnak most az alábbi elérési úton/etc/defender_iot_micro_agent/connection_string.txt
kell lennie.Indítsa újra a szolgáltatást a következő paranccsal:
sudo systemctl restart defender-iot-micro-agent.service
Lépjen vissza az eszközre.
Engedélyezze az IoT Hubhoz való kapcsolatot, és válassza a fogaskerék ikont.
Válassza ki a szülőeszközt a megjelenített listából.
Győződjön meg arról, hogy a 8883-as port (MQTT) nyitva van az alsóbb rétegbeli eszköz és az IoT Edge-eszköz között.
Következő lépések
IoT Edge-eszköz használata átjáróként
Az API-proxymodul konfigurálása az átjáróhierarchia forgatókönyvéhez