適用於 Azure IoT Edge for Linux on Windows 的網路設定

適用於:IoT Edge 1.4 複選標記 IoT Edge 1.4

重要

支援 IoT Edge 1.5 LTS 和 IoT Edge 1.4 版本。 IoT Edge 1.4 LTS 於 2024 年 11 月 12 日結束生命週期。 如果您是舊版,請參閱更新 IoT Edge

本文可協助您決定最適合您案例的網路選項,並提供 Windows 上適用於 Linux 的 IoT Edge 設定需求的深入解析。

若要透過網路將 Windows 上的 IoT Edge for Linux 連線到主機、連線到 Windows 主機上的其他虛擬機,以及外部網路上的其他裝置/位置,必須據以設定虛擬機網路功能。

在 Windows 用戶端 SKU 上建立基本網路的最簡單方式是使用 預設交換器,這是在啟用 Windows Hyper-V 功能時已建立的。 不過,在 Windows Server SKU 裝置上,網路功能有點複雜,因為沒有 可用的默認交換器 。 如需建立 Windows Server 虛擬交換器的詳細資訊,請參閱 在 Windows 上建立 Linux 的虛擬交換器。

如需 EFLOW 網路概念的詳細資訊,請參閱 Windows 網路上適用於 Linux 的 IoT Edge。

設定 VM 虛擬交換器

部署EFLOW虛擬機之前的第一個步驟是判斷您使用的虛擬交換器類型。 如需EFLOW支援之虛擬交換器的詳細資訊,請參閱 EFLOW虛擬交換器選擇。 一旦您判斷要使用的虛擬交換器類型,請務必正確建立虛擬交換器。 如需建立虛擬交換器的詳細資訊,請參閱 建立 Hyper-V 虛擬機的虛擬交換器

注意

如果您使用 Windows 用戶端,而且想要使用 預設參數,則不需要建立任何參數,不需要 -vSwitchType-vSwitchName 參數。

注意

如果您在 VMware 基礎結構和 外部交換器內使用 Windows 虛擬機器,請參閱 EFLOW 巢狀虛擬化

建立虛擬交換器和開始部署之前,請確定您的虛擬交換器名稱和類型已正確設定,並列在 Windows 主機 OS 底下。 若要列出 Windows 主機 OS 中的所有虛擬交換器,請在提升許可權的 PowerShell 會話中,使用下列 PowerShell Cmdlet:

Get-VmSwitch

視 Windows 主機的虛擬交換器而定,輸出應該如下所示:

Name           SwitchType NetAdapterInterfaceDescription
----           ---------- ------------------------------
Default Switch Internal
IntOff         Internal
EFLOW-Ext      External

若要使用特定的虛擬交換器(內部外部),請確定您指定正確的參數: -vSwitchNamevSwitchType。 例如,如果您想要使用名為 EFLOW-Ext 的外部交換器來部署 EFLOW VM,請在提升許可權的 PowerShell 會話中使用下列命令:

Deploy-Eflow -vSwitchType "External" -vSwitchName "EFLOW-Ext"

設定 VM IP 位址配置

決定您所使用的虛擬交換器類型后,第二個步驟是判斷虛擬交換器的IP位址配置類型。 如需IP設定選項的詳細資訊,請參閱 EFLOW支援的IP配置。 根據您使用的虛擬交換器類型,請務必使用支援的IP位址配置機制。

根據預設,如果未 設定靜態IP 位址,EFLOW VM 會嘗試使用 DHCP 將IP位址配置給虛擬交換器。 請確定虛擬交換器網路上有 DHCP 伺服器;如果無法使用,EFLOW VM 安裝將無法配置IP位址,而安裝會失敗。 如果您使用 預設交換器,則不需要檢查 DHCP 伺服器,因為虛擬交換器預設已有 DHCP。 不過,如果使用 內部外部 虛擬交換器,您可以使用下列步驟來檢查:

  1. 開啟命令提示字元。
  2. 顯示所有IP組態和資訊
    ipconfig /all
    
  3. 如果您使用 外部 虛擬交換器,請檢查用來建立虛擬交換器的網路介面。 如果您使用 內部 虛擬交換器,只要尋找用於交換器的名稱。 切換找到之後,請檢查是否顯示 [DHCP Enabled] 或 [否],然後檢查DHCP server位址。

如果您使用靜態IP,則必須在EFLOW部署期間指定三個參數:-ip4Addressip4GatewayAddressip4PrefixLength 如果遺漏或不正確,EFLOW VM 安裝將無法配置IP位址,而安裝會失敗。 如需 EFLOW VM 部署的詳細資訊,請參閱 Windows 上適用於適用於 Linux 的 IoT Edge 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 Cmdlet 取得主要虛擬交換器 MAC 位址: Get-EflowVmAddr

檢查IP配置

有多種方式可以檢查已配置給EFLOW VM的IP位址。 首先,使用提升許可權的 PowerShell 會話,使用 EFLOW Cmdlet:

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

另一種方式是使用 Connect-Eflow Cmdlet 從遠端連線到 VM,然後您可以使用 ifconfig eth0 bash 命令,並檢查 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 Cmdlet Set-EflowVmDNSServers。 如需 EFLOW VM DNS 設定的詳細資訊,請參閱 Windows 上適用於適用於 Linux 的 IoT Edge 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的 Azure IoT Edge。

在 Windows 更新上隨時掌握最新適用於 Linux 的 IoT Edge。