你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Azure IoT Edge for Linux on Windows 虚拟交换机的创建

适用于:IoT Edge 1.5 复选标记 IoT Edge 1.5 IoT Edge 1.4 复选标记 IoT Edge 1.4

重要

IoT Edge 1.5 LTS 和 IoT Edge 1.4 LTS 是受支持的版本。 IoT Edge 1.4 LTS 的生命周期结束日期为 2024 年 11 月 12 日。 如果你使用的是较低的版本,请参阅更新 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 服务器

先决条件

创建虚拟交换机

本部分中的以下步骤是用于创建虚拟交换机的通用指南。 确保虚拟交换机的配置与你的网络环境相符。

注意

以下步骤介绍了如何创建内部或专用虚拟交换机。 若要详细了解如何创建外部交换机,请参阅为 Hyper-V 虚拟机创建虚拟交换机。 请注意,如果使用的是 Azure VM,则虚拟交换机不能是外部交换机。

  1. 在提升的会话中打开 PowerShell。 为此,可在 Windows 上打开“开始”窗格并键入“PowerShell”。 右键单击显示的 Windows PowerShell 应用,并选择“以管理员身份运行”。

  2. 检查 Windows 主机上的虚拟交换机,确保没有可用的虚拟交换机。 可通过在 PowerShell 中运行以下 Get-VMSwitch 命令来执行此操作:

    Get-VMSwitch
    

    如果已创建名为“默认交换机”的虚拟交换机,并且无需自定义虚拟交换机,则不用遵循本指南的后续步骤就能安装 IoT Edge for Linux on Windows。

  3. 通过运行以下 New-VMSwitch 命令,使用选择的名称和交换机类型(“内部”或“专用”)创建新的 VM 交换机,替换占位符的值:

    New-VMSwitch -Name "{switchName}" -SwitchType {switchType}
    
  4. 要获取创建的交换机的 IP 地址,必须先获取其接口索引。 可通过运行以下 Get-NetAdapter 命令替换占位符值来获取此值:

    (Get-NetAdapter -Name "{switchName}").ifIndex
    

    如果尝试运行此命令时收到错误,可能需要更改 Name 参数的值来遵循 vEthernet ({switchName}) 模板。 应该会收到如下例所示的输出:

    运行 Get-NetAdapter 命令后的输出的屏幕截图,其中突出显示了接口索引值。

    请记下接口索引值,你需要在之后的步骤中使用它。

  5. 得到的虚拟交换机 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
  6. 设置网关 IP 地址,将虚拟交换机 IP 地址系列的最后一个八进制数替换为新的数值。 例如,将最后一个八位字节替换为 1,这样就会获得地址 172.20.0.1。 运行以下 New-NetIPAddress 命令来设置新的网关 IP 地址,替换占位符值:

    New-NetIPAddress -IPAddress {gatewayIp} -PrefixLength 24 -InterfaceIndex {interfaceIndex}
    

    运行此命令应会输出如下例所示的信息:

    运行 New-NetIPAddress 命令后的输出的屏幕截图。

  7. 创建一个网络地址转换 (NAT) 对象,用于将内部网络地址转换为外部网络。 使用前面步骤中的相同 IPv4 系列地址。 根据步骤 6 中的表格,NAT IP 地址对应于原始 IP 地址系列,但最后一个八进制数被替换为新的数值,例如 0。 运行以下 New-NetNat 命令来设置 NAT IP 地址,替换占位符值:

    New-NetNat -Name "{switchName}" -InternalIPInterfaceAddressPrefix "{natIp}/24"
    

    运行此命令应会输出如下例所示的信息:

    运行 New-NetNat 命令后的输出的屏幕截图。

交换机现已创建。 接下来,将设置 DNS。

创建 DHCP 服务器

注意

可以在没有 DHCP 服务器的情况下继续安装,只要 EFLOW VM 是使用静态 IP 参数(ip4Addressip4GatewayAddressip4PrefixLength)部署的。 如果使用动态 IP 分配,请确保在安装了 DHCP 服务器的情况下继续。

警告

要在公司网络环境中部署 DHCP 服务器,可能需要授权。 检查虚拟交换机配置是否符合公司网络策略。 有关详细信息,请参阅使用 Windows PowerShell 部署 DHCP

  1. 检查主机上是否安装了 DHCP 服务器功能。 查看“安装状态”列。 如果值为“已安装”,可跳过以下步骤。

    Get-WindowsFeature -Name 'DHCP'
    
  2. 如果尚未安装 DHCP 服务器,请运行以下命令:

    Install-WindowsFeature -Name 'DHCP' -IncludeManagementTools
    
  3. 将 DHCP 服务器添加到默认的本地安全组,然后重启服务器。

    netsh dhcp add securitygroups
    Restart-Service dhcpserver
    

    DHCP 服务器在启动时,你将收到以下警告消息:WARNING: Waiting for service 'DHCP Server (dhcpserver)' to start...

  4. 若要为需提供的 IP 配置 DHCP 服务器范围,需要将一个 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
    

    此命令不应生成任何输出。

  5. 将在前面部分创建的 NAT 和网关 IP 地址分配给 DHCP 服务器,然后重启服务器来加载配置。 第一个命令不应生成任何输出,但是重启 DHCP 服务器应会输出与在本节第三步中执行此操作时收到的相同的警告消息。

    Set-DhcpServerV4OptionValue -ScopeID {startIp} -Router {gatewayIp}
    Restart-service dhcpserver
    

后续步骤

按照在 Windows 设备上安装并预配 Azure IoT Edge for Linux 中的步骤为设备安装 IoT Edge for Linux on Windows。