Partilhar via


IoT Edge para Linux em rede Windows

Aplica-se a:Marca de verificação do IoT Edge 1.4 IoT Edge 1.4

Importante

IoT Edge 1.5 LTS e IoT Edge 1.4 são versões suportadas. O IoT Edge 1.4 LTS termina a vida útil em 12 de novembro de 2024. Se tiver uma versão anterior, consulte Atualizar IoT Edge.

Este artigo fornece informações sobre como configurar a rede entre o sistema operacional host Windows e a máquina virtual IoT Edge para Linux no Windows (EFLOW). O EFLOW usa uma máquina virtual Linux CBL-Mariner para executar módulos IoT Edge. Para obter mais informações sobre a arquitetura EFLOW, consulte O que é o Azure IoT Edge para Linux no Windows.

Rede

Para estabelecer um canal de comunicação entre o sistema operacional host Windows e a máquina virtual EFLOW, usamos a pilha de rede Hyper-V. Para obter mais informações sobre a rede Hyper-V, consulte Noções básicas de rede Hyper-V. Rede básica em EFLOW é simples; Ele usa duas partes, um comutador virtual e uma rede virtual.

A maneira mais fácil de estabelecer rede básica em SKUs de cliente Windows é usando a opção padrão já criada pelo recurso Hyper-V. Durante a implantação do EFLOW, se nenhum comutador virtual específico for especificado usando os -vSwitchName sinalizadores e -vSwitchType , a máquina virtual será criada usando o comutador padrão.

Em dispositivos SKUs do Windows Server, a rede é um pouco mais complicada, pois não há nenhuma opção padrão disponível. No entanto, há um guia abrangente sobre o Azure IoT Edge para Linux na criação de comutadores virtuais do Windows.

Para lidar com diferentes tipos de rede, você pode usar diferentes tipos de comutadores virtuais e adicionar vários adaptadores de rede virtual.

Opções de comutador virtual

O EFLOW suporta dois tipos de comutadores virtuais Hyper-V: internos e externos. Você escolherá qual deles deseja ao criá-lo antes da implantação do EFLOW. Você pode usar o Gerenciador do Hyper-V ou o módulo Hyper-V para Windows PowerShell para criar e gerenciar comutadores virtuais. Para obter mais informações sobre como criar um comutador virtual, consulte Criar um comutador virtual para máquinas virtuais Hyper-V.

Você pode fazer algumas alterações em um comutador virtual depois de criá-lo. Por exemplo, é possível alterar um switch existente para um tipo diferente, mas isso pode afetar os recursos de rede da máquina virtual EFLOW conectada a esse switch. Portanto, não é recomendado alterar a configuração do comutador virtual, a menos que você cometa um erro ou precise testar algo.

Dependendo se a VM EFLOW for implantada em um dispositivo SKU de cliente Windows ou SKU do Windows Server, oferecemos suporte a diferentes tipos de switches, conforme mostrado na tabela a seguir.

Tipo de comutador virtual SKUs de cliente Windows Windows Server SKUs
Externa Externo no Cliente Externo no servidor
Interno - Interno no servidor
Opção padrão Inadimplência no cliente -
  • Comutador virtual externo - Liga-se a uma rede física com fios ligando-se a um adaptador de rede físico. Ele dá às máquinas virtuais acesso a uma rede física para se comunicar com dispositivos em uma rede externa. Além disso, permite que máquinas virtuais no mesmo servidor Hyper-V se comuniquem entre si.

  • Comutador virtual interno - Conecta-se a uma rede que pode ser usada somente pelas máquinas virtuais em execução no host que tem o comutador virtual e entre o host e as máquinas virtuais.

    Nota

    O comutador padrão é um comutador virtual interno específico criado por padrão quando o Hyper-V é habilitado em SKUs de cliente Windows. O comutador virtual já tem um servidor DHCP para atribuições IP, compartilhamento de conexão com a Internet (ICS) habilitado e uma tabela NAT. Para fins de EFLOW, o Comutador Padrão é um Comutador Interno Virtual que pode ser usado sem configuração adicional.

Alocações de endereços IP

Para habilitar comunicações IP de rede VM EFLOW, a máquina virtual deve ter um endereço IP atribuído. Este endereço IP pode ser configurado por dois métodos diferentes: IP estático ou DHCP.

Dependendo do tipo de comutador virtual usado, a VM EFLOW suporta diferentes alocações de IP, conforme mostrado na tabela a seguir.

Tipo de comutador virtual IP estático DHCP
Externa Externo com IP estático Externo com DHCP
Interno Interno com IP estático Interno com DHCP
Opção padrão - Padrão com DHCP
  • IP estático - Este endereço IP é atribuído permanentemente à VM EFLOW durante a instalação e não muda nas reinicializações de host EFLOW VM ou Windows. Os endereços IP estáticos normalmente têm duas versões: IPv4 e IPv6; no entanto, o EFLOW suporta apenas IP estático para endereços IPv4. Em redes que usam IP estático, cada dispositivo na rede tem seu endereço sem sobreposição. Durante a instalação do EFLOW, você deve inserir o endereço IP4 da VM EFLOW(-ip4Address), o comprimento do prefixo IP4 e-ip4PrefixLength o endereço IP4 do gateway padrão(-ip4GatewayAddress). Todos os três parâmetros devem ser inseridos para a configuração correta.

    Por exemplo, se você quiser implantar a VM EFLOW usando um comutador virtual externo chamado ExternalEflow com um endereço IP estático 192.168.0.100, gateway padrão 192.168.0.1 e um comprimento de prefixo de 24, o seguinte comando deploy é necessário

    Deploy-Eflow -vSwitchName "ExternalEflow" -vswitchType "External" -ip4Address 192.168.0.100 -ip4GatewayAddress 192.168.0.1 -ip4PrefixLength 24
    

    Aviso

    Ao usar IP estático, os três parâmetros (ip4Address, ip4GatewayAddresip4PrefixLength, ) devem ser usados. Além disso, se o endereço IP for inválido, sendo usado por outro dispositivo no netowrk, ou se o endereço do gateway estiver incorreto, a instalação do EFLOW poderá falhar, pois a VM do EFLOW não pode obter um endereço IP.

  • DHCP - Ao contrário do IP estático, ao usar DHCP, a máquina virtual EFLOW é atribuída com um endereço IP dinâmico, que é um endereço que pode mudar. A rede deve ter um servidor DHCP configurado e operando para atribuir endereços IP dinâmicos. O servidor DHCP atribui um endereço IP vago à VM EFLOW e a outras pessoas conectadas à rede. Portanto, ao implantar o EFLOW usando DHCP, nenhum endereço IP, endereço de gateway ou comprimento de prefixo é necessário, pois o servidor DHCP fornece todas as informações.

    Aviso

    Ao implantar o EFLOW usando DHCP, um servidor DHCP deve estar presente na rede conectada ao comutador virtual EFLOW VM. Se nenhum servidor DHCP estiver presente, a instalação do EFLOW falha, pois a VM não pode obter um endereço IP.

DNS

O Sistema de Nomes de Domínio (DNS) traduz nomes de domínio legíveis por pessoas (por exemplo, www.microsoft.com) para endereços IP legíveis por máquina (por exemplo, 192.0.2.44). A máquina virtual EFLOW usa systemd (system and service manager), de modo que os serviços DNS ou de resolução de nomes são fornecidos a aplicativos e serviços locais por meio do serviço systemd-resolved .

Por padrão, o arquivo de configuração EFLOW VM DNS contém o stub local 127.0.0.53 como o único servidor DNS. Isso é redirecionado para o arquivo /etc/resolv.conf , que é usado para adicionar os servidores de nomes usados pelo sistema. O stub local é um servidor DNS que é executado localmente para resolver consultas DNS. Em alguns casos, essas consultas são encaminhadas para outro servidor DNS na rede e, em seguida, armazenadas em cache localmente.

É possível configurar a máquina virtual EFLOW para usar um servidor DNS específico ou uma lista de servidores. Para fazer isso, você pode usar o Set-EflowVmDnsServers cmdlet do PowerShell. Para obter mais informações sobre a configuração de DNS, consulte Funções do PowerShell para IoT Edge para Linux no Windows.

Para verificar os servidores DNS atribuídos à VM EFLOW, de dentro da VM EFLOW, use o comando: resolvectl status. A saída do comando mostrará uma lista dos servidores DNS configurados para cada interface. Em particular, é importante verificar o status da interface eth0 , que será a interface padrão para a comunicação da VM EFLOW. Além disso, certifique-se de verificar os endereços IP dos campos Servidor DNSatual e Servidores DNS da lista. Se não houver um endereço IP ou se o endereço IP não for um endereço IP de servidor DNS válido, o serviço DNS não funcionará.

Captura de tela do console mostrando a saída de exemplo do comando resolvectl.

Endereço MAC estático

O Hyper-V permite criar máquinas virtuais com um endereço MAC estático ou dinâmico . Durante a criação da máquina virtual EFLOW, o endereço MAC é gerado aleatoriamente e armazenado localmente para manter o mesmo endereço MAC na máquina virtual ou nas reinicializações do host Windows. Para consultar o endereço MAC da máquina virtual EFLOW, você pode usar o seguinte comando.

Get-EflowVmAddr

Várias placas de interface de rede (NICs)

Há muitos dispositivos virtuais de rede e cenários que exigem várias NICs. A máquina virtual EFLOW suporta a conexão de várias NICs. Com várias NICs, você pode gerenciar melhor o tráfego da rede. Você também pode isolar o tráfego entre a NIC frontend e as NICs de back-end ou separar o tráfego do plano de dados da comunicação do plano de gerenciamento.

Por exemplo, há vários cenários de IoT industrial que exigem a conexão da máquina virtual EFLOW a uma zona desmilitarizada (DMZ) e à rede offline onde todos os dispositivos compatíveis com OPC UA estão conectados. Este é apenas um dos vários cenários que podem ser suportados anexando várias NICs à VM EFLOW.

Para obter mais informações sobre várias NICs, consulte Suporte a várias NICs.

Aviso

Ao usar o recurso EFLOW multiple NICs, convém configurar as diferentes prioridades de rotas. Por padrão, o EFLOW criará uma rota padrão por interface ehtX atribuída à VM e atribuirá uma prioridade aleatória. Se todas as interfaces estiverem conectadas à internet, prioridades aleatórias podem não ser um problema. No entanto, se uma das NICs estiver conectada a uma rede offline, convém priorizar a NIC online sobre a NIC offline para conectar a VM EFLOW à Internet. Para obter mais informações sobre roteamento personalizado, consulte Roteamento EFLOW.

Próximos passos

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

Saiba como gerenciar a configuração de rede EFLOW para o Azure IoT Edge para Linux no Windows