Configuración de red para Azure IoT Edge para Linux en Windows

Se aplica a:IoT Edge 1.4 checkmark IoT Edge 1.4

Importante

IoT Edge 1.4 es la versión admitida. Si está usando una versión anterior, consulte Actualización de IoT Edge.

Este artículo le ayuda a decidir qué opción de red es mejor para su escenario y proporcionar información sobre los requisitos de configuración de IoT Edge para Linux en Windows (EFLOW).

Para conectar la máquina virtual de IoT Edge para Linux en Windows (EFLOW) a través de una red al host, a otras máquinas virtuales del host Windows y a otros dispositivos o ubicaciones de una red externa, las redes de máquina virtual deben configurarse en consecuencia.

La manera más fácil de establecer redes básicas en las SKU de cliente de Windows es usar el conmutador predeterminado ya creado por la característica de Windows Hyper-V. Sin embargo, en dispositivos de SKU de Windows Server, las redes son un poco más complicadas, ya que no hay ningún conmutador predeterminado disponible. Para obtener más información sobre la creación de conmutadores virtuales para Windows Server, consulte Creación de un conmutador virtual para Linux en Windows.

Para obtener más información sobre los conceptos de redes de EFLOW, consulte Redes de IoT Edge para Linux en Windows.

Configuración del conmutador virtual de máquina virtual

El primer paso antes de implementar la máquina virtual EFLOW es determinar qué tipo de conmutador virtual usa. Para obtener más información sobre los conmutadores virtuales compatibles con EFLOW, consulte Opciones de conmutador virtual de EFLOW. Una vez que determine el tipo de conmutador virtual que desea usar, asegúrese de crear el conmutador virtual correctamente. Para obtener más información sobre cómo crear un conmutador virtual, consulte Creación de un conmutador virtual para máquinas virtuales de Hyper-V.

Nota:

Si usa un cliente Windows y desea usar el conmutador predeterminado, no se necesitan crear conmutadores y no se requieren parámetros -vSwitchType y -vSwitchName.

Nota:

Si usa una máquina virtual Windows dentro de la infraestructura de VMware y el conmutador externo, consulte Virtualización anidada de EFLOW.

Después de crear el conmutador virtual y antes de iniciar la implementación, asegúrese de que el nombre y el tipo del conmutador virtual estén configurados correctamente y que aparezcan en el sistema operativo del host Windows. Para enumerar todos los conmutadores virtuales del sistema operativo del host Windows, en una sesión de PowerShell con privilegios elevados, use el siguiente cmdlet de PowerShell:

Get-VmSwitch

En función de los conmutadores virtuales del host de Windows, la salida debe ser similar a la siguiente:

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

Para usar un conmutador virtual específico (interno o externo), asegúrese de especificar los parámetros correctos: -vSwitchName y vSwitchType. Por ejemplo, si desea implementar la máquina virtual de EFLOW con un conmutador externo denominado EFLOW-Ext, en una sesión de PowerShell con privilegios elevados, use el siguiente comando:

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

Configuración de la asignación de direcciones IP de máquina virtual

El segundo paso después de decidir el tipo de conmutador virtual que va a usar es determinar el tipo de asignación de direcciones IP del conmutador virtual. Para obtener más información sobre las opciones de asignación de IP, consulte Asignaciones de direcciones IP compatibles con EFLOW. En función del tipo de conmutador virtual que use, asegúrese de usar un mecanismo de asignación de direcciones IP compatible.

De forma predeterminada, si no se configura ninguna dirección IP estática, la máquina virtual de EFLOW intenta asignar una dirección IP al conmutador virtual mediante DHCP. Asegúrese de que hay un servidor DHCP en la red del conmutador virtual; si no está disponible, la instalación de la máquina virtual de EFLOW no puede asignar una dirección IP y se produce un error en la instalación. Si usa el conmutador predeterminado, no es necesario comprobar si hay un servidor DHCP, ya que el conmutador virtual ya tiene DHCP de forma predeterminada. Sin embargo, si usa un conmutador virtual interno o externo, puede comprobarlo siguiendo estos pasos:

  1. Abra un símbolo del sistema.
  2. Mostrar todas las configuraciones e información de IP
    ipconfig /all
    
  3. Si usa un conmutador virtual externo, compruebe la interfaz de red utilizada para crear el conmutador virtual. Si usa un conmutador virtual interno, solo tiene que buscar el nombre usado para el conmutador. Una vez localizado el conmutador, compruebe si el valor de DHCP Enabled es o No y compruebe la dirección DHCP server.

Si usa una dirección IP estática, debe especificar tres parámetros durante la implementación de EFLOW: -ip4Addressy ip4GatewayAddressip4PrefixLength. Si falta un parámetro o es incorrecto, la instalación de la máquina virtual de EFLOW no puede asignar una dirección IP y se produce un error en la instalación. Para obtener más información sobre la implementación de la máquina virtual de EFLOW, consulte Funciones de PowerShell para IoT Edge para Linux en Windows. Por ejemplo, si desea implementar la máquina virtual de EFLOW con un conmutador externo denominado EFLOW-Ext y una configuración IP estática, con una dirección IP que sea 192.168.0.2, con la dirección IP de puerta de enlace 192.168.0.1 y con la longitud del prefijo IP con un valor de 24. A continuación, en una sesión de PowerShell con privilegios elevados, use el siguiente comando:

Deploy-Eflow -vSwitchType "External" -vSwitchName "EFLOW-Ext" -ip4Address "192.168.0.2" -ip4GatewayAddress "192.168.0.1" -ip4PrefixLength "24"

Sugerencia

La máquina virtual de EFLOW mantendrá la misma dirección MAC para el conmutador virtual principal (usado durante la implementación) entre reinicios. Si usa la reserva de direcciones MAC DHCP, puede obtener la dirección MAC del conmutador virtual principal mediante el cmdlet de PowerShell: Get-EflowVmAddr.

Comprobación de la asignación de direcciones de IP

Hay varias maneras de comprobar la dirección IP que se asignó a la máquina virtual de EFLOW. En primer lugar, con una sesión de PowerShell con privilegios elevados, use el cmdlet EFLOW:

Get-EflowVmAddr

La salida debe ser similar a la siguiente:

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

Otra manera es usar el cmdlet Connect-Eflow para realizar la conexión remota en la máquina virtual y, a continuación, puede usar el comando bash ifconfig eth0 y comprobar la interfaz eth0. La salida debe ser similar a la siguiente:

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)

Configuración de servidores DNS de máquina virtual

De forma predeterminada, la máquina virtual Linux de EFLOW no tiene configuración de DNS. Las implementaciones que usan DHCP intentan obtener la configuración de DNS propagada por el servidor DHCP. Si usa una dirección IP estática, el servidor DNS debe configurarse manualmente. Para obtener más información sobre los servidor DNS de la máquina virtual de EFLOW, consulte Configuración de DNS de EFLOW.

Para comprobar los servidores DNS usados por la interfaz predeterminada (eth0), puede usar el siguiente comando:

resolvectl | grep eth0 -A 8

La salida debe reflejar algo parecido a lo siguiente. Compruebe las direcciones IP de los campos "Servidores DNS actuales" y "Servidores DNS" de la lista. Si no hay ninguna dirección IP o la dirección IP no es una dirección IP de servidor DNS válida, el servicio DNS no funcionará.

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

Si necesita configurar manualmente las direcciones del servidor DNS, puede usar el cmdlet de PowerShell de EFLOW Set-EflowVmDNSServers. Para obtener más información sobre la configuración DNS de la máquina virtual de EFLOW, consulte Funciones de PowerShell para IoT Edge para Linux en Windows.

Comprobación de la resolución de DNS

Hay varias maneras de comprobar la resolución DNS.

En primer lugar, desde la máquina virtual de EFLOW, use el comando resolvectl query para consultar una dirección URL específica. Por ejemplo, para comprobar si la resolución de nombres funciona para la dirección microsoft.com, use:

resolvectl query microsoft.com

La salida debe ser similar a la siguiente:

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

También puede usar el dig comando para consultar una dirección URL específica. Por ejemplo, para comprobar si la resolución de nombres funciona para la dirección microsoft.com, use:

dig microsoft.com

La salida debe ser similar a la siguiente:

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

Pasos siguientes

Obtenga más información sobre la seguridad de Azure IoT Edge para Linux en Windows.

Manténgase al día de las actualizaciones más recientes de IoT Edge para Linux en Windows.