Konfiguracja sieci dla usługi Azure IoT Edge dla systemu Linux w systemie Windows

Dotyczy:Znacznik wyboru usługi IoT Edge 1.4 IoT Edge 1.4

Ważne

Obsługiwane są wersje usługi IoT Edge 1.5 LTS i IoT Edge 1.4. Usługa IoT Edge 1.4 LTS kończy się 12 listopada 2024 r. Jeśli korzystasz z wcześniejszej wersji, zobacz aktualizację Azure IoT Edge.

Ten artykuł ułatwia podjęcie decyzji, która opcja sieci jest najlepsza dla danego scenariusza i zapewnia wgląd w wymagania dotyczące konfiguracji usługi IoT Edge dla systemu Linux w systemie Windows (EFLOW).

Aby połączyć usługę IoT Edge dla systemu Linux w systemie Windows (EFLOW) za pośrednictwem sieci z hostem, z innymi maszynami wirtualnymi na hoście systemu Windows oraz z innymi urządzeniami/lokalizacjami w sieci zewnętrznej, należy odpowiednio skonfigurować sieć maszyn wirtualnych.

Najprostszym sposobem ustanowienia podstawowej sieci na jednostkach SKU klienta systemu Windows jest użycie przełącznika domyślnego, który jest już tworzony podczas włączania funkcji Hyper-V systemu Windows. Jednak na urządzeniach SKU systemu Windows Server sieć jest nieco bardziej skomplikowana, ponieważ nie ma dostępnego przełącznika domyślnego. Aby uzyskać więcej informacji na temat tworzenia przełącznika wirtualnego dla systemu Windows Server, zobacz Tworzenie przełącznika wirtualnego dla systemu Linux w systemie Windows.

Aby uzyskać więcej informacji na temat pojęć związanych z siecią EFLOW, zobacz Usługa IoT Edge dla systemu Linux w sieci systemu Windows.

Konfigurowanie przełącznika wirtualnego maszyny wirtualnej

Pierwszym krokiem przed wdrożeniem maszyny wirtualnej EFLOW jest określenie typu używanego przełącznika wirtualnego. Aby uzyskać więcej informacji na temat przełączników wirtualnych obsługiwanych przez platformę EFLOW, zobacz Opcje przełącznika wirtualnego EFLOW. Po określeniu typu przełącznika wirtualnego, którego chcesz użyć, upewnij się, że przełącznik wirtualny został poprawnie utworzony. Aby uzyskać więcej informacji na temat tworzenia przełącznika wirtualnego, zobacz Tworzenie przełącznika wirtualnego dla maszyn wirtualnych funkcji Hyper-V.

Uwaga

Jeśli używasz klienta systemu Windows i chcesz użyć przełącznika domyślnego, nie jest potrzebne żadne tworzenie przełącznika i nie -vSwitchType są potrzebne żadne parametry.-vSwitchName

Uwaga

Jeśli używasz maszyny wirtualnej z systemem Windows wewnątrz infrastruktury VMware i przełącznika zewnętrznego, zobacz Wirtualizacja zagnieżdżona przez platformę EFLOW.

Po utworzeniu przełącznika wirtualnego i przed rozpoczęciem wdrażania upewnij się, że nazwa i typ przełącznika wirtualnego są poprawnie skonfigurowane i są wyświetlane w systemie operacyjnym hosta systemu Windows. Aby wyświetlić listę wszystkich przełączników wirtualnych w systemie operacyjnym hosta systemu Windows, w sesji programu PowerShell z podwyższonym poziomem uprawnień użyj następującego polecenia cmdlet programu PowerShell:

Get-VmSwitch

W zależności od przełączników wirtualnych hosta z systemem Windows dane wyjściowe powinny być podobne do następujących:

Name           SwitchType NetAdapterInterfaceDescription
----           ---------- ------------------------------
Default Switch Internal
IntOff         Internal
EFLOW-Ext      External

Aby użyć określonego przełącznika wirtualnego (wewnętrznego lub zewnętrznego), upewnij się, że określono poprawne parametry: -vSwitchName i vSwitchType. Jeśli na przykład chcesz wdrożyć maszynę wirtualną EFLOW z przełącznikiem zewnętrznym o nazwie EFLOW-Ext, w sesji programu PowerShell z podwyższonym poziomem uprawnień użyj następującego polecenia:

Deploy-Eflow -vSwitchType "External" -vSwitchName "EFLOW-Ext"

Konfigurowanie alokacji adresów IP maszyny wirtualnej

Drugim krokiem po podjęciu decyzji o typie używanego przełącznika wirtualnego jest określenie typu alokacji adresów IP przełącznika wirtualnego. Aby uzyskać więcej informacji na temat opcji alokacji adresów IP, zobacz Alokacje adresów IP obsługiwane przez platformę EFLOW. W zależności od typu używanego przełącznika wirtualnego upewnij się, że używasz obsługiwanego mechanizmu alokacji adresów IP.

Domyślnie, jeśli nie skonfigurowana jest statyczny adres IP , maszyna wirtualna EFLOW próbuje przydzielić adres IP do przełącznika wirtualnego przy użyciu protokołu DHCP. Upewnij się, że w sieci przełącznika wirtualnego znajduje się serwer DHCP. Jeśli nie jest dostępna, instalacja maszyny wirtualnej EFLOW nie może przydzielić adresu IP i instalacja nie powiedzie się. Jeśli używasz przełącznika domyślnego, nie ma potrzeby sprawdzania serwera DHCP, ponieważ przełącznik wirtualny domyślnie ma już protokół DHCP. Jeśli jednak używasz wewnętrznego lub zewnętrznego przełącznika wirtualnego, możesz sprawdzić, wykonując następujące czynności:

  1. Otwórz wiersz polecenia.
  2. Wyświetlanie wszystkich konfiguracji i informacji dotyczących adresów IP
    ipconfig /all
    
  3. Jeśli używasz zewnętrznego przełącznika wirtualnego, sprawdź interfejs sieciowy używany do tworzenia przełącznika wirtualnego. Jeśli używasz wewnętrznego przełącznika wirtualnego, po prostu poszukaj nazwy używanej dla przełącznika. Po zlokalizowaniu przełącznika sprawdź, czy DHCP Enabled jest wyświetlany komunikat Tak , czy Nie, i sprawdź DHCP server adres.

Jeśli używasz statycznego adresu IP, musisz określić trzy parametry podczas wdrażania protokołu EFLOW: -ip4Address, ip4GatewayAddress i ip4PrefixLength. Jeśli brakuje jednego parametru lub jest on nieprawidłowy, instalacja maszyny wirtualnej EFLOW nie może przydzielić adresu IP i instalacja nie powiedzie się. Aby uzyskać więcej informacji na temat wdrażania maszyn wirtualnych EFLOW, zobacz Funkcje programu PowerShell dla usługi IoT Edge dla systemu Linux w systemie Windows. Jeśli na przykład chcesz wdrożyć maszynę wirtualną EFLOW z przełącznikiem zewnętrznym o nazwie EFLOW-Ext i statyczną konfiguracją adresu IP z adresem IP równym 192.168.0.2, adres IP bramy równy 192.168.0.1 i długość prefiksu IP równe 24, a następnie w sesji programu PowerShell z podwyższonym poziomem uprawnień użyj następującego polecenia:

Deploy-Eflow -vSwitchType "External" -vSwitchName "EFLOW-Ext" -ip4Address "192.168.0.2" -ip4GatewayAddress "192.168.0.1" -ip4PrefixLength "24"

Napiwek

Maszyna wirtualna EFLOW zachowa ten sam adres MAC dla głównego (używanego podczas wdrażania) przełącznika wirtualnego podczas ponownego uruchamiania. Jeśli używasz rezerwacji adresów MAC DHCP, możesz uzyskać główny adres MAC przełącznika wirtualnego przy użyciu polecenia cmdlet programu PowerShell: Get-EflowVmAddr.

Sprawdzanie alokacji adresów IP

Istnieje wiele sposobów sprawdzania adresu IP przydzielonego do maszyny wirtualnej EFLOW. Najpierw przy użyciu sesji programu PowerShell z podwyższonym poziomem uprawnień użyj polecenia cmdlet EFLOW:

Get-EflowVmAddr

Dane wyjściowe powinny być podobne do następujących:

C:\> Get-EflowVmAddr

[03/31/2022 12:54:31] Querying IP and MAC addresses from virtual machine (DESKTOP-EFLOW)

 - Virtual machine MAC: 00:15:5d:4e:15:2c
 - Virtual machine IP : 172.27.120.111 retrieved directly from virtual machine
00:15:5d:4e:15:2c
172.27.120.111

Innym sposobem jest użycie Connect-Eflow polecenia cmdlet do zdalnego na maszynie wirtualnej, a następnie można użyć ifconfig eth0 polecenia bash i sprawdzić interfejs eth0 . Dane wyjściowe będą podobne do następujących:

eth0      Link encap:Ethernet  HWaddr 00:15:5d:4e:15:2c
          inet addr:172.27.120.111  Bcast:172.27.127.255  Mask:255.255.240.0
          inet6 addr: fe80::215:5dff:fe4e:152c/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:5636 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2214 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:766832 (766.8 KB)  TX bytes:427274 (427.2 KB)

Konfigurowanie serwerów DNS maszyny wirtualnej

Domyślnie maszyna wirtualna EFLOW nie ma konfiguracji DNS. Wdrożenia korzystające z protokołu DHCP próbują uzyskać konfigurację DNS propagowaną przez serwer DHCP. Jeśli używasz statycznego adresu IP, serwer DNS musi zostać skonfigurowany ręcznie. Aby uzyskać więcej informacji na temat systemu DNS maszyny wirtualnej EFLOW, zobacz Konfiguracja systemu DNS EFLOW.

Aby sprawdzić serwery DNS używane przez interfejs domyślny (eth0), można użyć następującego polecenia:

resolvectl | grep eth0 -A 8

Dane wyjściowe powinny być podobne do poniższych. Sprawdź adresy IP pól listy "Bieżące serwery DNS" i "Serwery DNS". Jeśli nie ma żadnego adresu IP lub adres IP nie jest prawidłowym adresem IP serwera DNS, usługa DNS nie będzie działać.

Link 2 (eth0)
      Current Scopes: DNS
       LLMNR setting: yes
MulticastDNS setting: no
  DNSOverTLS setting: no
      DNSSEC setting: no
    DNSSEC supported: no
  Current DNS Server: 172.27.112.1
         DNS Servers: 172.27.112.1

Jeśli musisz ręcznie skonfigurować adresy serwera DNS, możesz użyć polecenia cmdlet Set-EflowVmDNSServersprogramu PowerShell EFLOW . Aby uzyskać więcej informacji na temat konfiguracji DNS maszyny wirtualnej EFLOW, zobacz Funkcje programu PowerShell dla usługi IoT Edge dla systemu Linux w systemie Windows.

Sprawdzanie rozpoznawania nazw DNS

Istnieje wiele sposobów sprawdzania rozpoznawania nazw DNS.

Najpierw z poziomu maszyny wirtualnej EFLOW użyj resolvectl query polecenia , aby wysłać zapytanie do określonego adresu URL. Aby na przykład sprawdzić, czy rozpoznawanie nazw działa dla microsoft.com adresu, użyj:

resolvectl query microsoft.com

Dane wyjściowe będą podobne do następujących:

PS C:\> resolvectl query
microsoft.com: 40.112.72.205
               40.113.200.201
               13.77.161.179
               104.215.148.63
               40.76.4.15

-- Information acquired via protocol DNS in 1.9ms.
-- Data is authenticated: no

Możesz również użyć polecenia , dig aby wykonać zapytanie dotyczące określonego adresu URL. Aby na przykład sprawdzić, czy rozpoznawanie nazw działa dla microsoft.com adresu, użyj:

dig microsoft.com

Dane wyjściowe będą podobne do następujących:

PS C:\> dig microsoft.com
; <<>> DiG 9.16.22 <<>> microsoft.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 36427
;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;microsoft.com.                 IN      A

;; ANSWER SECTION:
microsoft.com.          0       IN      A       40.112.72.205
microsoft.com.          0       IN      A       40.113.200.201
microsoft.com.          0       IN      A       13.77.161.179
microsoft.com.          0       IN      A       104.215.148.63
microsoft.com.          0       IN      A       40.76.4.15

;; Query time: 11 msec
;; SERVER: 127.0

Następne kroki

Dowiedz się więcej o usłudze Azure IoT Edge dla systemu Linux w Zabezpieczenia Windows.

Bądź na bieżąco z najnowszymi aktualizacjami usługi IoT Edge dla systemu Linux.