Crie um modelo de ambiente de rede para implantar o Gerenciamento de Rede em Camadas do Azure IoT (versão prévia)
Para usar o serviço Gerenciamento de Rede em Camadas do Azure IoT (versão prévia), você precisa configurar um ambiente de rede isolado. Por exemplo, o ISA-95/Arquitetura de rede Purdue. Esta página fornece alguns exemplos para configurar um ambiente de teste que depende de como você deseja obter o isolamento.
- Segmentação física – As redes são separadas fisicamente. Nesse caso, o Gerenciamento de Rede em Camadas (versão prévia) precisa ser implantado em um host NIC (Placa de Interface de Rede) duplo para se conectar à rede voltada para a Internet e à rede isolada.
- Segmentação lógica – a rede é segmentada logicamente com configurações como VLAN, sub-rede ou firewall. O Gerenciamento de Rede em Camadas tem um único ponto de extremidade e configurado para ser visível para sua própria camada de rede e a camada isolada.
Ambas as abordagens exigem que você configure um DNS personalizado na camada de rede isolada para direcionar o tráfego de rede para a instância de Gerenciamento de Rede em Camadas na camada superior.
Importante
Os ambientes de rede descritos na documentação de Gerenciamento de Rede Em Camadas são exemplos para testar o Gerenciamento de Rede em Camadas. Não é uma recomendação de como você cria sua rede e topologia de cluster para produção.
Configurar a rede isolada com segmentação física
A configuração de exemplo a seguir é uma rede isolada simples com dispositivos físicos mínimos.
- O ponto de acesso sem fio é usado para configurar uma rede local e não fornece acesso à Internet.
- Cluster de Nível 4 é um cluster de nó único hospedado em um computador físico NIC (placa de interface de rede dupla) que se conecta à Internet e à rede local.
- Cluster de Nível 3 é um cluster de nó único hospedado em um computador físico. Esse cluster de dispositivos só se conecta à rede local.
O Gerenciamento de Rede em Camadas é implantado no cluster NIC duplo. O cluster na rede local conecta-se ao Gerenciamento de Rede em Camadas como um proxy para acessar os serviços do Azure e do Arc. Além disso, seria necessário um DNS personalizado na rede local para fornecer resolução de nome de domínio e apontar o tráfego para o Gerenciamento de Rede Em Camadas. Para obter mais informações, consulte Configurar DNS personalizado.
Configurar a Rede Isolada com segmentação lógica
O diagrama a seguir ilustra um ambiente de rede isolado em que cada nível é segmentado logicamente com sub-redes. Nesse ambiente de teste, há vários clusters um em cada nível. Os clusters podem ser AKS Edge Essentials ou K3S. O cluster kubernetes na rede de nível 4 tem acesso direto à Internet. Os clusters do Kubernetes no nível 3 e abaixo não têm acesso à Internet.
Os vários níveis de redes nesta configuração de teste são realizados usando sub-redes em uma rede:
- Sub-rede Nível 4 (10.104.0.0/16) – essa sub-rede tem acesso à Internet. Todas as solicitações são enviadas para os destinos na Internet. Essa sub-rede tem um único computador Windows 11 com o endereço IP 10.104.0.10.
- Sub-rede de Nível 3 (10.103.0.0/16) – essa sub-rede não tem acesso à Internet e está configurada para ter acesso somente ao endereço IP 10.104.0.10 no Nível 4. Essa sub-rede contém um computador Windows 11 com o endereço IP 10.103.0.33 e um computador Linux que hospeda um servidor DNS. O servidor DNS é configurado usando as etapas em Configurar DNS personalizado. Todos os domínios na configuração DNS devem ser mapeados para o endereço 10.104.0.10.
- Sub-rede de Nível 2 (10.102.0.0/16) - Como o Nível 3, essa sub-rede não tem acesso à Internet. Ele está configurado para ter acesso apenas ao endereço IP 10.103.0.33 no Nível 3. Essa sub-rede contém um computador Windows 11 com o endereço IP 10.102.0.28 e um computador Linux que hospeda um servidor DNS. Há um computador Windows 11 (nó) nessa rede com o endereço IP 10.102.0.28. Todos os domínios na configuração DNS devem ser mapeados para o endereço 10.103.0.33.
Consulte os exemplos a seguir para configurar esse tipo de ambiente de rede.
Exemplo de segmentação lógica com hardware mínimo
Neste exemplo, ambos os computadores estão conectados a um AP (ponto de acesso) que se conecta à Internet. O computador host de nível 4 pode acessar a Internet. O host de nível 3 é bloqueado para acessar a Internet com a configuração da AP. Por exemplo, firewall ou controle de cliente. Como ambos os computadores estão na mesma rede, a instância de Gerenciamento de Rede em Camadas hospedada no cluster de nível 4 é, por padrão, visível para o computador e cluster de nível 3. Um DNS personalizado extra precisa ser configurado na rede local para fornecer resolução de nome de domínio e apontar o tráfego para o Gerenciamento de Rede Em Camadas. Para obter mais informações, consulte Configurar DNS personalizado.
Exemplo de segmentação lógica no Azure
Neste exemplo, um ambiente de teste é criado com uma rede virtual e uma máquina virtual do Linux no Azure.
Importante
O ambiente virtual é somente para exploração e avaliação. Para obter mais informações, consulte ambientes com suporte para Operações do Azure IoT.
- Crie uma rede virtual na assinatura do Azure. Crie sub-redes para pelo menos duas camadas (nível 4 e nível 3).
- É opcional criar uma sub-rede extra para o computador jumpbox ou desenvolvedor para acessar remotamente o computador ou cluster entre camadas. Essa configuração será conveniente se você planeja criar mais de duas camadas de rede. Caso contrário, você poderá conectar o computador jumpbox à rede de nível 4.
- Crie grupos de segurança de rede para cada nível e anexe à sub-rede adequadamente.
- Você pode usar o valor padrão para o grupo de segurança de nível 4.
- Você precisa configurar regras de entrada e saída adicionais para o grupo de segurança de nível 3 (e nível inferior).
- Adicione regras de segurança de entrada e saída para negar todo o tráfego de rede.
- Com uma prioridade mais alta, adicione regras de segurança de entrada e saída para permitir o tráfego de rede de e para o intervalo de IP da sub-rede de nível 4.
- [Opcional] Se você criar uma sub-rede jumpbox, crie regras de entrada e saída para permitir o tráfego de e para essa sub-rede.
- Crie VMs do Linux no nível 3 e nível 4.
- Consulte ambientes com suporte para especificar a VM.
- Ao criar a VM, conecte o computador à sub-rede criada em etapas anteriores.
- Ignore a criação do grupo de segurança para VM.
Configurar DNS personalizado
Um DNS personalizado é necessário para o nível 3 e inferior. Ele garante que a resolução de DNS para o tráfego de rede proveniente do cluster seja apontada para a instância de Gerenciamento de Rede em Camadas no nível pai. Em um ambiente existente ou de produção, incorpore as seguintes resoluções DNS em seu design DNS. Se você quiser configurar um ambiente de teste para o serviço gerenciamento de rede em camadas e operações de IoT do Azure, consulte os exemplos a seguir.
Configurar o CoreDNS
Embora a configuração de DNS possa ser obtida de várias maneiras diferentes, este exemplo usa um mecanismo de extensão fornecido pelo CoreDNS que é o servidor DNS padrão para clusters K3S. As URLs na lista de permitidos que precisam ser resolvidas, são adicionadas ao CoreDNS.
Importante
A abordagem CoreDNS só é aplicável ao cluster K3S no host Ubuntu no nível 3.
Criar configmap a partir do gerenciamento de rede em camadas de nível 4
Depois que o cluster de nível 4 e o Gerenciamento de Rede em Camadas estiverem prontos, execute as etapas a seguir.
Confirme o endereço IP do serviço gerenciamento de rede em camadas com o seguinte comando:
kubectl get services -n azure-iot-operations
A saída deve parecer com o seguinte. O endereço IP do serviço é
20.81.111.118
.NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE lnm-level4 LoadBalancer 10.0.141.101 20.81.111.118 80:30960/TCP,443:31214/TCP 29s
Exiba os mapas de configuração com o seguinte comando:
kubectl get cm -n azure-iot-operations
A saída deve ser semelhante ao exemplo a seguir:
NAME DATA AGE aio-lnm-level4-config 1 50s aio-lnm-level4-client-config 1 50s
Personalize o
aio-lnm-level4-client-config
. Essa configuração é necessária como parte da configuração de nível 3 para encaminhar o tráfego do cluster de nível 3 para a instância de Gerenciamento de Rede Em Camadas de nível superior.# set the env var PARENT_IP_ADDR to the ip address of level 4 LNM instance. export PARENT_IP_ADDR="20.81.111.118" # run the script to generate a config map yaml kubectl get cm aio-lnm-level4-client-config -n azure-iot-operations -o yaml | yq eval '.metadata = {"name": "coredns-custom", "namespace": "kube-system"}' -| sed 's/PARENT_IP/'"$PARENT_IP_ADDR"'/' > configmap-custom-level4.yaml
Esta etapa cria um arquivo chamado
configmap-custom-level4.yaml
Configurar o CoreDNS de nível 3 do K3S
Depois de configurar o cluster K3S e movê-lo para a camada isolada de nível 3, configure o CoreDNS do nível 3 K3S com a configuração personalizada do cliente que foi gerada anteriormente.
Copie o
configmap-custom-level4.yaml
para o host de nível 3 ou para o sistema em que você está acessando remotamente o cluster.Execute os comandos a seguir:
# Create a config map called coredns-custom in the kube-system namespace kubectl apply -f configmap-custom-level4.yaml # Restart coredns kubectl rollout restart deployment/coredns -n kube-system # validate DNS resolution kubectl run -it --rm --restart=Never busybox --image=busybox:1.28 -- nslookup east.servicebus.windows.net # You should see the following output. kubectl run -it --rm --restart=Never busybox --image=busybox:1.28 -- nslookup east.servicebus.windows.net Server: 10.43.0.10 Address 1: 10.43.0.10 kube-dns.kube-system.svc.cluster.local Name: east.servicebus.windows.net Address 1: 20.81.111.118 pod "busybox" deleted # Note: confirm that the resolved ip address matches the ip address of the level 4 Layered Network Management instance.
A etapa anterior define a configuração de DNS para resolver as URLs na lista de permissões dentro do cluster para o nível 4. Para garantir que o DNS fora do cluster esteja fazendo o mesmo, você precisa configurar o sistema resolvido para encaminhar o tráfego para o CoreDNS dentro do cluster K3S. Execute os seguintes comandos no host K3S: Crie o seguinte diretório:
sudo mkdir /etc/systemd/resolved.conf.d
Crie um arquivo chamado
lnm.conf
com os conteúdos a seguir. O endereço IP deve ser o endereço IP de cluster de nível 3 do serviço kube-dns em execução no namespace do sistema kube.[Resolve] DNS=<PUT KUBE-DNS SERVICE IP HERE> DNSStubListener=no
Reinicie o resolvedor DNS:
sudo systemctl restart systemd-resolved
Conteúdo relacionado
O que é o Gerenciamento de Rede em Camadas da Internet das Coisas do Azure?