Compartilhar via


Configuração da rede para o Azure IoT Edge para Linux no Windows

Aplica-se a: marca de seleção do IoT Edge 1.4 IoT Edge 1.4

Importante

O IoT Edge 1.5 LTS e o IoT Edge 1.4 são versões com suporte. O IoT Edge 1.4 LTS está chegando ao fim do serviço em 12 de novembro de 2024. Se você estiver em uma versão anterior, confira Atualizar o IoT Edge.

Este artigo ajudará você a decidir qual opção de rede é melhor para o seu cenário, além de fornecer informações sobre os requisitos de configurações do IoT Edge para Linux no Windows (EFLOW).

Para conectar a máquina virtual do IoT Edge para Linux no Windows (EFLOW) por uma rede ao host, a outras máquinas virtuais no host do Windows e a outros dispositivos/locais em uma rede externa, a rede de máquinas virtuais deve ser configurada adequadamente.

A maneira mais fácil de criar a rede básica em SKUs de cliente Windows é usando o comutador padrão já criado ao habilitar o recurso Hyper-V do Windows. No entanto, em dispositivos SKUs do Windows Server, a rede é um pouco mais complicada, pois não há comutador padrão disponível. Para obter mais informações sobre a criação de um comutador virtual para o Windows Server, consulte Criar comutador virtual para Linux no Windows.

Para obter mais informações sobre conceitos de rede EFLOW, consulte IoT Edge para Linux em rede Windows.

Configurar o comutador virtual de VM

A primeira etapa antes de implantar a máquina virtual do EFLOW é determinar qual tipo de comutador virtual você usará. Para obter mais informações sobre as opções virtuais com suporte do EFLOW, consulte Opções de comutador virtual do EFLOW. Depois de determinar o tipo de comutador virtual que você deseja usar, crie a opção virtual corretamente. Para obter mais informações sobre a criação de um comutador virtual, confira Criar um comutador virtual para máquinas virtuais do Hyper-V.

Observação

Se você estiver usando o Windows Client e quiser usar a opção padrão, nenhuma criação de comutador será necessária e nenhum dos parâmetros -vSwitchType e -vSwitchName serão necessários.

Observação

Se você estiver usando uma máquina virtual Windows dentro da infraestrutura do VMware e do comutador externo, consulte Virtualização aninhada do EFLOW.

Depois de criar o comutador virtual e antes de iniciar sua implantação, verifique se o nome e o tipo do comutador virtual estão configurados corretamente e listados no sistema operacional do host do Windows. Para listar todos os comutadores virtuais no sistema operacional do host do Windows, em uma sessão elevada do PowerShell, use o seguinte cmdlet do PowerShell:

Get-VmSwitch

Dependendo das opções virtuais do host do Windows, a saída deve ser semelhante ao seguinte:

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

Para usar um comutador virtual específico (interno ou externo), especifique os parâmetros corretos: -vSwitchName e vSwitchType. Por exemplo, se você quiser implantar a VM do EFLOW com um comutador externo chamado EFLOW-Ext, em uma sessão elevada do PowerShell, use o seguinte comando:

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

Configurar a alocação de endereço IP da VM

A segunda etapa depois de decidir o tipo de comutador virtual que você está usando é determinar o tipo de alocação de endereço IP do comutador virtual. Para obter mais informações sobre opções de alocação de IP, consulte Alocações de IP com suporte do EFLOW. Dependendo do tipo de comutador virtual que você estiver utilizando, use um mecanismo de alocação de endereço IP com suporte.

Por padrão, se nenhum endereço IP estático estiver configurado, a VM do EFLOW tentará alocar um endereço IP para o comutador virtual usando DHCP. Verifique se há um servidor DHCP na rede do comutador virtual. Se não estiver disponível, a instalação da VM do EFLOW falhará ao alocar um endereço IP e a instalação falhará. Se você estiver usando a opção padrão, não será necessário verificar se há um servidor DHCP, pois o comutador virtual já tem DHCP por padrão. No entanto, se estiver usando um comutador virtual interno ou externo, você poderá fazer a verificação usando as seguintes etapas:

  1. Abra um prompt de comando.
  2. Exibir todas as configurações e informações de IP
    ipconfig /all
    
  3. Se você estiver usando um comutador virtual externo, verifique a interface de rede usada para criar o comutador virtual. Se você estiver usando um comutador virtual interno, basta procurar o nome usado para a opção. Depois que a opção estiver localizada, verifique se DHCP Enabled diz Sim ou Não e verifique o endereço DHCP server.

Se estiver usando um IP estático, você precisará especificar três parâmetros durante a implantação do EFLOW: -ip4Address, ip4GatewayAddress e ip4PrefixLength. Se um parâmetro estiver ausente ou incorreto, a instalação da VM do EFLOW falhará ao alocar um endereço IP e a instalação falhará. Para obter mais informações sobre a implantação de uma VM do EFLOW, confira Funções do PowerShell para o IoT Edge para Linux no Windows. Por exemplo, se você quiser implantar a VM do EFLOW com um comutador externo chamado EFLOW-Ext e uma configuração de IP estático, com um endereço IP igual a 192.168.0.2, o endereço IP do gateway igual a 192.168.0.1 e o comprimento do prefixo IP igual a 24, em uma sessão elevada do PowerShell, use o seguinte comando:

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

Dica

A VM do EFLOW manterá o mesmo endereço MAC para o comutador virtual principal (usado durante a implantação) entre reinicializações. Se estiver usando a reserva de endereço MAC de DHCP, você poderá obter o endereço MAC do comutador virtual principal usando o cmdlet do PowerShell: Get-EflowVmAddr.

Verificar alocação de IP

Há várias maneiras de verificar o endereço IP que foi alocado para a VM do EFLOW. Primeiro, usando uma sessão elevada do PowerShell, use o cmdlet do EFLOW:

Get-EflowVmAddr

O resultado deve ser algo semelhante ao mostrado a seguir:

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

Outra maneira é usar o cmdlet Connect-Eflow para entrar remotamente na VM e, em seguida, você pode usar o comando bash ifconfig eth0 e verificar a interface eth0. A saída deve ser semelhante ao seguinte:

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)

Configurar servidores DNS da VM

Por padrão, a máquina virtual do EFLOW não tem nenhuma configuração de DNS. As implantações que usam o DHCP tentam obter a configuração de DNS propagada pelo servidor DHCP. Se você estiver usando um IP estático, o servidor DNS precisará ser configurado manualmente. Para obter mais informações sobre o DNS da VM do EFLOW, consulte a configuração de DNS do EFLOW.

Para verificar os servidores DNS usados pela interface padrão (eth0), você pode usar o seguinte comando:

resolvectl | grep eth0 -A 8

O resultado deve ser algo semelhante ao mostrado a seguir. Verifique os endereços IP dos "servidores DNS atuais" e dos campos dos "servidores DNS" da lista. Quando não há endereço IP ou ele não é um endereço IP válido do servidor DNS, o serviço DNS não funciona.

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

Se precisar configurar manualmente os endereços do servidor DNS, você poderá usar o cmdlet Set-EflowVmDNSServers do PowerShell do EFLOW. Para obter mais informações sobre a configuração DNS da VM do EFLOW, confira Funções do PowerShell para o IoT Edge para Linux no Windows.

Verificar resolução de DNS

Há várias maneiras de verificar a resolução DNS.

Primeiro, de dentro da VM do EFLOW, use o comando resolvectl query para consultar uma URL específica. Por exemplo, para verificar se a resolução de nomes está funcionando para o endereço microsoft.com, use:

resolvectl query microsoft.com

A saída deve ser semelhante ao seguinte:

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

Você também pode usar o comando dig para consultar uma URL específica. Por exemplo, para verificar se a resolução de nomes está funcionando para o endereço microsoft.com, use:

dig microsoft.com

A saída deve ser semelhante ao seguinte:

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

Próximas etapas

Leia mais sobre a Segurança do Azure IoT Edge para Linux no Windows.

Mantenha-se atualizado com as atualizações mais recentes do IoT Edge para Linux no Windows.