Rede IoT Edge para Linux no Windows
Aplica-se a: IoT Edge 1.5 IoT Edge 1.4
Importante
O IoT Edge 1.5 LTS e o IoT Edge 1.4 LTS são versões com suporte. O IoT Edge 1.4 LTS chegará ao fim da vida útil em 12 de novembro de 2024. Se você estiver em uma versão anterior, confira Atualizar o IoT Edge.
Este artigo explica como configurar a rede entre o sistema operacional host Windows e a máquina virtual EFLOW (IoT Edge para Linux no Windows). O EFLOW usa uma máquina virtual Linux CBL-Mariner para executar módulos do IoT Edge. Para obter mais informações sobre a arquitetura do EFLOW, confira O que é o Azure IoT Edge para Linux no Windows.
Rede
Para criar um canal de comunicação entre o sistema operacional host Windows e a máquina virtual EFLOW, usamos a pilha de rede do Hyper-V. Para saber mais sobre a rede Hyper-V, confira Noções básicas de rede do Hyper-V. A rede básica no EFLOW é simples. Ela usa duas partes, um comutador virtual e uma rede virtual.
A maneira mais fácil de criar a rede básica em SKUs de cliente Windows é usando o comutador padrão já criado pelo recurso Hyper-V. Durante a implantação do EFLOW, se você não especifica nenhum comutador virtual com sinalizadores -vSwitchName
e -vSwitchType
, a máquina virtual é criada com o comutador padrão.
Em dispositivos SKUs do Windows Server, a rede é um pouco mais complicada, pois não há comutador padrão disponível. Mas há um guia abrangente sobre a Criação do comutador virtual para o Azure IoT Edge para Linux no Windows.
Para lidar com vários tipos de rede, você pode usar diferentes tipos de comutador virtual e adicionar vários adaptadores de rede virtual.
Opções de comutador virtual
O EFLOW dá suporte a dois tipos de comutador virtual do Hyper-V: interno e externo. Você escolhe qual deles quer durante criação antes de implantar o 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, confira Criar um comutador virtual para máquinas virtuais do Hyper-V.
Você pode fazer algumas alterações no comutador virtual depois de criá-lo. Por exemplo, é possível alterar o tipo de comutador, mas isso pode afetar os recursos de rede da máquina virtual EFLOW conectada a esse comutador. Portanto, se você não cometeu um erro ou precisa fazer um teste, não é recomendável alterar a configuração do comutador virtual.
Dependendo se a VM EFLOW está implantada em uma SKU do cliente Windows ou em um dispositivo do Windows Server, damos suporte a diferentes tipos de comutador, conforme mostrado na tabela a seguir.
Tipo de comutador virtual | SKUs de cliente Windows | SKUs do Windows Server |
---|---|---|
Externo | ||
Interna | - | |
Comutador padrão | - |
Comutador virtual externo: conecta-se a uma rede física com fio associando-se a um adaptador de rede físico. Ele fornece às máquinas virtuais acesso a uma rede física para se comunicar com dispositivos de uma rede externa. Além disso, permite que máquinas virtuais no mesmo servidor Hyper-V se comuniquem umas com as outras.
Comutador virtual interno: conecta-se a uma rede que só pode ser usada pelas máquinas virtuais em execução no host que tem o comutador virtual e entre o host e as máquinas virtuais.
Observação
A opção padrão é um comutador virtual interno específico criado por padrão depois que o Hyper-V é habilitado em SKUs de cliente Windows. O comutador virtual já tem um servidor DHCP para atribuições de IP, ICS (compartilhamento de conexão com a Internet) habilitado e uma tabela NAT. Para fins de EFLOW, o comutador padrão é um comutador interno virtual que pode ser usado sem configurações extras.
Alocações de endereço IP
Para habilitar as comunicações IP de rede da VM EFLOW, é preciso atribuir um endereço IP à máquina virtual. Há dois métodos para configurar esse endereço IP: IP estático ou DHCP.
Dependendo do tipo de comutador virtual usado, a VM EFLOW dá suporte a alocações de IP diferentes, conforme mostrado na tabela a seguir.
Tipo de comutador virtual | IP Estático | DHCP |
---|---|---|
Externo | ||
Interna | ||
Comutador padrão | - |
IP estático: esse endereço IP é atribuído permanentemente à VM EFLOW durante a instalação e não muda nas reinicializações da VM EFLOW ou do host Windows. Os endereços IP estáticos normalmente têm duas versões: IPv4 e IPv6. Porém o EFLOW dá suporte apenas ao IP estático para endereços IPv4. Em redes que usam IP estático, cada dispositivo tem o próprio endereço sem sobreposição. Durante a instalação do EFLOW, insira o endereço IP4 da VM EFLOW (
-ip4Address
), o tamanho do prefixo IP4 (-ip4PrefixLength
) e o endereço IP4 do gateway padrão (-ip4GatewayAddress
). Insira os três parâmetros para garantir a configuração correta.Por exemplo, se você quer implantar a VM EFLOW usando um comutador virtual externo chamado ExternalEflow com um endereço IP estático 192.168.0.100, o gateway padrão 192.168.0.1 e o comprimento do prefixo de 24, o comando de implantação a seguir é necessário
Deploy-Eflow -vSwitchName "ExternalEflow" -vswitchType "External" -ip4Address 192.168.0.100 -ip4GatewayAddress 192.168.0.1 -ip4PrefixLength 24
Aviso
Ao usar o IP estático, use os três parâmetros (
ip4Address
,ip4GatewayAddress
eip4PrefixLength
). Além disso, quando o endereço IP é inválido, está sendo usado por outro dispositivo da rede ou o endereço do gateway está incorreto, a instalação do EFLOW pode falhar, pois a VM do EFLOW não consegue 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, ou seja, um endereço que pode mudar. Um servidor DHCP precisa estar configurado e operando na rede para atribuir endereços IP dinâmicos. O servidor DHCP atribui um endereço IP vago à VM EFLOW e a outras VMs 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 da VM EFLOW. Se nenhum servidor DHCP está presente, a instalação do EFLOW falha, pois a VM não pode obter um endereço IP.
DNS
O DNS (Sistema de Nomes de Domínio) converte nomes de domínio legíveis por humanos (por exemplo, www.microsoft.com) para endereços IP legíveis por computador (por exemplo, 192.0.2.44). A máquina virtual EFLOW usa systemd (gerenciador de serviços e sistema) para que os serviços de resolução de nomes ou DNS sejam fornecidos a aplicativos e serviços locais por meio do serviço resolvido pelo sistema.
Por padrão, o arquivo de configuração DNS da VM EFLOW contém o stub local 127.0.0.53 como o único servidor DNS. Ele é redirecionado ao arquivo /etc/resolv.conf, que é usado para adicionar os servidores de nome usados pelo sistema. O stub local é um servidor DNS executado localmente para resolver consultas DNS. Em alguns casos, essas consultas são encaminhadas para outro servidor DNS na rede e armazenadas em cache localmente.
Você pode configurar a máquina virtual EFLOW para usar um servidor DNS específico ou uma lista de servidores. Para isso, você pode usar o cmdlet PowerShell Set-EflowVmDnsServers
. Para obter mais informações sobre a configuração DNS, confira Funções do PowerShell para o IoT Edge para Linux no Windows.
Para verificar os servidores DNS atribuídos à VM EFLOW, na VM EFLOW, use o comando: resolvectl status
. A saída do comando mostra uma lista dos servidores DNS configurados para cada interface. É importante verificar principalmente o status da interface eth0, que será a interface padrão para a comunicação da VM EFLOW. Verifique também 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.
Endereço MAC estático
O Hyper-V permite que você crie 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 permanecer o mesmo nas reinicializações da máquina virtual ou do host Windows. Para consultar o endereço MAC da máquina virtual EFLOW, você pode usar o comando a seguir.
Get-EflowVmAddr
NICs (Placas de interface de rede) múltiplas
Diversos dispositivos virtuais de rede e cenários exigem várias NICs. A máquina virtual EFLOW dá suporte à anexação de várias NICs. Com várias NICs, você gerencia melhor o tráfego de rede. Você também pode isolar o tráfego entre a NIC front-end e NICs 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 DMZ (zona desmilitarizada) e à rede offline em que todos os dispositivos compatíveis com OPC UA estão conectados. Esse é apenas um dos vários cenários a que a anexação de várias NICs à VM EFLOW pode dar suporte.
Para obter mais informações sobre o uso de várias NICs, confira Suporte de várias NICs.
Aviso
Ao usar o recurso de várias NICs do EFLOW, convém configurar as diferentes prioridades de rotas. Por padrão, o EFLOW cria uma rota padrão por interface ehtX atribuída à VM e atribui uma prioridade aleatória. Se todas as interfaces estão conectadas à Internet, as prioridades aleatórias podem não representar um problema. Mas, se uma das NICs está conectada a uma rede offline, convém priorizar a NIC online em vez da NIC offline para conectar a VM EFLOW à Internet. Para saber mais sobre o roteamento padrão, confira Roteamento de EFLOW.
Próximas etapas
Leia mais sobre a Segurança do Azure IoT Edge para Linux no Windows.
Saiba como gerenciar a rede do EFLOW em Configuração de rede do Azure IoT Edge para Linux no Windows