المقدمة
يصف هذا المستند تفاصيل بروتوكول CSMP مع الخطوات الرامية إلى أستكشاف أخطاء التسجيل وإصلاحها.
المكونات المستخدمة
تم إنشاء المعلومات الواردة في هذا المستند من الأجهزة الموجودة في بيئة معملية خاصة. بدأت جميع الأجهزة المُستخدمة في هذا المستند بتكوين ممسوح (افتراضي). إذا كانت شبكتك قيد التشغيل، فتأكد من فهمك للتأثير المحتمل لأي أمر.
بروتوكول الإدارة البسيطة ل CoAP (CSMP)
بروتوكول CoAP للإدارة البسيطة (CSMP) هو بروتوكول إدارة شبكة عن بعد مخصص لأجهزة الشبكة المضمنة التي تعمل داخل الشبكات ذات النطاق الترددي العريض الواسع.
يتم إنشاء CSMP فوق بروتوكول التطبيق المقيد (CoAP). CoAP هو بروتوكول ثنائي قائم على UDP تم تصميمه لتوفير دلالات مشابهة ل HTTP (GET/POST للموارد مع عناوين URL) مع الحد الأدنى لنفقات الرأس في بيئة مقيدة وسهلة البث المتعدد.
يقوم CSMP بتعريف مجموعة صغيرة من موارد CoAP المحددة بواسطة مسارات عنوان URL المحددة التي تمثل نقاط النهاية لتبادل البيانات.
تتصل وحدات NMS والأجهزة الطرفية ببعضها البعض مباشرة عبر CoAP، دون أي وكلاء أو بوابات متدخلين.
يستخدم وكيل الإدارة الذي يعمل على الجهاز المضمن CoAP كعميل للاتصال مباشرة بتطبيق إدارة الشبكة.
يرسل عميل CSMP في الجهاز المضمن طلبات إلى موارد CoAP معينة يتم توفيرها بواسطة خادم CSMP في التطبيق.
باستخدام حل المروحة، يكون تطبيق إدارة الشبكة هو مدير الشبكة الميداني (FND).
بالإضافة إلى ذلك، يستخدم عامل الإدارة الذي يتم تشغيله على الجهاز المضمن CoAP كخادم لقبول الطلبات من FND تعمل في موقع بعيد.
يرسل عميل CSMP في FND طلبات إلى موارد CoAP معينة يتم توفيرها بواسطة خادم CSMP في الأجهزة المضمنة.
كمرجع، تحتوي رسالة CoAP على البنية التالية:
+-+-+-+-+--+---+---+---+--+---+---+---+---+---+---+---+----+----+-----+-----+--------+-------
|الإصدار| T | OC | الرمز | معرف الرسالة |
+-+-+-+-+--+---+---+---+--+---+---+---+---+---+---+---+----+----+-----+-----+--------+-------
| خيارات (إن وجدت) ...
+-+-+-+-+--+---+---+---+--+---+---+---+---+---+---+---+----+----+-----+-----+--------+-------
| الحمولة (إن وجدت) ...
+-+-+-+-+--+---+---+---+--+---+---+---+---+---+---+---+----+----+-----+-----+--------+-------
الخيارات هي TLVs الخاصة ب CoAP التي تحتوي على هذا الهيكل:
+—+—+—+—+—+—+——+—+—+—+
| خيار دلتا | طول | ل 0..14
+—+—+—+—+—+—+——+—+—+—+
| قيمة الخيار ...
+—+—+—+—+—+—+——+—+—+—+
رمز الأسلوب أو رمز الاستجابة الشبيهي ب CoAP HTTP موجود في الحقل "الرمز". تتضمن مجموعة خيارات CoAP عنوان URL للمورد (مقسم إلى أجزاء مضيف ومنفذ ومسار واستعلام).
إستخدام CSMP في شبكات المناطق الميدانية
تدير القوات المسلحة الفلبينية نقاط النهاية للشبكة المعشقة أو للمتر، سواء أكان عداد غاز أو مقياس ماء أو مقياس طاقة. وتتصل القوات الخاصة بنقاط نهاية العداد باستخدام بروتوكول CSMP على النحو المذكور أعلاه.
يتم تشفير رسائل CSMP. يقوم HSM أو SSM بتخزين المفاتيح المستخدمة لتشفير رسائل CSMP.
كما يقوم SSM (وحدة أمان البرنامج) أو HSM (وحدة أمان الأجهزة) بتخزين شهادة CSMP اللازمة للاتصال.
أستكشاف أخطاء CSMP وإصلاحها
أخطاء التوقيع
يقوم Server.Log بالنقاط إلى وحدات القياس التي تحتوي على أخطاء في التوقيع.
٪IOTFND-6-غير محدد: ٪[ch=HandleMessage][eid=0007810800CA759B][sev=info][tid=CoAP conformant-3]: تشغيل مجموعة البرامج الثابتة على الجهاز هو id=243 ولكن يجب أن يكون id=317(توقيع CSMP غير صالح). إرسال GroupAssign.
التحقق من صحة معلومات جهاز/برنامج ثابت المقياس
على سبيل المثال، المخرجات الناتجة لعيد المتر "fd00:abd:51:c000:207:8108:e7:6fda"
[root@lcdcfndappp01 bin]# /opt/cgms-tools/bin/csmp-request -r [fd00:abd:51:c000:207:8108:e7:6fda] 75
[75/FirmwareImageInfo]: {"index": 1،"fileHash": "\x25\x9c\xcf\x36\xf9\x19\x8d\x4e\x13\xaa\x7f\x83\xa3\x94\x4a\xee\xe8\xc1\xc6\xc1\x0d\x7e\x11\xd2\xc0\x2d\x4f\xbc\xad\xdd\x97\x83"،"fileName": "cg-mesh-node-5.6.2 1"، "version": "5.6.21"،"fileSize": 305408،"isDefault": false،"isRunning": true،"hwInfo": {"hwId": "RFLAN/3.60/3.80"} [75/FirmwareImageInfo] {"index:"، "fileHash": "\x25\x9c\xcf\x36\xf9\x19\x8d\x4e\x13\xaa\x7f\x83\xa3\x94\x4a\xee\xe8\xc1\xc6\xc1\x0d\x7e\x11\xd2\xc0\x2d\x4f\xbc\xad\xdd\x97\x83"،"fileName": "cg-mesh-node-5.6.2 1"،"version": "5.6.21"،"fileSize": 305408،"blockSize": 650،"isDefault": false،"isRunning": false،"hwInfo": {"hwId": "RFLAN/3.60/3.80"} [75/FirmwareImageInfo]: {"index":،"file\x25\x9c\xcf\x36\xf9\x19\x8d\x4e\x13\xaa\x7f\x83\xa3\x94\x4a\xee\xe8\xc1\xc6\xc1\x0d\x7e\x11\xd2\xc0\x2d\x4f\xbc\xad\xdd\x97\x83": "،"fileName": "cg-mesh-node-5.6.2 1"،"version": "5.6.21"،"fileSize": 305408،"blockSize": 650،"isDefault": true،"isRunning": false،"hwInfo": {"hwId": "RFLAN/3.60/3.80"} [75/FirmwareImageInfo]: {"index": 4،"fileHash": \x3d\x03\xe4\x6c\xa7\x10\x3c\x75\x21\xf2\x41\x8f\x88\x4f\x56\x0e\x46\x7a\x06\xfc\x78\x24\x69\xeb\x0e\x8b\xfc\x03\x64\xb8\x8f\x85،"fileName": cg-mesh-itron30-sl -rel-5.2.25"،"version": "5.2.25"،"fileSize": 40960} [root@lcdcfndappp01 bin]#
التحقق من صحة شهادة المقياس
إستخدام رمز TLV 43 ل CGMSSTATUS والتحقق من صحة الحقل NMSCertValid.
يمكن أن يحدد الحقل NMSCertValid ما إذا كان شهادة FND صالحة أم لا.
إذا كان تلف أجهزة، فإن كافة المعلمات التي تمت قراءتها من ذاكرة Flash (الذاكرة المؤقتة) هي NULL، على سبيل المثال، حقل SSID. وبالتالي، إذا كان اسم SSID موجودا، فلن يكون تلف الأجهزة.
إذا كان اسم SSID صحيحا وتم الإبلاغ عن حقل NMSCertValid على أنه خطأ، فمن المحتمل أن تكون هناك مشكلة في ملف التحقق الذي تم نسخه على المقياس.
التحقق من صحة ملف تكوين XML على المقياس
<DevCfgSchema>، في حالة ترك العداد في وضع العرض التوضيحي، اتصل بمورد العداد للحصول على الدعم.
<DemoMode_CFG> <DemoModeEnable>true</DemoModeEnable> </DemoMode_CFG>
مزامنة ساعة FND مع NTP
يظهر هذا الخطأ :
٪IOTFND-7-Unspecified: ٪[ch=EventProduct][sev=DEBUG][tid=CoAP-7]: كائن الحدث الذي يتم إرساله = EventObject [netElementId=1149847، eventTime=1622146931202، eventSeverity=0، eventSource=cgmesh، eventTypeName=signatureFailure، eventDisplayName=Invalid CSMP Signature، EventTypeId=1085، eventMessage=التحقق من إعداد الشهادة. تحقق أيضا من أن الجهاز و IoT-FND متزامنان زمنيا.، lat=1000.0، lng=1000.0، geoHash=null، eid=F43328000005de8، issueId=0، eventSev=critical، moduleId=null، domainName=root]
العرض: في FND، يدخل الجهاز المرتبط إلى حالة "التسجيل" بدلا من الظهور.
- تحقق مما إذا كانت ساعات FND و NTP متزامنة،
- تحقق مما إذا كانت ساعات FND ونقاط النهاية متزامنة.
الأمتار مذكورة أسفل القوات الديمقراطية الوطنية
إذا تم الإبلاغ عن وجود ME/METER في FND، تحقق مما إذا كان هناك جدار حماية يمنع رسائل CSMP الواردة.
لإصلاح المشكلة على خادم FND، قم بتعطيل خدمة Firewalld:
[root@iot-fnd ~]# systemctl list-unit-files | grep firewalld
firewalld.service disabled
في حالة تمكينها، يمكنك تعطيلها باستخدام الأمر أدناه:
[root@iot-fnd ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
سياسة موازنة التحميل ورسائل CSMP
في بيئة نظام مجموعة موازنة الأحمال، تحقق من الاتصال بين عناوين المصدر والوجهة، والمنافذ بين نقاط النهاية العشرية (ME) و FND.
تحقق من إحصائيات CSMP باستخدام إخراج getStats.sh. إذا كان أحد خوادم التطبيقات به معدل معالجة CSMP أعلى من غيره، فمن المحتمل أن يتم تكوين موازنة الأحمال بشكل غير صحيح. علاوة على ذلك، عند تحليل المخرجات، إذا رأيت أحجام قوائم الانتظار الخاصة بك تزيد، فهذا يؤكد أن هناك عملية معقدة في مكان ما.
مثال CSMP Call Flow:
طلب CSMP إلى العداد أثناء التسجيل المتري الدوري.
المتر إلى الصندوق
عنوان IPv6 لمقياس SRC ip
عنوان IPv6 FND للوجهة
منفذ UDP المصدر 61624
منفذ DST UDP 61624
تحديث متري يدوي لعداد متر من الصندوق الوطني للتنمية
عنوان IP6 لبروتوكول FND IP المصدر
عنوان IPv6 لمقياس IP للوجهة
مصدر UDP ميناء أي مثال: 9251
منفذ DST UDP 61624
إستجابة المقياس أثناء طلب تحديث متري يدوي (من صندوق التنمية البشرية)
عنوان IPv6 لمقياس IP المصدر
عنوان IP6 ل IP الوجهة
منفذ UDP المصدر 61624
منفذ DST UDP الذي أرسله على سبيل المثال: 9251
إذا كان "ME" يرسل ردا إلى IP (VIP) موازن التحميل بدلا من عنوان IP المطلوب الذي استلم عليه "طلب" CSMP، "، فإنه يحتاج إلى توجيهه بشكل صحيح باستخدام تكوين إضافي.
المخطط الانسيابي لتسجيل CSMP