Поделиться через


IoT Edge для Linux в сети Windows

Область применения:Флажок IoT Edge 1.5 IoT Edge 1.5

Внимание

IoT Edge 1.5 LTS является поддерживаемым выпуском. IoT Edge 1.4 LTS заканчивается жизнью с 12 ноября 2024 года. Если вы используете более ранний выпуск, см. статью Обновление IoT Edge.

В этой статье содержатся сведения о настройке сети между ОС узла Windows и виртуальной машиной IoT Edge для Linux в Windows (EFLOW). EFLOW использует виртуальную машину CBL-Mariner Linux для запуска модулей IoT Edge. Дополнительные сведения об архитектуре EFLOW см. в статье "Что такое Azure IoT Edge для Linux в Windows".

Сеть

Чтобы установить канал связи между ос узла Windows и виртуальной машиной EFLOW, мы используем сетевой стек Hyper-V. Дополнительные сведения о сети Hyper-V см. в разделе "Основы сети Hyper-V". Базовая сеть в EFLOW проста; он использует две части, виртуальный коммутатор и виртуальную сеть.

Самый простой способ установить базовую сеть на номерах SKU клиента Windows — использовать параметр по умолчанию, уже созданный функцией Hyper-V. При развертывании EFLOW, если определенный виртуальный коммутатор не указан с помощью -vSwitchName флагов, -vSwitchType виртуальная машина создается с помощью параметра по умолчанию.

На устройствах SKU Windows Server сеть немного сложнее, так как по умолчанию недоступен коммутатор по умолчанию. Однако существует комплексное руководство по созданию виртуального коммутатора Windows в Azure IoT Edge для Linux.

Для обработки различных типов сетевых подключений можно использовать различные типы виртуальных коммутаторов и добавлять несколько виртуальных сетевых адаптеров.

Варианты виртуального коммутатора

EFLOW поддерживает два типа виртуальных коммутаторов Hyper-V: внутренние и внешние. Вы выберете, какой из них вы хотите при создании предыдущего развертывания EFLOW. Диспетчер Hyper-V или модуль Hyper-V для Windows PowerShell можно использовать для создания виртуальных коммутаторов и управления ими. Дополнительные сведения о создании виртуального коммутатора см. в статье "Создание виртуального коммутатора для виртуальных машин Hyper-V".

После его создания можно внести некоторые изменения в виртуальный коммутатор. Например, можно изменить существующий коммутатор на другой тип, но это может повлиять на сетевые возможности виртуальной машины EFLOW, подключенной к данному коммутатору. Поэтому не рекомендуется изменять конфигурацию виртуального коммутатора, если вы не сделали ошибку или не хотите протестировать что-то.

В зависимости от того, развернута ли виртуальная машина EFLOW на устройстве SKU клиента Windows или Windows Server SKU, мы поддерживаем различные типы коммутаторов, как показано в следующей таблице.

Тип виртуального коммутатора Номера SKU клиента Windows Номера SKU Windows Server
Внешний Внешний на клиенте Внешний сервер
Внутренний - Внутренний сервер
Переключатель по умолчанию Значение по умолчанию для клиента -
  • Внешний виртуальный коммутатор — подключается к проводной, физической сети путем привязки к физическому сетевому адаптеру. Он предоставляет виртуальным машинам доступ к физической сети для взаимодействия с устройствами во внешней сети. Кроме того, она позволяет виртуальным машинам на одном сервере Hyper-V взаимодействовать друг с другом.

  • Внутренний виртуальный коммутатор — подключается к сети, которая может использоваться только виртуальными машинами, работающими на узле с виртуальным коммутатором , а также между узлом и виртуальными машинами.

    Примечание.

    Параметр по умолчанию — это определенный внутренний виртуальный коммутатор , созданный по умолчанию после включения Hyper-V в номерах SKU клиента Windows. Виртуальный коммутатор уже имеет DHCP-сервер для назначений IP-адресов, общий доступ к Интернету (ICS) и таблицу NAT. Для целей EFLOW параметр по умолчанию — это виртуальный внутренний коммутатор, который можно использовать без дополнительной настройки.

Выделение IP-адресов

Чтобы включить сетевое подключение виртуальной машины EFLOW, виртуальная машина должна иметь IP-адрес. Этот IP-адрес можно настроить двумя различными способами: статическим IP-адресом или DHCP.

В зависимости от типа используемого виртуального коммутатора виртуальная машина EFLOW поддерживает различные выделения IP-адресов, как показано в следующей таблице.

Тип виртуального коммутатора Статический IP-адрес DHCP
Внешний Внешний с статическим IP-адресом Внешний с DHCP
Внутренний Внутренний с статическим IP-адресом Внутренний с DHCP
Переключатель по умолчанию - По умолчанию с DHCP
  • Статический IP-адрес — этот IP-адрес постоянно назначается виртуальной машине EFLOW во время установки и не изменяется на виртуальной машине EFLOW или узлах Windows. Статические IP-адреса обычно имеют две версии: IPv4 и IPv6; однако EFLOW поддерживает только статический IP-адрес для IPv4-адресов. В сетях, использующих статический IP-адрес, каждое устройство в сети имеет свой адрес без перекрытия. Во время установки EFLOW необходимо ввести IP-адрес виртуальной машины EFLOW(-ip4Address), длину-ip4PrefixLength префикса IP4 и IP4-адрес-ip4GatewayAddress шлюза по умолчанию. Для правильной настройки должны быть входные данные всех трех параметров.

    Например, если вы хотите развернуть виртуальную машину EFLOW с помощью внешнего виртуального коммутатора ExternalEflow со статическим IP-адресом 192.168.0.100, шлюзом по умолчанию 192.168.0.1 и длиной префикса 24 необходимо выполнить следующую команду развертывания.

    Deploy-Eflow -vSwitchName "ExternalEflow" -vswitchType "External" -ip4Address 192.168.0.100 -ip4GatewayAddress 192.168.0.1 -ip4PrefixLength 24
    

    Предупреждение

    При использовании статического IP-адреса необходимо использовать три параметра (ip4Address, ip4GatewayAddress, ip4PrefixLength). Кроме того, если IP-адрес недопустим, используется другим устройством в сети или адрес шлюза неверным, установка EFLOW может завершиться ошибкой, так как виртуальная машина EFLOW не может получить IP-адрес.

  • DHCP — вопреки статическим IP-адресам, при использовании DHCP виртуальная машина EFLOW назначается динамическим IP-адресом. Это адрес, который может измениться. Сеть должна иметь dhcp-сервер, настроенный и работающий для назначения динамических IP-адресов. DHCP-сервер назначает вакантный IP-адрес виртуальной машине EFLOW и другим подключенным к сети. Поэтому при развертывании EFLOW с помощью DHCP, IP-адреса, адреса шлюза или длины префикса не требуется, так как DHCP-сервер предоставляет все сведения.

    Предупреждение

    При развертывании EFLOW с помощью DHCP DHCP-сервер должен присутствовать в сети, подключенной к виртуальному коммутатору виртуальной машины EFLOW. Если DHCP-сервер отсутствует, установка EFLOW с ошибкой, так как виртуальная машина не может получить IP-адрес.

DNS

Система доменных имен (DNS) преобразует доменные имена, доступные для чтения пользователем (например, www.microsoft.com) на ip-адреса, доступные для чтения компьютера (например, 192.0.2.44). Виртуальная машина EFLOW использует системные (системные и диспетчеры служб), поэтому службы разрешения DNS или имен предоставляются локальным приложениям и службам через систему разрешенную службу.

По умолчанию dns-файл конфигурации виртуальной машины EFLOW содержит локальный заглушку 127.0.0.53 в качестве единственного DNS-сервера. Это перенаправляется в файл /etc/resolv.conf , который используется для добавления серверов имен, используемых системой. Локальная заглушка — это DNS-сервер, который выполняется локально для разрешения DNS-запросов. В некоторых случаях эти запросы перенаправляются на другой DNS-сервер в сети, а затем кэшируются локально.

Можно настроить виртуальную машину EFLOW для использования определенного DNS-сервера или списка серверов. Для этого можно использовать Set-EflowVmDnsServers командлет PowerShell. Дополнительные сведения о конфигурации DNS см. в статье о функциях PowerShell для IoT Edge для Linux в Windows.

Чтобы проверить DNS-серверы, назначенные виртуальной машине EFLOW, из виртуальной машины EFLOW, используйте команду: resolvectl status Выходные данные команды показывают список DNS-серверов, настроенных для каждого интерфейса. В частности, важно проверить состояние интерфейса eth0 , который является интерфейсом по умолчанию для связи виртуальной машины EFLOW. Кроме того, проверьте IP-адреса полей текущего DNS-сервераи DNS-серверов списка. Если IP-адрес отсутствует или IP-адрес не является допустимым IP-адресом DNS-сервера, служба DNS не будет работать.

Статический MAC-адрес

Hyper-V позволяет создавать виртуальные машины со статическим или динамическим MAC-адресом. Во время создания виртуальной машины EFLOW MAC-адрес создается случайным образом и сохраняется локально, чтобы сохранить один и тот же MAC-адрес в виртуальной машине или перезагрузке узла Windows. Чтобы запросить MAC-адрес виртуальной машины EFLOW, можно использовать следующую команду.

Get-EflowVmAddr

Несколько карт сетевых интерфейсов (сетевые адаптеры)

Существует множество виртуальных сетевых устройств и сценариев, требующих нескольких сетевых адаптеров. Виртуальная машина EFLOW поддерживает подключение нескольких сетевых адаптеров. С помощью нескольких сетевых адаптеров вы можете лучше управлять сетевым трафиком. Кроме того, можно изолировать трафик между интерфейсным сетевым адаптером и внутренними сетевыми адаптерами или разделять трафик плоскости данных от связи плоскости управления.

Например, существует множество сценариев промышленного Интернета вещей, требующих подключения виртуальной машины EFLOW к демилитаризованной зоне (DMZ), а также к автономной сети, где подключены все совместимые устройства OPC UA. Это только один из нескольких сценариев, которые можно поддерживать, подключив несколько сетевых адаптеров к виртуальной машине EFLOW.

Дополнительные сведения о добавлении сетевых адаптеров см. в статье о функциях PowerShell для IoT Edge для Linux в Windows.

Предупреждение

При использовании функции EFLOW для нескольких сетевых адаптеров может потребоваться настроить различные приоритеты маршрутов. По умолчанию EFLOW создаст один маршрут по умолчанию для каждого интерфейса ehtX , назначенного виртуальной машине, и назначит случайный приоритет. Если все интерфейсы подключены к Интернету, случайные приоритеты могут не быть проблемой. Однако если один из сетевых адаптеров подключен к автономной сети, вы можете выбрать приоритет сетевого сетевого адаптера по автономному сетевому адаптеру, чтобы получить виртуальную машину EFLOW, подключенную к Интернету. Дополнительные сведения о пользовательской маршрутизации см. в разделе "Маршрутизация EFLOW".

Следующие шаги

Дополнительные сведения об Azure IoT Edge для Linux см. в Безопасность Windows.

Узнайте, как управлять конфигурацией сети EFLOW для Azure IoT Edge для Linux в Windows