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


Конфигурации сети для Azure IoT Edge для Linux в 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 заканчивается жизнью 12 ноября 2024 года. Если вы используете более ранний выпуск, см. статью Обновление IoT Edge.

Эта статья поможет вам решить, какой вариант сети лучше всего подходит для вашего сценария, и предоставить аналитические сведения о требованиях к конфигурации IoT Edge для Linux в Windows (EFLOW).

Чтобы подключить виртуальную машину IoT Edge для Linux в Windows (EFLOW) через сеть к узлу, к другим виртуальным машинам на узле Windows и другим устройствам и расположениям во внешней сети, сеть виртуальных машин должна быть настроена соответствующим образом.

Самый простой способ установить базовую сеть на номерах SKU клиента Windows — использовать параметр по умолчанию, который уже создан при включении функции Windows Hyper-V. Однако на устройствах windows Server SKU сети это немного сложнее, так как по умолчанию нет доступных коммутаторов по умолчанию. Дополнительные сведения о создании виртуального коммутатора для Windows Server см. в статье "Создание виртуального коммутатора для Linux в Windows".

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

Настройка виртуального коммутатора виртуальной машины

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

Примечание.

Если вы используете клиент Windows и хотите использовать параметр по умолчанию, создание коммутатора не требуется, и параметры не -vSwitchType -vSwitchName требуются.

Примечание.

Если вы используете виртуальную машину Windows в инфраструктуре VMware и внешнем коммутаторе, ознакомьтесь с вложенным виртуализацией EFLOW.

После создания виртуального коммутатора и перед началом развертывания убедитесь, что имя и тип виртуального коммутатора настроены правильно и перечислены в ос узла Windows. Чтобы вывести список всех виртуальных коммутаторов в ос узла Windows, в сеансе PowerShell с повышенными привилегиями используйте следующий командлет PowerShell:

Get-VmSwitch

В зависимости от виртуальных коммутаторов узла Windows выходные данные должны быть похожи на следующие:

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

Чтобы использовать определенный виртуальный коммутатор (внутренний или внешний), убедитесь, что указаны правильные параметры: -vSwitchName иvSwitchType. Например, если вы хотите развернуть виртуальную машину EFLOW с внешним коммутатором с именем EFLOW-Ext, в сеансе PowerShell с повышенными привилегиями используйте следующую команду:

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

Настройка выделения IP-адресов виртуальной машины

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

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

  1. Откройте командную строку.
  2. Отображение всех конфигураций IP-адресов и сведений
    ipconfig /all
    
  3. Если вы используете внешний виртуальный коммутатор, проверьте сетевой интерфейс, используемый для создания виртуального коммутатора. Если вы используете внутренний виртуальный коммутатор, просто найдите имя, используемое для коммутатора. После того как переключатель будет расположен, проверьте, говорит ли DHCP Enabled сообщение "Да" или "Нет", и проверьте DHCP server адрес.

Если вы используете статический IP-адрес, необходимо указать три параметра во время развертывания EFLOW: ip4GatewayAddress -ip4Addressи ip4PrefixLength. Если один параметр отсутствует или неправильная, установка виртуальной машины EFLOW не может выделить IP-адрес и установка завершается ошибкой. Дополнительные сведения о развертывании виртуальных машин EFLOW см. в разделе "Функции PowerShell для IoT Edge для Linux в Windows". Например, если вы хотите развернуть виртуальную машину EFLOW с внешним коммутатором с именем EFLOW-Ext и статическую IP-конфигурацию с 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 будет хранить один и тот же MAC-адрес для основного (используемого во время развертывания) виртуального коммутатора во время перезагрузки. При использовании резервирования MAC-адресов DHCP можно получить основной MAC-адрес виртуального коммутатора с помощью командлета PowerShell: Get-EflowVmAddr

Проверка выделения IP-адресов

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

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 командлет для удаленного доступа к виртуальной машине, а затем использовать 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)

Настройка DNS-серверов виртуальной машины

По умолчанию виртуальная машина EFLOW не имеет конфигурации DNS. Развертывания с помощью DHCP пытаются получить конфигурацию DNS, распространяемую DHCP-сервером. Если вы используете статический IP-адрес, DNS-сервер необходимо настроить вручную. Дополнительные сведения о DNS виртуальной машины EFLOW см. в разделе "Конфигурация DNS EFLOW".

Чтобы проверить DNS-серверы, используемые интерфейсом по умолчанию (eth0), можно использовать следующую команду:

resolvectl | grep eth0 -A 8

Выходные данные должны совпадать со следующими значениями. Проверьте IP-адреса полей "Текущие DNS-серверы" и "DNS-серверы" списка. Если IP-адрес отсутствует или IP-адрес не является допустимым IP-адресом DNS-сервера, служба 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-сервера, можно использовать командлет Set-EflowVmDNSServersEFLOW PowerShell. Дополнительные сведения о конфигурации DNS виртуальной машины EFLOW см. в разделе "Функции PowerShell" для IoT Edge для Linux в Windows.

Проверка разрешающей способности DNS

Существует несколько способов проверки разрешения DNS.

Во-первых, из виртуальной машины EFLOW используйте 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

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

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

Будьте в курсе последних обновлений IoT Edge для Linux в Windows.