Azure IoT Edge for Linux on Windows のネットワーク構成
適用対象: IoT Edge 1.4
重要
サポートされているリリースは、IoT Edge 1.5 LTS と IoT Edge 1.4 です。 IoT Edge 1.4 LTS は、2024 年 11 月 12 日にサポートが終了します。 以前のリリースの場合は、「IoT Edge を更新する」を参照してください。
この記事では、シナリオに最適なネットワーク オプションを決定し、Linux on Windows (EFLOW) 構成要件の IoT Edge に関する分析情報を提供します。
IoT Edge for Linux on Windows (EFLOW) 仮想マシンをネットワーク経由でユーザーのホストや、Windows ホスト上の他の仮想マシン、あるいは外部ネットワーク上の他のデバイス/場所に接続するには、それに応じて仮想マシン ネットワークを構成する必要があります。
Windows クライアント SKU で基本的なネットワークを確立する最も簡単な方法は、Windows Hyper-V 機能を有効にするときに既に作成されている既定のスイッチを使用することです。 ただし、Windows Server SKU デバイスでは、既定のスイッチがないため、ネットワークは少し複雑になります。 Windows Server の仮想スイッチの作成の詳細については、「Windowsでの Linux 用仮想スイッチの作成」を参照してください。
EFLOW ネットワークの概念の詳細については、「Windows ネットワーク上の Linux のIoT Edge」を参照してください。
VM 仮想スイッチの構成
EFLOW 仮想マシンをデプロイする前の最初の手順は、使用する仮想スイッチの種類を決定することです。 EFLOW でサポートされる仮想スイッチの詳細については、「EFLOW 仮想スイッチの選択」を参照してください。 使用する仮想スイッチの種類を決定したら、仮想スイッチを正しく作成してください。 仮想スイッチの作成の詳細については、「Hyper-V 仮想マシンの仮想スイッチを作成する」を参照してください。
Note
Windows クライアントを使用していて、既定のスイッチを使用する場合は、スイッチの作成は必要なく、-vSwitchType
パラメーターも必要ありません-vSwitchName
。
Note
VMware インフラストラクチャと外部スイッチ内で Windows 仮想マシンを使用している場合は、「EFLOW 入れ子になった仮想化」を参照してください。
仮想スイッチを作成した後、デプロイを開始する前に、仮想スイッチの名前と種類が正しく設定され、Windows ホスト OS の下に一覧表示されていることを確認します。 Windows ホスト OS 内のすべての仮想スイッチを一覧表示するには、管理者特権の PowerShell セッションで、次の PowerShell コマンドレットを使用します。
Get-VmSwitch
Windows ホストの仮想スイッチに応じて、出力は次のようになります。
Name SwitchType NetAdapterInterfaceDescription
---- ---------- ------------------------------
Default Switch Internal
IntOff Internal
EFLOW-Ext External
特定の仮想スイッチ (内部 または 外部) を使用するには、正しいパラメーター -vSwitchName
と vSwitchType
を指定してください。 たとえば、EFLOW-Ext という名前の外部スイッチを使用して EFLOW VM をデプロイする場合、管理者特権の PowerShell セッションで次のコマンドを使用します。
Deploy-Eflow -vSwitchType "External" -vSwitchName "EFLOW-Ext"
VM IP アドレスの割り当てを構成する
使用している仮想スイッチの種類を決定した後の 2 番目の手順は、仮想スイッチの IP アドレス割り当ての種類を決定することです。 IP 割り当てオプションの詳細については、「EFLOW でサポートされる IP 割り当て」を参照してください。 使用している仮想スイッチの種類に応じて、サポートされている IP アドレス割り当てメカニズムを必ず使用してください。
既定では、 静的 IP アドレスが設定されていない場合、EFLOW VM は DHCP を使用して仮想スイッチに IP アドレスを割り当てようとします。 仮想スイッチ ネットワークに DHCP サーバーがあることを確認します。使用できない場合、EFLOW VM のインストールは IP アドレスの割り当てに失敗し、インストールは失敗します。 既定のスイッチを使用している場合は、仮想スイッチに既定で DHCP が既に存在するため、DHCP サーバーを確認する必要はありません。 ただし、 内部または外部の仮想スイッチを使用している場合は、次の手順を使用して確認できます。
- コマンド プロンプトを開きます。
- すべての IP 構成と情報を表示する
ipconfig /all
- 外部仮想スイッチを使用している場合は、仮想スイッチの作成に使用されるネットワーク インターフェイスを確認します。 内部仮想スイッチを使用している場合は、スイッチに使用されている名前を探してください。 スイッチが見つかったら、
DHCP Enabled
に[はい] または [いいえ] と表示されているかどうかを確認し、DHCP server
アドレスを確認します。
静的 IP を使用している場合は、EFLOW デプロイ中に 3 つのパラメーター -ip4Address
、ip4GatewayAddress
、ip4PrefixLength
を指定する必要があります。 1 つのパラメーターが見つからないか正しくない場合、EFLOW VM のインストールは IP アドレスの割り当てに失敗し、インストールは失敗します。 EFLOW VM 展開の詳細については、「IoT Edge for Linux on Windows 用の PowerShell 関数」を参照してください。 たとえば、EFLOW-Ext という名前の外部スイッチと静的 IP 構成を使用して EFLOW VM をデプロイする場合、IP アドレスが 192.168.0.2、ゲートウェイ IP アドレスが 192.168.0.1、IP プレフィックスの長さが 24 に等しい場合、管理者特権の PowerShell セッションで次のコマンドを使用します。
Deploy-Eflow -vSwitchType "External" -vSwitchName "EFLOW-Ext" -ip4Address "192.168.0.2" -ip4GatewayAddress "192.168.0.1" -ip4PrefixLength "24"
ヒント
EFLOW VM は、再起動後もメイン (デプロイ時に使用) 仮想スイッチに対して同じ MAC アドレスを保持します。 DHCP MAC アドレス予約を使用している場合は、PowerShell コマンドレット Get-EflowVmAddr
を使用してメイン仮想スイッチの MAC アドレスを取得できます。
IP 割り当てを確認する
EFLOW VM に割り当てられた IP アドレスを確認する方法は複数あります。 最初に、管理者特権の PowerShell セッションを使用して、EFLOW コマンドレットを使用します。
Get-EflowVmAddr
次のような内容が出力されます。
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
もう 1 つの方法は、コマンドレット Connect-Eflow
を使用して VM にリモート接続し、bash コマンド ifconfig eth0
を使用して eth0 インターフェイスを確認することです。 出力は次のようになります。
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)
VM DNS サーバーを構成する
既定では、EFLOW 仮想マシンには DNS 構成がありません。 DHCP を使用したデプロイでは、DHCP サーバーによって伝達された DNS 構成の取得が試みられます。 静的 IP を使用している場合は、DNS サーバーを手動で設定する必要があります。 EFLOW VM DNS の詳細については、「EFLOW DNS の構成」を参照してください。
既定のインターフェイス (eth0) で使用される DNS サーバーを確認するには、次のコマンドを使用します。
resolvectl | grep eth0 -A 8
次のような内容が出力されます。 一覧の [現在の DNS サーバー] フィールドと [DNS サーバー] フィールドの IP アドレスを確認します。 IP アドレスがない場合、または IP アドレスが有効な DNS サーバー IP アドレスでない場合、DNS サービスは機能しません。
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
DNS サーバー アドレスを手動で設定する必要がある場合は、EFLOW PowerShell コマンドレット Set-EflowVmDNSServers
を使用できます。 EFLOW VM 構成の詳細については、「IoT Edge for Linux on Windows 用の PowerShell 関数」を参照してください。
DNS 解決のチェック
DNS 解決を確認する方法は複数あります。
まず、EFLOW VM 内から、コマンドを使用して特定の resolvectl query
URL を照会します。 たとえば、アドレス microsoft.com に対して名前解決が機能しているかどうかを確認するには、次のものを使用します。
resolvectl query microsoft.com
出力は次のようになります。
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
dig
コマンドを使用して特定の URL を照会することもできます。 たとえば、アドレス microsoft.com に対して名前解決が機能しているかどうかを確認するには、次のものを使用します。
dig microsoft.com
出力は次のようになります。
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
次のステップ
Windows セキュリティ上の Linux 用 Edge Azure IoTの詳細を参照してください。