Aracılığıyla paylaş


Hizmet bulma gerçekleştirme

Önemli

Bu, Azure Sphere (Eski) belgeleridir. Azure Sphere (Eski) 27 Eylül 2027'de kullanımdan kaldırılıyor ve kullanıcıların bu zamana kadar Azure Sphere'e (Tümleşik) geçmeleri gerekiyor. Azure Sphere (Tümleşik) belgelerini görüntülemek için İçindekiler tablosu üzerinde bulunan Sürüm seçiciyi kullanın.

Azure Sphere'da üst düzey uygulamalar, DNS hizmet bulma (DNS-SD) kullanarak hizmet bulma gerçekleştirebilir. Uygulamalar, Azure Sphere güvenlik duvarı üzerinden hizmetle etkileşim kurabilmeleri için ağ hizmetlerini bulmak ve konak adı çözümlemesi gerçekleştirmek için hizmet bulma özelliğini kullanabilir. Çok noktaya yayın DNS (mDNS), yerel ağda eşler arası bulma gerçekleştirmek için de kullanılabilir. Bu, özellikle hedef uç noktanın IP adresleri ve ana bilgisayar adları tasarım zamanında bilinmediğinde kullanışlıdır.

Uygulamalar, dns kayıtlarını yerel olmayan DNS sunucularından veya çok noktaya yayın bağlantısı üzerinden almak için DNS-SD sorgularını kullanır. Sorgulanan ad .local üst düzey etki alanı (TLD) altındaysa, sorgu tüm etkin ağ arabirimleri aracılığıyla yerel ağda çok noktaya yayındır; aksi takdirde tek noktaya yayın hizmeti bulma gerçekleştirilir. Hizmet bulma örneği, Azure Sphere'da hizmet bulma işleminin nasıl gerçekleştirileceklerini gösterir.

Not

Azure Sphere güvenlik duvarı, uygulamaların yetkisiz hizmetlerle iletişim kurmasını engeller. Ancak, uygulama bildirimindeki .local TD'lere giden bağlantılara izin vermek, bir uygulamanın yerel ağda tanıtılan yetkisiz hizmetlere bağlanmasına izin vererek cihaz için güvenlik riskini artırabilir. Uygulamalar yalnızca yetkisiz tarafların reklam hizmetlerini engellemesi için güvenli ortamlarda .local TD'lere giden bağlantılara izin vermelidir. Bu senaryoda ek koruma sağlamak için Azure Sphere, yerel ağda bulunan hizmetlerin yerel alt ağda da bulunmasını gerektirir.

Üst bilgi dosyalarını dahil et

Hizmet bulma gerçekleştiren uygulamalar çözümle üst bilgi dosyasını içermelidir:

 #include <resolv.h>

Hizmet bağlantısına izin ver

DNS-SD sorgusu gerçekleştirmeden önce, hizmeti Uygulama bildiriminin AllowedConnections özelliğine eklemeniz gerekir. Azure Sphere güvenlik duvarı daha sonra uygulamanın, ilişkili ana bilgisayar adlarını ve IP adreslerini kullanarak bulunan hizmet örneklerine bağlanmasına izin verir. Bir .local TLD hizmeti belirtilirse, güvenlik duvarı yalnızca yerel alt ağda bulunan kaynaklara bağlantılara izin verir.

Aşağıdaki hizmet adı türleri AllowedConnections özelliğinde desteklenir:

  • "_sample._tcp.local" gibi yerel DNS hizmeti adı
  • "_sampleinstance._tcp.dns-sd.org" gibi yerel olmayan DNS hizmeti adı
  • "_sampleinstance._tcp.hostname.local" gibi yerel hizmet örneği adı
  • "samplehost.contoso.com" gibi etki alanı adı
  • IP Adresi

Burada, yerel olmayan bir hizmet adı içeren bir uygulama bildiriminden bir alıntı bulabilirsiniz.

"AllowedConnections": [ "_http._tcp.dns-sd.org" ]

DNS-SD sorgusu gerçekleştirme

DNS-SD sorgusu gerçekleştirmek için birkaç tür DNS kaydı istemeniz gerekir:

  • PTR , DNS hizmetinin örneklerini numaralandıran kayıtları kaydeder.
  • Konak adı ve bağlantı noktası gibi hizmet örneklerinin ayrıntılarını içeren SRV ve TXT kayıtları.
  • Alınan konak adlarının IP adreslerini içeren kayıtlar.

Sorguyu göndermeden önce oluşturup başlatmanız ve ardından DNS kaydını isteyen bir sorgu iletisi eklemeniz gerekir. POSIX işlevini res_init() çağırarak DNS-SD sorgusu oluşturabilir ve başlatabilirsiniz. RES_MKQUERY() POSIX işlevini çağırarak sorgu için bir ileti oluşturabilirsiniz.

Tek noktaya yayın DNS sorgusu gönderme

Tek noktaya yayın hizmeti bulma işlemini gerçekleştirirken, DNS-SD sorgusunu gönderebilir ve POSIX işlevini res_send() çağırarak yanıtı alabilirsiniz.

Çok noktaya yayın bağlantısı üzerinden DNS-SD sorgusu göndermek için uygulamanın bir yuva açması ve isteği yuva üzerinden geri döngü IP adresi 127.0.0.1'e (hedef bağlantı noktası 53) göndermesi gerekir. İstek gönderildikten sonra birden çok yanıt döndürülebilir. Uygulamanın tüm yanıtları toplamak için birkaç saniye beklemesi ve dinlemesi gerekir. Bu, Hizmet bulma örneğinde gösterilmiştir.

Önemli

Bu geri döngü IP adresi, kullanımdan kaldırılacak ve gelecek sürümlerde değiştirilecek bir Beta özelliğidir. Bu, adrese dayanan uygulamalar için hataya neden olan bir değişiklik olacaktır.

Birden çok IP adresine sahip konaklar için izin verilen bağlantılar

Azure Sphere güvenlik duvarı, ana bilgisayar adı başına yalnızca bir IP adresine bağlantılara izin verir. Bir konağın birden çok IP adresi varsa, Azure Sphere güvenlik duvarı yalnızca adreslerden biriyle bağlantılara izin verir. Bir uygulama, birden çok IP adresi olan bir konağa HTTPS isteğinde bulunmak için curl kullanabilir; curl, izin verilen adres bulunana kadar her IP adresine bağlanmayı dener. Ancak, uygulama izin verilen adresi bulurken bu bir gecikmeye neden olabilir.