Azure IoT Edge for Linux on Windows 虛擬交換器建立
適用於: IoT Edge 1.1
重要
IoT Edge 1.1 終止支援日期為 2022 年 12 月 13 日。 如需此產品、服務、技術或 API 的支援資訊,請參閱 Microsoft 產品生命週期。 如需更新至最新版IoT Edge的詳細資訊,請參閱 更新IoT Edge。
Azure IoT Edge for Linux on Windows 使用主機電腦上的虛擬交換器來與虛擬機器通訊。 Windows 桌面版本隨附可使用的預設參數,但 Windows Server 則未隨附。 您必須先建立虛擬交換器,才能將 IoT Edge for Linux on Windows 部署至 Windows Server 裝置。 此外,您可以視需要使用本指南來建立您的自訂虛擬交換器。
本文說明如何在 Windows 裝置上建立虛擬交換器,以安裝 IoT Edge for Linux on Windows。 此程序分為下列步驟:
- 建立虛擬交換器
- 建立 NAT 資料表
- 安裝和設定 DHCP 伺服器
必要條件
- Windows 裝置。 如需支援的 Windows 版本的詳細資訊,請參閱作業系統。
- 在 Windows 裝置上安裝 Hyper-V 角色。 如需如何啟用 Hyper-V 的詳細資訊,請參閱安裝和佈建 Azure IoT Edge for Linux on Windows 裝置。
建立虛擬交換器
本節中的下列步驟是虛擬交換器建立的一般指南。 確保虛擬交換器設定符合您的網路環境。
注意
下列步驟描述如何建立內部或私人虛擬交換器。 如需改為建立外部交換器的詳細資訊,請參閱為 Hyper-V 虛擬機器建立虛擬交換器。 請注意,如果您使用 Azure VM,虛擬交換器不能是外部。
在提高權限工作階段中開啟 PowerShell。 您可以在 Windows 上開啟 [開始] 窗格,然後輸入 "PowerShell"。 以滑鼠右鍵按一下顯示的 Windows PowerShell 應用程式,然後選取 [以系統管理員身分執行]。
檢查 Windows 主機上的虛擬交換器,並確定您還沒有可使用的虛擬交換器。 您可以在 PowerShell 中執行下列 Get-VMSwitch 命令來完成此操作:
Get-VMSwitch
如果已建立名為 Default Switch 的虛擬交換器,且您不需要自訂虛擬交換器,不需要遵循本指南中的其餘步驟,您便應該能夠安裝 IoT Edge for Linux on Windows。
執行下列 New-VMSwitch 命令,以建立具有您選擇的名稱和內部或私人交換器類型的新 VM 交換器,並取代預留位置值:
New-VMSwitch -Name "{switchName}" -SwitchType {switchType}
若要取得您所建立交換器的 IP 位址,您必須先取得其介面索引。 您可以執行下列 Get-NetAdapter 命令來取得此值,並取代預留位置值:
(Get-NetAdapter -Name "{switchName}").ifIndex
如果在嘗試執行此命令時收到錯誤,您可能需要變更
Name
參數的值,以遵循vEthernet ({switchName})
範本。 您應該會收到類似下列範例的輸出:記下介面索引值,因為您將需要在後續步驟中使用。
對每個環境產生的虛擬交換器 IP 位址將會不同。 請注意,對於本指南中的其餘命令,您將使用衍生自 172.20.X.Y 系列的 IP 位址。 不過,您可以使用自己的位址系列和 IP 位址。
您將建立並使用下列 IP 位址:
IP 位址 範本 範例 閘道 IP xxx.xxx.xxx.1 172.20.0.1 NAT IP xxx.xxx.xxx.0 172.20.0.0 起始 IP xxx.xxx.xxx.100 172.20.0.100 結束 IP xxx.xxx.xxx.200 172.20.0.200 以新的數值取代虛擬交換器 IP 位址系列的最後一個八位元,以設定閘道 IP 位址。 例如,將最後一個八位元取代為 1,並取得位址 172.20.0.1。 執行下列 New-NetIPAddress 命令來設定新的閘道 IP 位址,取代預留位置值:
New-NetIPAddress -IPAddress {gatewayIp} -PrefixLength 24 -InterfaceIndex {interfaceIndex}
執行此命令應該會輸出類似下列範例的資訊:
建立網路位址轉譯 (NAT) 物件,將內部網路位址轉譯為外部網路。 使用先前步驟中的相同 IPv4 系列位址。 根據步驟 6 中的資料表,NAT IP 位址對應於原始 IP 位址系列,只是最後一個八位元被取代為新的數值,例如 0。 執行下列 New-NetNat 命令來設定 NAT IP 位址,取代預留位置值:
New-NetNat -Name "{switchName}" -InternalIPInterfaceAddressPrefix "{natIp}/24"
執行此命令應該會輸出類似下列範例的資訊:
參數現在已建立。 下一步,您將設定 DNS。
建立 DHCP 伺服器
注意
只要使用靜態 IP 參數 (ip4Address
、ip4GatewayAddress
、ip4PrefixLength
) 部署 EFLOW VM,就可以繼續安裝,而不需要 DHCP 伺服器。 如果將使用動態 IP 配置,請確保繼續進行 DHCP 伺服器安裝。
警告
可能需要授權,才能在公司網路環境中部署 DHCP 伺服器。 檢查虛擬交換器設定是否符合公司網路的原則。 如需詳細資訊,請參閱使用 Windows PowerShell 部署 DHCP。
檢查是否已在主機電腦上安裝 DHCP 伺服器功能。 尋找 [安裝狀態] 資料行。 如果值為 "Installed",您可以略過下列步驟。
Get-WindowsFeature -Name 'DHCP'
如果尚未安裝 DHCP 伺服器,請執行下列命令來執行安裝:
Install-WindowsFeature -Name 'DHCP' -IncludeManagementTools
將 DHCP 伺服器新增至預設本機安全性群組,然後重新啟動伺服器。
netsh dhcp add securitygroups Restart-Service dhcpserver
當 DHCP 伺服器啟動時,您會收到下列警告訊息:
WARNING: Waiting for service 'DHCP Server (dhcpserver)' to start...
若要設定 DHCP 伺服器的 IP 範圍以提供使用,您必須將一個 IP 位址設定為開始 IP,並將一個 IP 位址設定為結束 IP。 此範圍是由 Add-DhcpServerv4Scope 命令中的 StartRange 和 EndRange 參數所定義。 執行此命令時,您也需要設定子網路遮罩,也就是 255.255.255.0。 根據上一節表格中的 IP 位址範本和範例,將 StartRange 設定為 169.254.229.100,並將 EndRange 設定為 169.254.229.200,將可提供 100 個 IP 位址。 執行下列命令,並以您自己的值取代預留位置:
Add-DhcpServerV4Scope -Name "AzureIoTEdgeScope" -StartRange {startIp} -EndRange {endIp} -SubnetMask 255.255.255.0 -State Active
此命令應該不會產生任何輸出。
將您在先前小節中建立的 NAT 和閘道 IP 位址指派給 DHCP 伺服器,然後重新啟動伺服器以載入設定。 第一個命令應該不會產生任何輸出,但重新啟動 DHCP 伺服器時,應該會輸出您在本節的第三個步驟中收到的相同警告訊息。
Set-DhcpServerV4OptionValue -ScopeID {natIp} -Router {gatewayIp} Restart-service dhcpserver
下一步
遵循安裝和佈建 Azure IoT Edge for Linux on Windows 裝置中的步驟,設定具有 IoT Edge for Linux on Windows 的裝置。