Voorbeeldnetwerkomgeving maken voor azure IoT Layered Network Management Preview
Belangrijk
Azure IoT Operations Preview: ingeschakeld door Azure Arc is momenteel in preview. Gebruik deze preview-software niet in productieomgevingen.
U moet een nieuwe Azure IoT Operations-installatie implementeren wanneer er een algemeen beschikbare release beschikbaar komt. U kunt geen preview-installatie upgraden.
Zie de aanvullende gebruiksvoorwaarden voor Microsoft Azure Previews voor juridische voorwaarden die van toepassing zijn op Azure-functies die in de bètaversie, in preview of anderszins nog niet zijn uitgebracht in algemene beschikbaarheid.
Als u azure IoT Layered Network Management Preview-service wilt gebruiken, moet u een geïsoleerde netwerkomgeving configureren. Bijvoorbeeld de ISA-95/Purdue Network-architectuur. Deze pagina bevat enkele voorbeelden voor het instellen van een testomgeving, afhankelijk van hoe u de isolatie wilt bereiken.
- Fysieke segmentatie : de netwerken worden fysiek gescheiden. In dit geval moet het gelaagde netwerkbeheer worden geïmplementeerd op een dual NIC-host (Netwerkinterfacekaart) om verbinding te maken met zowel het internetgerichte netwerk als het geïsoleerde netwerk.
- Logische segmentatie : het netwerk is logisch gesegmenteerd met configuraties zoals VLAN, subnet of firewall. Het gelaagde netwerkbeheer heeft één eindpunt en is geconfigureerd om zichtbaar te zijn voor de eigen netwerklaag en de geïsoleerde laag.
Voor beide benaderingen moet u een aangepaste DNS configureren in de geïsoleerde netwerklaag om het netwerkverkeer om te leiden naar het gelaagde netwerkbeheerexemplaren in de bovenste laag.
Belangrijk
De netwerkomgevingen die worden beschreven in documentatie over gelaagd netwerkbeheer zijn voorbeelden voor het testen van het gelaagde netwerkbeheer. Het is geen aanbeveling om uw netwerk- en clustertopologie voor productie te bouwen.
Geïsoleerd netwerk configureren met fysieke segmentatie
De volgende voorbeeldconfiguratie is een eenvoudig geïsoleerd netwerk met minimale fysieke apparaten.
- Het draadloze toegangspunt wordt gebruikt voor het instellen van een lokaal netwerk en biedt geen internettoegang.
- Cluster op niveau 4 is een cluster met één knooppunt dat wordt gehost op een fysieke NIC-computer (Dual Network Interface Card) die verbinding maakt met internet en het lokale netwerk.
- Cluster op niveau 3 is een cluster met één knooppunt dat wordt gehost op een fysieke computer. Dit apparaatcluster maakt alleen verbinding met het lokale netwerk.
Gelaagd netwerkbeheer wordt geïmplementeerd in het dubbele NIC-cluster. Het cluster in het lokale netwerk maakt verbinding met gelaagd netwerkbeheer als proxy voor toegang tot Azure- en Arc-services. Daarnaast moet er een aangepaste DNS in het lokale netwerk worden gebruikt om domeinnaamomzetting te bieden en het verkeer naar gelaagd netwerkbeheer te laten verwijzen. Zie Aangepaste DNS configureren voor meer informatie.
Geïsoleerd netwerk configureren met logische segmentatie
In het volgende diagram ziet u een geïsoleerde netwerkomgeving waarin elk niveau logisch is gesegmenteerd met subnetten. In deze testomgeving zijn er meerdere clusters één op elk niveau. De clusters kunnen AKS Edge Essentials of K3S zijn. Het Kubernetes-cluster in het netwerk op niveau 4 heeft directe internettoegang. De Kubernetes-clusters op niveau 3 en lager hebben geen internettoegang.
De verschillende niveaus van netwerken in deze testinstallatie worden uitgevoerd met behulp van subnetten in een netwerk:
- Subnet op niveau 4 (10.104.0.0/16): dit subnet heeft toegang tot internet. Alle aanvragen worden verzonden naar de bestemmingen op internet. Dit subnet heeft één Windows 11-computer met het IP-adres 10.104.0.10.
- Subnet op niveau 3 (10.103.0.0/16): dit subnet heeft geen toegang tot internet en is geconfigureerd voor alleen toegang tot het IP-adres 10.104.0.10 in niveau 4. Dit subnet bevat een Windows 11-computer met het IP-adres 10.103.0.33 en een Linux-computer die als host fungeert voor een DNS-server. De DNS-server wordt geconfigureerd met behulp van de stappen in Aangepaste DNS configureren. Alle domeinen in de DNS-configuratie moeten worden toegewezen aan het adres 10.104.0.10.
- Subnet op niveau 2 (10.102.0.0/16) - Net als niveau 3 heeft dit subnet geen toegang tot internet. Het is geconfigureerd om alleen toegang te hebben tot het IP-adres 10.103.0.33 in niveau 3. Dit subnet bevat een Windows 11-computer met het IP-adres 10.102.0.28 en een Linux-computer die als host fungeert voor een DNS-server. Er is één Windows 11-computer (knooppunt) in dit netwerk met IP-adres 10.102.0.28. Alle domeinen in de DNS-configuratie moeten worden toegewezen aan het adres 10.103.0.33.
Raadpleeg de volgende voorbeelden voor het instellen van dit type netwerkomgeving.
Voorbeeld van logische segmentatie met minimale hardware
In dit voorbeeld zijn beide computers verbonden met een toegangspunt (AP) dat verbinding maakt met internet. De hostcomputer op niveau 4 heeft toegang tot internet. De host op niveau 3 wordt geblokkeerd voor toegang tot internet met de configuratie van de AP. Bijvoorbeeld firewall- of clientbeheer. Omdat beide computers zich in hetzelfde netwerk bevinden, is het gelaagde netwerkbeheerexemplaren die worden gehost op cluster op niveau 4 standaard zichtbaar voor de computer en het cluster op niveau 3. Er moet een extra aangepaste DNS worden ingesteld in het lokale netwerk om domeinnaamomzetting te bieden en het verkeer naar gelaagd netwerkbeheer te laten verwijzen. Zie Aangepaste DNS configureren voor meer informatie.
Voorbeeld van logische segmentatie in Azure
In dit voorbeeld wordt een testomgeving gemaakt met een virtueel netwerk en een virtuele Linux-machine in Azure.
Belangrijk
Virtuele omgeving is alleen bedoeld voor verkenning en evaluatie. Zie gevalideerde omgevingen voor Azure IoT Operations Preview voor meer informatie.
- Maak een virtueel netwerk in uw Azure-abonnement. Maak subnetten voor ten minste twee lagen (niveau 4 en niveau 3).
- Het is optioneel om een extra subnet te maken voor de jumpbox - of ontwikkelaarscomputer om op afstand toegang te krijgen tot de machine of het cluster in verschillende lagen. Deze installatie is handig als u van plan bent meer dan twee netwerklagen te maken. Anders kunt u de jumpbox-machine verbinden met het netwerk op niveau 4.
- Maak netwerkbeveiligingsgroepen voor elk niveau en koppel het aan het subnet dienovereenkomstig.
- U kunt de standaardwaarde voor beveiligingsgroep op niveau 4 gebruiken.
- U moet aanvullende regels voor binnenkomend en uitgaand verkeer configureren voor beveiligingsgroep op niveau 3 (en lager niveau).
- Voeg inkomende en uitgaande beveiligingsregels toe om al het netwerkverkeer te weigeren.
- Voeg met een hogere prioriteit binnenkomende en uitgaande beveiligingsregels toe om netwerkverkeer naar en van het IP-bereik van subnet op niveau 4 toe te staan.
- [Optioneel] Als u een jumpbox-subnet maakt, maakt u regels voor inkomend en uitgaand verkeer naar en van dit subnet.
- Virtuele Linux-machines maken in niveau 3 en niveau 4.
- Raadpleeg gevalideerde omgevingen voor specificatie van de VM.
- Wanneer u de VIRTUELE machine maakt, verbindt u de machine met het subnet dat u in eerdere stappen hebt gemaakt.
- Sla het maken van de beveiligingsgroep voor de VIRTUELE machine over.
Aangepaste DNS configureren
Er is een aangepaste DNS nodig voor niveau 3 en lager. Het zorgt ervoor dat DNS-omzetting voor netwerkverkeer dat afkomstig is van het cluster, wordt verwezen naar het bovenliggende gelaagde netwerkbeheerexemplaren. Neem in een bestaande of productieomgeving de volgende DNS-resoluties op in uw DNS-ontwerp. Als u een testomgeving wilt instellen voor een gelaagde netwerkbeheerservice en Azure IoT Operations, raadpleegt u de volgende voorbeelden.
CoreDNS configureren
Hoewel de DNS-installatie veel verschillende manieren kan worden bereikt, gebruikt dit voorbeeld een uitbreidingsmechanisme dat wordt geleverd door CoreDNS dat de standaard-DNS-server voor K3S-clusters is. URL's op de acceptatielijst, die moeten worden omgezet, worden toegevoegd aan de CoreDNS.
Belangrijk
De CoreDNS-benadering is alleen van toepassing op K3S-cluster op Ubuntu-host op niveau 3.
Configuratiemap maken op basis van niveau 4 Gelaagd netwerkbeheer (preview)
Nadat het cluster op niveau 4 en gelaagd netwerkbeheer gereed zijn, voert u de volgende stappen uit.
Bevestig het IP-adres van de gelaagde netwerkbeheerservice met de volgende opdracht:
kubectl get services -n azure-iot-operations
De uitvoer moet er als volgt uitzien. Het IP-adres van de service is
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
Bekijk de configuratietoewijzingen met de volgende opdracht:
kubectl get cm -n azure-iot-operations
De uitvoer moet eruitzien als in het volgende voorbeeld:
NAME DATA AGE aio-lnm-level4-config 1 50s aio-lnm-level4-client-config 1 50s
Pas de
aio-lnm-level4-client-config
. Deze configuratie is nodig als onderdeel van de setup op niveau 3 om verkeer van het cluster op niveau 3 door te sturen naar het instantie van gelaagd netwerkbeheer op het hoogste niveau.# 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
Met deze stap maakt u een bestand met de naam
configmap-custom-level4.yaml
Niveau 3 CoreDNS van K3S configureren
Nadat u het K3S-cluster hebt ingesteld en verplaatst naar de geïsoleerde laag op niveau 3, configureert u de CoreDNS van niveau 3 K3S met de aangepaste clientconfiguratie die eerder is gegenereerd.
Kopieer de
configmap-custom-level4.yaml
naar de host op niveau 3 of naar het systeem waar u op afstand toegang tot het cluster hebt.Voer de volgende opdrachten uit:
# 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 addresss matches the ip address of the level 4 Layered Network Management instance.
In de vorige stap stelt u de DNS-configuratie in om de toegestane URL's in het cluster op niveau 4 op te lossen. Om ervoor te zorgen dat DNS buiten het cluster hetzelfde doet, moet u door het systeem omgezet configureren om verkeer door te sturen naar CoreDNS binnen het K3S-cluster. Voer de volgende opdrachten uit op de K3S-host: Maak de volgende map:
sudo mkdir /etc/systemd/resolved.conf.d
Maak een bestand met de naam
lnm.conf
met de volgende inhoud. Het IP-adres moet het IP-adres op niveau 3 van het cluster zijn van de kube-dns-service die wordt uitgevoerd in de kube-system-naamruimte.[Resolve] DNS=<PUT KUBE-DNS SERVICE IP HERE> DNSStubListener=no
Start de DNS-resolver opnieuw op:
sudo systemctl restart systemd-resolved