Windows üzerinde Linux için Azure IoT Edge'de ağ yapılandırması
Şunlar için geçerlidir: IoT Edge 1.4
Önemli
Azure IoT Edge 1.5 LTS ve IoT Edge 1.4 desteklenen sürümlerdir. IoT Edge 1.4 LTS, 12 Kasım 2024'te hizmet sonuna ulaşıyor. Önceki bir sürümü kullanıyorsanız, IoT Edge’i güncelleştirme makalesine bakın.
Bu makale, senaryonuz için en uygun ağ seçeneğini belirlemenize ve Windows üzerinde Linux için IoT Edge (EFLOW) yapılandırma gereksinimleriyle ilgili içgörüler sağlamanıza yardımcı olur.
Windows üzerinde Linux için IoT Edge (EFLOW) sanal makinesini bir ağ üzerinden konağınıza, Windows konağınızdaki diğer sanal makinelere ve dış ağdaki diğer cihazlara/konumlara bağlamak için sanal makine ağı buna uygun şekilde yapılandırılmalıdır.
Windows İstemcisi SKU'larında temel ağ oluşturmanın en kolay yolu, Windows Hyper-V özelliği etkinleştirilirken zaten oluşturulmuş olan varsayılan anahtarı kullanmaktır. Ancak Windows Server SKU'ları cihazlarında ağ iletişimi biraz daha karmaşıktır çünkü varsayılan anahtar yoktur. Windows Server için sanal anahtar oluşturma hakkında daha fazla bilgi için bkz . Windows üzerinde Linux için sanal anahtar oluşturma.
EFLOW ağ kavramları hakkında daha fazla bilgi için bkz . Windows ağı üzerinde Linux için IoT Edge.
VM sanal anahtarını yapılandırma
EFLOW sanal makinesini dağıtmadan önce ilk adım, kullandığınız sanal anahtar türünü belirlemektir. EFLOW tarafından desteklenen sanal anahtarlar hakkında daha fazla bilgi için bkz . EFLOW sanal anahtar seçenekleri. Kullanmak istediğiniz sanal anahtarın türünü belirledikten sonra, sanal anahtarı doğru oluşturduğunuzdan emin olun. Sanal anahtar oluşturma hakkında daha fazla bilgi için bkz . Hyper-V sanal makineleri için sanal anahtar oluşturma.
Not
Windows istemcisi kullanıyorsanız ve varsayılan anahtarı kullanmak istiyorsanız, anahtar oluşturmaya gerek yoktur ve hayır -vSwitchType
ve -vSwitchName
parametreler gereklidir.
Not
VMware altyapısı ve dış anahtar içinde bir Windows sanal makinesi kullanıyorsanız lütfen bkz . EFLOW iç içe sanallaştırma.
Sanal anahtarı oluşturduktan sonra ve dağıtımınıza başlamadan önce sanal anahtar adınızın ve türünüzün doğru ayarlandığından ve Windows ana bilgisayar işletim sistemi altında listelendiğinden emin olun. Windows ana bilgisayar işletim sisteminizdeki tüm sanal anahtarları listelemek için, yükseltilmiş bir PowerShell oturumunda aşağıdaki PowerShell cmdlet'ini kullanın:
Get-VmSwitch
Windows ana bilgisayarının sanal anahtarlarına bağlı olarak, çıktı aşağıdakine benzer olmalıdır:
Name SwitchType NetAdapterInterfaceDescription
---- ---------- ------------------------------
Default Switch Internal
IntOff Internal
EFLOW-Ext External
Belirli bir sanal anahtarı (iç veya dış) kullanmak için doğru parametreleri belirttiğinizden emin olun: -vSwitchName
ve vSwitchType
. Örneğin, EFLOW VM'sini EFLOW-Ext adlı bir dış anahtarla dağıtmak istiyorsanız, yükseltilmiş bir PowerShell oturumunda aşağıdaki komutu kullanın:
Deploy-Eflow -vSwitchType "External" -vSwitchName "EFLOW-Ext"
VM IP adresi ayırmayı yapılandırma
Kullandığınız sanal anahtarın türüne karar verdikten sonraki ikinci adım, sanal anahtarın IP adresi ayırma türünü belirlemektir. IP ayırma seçenekleri hakkında daha fazla bilgi için bkz . EFLOW tarafından desteklenen IP ayırmaları. Kullandığınız sanal anahtarın türüne bağlı olarak desteklenen bir IP adresi ayırma mekanizması kullandığınızdan emin olun.
Varsayılan olarak, statik IP adresi ayarlı değilse, EFLOW VM DHCP kullanarak sanal anahtara bir IP adresi ayırmaya çalışır. Sanal anahtar ağında bir DHCP sunucusu olduğundan emin olun; kullanılamıyorsa, EFLOW VM yüklemesi bir IP adresi ayıramıyor ve yükleme başarısız oluyor. Varsayılan anahtarı kullanıyorsanız , sanal anahtar varsayılan olarak DHCP'ye sahip olduğundan DHCP sunucusunu denetlemeniz gerekmez. Ancak, iç veya dış sanal anahtar kullanıyorsanız aşağıdaki adımları kullanarak kontrol edebilirsiniz:
- Komut istemi açın.
- Tüm IP yapılandırmalarını ve bilgilerini görüntüleme
ipconfig /all
- Dış sanal anahtar kullanıyorsanız, sanal anahtarı oluşturmak için kullanılan ağ arabirimini denetleyin. İç sanal anahtar kullanıyorsanız, anahtar için kullanılan adı aramanız yeter. Anahtar bulunduktan sonra Evet veya Hayır deyince
DHCP Enabled
adresi kontrol edinDHCP server
.
Statik IP kullanıyorsanız, EFLOW dağıtımı sırasında üç parametre belirtmeniz gerekir: -ip4Address
ve ip4GatewayAddress
ip4PrefixLength
. Bir parametre eksik veya yanlışsa, EFLOW VM yüklemesi bir IP adresi ayıramıyor ve yükleme başarısız oluyor. EFLOW VM dağıtımı hakkında daha fazla bilgi için bkz . Windows üzerinde Linux için IoT Edge için PowerShell işlevleri. Örneğin, EFLOW VM'sini EFLOW-Ext adlı bir dış anahtar ve IP adresi 192.168.0.2'ye eşit bir statik IP yapılandırmasıyla, ağ geçidi IP adresi 192.168.0.1'e eşit ve IP ön eki uzunluğu 24'e eşit bir şekilde dağıtmak istiyorsanız, yükseltilmiş bir PowerShell oturumunda aşağıdaki komutu kullanın:
Deploy-Eflow -vSwitchType "External" -vSwitchName "EFLOW-Ext" -ip4Address "192.168.0.2" -ip4GatewayAddress "192.168.0.1" -ip4PrefixLength "24"
İpucu
EFLOW VM, yeniden başlatmalar arasında ana sanal anahtar (dağıtım sırasında kullanılır) için aynı MAC adresini tutar. DHCP MAC adresi ayırma kullanıyorsanız, PowerShell cmdlet'ini kullanarak ana sanal anahtar MAC adresini alabilirsiniz: Get-EflowVmAddr
.
IP ayırmayı denetleme
EFLOW VM'sine ayrılan IP adresini denetlemenin birden çok yolu vardır. İlk olarak, yükseltilmiş bir PowerShell oturumu kullanarak EFLOW cmdlet'ini kullanın:
Get-EflowVmAddr
Çıktı aşağıdakine benzer olmalıdır:
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
Bir diğer yol da Connect-Eflow
cmdlet'ini kullanarak VM'ye uzaktan bağlanmaktır ve ardından bash komutunu kullanarak ifconfig eth0
eth0 arabirimini de kontrol edebilirsiniz. Çıktının aşağıdakine benzer olması gerekir:
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)
VM DNS sunucularını yapılandırma
Varsayılan olarak, EFLOW sanal makinesinin DNS yapılandırması yoktur. DHCP kullanan dağıtımlar, DHCP sunucusu tarafından yayılan DNS yapılandırmasını almaya çalışır. Statik IP kullanıyorsanız DNS sunucusunun el ile ayarlanması gerekir. EFLOW VM DNS hakkında daha fazla bilgi için bkz . EFLOW DNS yapılandırması.
Varsayılan arabirim (eth0) tarafından kullanılan DNS sunucularını denetlemek için aşağıdaki komutu kullanabilirsiniz:
resolvectl | grep eth0 -A 8
Çıkış aşağıdakine benzer olmalıdır. Listenin "Geçerli DNS Sunucuları" ve "DNS Sunucuları" alanlarının IP adreslerini denetleyin. IP adresi yoksa veya IP adresi geçerli bir DNS sunucusu IP adresi değilse, DNS hizmeti çalışmaz.
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
DNS sunucusu adreslerini el ile ayarlamanız gerekiyorsa, EFLOW PowerShell cmdlet'ini Set-EflowVmDNSServers
kullanabilirsiniz. EFLOW VM DNS yapılandırması hakkında daha fazla bilgi için bkz . Windows üzerinde Linux için IoT Edge için PowerShell işlevleri.
DNS çözümlemeyi denetleme
DNS çözümlemesini denetlemenin birden çok yolu vardır.
İlk olarak, EFLOW VM'sinin içinden komutunu kullanarak belirli bir URL'yi sorgular resolvectl query
. Örneğin, adres microsoft.com ad çözümlemesinin çalışıp çalışmadiğini denetlemek için şunu kullanın:
resolvectl query microsoft.com
Çıktının aşağıdakine benzer olması gerekir:
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
Belirli bir URL'yi dig
sorgulamak için komutunu da kullanabilirsiniz. Örneğin, adres microsoft.com ad çözümlemesinin çalışıp çalışmadiğini denetlemek için şunu kullanın:
dig microsoft.com
Çıktının aşağıdakine benzer olması gerekir:
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
Sonraki adımlar
Windows Güvenliği üzerinde Linux için Azure IoT Edge hakkında daha fazla bilgi edinin.
Windows üzerinde Linux için En son IoT Edge güncelleştirmeleriyle güncel kalın.