目錄

簡介

採用元件

CoAP簡易管理通訊協定(CSMP)

CSMP在現場區域網中的使用

排除CSMP故障

簽名錯誤

驗證儀表硬體/韌體資訊

驗證計數器證書

驗證計數器上的XML配置檔案

FND時鐘與NTP同步

FND報告有儀表下降

Load-BalancingPolicyand CSMP消息

CSMP呼叫流示例：

計量表到計量表

從FND手動刷新度量的度量

手動測量結果重新整理要求期間的測量結果回應（來自FND）

CSMP註冊流程圖

簡介

本文檔介紹CSMP協定的詳細資訊以及解決註冊問題的步驟。

採用元件

本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除（預設）的組態來啟動。如果您的網路運作中，請確保您瞭解任何指令可能造成的影響。

CoAP簡易管理通訊協定(CSMP)

CoAP簡易管理通訊協定(CSMP)是一種遠端網路管理通訊協定，適用於在大量頻寬受限的網路中執行的嵌入式網路裝置。

CSMP建立在限制應用通訊協定(CoAP)之上。CoAP是基於UDP的二進位制協定，旨在提供類似HTTP的語義（使用URL的資源的GET/POST），在受限、便於組播的環境中以最小的報頭開銷實現。

CSMP定義了一小組CoAP資源，這些資源由代表資料交換終端的特定URL路徑標識。

NMS和終端裝置直接透過CoAP相互通訊，沒有中間的代理或網關。

在嵌入式裝置上運行的管理代理使用CoAP作為客戶端來直接與網路管理應用程式通訊。

嵌入式裝置中的CSMP客戶端向應用中的CSMP伺服器提供的特定CoAP資源傳送請求。

使用FAN解決方案時，網路管理應用程式是Field Network Director (FND)。

此外，在嵌入式裝置上運行的管理代理使用CoAP作為伺服器來接受來自在遠端位置運行的FND的請求。

FND中的CSMP客戶端向嵌入式裝置中的CSMP伺服器提供的特定CoAP資源傳送請求。

作為參考，CoAP消息具有以下結構：

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| 版本 | T | OC | 代碼 | 訊息ID |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| 選項（如果有）……

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| 負載（如果有）……

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

這些選項是具有以下結構的CoAP特定的TLV：

+—+—+—+—+—+—+—+

| 選項增量 | 長度 | 對於0..14

+—+—+—+—+—+—+—+

| 選項值……

+—+—+—+—+—+—+—+

CoAP類HTTP方法代碼或響應代碼包含在「代碼」欄位中。CoAP選項集包括資源URL（拆分為主機、埠、路徑和查詢部分）。

CSMP在現場區域網中的使用

FND管理網狀或儀表端點，可以是燃氣表、水表或電表。FND使用上述CSMP協定與計量器終端通訊。

CSMP訊息已加密。 HSM或SSM儲存用於加密CSMP消息的金鑰。

SSM（軟體安全模組）或HSM（硬體安全模組）還儲存通訊所需的CSMP證書。

排除CSMP故障

簽名錯誤

Server.log指向存在簽名錯誤的計數器。

%IOTFND-6-UNSPECIFIED： %[ch=HandleMessage][eid=0007810800CA759B][sev=INFO][tid=CoAP Conformant-3]：裝置上運行的韌體組為id=243，但必須為id=317（無效的CSMP簽名）。             正在傳送GroupAssign。

驗證儀表硬體/韌體資訊

例如，測量器EID「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/HashImageInfo]： {"index"： 2，"fileDefault ：「\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」： 3，「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」： 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」、「版本」：「5.2.25」、「檔案大小」： 40960} [root@lcdcfndappp01 bin]#

驗證計數器證書

使用CGMSSTATUS的TLV 43代碼並驗證NMSCertValid欄位。

NMSCertValid欄位可確定FND證書是否有效。

如果硬體損壞，則從快閃記憶體讀取的所有引數均為空，例如SSID欄位。因此，如果SSID名稱存在，則不是硬體損壞。

如果SSID名稱正確並且NMSCertValid欄位被報告為false，則可能是抄表上的證書檔案有問題。

驗證計數器上的XML配置檔案

<DevCfgSchema> ，如果儀表處於演示模式，請與儀表供應商聯絡以獲得支援。

<DemoMode_Cfg> <DemoModeEnable>true</DemoModeEnable> </DemoMode_Cfg>

FND時鐘與NTP同步

出現此錯誤：

%IOTFND-7-UNSPECIFIED： %[ch=EventProducer][sev=DEBUG][tid=CoAP-7]：傳送的事件對象= EventObject [netElementId=1149847，eventTime=1622146931202，eventSeverity=0，eventSource=cgmesh，eventTypeName=signatureFailure，eventDisplayName=無效的CSMP簽名，eventTypeId=1085，eventMessage=驗證證書設定。還要驗證裝置和IoT-FND的時間同步。， lat=1000.0， lng=1000.0， geoHash=null， eid=F433280000005DE8， issueId=0， eventSev=CRITICAL， moduleId=null， domainName=root]

症狀：在FND中，關聯裝置進入「註冊」狀態而不是顯示「UP」。

1. 檢查FND和NTP時鐘是否同步，

2. 檢查FND和終端時鐘是否同步。

FND報告有儀表下降

如果FND中報告ME/meters為DOWN，請檢查是否有防火牆阻止傳入的CSMP消息。

若要修正FND伺服器上的問題，請停用防火牆服務：

[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之間的埠。

使用getStats.sh輸出檢驗CSMP統計資訊。  如果其中一個應用伺服器的CSMP處理速率比其它伺服器高得多，則負載均衡配置可能不正確。  此外，在分析輸出時，如果看到隊列大小增加，則表明某處存在瓶頸進程。

CSMP呼叫流示例：

CSMP在定期度量註冊期間向計量器請求。

計量表到計量表

源IP計數器IPv6地址

目的IPv6基礎IP地址

源UDP埠61624

DST UDP連線埠61624

從FND手動刷新儀表度量

源IP FND IPV6地址

目的IP計量器IPv6地址

源UDP埠任意示例：9251

DST UDP連線埠61624

手動測量結果重新整理要求期間的測量結果回應（來自FND）

源IP計數器IPv6地址

目的IP查詢IPv6地址

源UDP埠61624

DST UDP埠，例如：9251

如果ME正在向負載均衡器IP (VIP)傳送應答，而不是向其接收CSMP「請求」的請求的IP地址，則需要使用其他配置正確路由它。

CSMP註冊流程圖