DMZ üzerinde Windows üzerinde Linux için Azure IoT Edge'i yapılandırma
Ş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 makalede, Linux için Azure IoT Edge (EFLOW) sanal makinesinin (VM) birden çok ağ arabirimi kartını (NIC) destekleyecek ve birden çok ağa bağlanacak şekilde nasıl yapılandırıldığı açıklanır. Birden çok NIC desteğini etkinleştirerek, EFLOW VM'sinde çalışan uygulamalar çevrimdışı ağa bağlı cihazlarla iletişim kurarken IoT Edge'i kullanarak buluta veri gönderebilir.
Önkoşullar
- EFLOW'un ayarlanmış olduğu bir Windows cihazı. EFLOW yükleme ve yapılandırma hakkında daha fazla bilgi için bkz . Simetrik anahtarları kullanarak Windows cihazında Linux için IoT Edge oluşturma ve sağlama.
- EFLOW yüklemesi sırasında kullanılan varsayılan anahtardan farklı bir sanal anahtar. Sanal anahtar oluşturma hakkında daha fazla bilgi için bkz . Windows üzerinde Linux için Azure IoT Edge için sanal anahtar oluşturma.
Endüstriyel senaryo
Endüstriyel IoT, bilgi teknolojisi (BT) ve operasyonel teknoloji (OT) yakınsama dönemini aşıyor. Bununla birlikte, geleneksel OT varlıklarının BT teknolojileriyle daha akıllı hale getirilmesi, siber saldırılara daha fazla maruz kalma anlamına da gelir. Bu senaryo, birden çok ortamın DMZ olarak da bilinen, demilitarize edilmiş bölgeler kullanılarak tasarlanıp tasarlandığının temel nedenlerinden biridir.
İki farklı ağa veya bölgeye ayrılmış bir ağ yapılandırmanız olan bir iş akışı senaryosu düşünün. İlk bölgede, çevrimdışı ağ olarak tanımlanan güvenli bir ağınız olabilir. Çevrimdışı ağın İnternet bağlantısı yoktur ve iç erişimle sınırlıdır. İkinci bölgede, sınırlı İnternet bağlantısına sahip birkaç cihazınıza sahip olabileceğiniz bir demilitarized bölgeniz (DMZ) olabilir. EFLOW VM'sinde çalıştırılacak iş akışını taşırken, varsayılan olarak EFLOW VM'sinde yalnızca bir NIC eklendiğinden farklı ağlara erişirken sorunlarla karşılaşabilirsiniz.
Bu senaryoda, çevrimdışı ağa bağlı programlanabilir mantıksal denetleyiciler (PLC) veya açık platform iletişim birleşik mimarisi (OPC UA) uyumlu cihazlar gibi bazı cihazları içeren bir ortamınız var ve EFLOW VM'sinde çalışan OPC Publisher modülünü kullanarak tüm cihazların bilgilerini Azure'a yüklemek istiyorsunuz.
EFLOW konak cihazı ve PLC veya OPC UA cihazları çevrimdışı ağa fiziksel olarak bağlı olduğundan, EFLOW VM'sini çevrimdışı ağa bağlamak için Windows sanal çoklu NIC yapılandırmalarında Linux için Azure IoT Edge'i kullanabilirsiniz. Dış sanal anahtar kullanarak EFLOW VM'sini çevrimdışı ağa bağlayabilir ve diğer çevrimdışı cihazlarla doğrudan iletişim kurabilirsiniz.
Diğer ağ için EFLOW konak cihazı, İnternet ve Azure bağlantısı olan DMZ'ye (çevrimiçi ağ) fiziksel olarak bağlanır. İç veya dış anahtar kullanarak IoT Edge modüllerini kullanarak EFLOW VM'sini Azure IoT Hub'a bağlayabilir ve çevrimdışı cihazlar tarafından çevrimdışı NIC üzerinden gönderilen bilgileri karşıya yükleyebilirsiniz.
Senaryo özeti
Güvenli ağ:
- İnternet bağlantısı yok - erişim kısıtlandı.
- BAĞLı PLC'ler veya UPC UA uyumlu cihazlar.
- Dış sanal anahtar kullanılarak bağlanan EFLOW VM.
DMZ:
- İnternet bağlantısı - Azure bağlantısına izin verilir.
- Azure IoT Hub'a bağlı EFLOW VM'si, bir İç/Dış sanal anahtarı kullanarak.
- Azure'da veri yayımlamak için kullanılan EFLOW VM'sinin içinde modül olarak çalışan OPC Publisher.
VM ağ sanal anahtarlarını yapılandırma
Aşağıdaki adımlar, örnek senaryoda açıklanan ağ için özeldir. Kullanılan sanal anahtarların ve kullanılan yapılandırmaların ağ ortamınızla uyumlu olduğundan emin olun.
Not
Bu makaledeki adımlarda, EFLOW VM'sinin güvenli ağa bağlı bir dış sanal anahtarla (çevrimdışı) dağıtıldığı varsayılır. Aşağıdaki adımları, ulaşmak istediğiniz belirli ağ yapılandırmasıyla değiştirebilirsiniz. EFLOW birden çok NIC desteği hakkında daha fazla bilgi için bkz . Windows sanal çoklu NIC yapılandırmalarında Linux için Azure IoT Edge.
EFLOW VM'sinin sağlanmasını tamamlamak ve Azure ile iletişim kurmak için DMZ ağına (çevrimiçi) bağlı başka bir NIC atamanız gerekir.
Bu senaryo için DMZ ağına bağlı bir dış sanal anahtar atarsınız. Daha fazla bilgi için Bkz . Hyper-V sanal makineleri için sanal anahtar oluşturma.
Dış sanal anahtar oluşturmak için şu adımları izleyin:
- Hyper-V Yöneticisi'ni açın.
- Eylemler'de Sanal Anahtar Yöneticisi'ne tıklayın.
- Sanal Anahtarlar'da Yeni Sanal ağ anahtarı'yı seçin.
- Dış yazın ve ardından Sanal Anahtar Oluştur'u seçin.
- Güvenli ağı temsil eden bir ad girin. Örneğin, OnlineOPCUA.
- Bağlantı Türü altında Dış Ağ'ı seçin ve ardından DMZ ağınıza bağlı ağ bağdaştırıcısını seçin.
- Uygula’yı seçin.
Dış sanal anahtar oluşturulduktan sonra, aşağıdaki adımları kullanarak bunu EFLOW VM'sine eklemeniz gerekir. Birden çok NIC eklemeniz gerekiyorsa bkz . EFLOW Birden Çok NIC.
Oluşturduğunuz özel yeni dış sanal anahtar için aşağıdaki PowerShell komutlarını kullanarak:
Anahtarı EFLOW VM'nize ekleyin.
Add-EflowNetwork -vswitchName "OnlineOPCUA" -vswitchType "External"
Statik IP ayarlayın.
Add-EflowVmEndpoint -vswitchName "OnlineOPCUA" -vEndpointName "OnlineEndpoint" -ip4Address 192.168.0.103 -ip4PrefixLength 24 -ip4GatewayAddress 192.168.0.1
İşlem tamamlandıktan sonra, EFLOW VM'sine OnlineOPCUA anahtarı atanır. Birden çok NIC ekini denetlemek için aşağıdaki adımları kullanın:
Yönetici Olarak Çalıştır ile başlayıp yükseltilmiş bir PowerShell oturumu açın.
EFLOW sanal makinesine bağlanın.
Connect-EflowVm
VM'nize girdikten sonra EFLOW sanal makinesine atanan tüm ağ arabirimlerini listeleyin.
ifconfig
IP yapılandırmasını gözden geçirin ve eth0 arabirimini (güvenli ağa bağlı) ve eth1 arabirimini (DMZ ağına bağlı) gördüğünüzden emin olun.
VM ağ yönlendirmeyi yapılandırma
EFLOW birden çok NIC özelliğini kullanırken farklı yol önceliklerini ayarlamak isteyebilirsiniz. Varsayılan olarak, EFLOW VM'ye atanan ehtX arabirimi başına bir varsayılan yol oluşturur. EFLOW, varsayılan yola rastgele bir öncelik atar. Tüm arabirimler İnternet'e bağlıysa, rastgele öncelikleri sorun olmayabilir. Ancak, NIC'lerden biri çevrimdışı bir ağa bağlıysa, EFLOW VM'sini İnternet'e bağlı hale getirmek için çevrimdışı NIC'ye göre çevrimiçi NIC'ye öncelik vermek isteyebilirsiniz.
EFLOW, ağ yönlendirme alternatiflerini yönetmek için yol hizmetini kullanır. Kullanılabilir EFLOW VM yollarını denetlemek için aşağıdaki adımları kullanın:
Yönetici Olarak Çalıştır ile başlayıp yükseltilmiş bir PowerShell oturumu açın.
EFLOW sanal makinesine bağlanın.
Connect-EflowVm
VM'nize girdikten sonra, EFLOW sanal makinesinde yapılandırılan tüm ağ yollarını listeleyin.
sudo route
İpucu
Önceki görüntüde, iki NIC'nin atanmış olduğu yol komutu çıkışı gösterilmektedir (eth0 ve eth1). Sanal makine, farklı ölçümlere sahip iki farklı varsayılan hedef kuralı oluşturur. Daha düşük bir ölçüm değeri daha yüksek önceliğe sahiptir. Bu yönlendirme tablosu, önceki adımlarda yapılandırılan ağ senaryosuna bağlı olarak değişir.
Statik yollar yapılandırması
EFLOW VM her başlatıldığında, ağ hizmetleri tüm yolları yeniden oluşturur ve önceden atanmış tüm öncelikler değişebilir. Bu sorunu geçici olarak çözmek için, EFLOW VM her başlatıldığında her yol için istenen önceliği atayabilirsiniz. Her VM önyüklemesinde yürütülen ve istenen yol önceliklerini ayarlamak için komutunu kullanan route
bir hizmet oluşturabilirsiniz.
İlk olarak, yolları ayarlamak için gerekli komutları yürüten bir bash betiği oluşturun. Örneğin, daha önce bahsedilen ağ senaryosundan sonra, EFLOW VM'sinde iki NIC (çevrimdışı ve çevrimiçi ağlar) vardır. NIC eth0 , ağ geçidi IP xxx.xxx.xxx.xxx kullanılarak bağlanır. NIC eth1 , ağ geçidi IP yyy.yyy.yyy.y kullanılarak bağlanır.
Aşağıdaki betik hem eth0 hem de *eth1 için varsayılan yolları sıfırlar ve ardından istenen< sayı> ölçümüne sahip yolları ekler. Daha düşük bir ölçüm değerinin daha yüksek önceliğe sahip olduğunu unutmayın.
#!/bin/sh
# Wait 30s for the interfaces to be up
sleep 30
# Delete previous eth0 route and create a new one with desired metric
sudo ip route del default via xxx.xxx.xxx.xxx dev eth0
sudo route add -net default gw xxx.xxx.xxx.xxx netmask 0.0.0.0 dev eth0 metric <number>
# Delete previous eth1 route and create a new one with desired metric
sudo ip route del default via yyy.yyy.yyy.yyy dev eth1
sudo route add -net default gw yyy.yyy.yyy.yyy netmask 0.0.0.0 dev eth1 metric <number>
Ağ senaryonuza özgü kendi özel betiğinizi oluşturmak için önceki betiği kullanabilirsiniz. Betik tanımlandıktan sonra kaydedin ve yürütme izni atayın. Örneğin, betik adı route-setup.sh ise komutunu sudo chmod +x route-setup.sh
kullanarak yürütme izni atayabilirsiniz. Komut dosyasını el ile komutunu kullanarak yürüterek ve ardından komutunu sudo sh ./route-setup.sh
kullanarak yönlendirme tablosunu denetleyerek sudo route
betiğin düzgün çalışıp çalışmadığını test edebilirsiniz.
Son adım, başlangıçta çalışan ve bash betiğini yürüterek yolları ayarlayan bir Linux hizmeti oluşturmaktır. Hizmeti yüklemek için bir sistemli birim dosyası oluşturmanız gerekir. Aşağıda bu dosyanın bir örneği verilmiştir.
[Unit]
after=network
[Service]
Type=simple
ExecStart=/bin/bash /home/iotedge-user/route-setup.sh
[Install]
WantedBy=default.target
Hizmetin çalışıp çalışmadığını denetlemek için, VM'ye bağlanmak için EFLOW VM'sini (Stop-EflowVm
& Start-EflowVm
) Connect-EflowVm
yeniden başlatın. kullanarak sudo route
yolları listeleyin ve bunların doğru olduğunu doğrulayın. Atanan ölçümle yeni varsayılan kuralları görebilmeniz gerekir.
Sonraki adımlar
Ağ yapılandırmalarınızın doğru uygulandığını doğrulamak için Windows üzerinde Linux için Azure IoT Edge için ağ yapılandırma sayfasındaki adımları izleyin.