Tworzenie przykładowego środowiska sieciowego dla usługi Azure IoT Layered Network Management (wersja zapoznawcza)
Aby użyć usługi Azure IoT Layered Network Management (wersja zapoznawcza), należy skonfigurować izolowane środowisko sieciowe. Na przykład architektura sieci purdue ISA-95/. Ta strona zawiera kilka przykładów konfigurowania środowiska testowego w zależności od tego, jak chcesz osiągnąć izolację.
- Segmentacja fizyczna — sieci są fizycznie oddzielone. W takim przypadku należy wdrożyć zarządzanie siecią warstwową (wersja zapoznawcza) na hoście podwójnej karty sieciowej (karta interfejsu sieciowego), aby połączyć się zarówno z siecią internetową, jak i izolowaną siecią.
- Segmentacja logiczna — sieć jest logicznie segmentowana przy użyciu konfiguracji, takich jak sieć VLAN, podsieć lub zapora. Zarządzanie siecią warstwową ma jeden punkt końcowy i jest skonfigurowany tak, aby był widoczny dla własnej warstwy sieciowej i warstwy izolowanej.
Oba podejścia wymagają skonfigurowania niestandardowego systemu DNS w warstwie sieci izolowanej w celu kierowania ruchu sieciowego do wystąpienia warstwy zarządzania siecią w górnej warstwie.
Ważne
Środowiska sieciowe opisane w dokumentacji zarządzania siecią warstwową to przykłady testowania zarządzania siecią warstwową. Nie jest to zalecenie dotyczące tworzenia topologii sieci i klastra na potrzeby środowiska produkcyjnego.
Konfigurowanie izolowanej sieci przy użyciu segmentacji fizycznej
Poniższa przykładowa konfiguracja to prosta izolowana sieć z minimalnymi urządzeniami fizycznymi.
- Punkt dostępu bezprzewodowego służy do konfigurowania sieci lokalnej i nie zapewnia dostępu do Internetu.
- Klaster poziomu 4 to klaster z jednym węzłem hostowanym na maszynie fizycznej z podwójną kartą sieciową łączącą się z Internetem i siecią lokalną.
- Klaster poziomu 3 jest klastrem z jednym węzłem hostowanym na maszynie fizycznej. Ten klaster urządzeń łączy się tylko z siecią lokalną.
Zarządzanie siecią warstwową jest wdrażane w klastrze podwójnej karty sieciowej. Klaster w sieci lokalnej łączy się z zarządzaniem siecią warstwową jako serwer proxy w celu uzyskania dostępu do usług Azure i Arc. Ponadto w sieci lokalnej potrzebna byłaby niestandardowa usługa DNS w celu zapewnienia rozpoznawania nazw domen i wskazywania ruchu do warstwowego zarządzania siecią. Aby uzyskać więcej informacji, zobacz Konfigurowanie niestandardowego systemu DNS.
Konfigurowanie izolowanej sieci z segmentacją logiczną
Na poniższym diagramie przedstawiono izolowane środowisko sieciowe, w którym każdy poziom jest logicznie segmentowany z podsieciami. W tym środowisku testowym istnieje wiele klastrów na każdym poziomie. Klastry mogą być podstawowymi elementami usługi AKS Edge lub K3S. Klaster Kubernetes w sieci poziomu 4 ma bezpośredni dostęp do Internetu. Klastry Kubernetes na poziomie 3 i poniżej nie mają dostępu do Internetu.
Wiele poziomów sieci w tej konfiguracji testowej odbywa się przy użyciu podsieci w sieci:
- Podsieć poziomu 4 (10.104.0.0/16) — ta podsieć ma dostęp do Internetu. Wszystkie żądania są wysyłane do miejsc docelowych w Internecie. Ta podsieć ma jedną maszynę z systemem Windows 11 z adresem IP 10.104.0.10.
- Podsieć poziomu 3 (10.103.0.0/16) — ta podsieć nie ma dostępu do Internetu i jest skonfigurowana tak, aby miała dostęp tylko do adresu IP 10.104.0.10 w poziomie 4. Ta podsieć zawiera maszynę z systemem Windows 11 z adresem IP 10.103.0.33 i maszyną z systemem Linux, która hostuje serwer DNS. Serwer DNS jest skonfigurowany przy użyciu kroków opisanych w temacie Konfigurowanie niestandardowego systemu DNS. Wszystkie domeny w konfiguracji DNS muszą być mapowane na adres 10.104.0.10.
- Podsieć poziomu 2 (10.102.0.0/16) — podobnie jak poziom 3, ta podsieć nie ma dostępu do Internetu. Skonfigurowano dostęp tylko do adresu IP 10.103.0.33 na poziomie 3. Ta podsieć zawiera maszynę z systemem Windows 11 z adresem IP 10.102.0.28 i maszyną z systemem Linux, która hostuje serwer DNS. W tej sieci istnieje jedna maszyna z systemem Windows 11 (węzeł) z adresem IP 10.102.0.28. Wszystkie domeny w konfiguracji DNS muszą być mapowane na adres 10.103.0.33.
Zapoznaj się z poniższymi przykładami dotyczącymi konfigurowania tego typu środowiska sieciowego.
Przykład segmentacji logicznej z minimalnym sprzętem
W tym przykładzie oba maszyny są połączone z punktem dostępu (AP), który łączy się z Internetem. Komputer hosta poziomu 4 może uzyskiwać dostęp do Internetu. Host poziomu 3 jest zablokowany do uzyskiwania dostępu do Internetu przy użyciu konfiguracji ap. Na przykład zapora lub kontrola klienta. Ponieważ obie maszyny znajdują się w tej samej sieci, wystąpienie warstwowego zarządzania siecią hostowane w klastrze poziomu 4 jest domyślnie widoczne dla maszyny i klastra poziomu 3. W sieci lokalnej należy skonfigurować dodatkowy niestandardowy system DNS w celu zapewnienia rozpoznawania nazw domen i wskazywania ruchu do warstwowego zarządzania siecią. Aby uzyskać więcej informacji, zobacz Konfigurowanie niestandardowego systemu DNS.
Przykład segmentacji logicznej na platformie Azure
W tym przykładzie środowisko testowe jest tworzone przy użyciu sieci wirtualnej i maszyny wirtualnej z systemem Linux na platformie Azure.
Ważne
Środowisko wirtualne służy tylko do eksploracji i oceny. Aby uzyskać więcej informacji, zobacz obsługiwane środowiska dla operacji usługi Azure IoT.
- Utwórz sieć wirtualną w ramach subskrypcji platformy Azure. Utwórz podsieci dla co najmniej dwóch warstw (poziom 4 i poziom 3).
- Opcjonalnie można utworzyć dodatkową podsieć dla serwera przesiadkowego lub maszyny deweloperskiej w celu zdalnego uzyskiwania dostępu do maszyny lub klastra między warstwami. Ta konfiguracja jest wygodna, jeśli planujesz utworzyć więcej niż dwie warstwy sieciowe. W przeciwnym razie możesz połączyć maszynę przesiadkowa z siecią poziomu 4.
- Utwórz sieciowe grupy zabezpieczeń dla każdego poziomu i odpowiednio dołącz do podsieci.
- Możesz użyć wartości domyślnej dla grupy zabezpieczeń poziomu 4.
- Należy skonfigurować dodatkowe reguły ruchu przychodzącego i wychodzącego dla grupy zabezpieczeń poziomu 3 (i niższego poziomu).
- Dodaj reguły zabezpieczeń dla ruchu przychodzącego i wychodzącego, aby odmówić całego ruchu sieciowego.
- Z wyższym priorytetem dodaj reguły zabezpieczeń dla ruchu przychodzącego i wychodzącego, aby zezwolić na ruch sieciowy do i z zakresu adresów IP poziomu 4 podsieci.
- [Opcjonalnie] Jeśli utworzysz podsieć serwera przesiadkowego, utwórz reguły ruchu przychodzącego i wychodzącego, aby umożliwić ruch do i z tej podsieci.
- Utwórz maszyny wirtualne z systemem Linux na poziomie 3 i na poziomie 4.
- Zapoznaj się z obsługiwanymi środowiskami , aby uzyskać informacje o specyfikacji maszyny wirtualnej.
- Podczas tworzenia maszyny wirtualnej połącz maszynę z podsiecią utworzoną we wcześniejszych krokach.
- Pomiń tworzenie grupy zabezpieczeń dla maszyny wirtualnej.
konfigurowanie niestandardowego systemu DNS
Niestandardowy system DNS jest wymagany dla poziomu 3 i poniżej. Gwarantuje to, że rozpoznawanie nazw DNS dla ruchu sieciowego pochodzącego z klastra jest wskazywane na wystąpienie zarządzania siecią warstwową na poziomie nadrzędnym. W istniejącym lub produkcyjnym środowisku uwzględnij następujące rozwiązania DNS w projekcie DNS. Jeśli chcesz skonfigurować środowisko testowe dla usługi Zarządzanie siecią warstwową i operacje usługi Azure IoT, zapoznaj się z poniższymi przykładami.
Konfigurowanie sieci CoreDNS
Podczas gdy konfiguracja DNS można osiągnąć na wiele różnych sposobów, w tym przykładzie jest używany mechanizm rozszerzenia udostępniany przez CoreDNS, który jest domyślnym serwerem DNS dla klastrów K3S. Adresy URL na liście dozwolonych, które należy rozwiązać, są dodawane do sieci CoreDNS.
Ważne
Podejście CoreDNS dotyczy tylko klastra K3S na hoście z systemem Ubuntu na poziomie 3.
Tworzenie mapy konfiguracji na poziomie 4 Warstwowe zarządzanie siecią
Gdy klaster poziomu 4 i zarządzanie siecią warstwową są gotowe, wykonaj następujące kroki.
Potwierdź adres IP usługi Zarządzania siecią warstwową za pomocą następującego polecenia:
kubectl get services -n azure-iot-operations
Dane wyjściowe powinny wyglądać podobnie do poniższych. Adres IP usługi to
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
Wyświetl mapy konfiguracji za pomocą następującego polecenia:
kubectl get cm -n azure-iot-operations
Dane wyjściowe powinny wyglądać podobnie do następującego przykładu:
NAME DATA AGE aio-lnm-level4-config 1 50s aio-lnm-level4-client-config 1 50s
Dostosuj element
aio-lnm-level4-client-config
. Ta konfiguracja jest wymagana w ramach konfiguracji poziomu 3 w celu przekazywania ruchu z klastra poziomu 3 do wystąpienia zarządzania siecią warstwową najwyższego poziomu.# 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
Ten krok tworzy plik o nazwie
configmap-custom-level4.yaml
Konfigurowanie poziomów 3 CoreDNS usługi K3S
Po skonfigurowaniu klastra K3S i przeniesieniu go do warstwy izolowanej na poziomie 3 skonfiguruj wcześniej wygenerowaną konfigurację CoreDNS poziomu 3 K3S z dostosowaną konfiguracją klienta.
Skopiuj element
configmap-custom-level4.yaml
na host poziomu 3 lub do systemu, w którym uzyskujesz zdalny dostęp do klastra.Uruchom następujące polecenia:
# 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.
Poprzedni krok ustawia konfigurację DNS, aby rozpoznać dozwolone adresy URL w klastrze na poziomie 4. Aby upewnić się, że system DNS poza klastrem działa tak samo, należy skonfigurować systemowo rozpoznawane w celu przekazywania ruchu do sieci CoreDNS wewnątrz klastra K3S. Uruchom następujące polecenia na hoście K3S: Utwórz następujący katalog:
sudo mkdir /etc/systemd/resolved.conf.d
Utwórz plik o nazwie z
lnm.conf
następującą zawartością. Adres IP powinien być adresem IP klastra poziomu 3 usługi kube-dns uruchomionej w przestrzeni nazw kube-system.[Resolve] DNS=<PUT KUBE-DNS SERVICE IP HERE> DNSStubListener=no
Uruchom ponownie program rozpoznawania nazw DNS:
sudo systemctl restart systemd-resolved