Конфигурации сети для Azure IoT Edge для Linux в Windows
Область применения: IoT Edge 1.5 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 по умолчанию. Однако при использовании внутреннего или внешнего виртуального коммутатора можно проверить, выполнив следующие действия.
- Откройте командную строку.
- Отображение всех конфигураций IP-адресов и сведений
ipconfig /all
- Если вы используете внешний виртуальный коммутатор, проверьте сетевой интерфейс, используемый для создания виртуального коммутатора. Если вы используете внутренний виртуальный коммутатор, просто найдите имя, используемое для коммутатора. После того как переключатель будет расположен, проверьте, говорит ли
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-EflowVmDNSServers
EFLOW 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.