Inleiding
Dit document beschrijft de details van het CSMP-protocol en de stappen om registratieproblemen op te lossen.
Gebruikte componenten
De informatie in dit document is gebaseerd op de apparaten in een specifieke laboratoriumomgeving. Alle apparaten die in dit document worden beschreven, hadden een opgeschoonde (standaard)configuratie. Als uw netwerk live is, moet u zorgen dat u de potentiële impact van elke opdracht begrijpt.
CoAP-protocol voor eenvoudig beheer (CSMP)
CoAP Simple Management Protocol (CSMP) is een extern netwerkbeheerprotocol dat is bedoeld voor ingesloten netwerkapparaten die worden uitgevoerd binnen netwerken met grote bandbreedte.
CSMP is gebaseerd op Constrained Application Protocol (CoAP). CoAP is een op UDP gebaseerd binair protocol dat is ontworpen om HTTP-achtige semantiek (GET/POST van resources met URL’s) te bieden met minimale header-overhead in een beperkte, multicast-vriendelijke omgeving.
CSMP definieert een kleine set CoAP-bronnen die worden geïdentificeerd door specifieke URL-paden die eindpunten voor gegevensuitwisseling vertegenwoordigen.
De NMS en de eindapparaten communiceren rechtstreeks met elkaar via CoAP, zonder tussenliggende proxy’s of gateways.
Een beheeragent die op het ingesloten apparaat wordt uitgevoerd, gebruikt CoAP als een client om rechtstreeks met een netwerkbeheertoepassing te communiceren.
De CSMP-client in het ingesloten apparaat verzendt verzoeken naar bepaalde CoAP-bronnen die door een CSMP-server in de toepassing worden geleverd.
Met de FAN-oplossing is de netwerkbeheertoepassing de Field Network Director (FND).
Daarnaast gebruikt de beheeragent die op het ingesloten apparaat wordt uitgevoerd CoAP als server om verzoeken van een FND die op een externe locatie wordt uitgevoerd, te accepteren.
De CSMP-client in het FND stuurt verzoeken naar bepaalde CoAP-bronnen die door een CSMP-server in de ingesloten apparaten worden geleverd.
Een CoAP-bericht heeft de volgende structuur:
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Ver| T | OC | Code | Bericht-ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Eventuele opties: ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Eventuele nuttige last: ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
De opties zijn CoAP-specifieke TLV's met deze structuur:
+—+—+—+—+—+—+—+—+
| Optiedelta | Lengte | voor 0,14
+—+—+—+—+—+—+—+—+
| Optiewaarde ...
+—+—+—+—+—+—+—+—+
De CoAP HTTP-achtige methode code of response code is opgenomen in het veld "Code". De opties van CoAP omvatten de middel-URL (gesplitst in host-, poort-, pad- en querygedeelten).
Gebruik van CSMP in veldgebiednetwerken
FND beheert de mesh- of metereindpunten, of het nu een gasmeter, watermeter of vermogensmeter is. FND communiceert met metereindpunten met behulp van CSMP-protocol zoals hierboven vermeld.
CSMP-berichten worden versleuteld. HSM of SSM slaat de toetsen op die gebruikt worden voor het versleutelen van de CSMP-berichten.
SSM (Software Security Module) of HSM (Hardware Security Module) slaat ook het CSMP-certificaat op dat nodig is voor communicatie.
Probleemoplossing voor CSMP
Handtekeningsfouten
Server.log wijst naar meters met handtekeningsfouten.
%IOTFND-6-UNGESPECIFICEERD: %[ch=HandleMessage][eid=0007810800CA759B][sev=INFO][tid=CoAP Conformant-3]: De actieve groep van de firmware op het apparaat is id=243 maar moet id=317 zijn (Ongeldige CSMP-handtekening). Groepstoewijzing verzenden.
Informatie over de hardware/firmware van de meter valideren
Bijvoorbeeld de resulterende output voor meter EID "fd00:abd:51:c000:207:8108:e7:6fda"
[root@lcdcfndappp01 bin]# /opt/cgms-tools/bin/csmp-request -r [fd00:abd:51:c00: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": 2, Hash": "\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" Naam": "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]: {"mesh": 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-name": "cg-mesh ron30-sl -REL-5.2.25","version": "5.2.25","fileSize": 40960} [root@lcdcfndappp01 bin]#
Metercertificaat valideren
TLV 43-code voor CGMSSTATUS gebruiken en het veld NMSCertValid verifiëren.
Het veld NMSCertValid kan aangeven of de FND-cert geldig is of niet.
Als het een hardwarecorruptie is, zijn alle parameters die uit de flitser worden gelezen NULL, bijvoorbeeld, het veld SSID. Dus als de SSID naam aanwezig is, is het geen hardware corruptie.
Als de SSID-naam correct is en het veld NMSCertValid als onjuist is opgegeven, is het mogelijk een probleem met het cert-bestand dat op de meter is gekopieerd.
Het XML-configuratiebestand op de meter valideren
<DevCfgSchema>. Als de meter in de demomodus blijft staan, neemt u contact op met de verkoper van de meter voor ondersteuning.
<demoMode_cfg> <demoModeEnable>true</demoModeEnable> </demoMode_cfg>
FND-kloksynchronisatie met NTP
Deze fout wordt duidelijk:
%IOTFND-7-UNGESPECIFICEERD: %[ch=EventProducer][sev=DEBUG][tid=CoAP-7]: Event Object dat wordt verzonden = EventObject [netElementID=1149847, eventTime=1622146931202, eventSeverity=0, eventSource=cgmesh, eventTypeName=signFailure, eventDisplayName=Ongeldige CSMP-handtekening, eventTypeID=1085, eventMessage=verify-certificaatinstelling. Controleer ook of apparaat en IoT-FND gesynchroniseerde tijd zijn., lat=1000.0, lng=1000.0, geoHash=null, eid=F433280000005DE8, issueId=0, eventSev=CRITICAL, moduleId=null, domainName=root]
Symptoom: In FND gaat het bijbehorende apparaat naar een 'registreerstatus' in plaats van omhoog te verschijnen.
- Controleer of de FND- en NTP-klokken synchroon zijn.
- Controleer of de FND- en endpointklokken synchroon zijn.
Meters worden gerapporteerd in FND
Als de ME/meters in FND worden gemeld, controleer dan of er een firewall is die inkomende CSMP-berichten blokkeert.
Om het probleem op de FND-server op te lossen, schakelt u de firewallservice uit:
[root@iot-fnd ~]# systemctl list-unit-files | grep firewalld
firewalld.service disabled
Als deze optie is ingeschakeld, kunt u deze uitschakelen met de onderstaande opdracht:
[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.
Beleids- en CSMP-berichten voor taakverdeling
In een Taakverdeling clusteromgeving controleert u de communicatie tussen de bron- en doeladressen en de poorten tussen de metereindpunten (ME) en FND.
Controleer CSMP-statistieken met de uitvoer van getStats.sh. Als een van de toepassingsservers een veel hogere CSMP-verwerkingssnelheid heeft dan de andere servers, wordt taakverdeling waarschijnlijk niet correct geconfigureerd. Bovendien, wanneer u de output analyseert, als u uw wachtrijgrootte ziet verhogen bevestigt het dat er ergens een knelpuntproces is.
CSMP-gespreksstroomvoorbeeld:
CSMP Verzoek aan de meter tijdens periodieke metrische registratie.
Meter naar FND
IPv6-adres voor SRC-ip-meter
IPv6-adres voor bestemming voor FND IP
Bron-UDP-61624
DST UDP-61624
Handmatige Metrische vernieuwing voor een meter van FND
IP FND ipv6-adres bron
IPv6-adres voor doelmeter
Bron-UDP-poort, willekeurig voorbeeld: 9251
DST UDP-61624
Meterrespons tijdens handmatige metrische verfrissingsaanvraag (van FND)
IPv6-adres voor bronIP-meter
IP FND ipv6-adres van bestemming
Bron-UDP-61624
DST UDP-poort die het verstuurde op voorbeeld: 9251
Als de ME een antwoord verstuurt naar de taakverdeling IP (VIP) in plaats van het gevraagde IP-adres waarop het de CSMP "verzoek" heeft ontvangen, " moet het correct worden gerouteerd met behulp van extra configuratie.
Stroomschema voor CSMP-registratie