IoT Edge для Linux в сети Windows
Область применения: 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-адрес — этот 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