Yeni: Yapay zekâ güvenlik duvarı her modülü izliyor ve her olayı sade bir dille açıklıyor. Nasıl çalıştığını görün

MQTT

Cihazları MQTT 3.1.1 üzerinden bağlayın – portlar, TLS, oturum açmalar, oturumlar, onaylar, sınırlar, CONNACK kodları ve bir cihazın nasıl geri çekilmesi gerektiği.

Hermetry, MQTT 3.1.1 protokolünü destekler. Bu sayfa cihaz geliştiricileri için bağlantı başvuru kılavuzudur: broker’a nasıl ulaşılacağı, nasıl oturum açılacağı, oturumların nasıl davrandığı, neyin ne zaman onaylandığı ve bir bağlantı reddedildiğinde ne yapılacağı. Konular ve yük içerikleri MQTT konuları ve yük başvurusu sayfasında yer almaktadır.

Bağlantı

ÖğeDeğer
ProtokolMQTT 3.1.1 (protokol seviyesi 4). MQTT 5 için yapılan bir CONNECT, CONNACK 1 ile reddedilir.
Port, TLS8883
Port, düz1883, yalnızca düz MQTT’ye izin veren bir profilin cihazları için
Ana makineCihazın Bağlantı ayrıntıları kartındaki broker ana makinesi. Kuruluşunuzun bölgesinin ana makinesini kullanın.
Temiz oturumtrue gönderin. false ile yapılan bir CONNECT, temiz oturum olarak işlenir.
Canlılık süresiMQTT keepalive kullanın. 0 olan veya broker’ın maksimumunun (varsayılan kurulumda 300 saniye) üzerindeki bir keepalive, maksimum değerle işlenir.
Son mesaj (Will)İzin verilir, yok sayılır. Bağlantı durumuna Hermetry kendisi karar verir.
Retain bayrağıYok sayılır. Mesaj işlenir, saklanmaz.
Bağlantı süresiTCP bağlantısından kabul edilen bir CONNECT’e kadar (TLS el sıkışması ve oturum açma dahil) cihazın birkaç saniyesi vardır (varsayılan 5 saniye).

Çevrimdışıyken bir cihaz için, işaretli kalıcı komutlar dışında hiçbir şey kuyruğa alınmaz. Her bağlantıdan sonra cihaz yeniden abone olur ve paylaşılan özniteliklerini ister; böylece güncel değerleri alır.

TLS

  • En az TLS 1.2, tercihen TLS 1.3.
  • TLS 1.2 paketleri: ECDHE-ECDSA-AES128-GCM-SHA256, ECDHE-RSA-AES128-GCM-SHA256, ECDHE-ECDSA-CHACHA20-POLY1305. RSA anahtar değişimi ve CBC yok.
  • SNI gereklidir. IP adresiyle değil, ana makine adıyla bağlanın.
  • Üçüncü taraf cihazlar için sunucu sertifikası herkese açık bir sertifikadır. Normal CA paketinize ve ana makine adına göre doğrulayın.
  • Sunucu istemci sertifikası ister ancak zorunlu kılmaz; böylece tek bir port her oturum açma türüne hizmet eder.
  • Küçük cihazlar 4 KB TLS kayıtları isteyebilir (max_fragment_length).

Bir profil, cihazlarının düz porta hiç erişip erişemeyeceğine karar verir (profilin Taşıma ve kimlik doğrulama sekmesindeki Düz MQTT). Varsayılan yalnızca TLS’tir. Bkz. Cihaz taşıma güvenliği.

Oturum açma

Kimlik bilgisiİstemci kimliğiKullanıcı adıParola
Erişim belirtecigeçerli herhangi bir kimlikerişim belirteciboş
Temel MQTTherhangi biri veya sabitlenmiş istemci kimliğikullanıcı adıparola
X.509 sertifikasıcihaz seri numarası (sertifikanın CN değerine eşit olmalıdır)seri numarası (yok sayılır)boş
  • Bir istemci kimliği, A–Z a–z 0–9 . _ : - karakterlerinden 1 ila 64 karakterden oluşur. Bunların dışındaki her şey CONNACK 2 ile reddedilir.
  • Kullanıcı adı olup parolası olmayan bir CONNECT, erişim belirteci olarak okunur. Kullanıcı adı olmayan bir CONNECT reddedilir.
  • Bir istemci sertifikası sunulduğunda karar onun ile verilir. Parolaya geri dönüş yoktur. Güvenilmeyen bir sertifika TLS el sıkışmasını sonlandırır.
  • provision kullanıcı adı bir sağlama oturumu açar (bkz. Cihaz ekleme ve sahiplenme).
  • Profil; kimlik bilgisi türüne, cihazın ağına ve porta (TLS veya düz) izin vermelidir; aksi halde oturum açma CONNACK 5 ile reddedilir.

Oturumlar

  • Cihaz başına bir oturum. Aynı cihazın ikinci bir bağlantısı birincisini devralır ve kapatır. Oturumu iki ağdan tekrar tekrar devralınan bir cihaz bir süre geri tutulur ve yöneticileriniz bir bildirim alır (“devralma çekişmesi”); aynı kimlik bilgisini paylaşan iki cihaz olup olmadığını kontrol edin.
  • Yeniden kontroller. Her etkin oturum yaklaşık her 60 saniyede bir yeniden denetlenir. Döndürülmüş veya iptal edilmiş bir kimlik bilgisi, devre dışı bırakılmış veya silinmiş bir cihaz, askıya alınmış bir kuruluş ya da oturumun artık karşılamadığı bir profil değişikliği, oturumu hemen sonlandırır.
  • Karantinadaki cihazlar bağlanır, ancak bir yönetici etkinleştirene kadar telemetrileri ve öznitelikleri onaylanır ve atılır.
  • Yeni ağ bildirimi. Bir cihaz önceki seferden farklı bir ağdan oturum açtığında, yöneticileriniz bir bildirim alabilir (cihaz başına en fazla saatte bir), böylece çalınmış bir kimlik bilgisi fark edilmeden kalmaz.
  • Bağlı cihaz sınırı. Planınız aynı anda bağlı olabilecek cihaz sayısını sınırlıyorsa, bu sınırın üzerindeki bir CONNECT, CONNACK 5 ile reddedilir.

Onaylar ve QoS

  • QoS 1 ile yayımlayın. QoS 0 kabul edilir; QoS 2, QoS 1 gibi işlenir.
  • Hermetry, PUBACK’i yalnızca mesaj güvenle kuyruğa alındıktan sonra gönderir. PUBACK’ler cihazın yayımladığı sırayla gider.
  • Bir mesaj kuyruğa alınamazsa PUBACK almaz (o oturumdaki sonraki hiçbir şey de almaz) ve oturum birkaç saniye sonra kapatılır. Cihaz yeniden bağlandıktan sonra onaylanmamış mesajları yeniden gönderir.
  • Bir cihaz, varsayılan olarak en fazla 20 onaylanmamış QoS 1 mesajına sahip olabilir (profilin Onaylanmamış en fazla mesaj (MQTT) ayarı, 1 ila 1.000).
  • Aynı cihaza, anahtara ve zaman damgasına ait yinelenen mesajlar bir kez saklanır; bu nedenle yeniden göndermek güvenlidir.

Sınırlar

SınırVarsayılanNerede ayarlanır
Telemetri mesajları10:1,300:60 (saniyede 10 ve dakikada 300)Profil Sınırlar
Telemetri veri noktaları200:1,6000:60Profil Sınırlar
Öznitelik mesajları5:1,60:60Profil Sınırlar
Mesaj boyutu64 KiB, en fazla 1.000 anahtar-değer noktasıProfil Mesaj yükü üst sınırı (bayt)
Cihaza gönderilen mesajlar64 KiB (lisanslı cihazlar için 4 KiB)Profil Aşağı yönlü yük üst sınırı (bayt)
  • Bir hız sınırının üzerinde, mesaj onaylanır ve atılır. Sınırını sürekli aşan bir cihaz (bir dakikalık hakkının üç katından fazlası bir dakika içinde atılırsa) oturumu kapatılır. Sahipler ve yöneticiler cihaz başına saatte bir bildirim alır.
  • Çok büyük bir mesaj bütünüyle atılır; bağlantı açık kalır.
  • Kuruluşunuzun bir bütün olarak planından gelen hız sınırları da vardır.
  • Bir kesintiden sonra bir cihazın gönderdiği, arabelleğe alınmış okumalar (her kayıt daha eski bir ts taşır) ayrıca profilin Saniyede yeniden oynatılan mesaj sınırına uymalıdır.
  • Telemetri ve öznitelik mesajları aylık mesaj kotanıza sayılır; bağlantı olayları, komutlar ve alarmlar sayılmaz. Bkz. Mesaj kotası ve kullanım.

CONNACK kodları

KodAnlamıCihazın yapması gereken
0Kabul edildiDevam edin.
1Protokol sürümü desteklenmiyorYeniden denemeyi durdurun; istemciyi düzeltin.
2İstemci kimliği reddedildiYapılandırma değişene kadar durun.
3Sunucu kullanılamıyor: hizmet meşgul, başlıyor ya da durduruluyor veya adres kısa süreliğine engelliGeri çekilin ve rastgele gecikmeyle yeniden deneyin.
4Hatalı kullanıcı adı veya parolaEn az 5 dakika (en fazla 1 saat) bekleyin.
5Yetkisiz: cihaz devre dışı, sertifika iptal edilmiş veya süresi dolmuş, kuruluş askıya alınmış ya da cihaz veya bağlı cihaz sınırını aşmış, oturum açma türü, ağ veya port profil tarafından izin verilmiyorUzun programla geri çekilin.

Kod 5’in arkasındaki neden cihaza hiçbir zaman gönderilmez. Cihazın Günlük sekmesine yazılır.

Not

Tek bir adresten tekrarlanan başarısız oturum açmalar, o adresi arkasındaki her cihaz için kısa süreliğine engeller. Bu nedenle yanlış yapılandırılmış bir cihaz, aynı NAT arkasındaki komşularını kilitleyebilir. Hatalı kimlik bilgilerini hızla düzeltin.

Bağlantı kesme nedenleri

Cihazın Günlük sekmesi, bir oturumun neden sona erdiğini gösterir:

NedenAnlamı
client_disconnectCihaz bağlantıyı kapattı.
keepalive_timeoutCanlılık süresi içinde hiçbir şey gelmedi.
takeoverAynı cihazın başka bir bağlantısı devraldı.
auth_revokedKimlik bilgisine, cihaza veya kuruluşa artık izin verilmiyor.
rate_limitCihaz hız sınırını sürekli aştı.
server_shutdownBroker düğümü yeniden başlatıldı; yeniden bağlanın.
protocol_error, inflight_exceeded, socket_errorİstemci protokolü bozdu, çok fazla onaylanmamış mesaj gönderdi ya da ağ arızalandı.

Önerilen cihaz davranışı

  1. Ana makine adıyla TLS üzerinden bağlanın; canlılık süresi 30 ila 300 saniye olsun.
  2. CONNACK 0 aldıktan sonra aşağı yönlü konulara abone olun, paylaşılan öznitelikleri isteyin, istemci özniteliklerini bildirin, ardından canlı veriden önce arabelleğe alınmış telemetriyi gönderin.
  3. QoS 1 kullanın ve arabelleğe alınmış bir okumayı silmeden önce PUBACK’i bekleyin.
  4. Saniyede birden fazla örnek gönderdiğinizde okumaları toplu gönderin.
  5. Reddedilen bir bağlantıda CONNACK tablosundaki geri çekilme süresini izleyin; bir filonun aynı anda yeniden bağlanmaması için rastgele gecikme ekleyin.

İlgili