Dela via


Skapa exempelnätverksmiljö för förhandsversionen av Azure IoT Layered Network Management

Viktigt!

Förhandsversion av Azure IoT Operations – aktiverad av Azure Arc finns för närvarande i FÖRHANDSVERSION. Du bör inte använda den här förhandsgranskningsprogramvaran i produktionsmiljöer.

Juridiska villkor för Azure-funktioner i betaversion, förhandsversion eller som av någon annan anledning inte har gjorts allmänt tillgängliga ännu finns i kompletterande användningsvillkor för Microsoft Azure-förhandsversioner.

Om du vill använda förhandsversionen av Azure IoT Layered Network Management måste du konfigurera en isolerad nätverksmiljö. Till exempel ISA-95/Purdue Network-arkitekturen. Den här sidan innehåller några exempel på hur du konfigurerar en testmiljö beror på hur du vill uppnå isoleringen.

  • Fysisk segmentering – Nätverken separeras fysiskt. I det här fallet måste Layered Network Management distribueras till en värd med dubbla nätverkskort (nätverksgränssnittskort) för att ansluta till både det internetuppkopplade nätverket och det isolerade nätverket.
  • Logisk segmentering – Nätverket är logiskt segmenterat med konfigurationer som VLAN, undernät eller brandvägg. Layered Network Management har en enda slutpunkt och konfigurerad för att vara synlig för sitt eget nätverkslager och det isolerade lagret.

Båda metoderna kräver att du konfigurerar en anpassad DNS i det isolerade nätverksskiktet för att dirigera nätverkstrafiken till layered Network Management-instansen i det övre lagret.

Viktigt!

De nätverksmiljöer som beskrivs i dokumentationen för Layered Network Management är exempel för testning av layered network management. Det är inte en rekommendation om hur du skapar nätverks- och klustertopologin för produktion.

Konfigurera isolerat nätverk med fysisk segmentering

Följande exempelkonfiguration är ett enkelt isolerat nätverk med minsta fysiska enheter.

Diagram of a physical device isolated network configuration.

  • Den trådlösa åtkomstpunkten används för att konfigurera ett lokalt nätverk och ger inte internetåtkomst.
  • Nivå 4-kluster är ett kluster med en nod som finns på en fysisk dator med dubbla nätverkskort (NIC) som ansluter till Internet och det lokala nätverket.
  • Nivå 3-kluster är ett kluster med en nod som finns på en fysisk dator. Det här enhetsklustret ansluter bara till det lokala nätverket.

Layered Network Management distribueras till det dubbla NIC-klustret. Klustret i det lokala nätverket ansluter till Layered Network Management som proxy för att få åtkomst till Azure- och Arc-tjänster. Dessutom skulle det behövas en anpassad DNS i det lokala nätverket för att tillhandahålla domännamnsmatchning och peka trafiken till Layered Network Management. Mer information finns i Konfigurera anpassad DNS.

Konfigurera isolerat nätverk med logisk segmentering

Följande diagram illustrerar en isolerad nätverksmiljö där varje nivå segmenteras logiskt med undernät. I den här testmiljön finns det flera kluster ett på varje nivå. Klustren kan vara AKS Edge Essentials eller K3S. Kubernetes-klustret i nivå 4-nätverket har direkt internetåtkomst. Kubernetes-klustren på nivå 3 och lägre har inte internetåtkomst.

Diagram of a logical segmentation isolated network.

Flera nivåer av nätverk i den här testkonfigurationen utförs med hjälp av undernät i ett nätverk:

  • Nivå 4-undernät (10.104.0.0/16) – Det här undernätet har åtkomst till Internet. Alla begäranden skickas till destinationerna på Internet. Det här undernätet har en enda Windows 11-dator med IP-adressen 10.104.0.10.
  • Nivå 3-undernät (10.103.0.0/16) – Det här undernätet har inte åtkomst till Internet och är konfigurerat för att endast ha åtkomst till IP-adressen 10.104.0.10 på nivå 4. Det här undernätet innehåller en Windows 11-dator med IP-adressen 10.103.0.33 och en Linux-dator som är värd för en DNS-server. DNS-servern konfigureras med hjälp av stegen i Konfigurera anpassad DNS. Alla domäner i DNS-konfigurationen måste mappas till adressen 10.104.0.10.
  • Nivå 2-undernät (10.102.0.0/16) – Precis som nivå 3 har det här undernätet inte åtkomst till Internet. Den är konfigurerad för att endast ha åtkomst till IP-adressen 10.103.0.33 på nivå 3. Det här undernätet innehåller en Windows 11-dator med IP-adressen 10.102.0.28 och en Linux-dator som är värd för en DNS-server. Det finns en Windows 11-dator (nod) i det här nätverket med IP-adressen 10.102.0.28. Alla domäner i DNS-konfigurationen måste mappas till adressen 10.103.0.33.

Se följande exempel för att konfigurera den här typen av nätverksmiljö.

Exempel på logisk segmentering med minsta möjliga maskinvara

I det här exemplet är båda datorerna anslutna till en åtkomstpunkt (AP) som ansluter till Internet. Värddatorn på nivå 4 kan komma åt Internet. Nivå 3-värden blockeras för åtkomst till Internet med AP:s konfiguration. Till exempel brandvägg eller klientkontroll. Eftersom båda datorerna finns i samma nätverk är layered Network Management-instansen på nivå 4-klustret som standard synlig för dator och kluster på nivå 3. En extra anpassad DNS måste konfigureras i det lokala nätverket för att tillhandahålla domännamnsmatchning och peka trafiken till Layered Network Management. Mer information finns i Konfigurera anpassad DNS.

Diagram of a logical isolated network configuration.

Exempel på logisk segmentering i Azure

I det här exemplet skapas en testmiljö med ett virtuellt nätverk och en virtuell Linux-dator i Azure.

Viktigt!

Virtuell miljö är endast avsedd för utforskning och utvärdering. Mer information finns i verifierade miljöer för förhandsversionen av Azure IoT Operations.

  1. Skapa ett virtuellt nätverk i din Azure-prenumeration. Skapa undernät för minst två lager (nivå 4 och nivå 3). Screenshot for virtual network in Azure.
  2. Det är valfritt att skapa ett extra undernät för jumpbox- eller utvecklardatorn för fjärråtkomst till datorn eller klustret mellan lager. Den här konfigurationen är praktisk om du planerar att skapa fler än två nätverkslager. Annars kan du ansluta jumpbox-datorn till nivå 4-nätverket.
  3. Skapa nätverkssäkerhetsgrupper för varje nivå och anslut till undernätet i enlighet med detta.
  4. Du kan använda standardvärdet för säkerhetsgruppen nivå 4.
  5. Du måste konfigurera ytterligare regler för inkommande och utgående trafik för säkerhetsgruppen nivå 3 (och lägre nivå).
    • Lägg till regler för inkommande och utgående säkerhet för att neka all nätverkstrafik.
    • Med högre prioritet lägger du till regler för inkommande och utgående säkerhet för att tillåta nätverkstrafik till och från IP-intervallet för nivå 4-undernät.
    • [Valfritt] Om du skapar ett jumpbox-undernät skapar du regler för inkommande och utgående trafik för att tillåta trafik till och från det här undernätet. Screenshot for level 3 security group.
  6. Skapa virtuella Linux-datorer på nivå 3 och nivå 4.
    • Se verifierade miljöer för specifikation av den virtuella datorn.
    • När du skapar den virtuella datorn ansluter du datorn till det undernät som skapades i tidigare steg.
    • Hoppa över skapandet av säkerhetsgruppen för den virtuella datorn.

Konfigurera anpassad DNS

En anpassad DNS krävs för nivå 3 och lägre. Det säkerställer att DNS-matchning för nätverkstrafik som kommer från klustret pekas på den överordnade nivån Layered Network Management-instansen. I en befintlig miljö eller produktionsmiljö lägger du till följande DNS-matchningar i DNS-designen. Om du vill konfigurera en testmiljö för Layered Network Management-tjänsten och Azure IoT Operations kan du läsa följande exempel.

Konfigurera CoreDNS

Dns-konfigurationen kan göras på många olika sätt, men i det här exemplet används en tilläggsmekanism som tillhandahålls av CoreDNS som är standard-DNS-servern för K3S-kluster. URL:er på listan över tillåtna adresser som måste lösas läggs till i CoreDNS.

Viktigt!

CoreDNS-metoden gäller endast för K3S-kluster på Ubuntu-värden på nivå 3.

Skapa en konfigurationskarta från förhandsversionen av nätverkshantering på nivå 4

När nivå 4-klustret och Layered Network Management är klara utför du följande steg.

  1. Bekräfta IP-adressen för Layered Network Management-tjänsten med följande kommando:

    kubectl get services -n azure-iot-operations
    

    Resultatet bör likna följande. IP-adressen för tjänsten är 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
    
  2. Visa konfigurationsmappningarna med följande kommando:

    kubectl get cm -n azure-iot-operations
    

    Utdata bör se ut som i följande exempel:

    NAME                           DATA   AGE
    aio-lnm-level4-config          1      50s
    aio-lnm-level4-client-config   1      50s
    
  3. aio-lnm-level4-client-configAnpassa . Den här konfigurationen behövs som en del av konfigurationen på nivå 3 för att vidarebefordra trafik från nivå 3-klustret till den översta nivåinstansen för nätverkshantering på nivå 3.

    # 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
    

    Det här steget skapar en fil med namnet configmap-custom-level4.yaml

Konfigurera nivå 3 CoreDNS för K3S

När du har konfigurerat K3S-klustret och flyttat det till det isolerade nivå 3-lagret konfigurerar du CoreDNS på nivå 3 K3S med den anpassade klientkonfigurationen som genererades tidigare.

  1. configmap-custom-level4.yaml Kopiera till nivå 3-värden eller till systemet där du fjärråtkomst till klustret.

  2. Kör följande kommandon:

    # 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.
    
  3. I föregående steg anges DNS-konfigurationen så att de tillåtna URL:erna i klustret matchas till nivå 4. För att säkerställa att DNS utanför klustret gör detsamma måste du konfigurera systemupplösad för att vidarebefordra trafik till CoreDNS i K3S-klustret. Kör följande kommandon på K3S-värden: Skapa följande katalog:

        sudo mkdir /etc/systemd/resolved.conf.d
    

    Skapa en fil med namnet lnm.conf med följande innehåll. IP-adressen ska vara ip-adressen på nivå 3 för kube-dns-tjänsten som körs i kube-system-namnområdet.

    [Resolve]
    DNS=<PUT KUBE-DNS SERVICE IP HERE> 
    DNSStubListener=no
    

    Starta om DNS-matcharen:

    sudo systemctl restart systemd-resolved
    

Vad är Azure IoT Layered Network Management Preview?