OPC UA & Wireshark
UPDATED: 2021-05-10 to reflect the current Wireshark version. Also added details of filtering.
Wireshark is a great tool for sniffing network traffic. It contains several pre-defined filters for various protocols – and yes, also for OPC UA!
It can be a valuable tool, if you need to investigate what traffic is going between an UA client and server by revealing the contents of every packet – unless of course, you have enabled encryption on the connection!
There is one important setting that you need to take care of. Once you have started it for the first time, go to Edit-Preferences-Protocols-OpcUa. You must define the port numbers that may contain UA traffic in order to make the opcua protocol filter to work.
You can then just start capturing packets. If you filter with “opcua”, you will only get OPC UA packets.
As you can see, it can parse the UA packets down to every parameter for display in the log!
You can further filter by the port number, etc. Use the Expression editor to build your own filter. This is useful, since the log gets easily filled with Read messages, due to the clients typically monitoring the connection and ServerStatus with frequent calls.
If you wish to filter WriteRequests, you can find that from the available service list.
We found out that the ServiceNodeId is 673 for the WriteRequest. Once I have created that, I added 676 to the ‘in’ filter, after which we can also see the WriteResponses:
Chief Technology Officer
Expertise and responsibility areas: OPC & OPC UA product development, project work and customer support
About Prosys OPC Ltd
Prosys OPC is a leading provider of professional OPC software and services with over 20 years of experience in the field. OPC and OPC UA (Unified Architecture) are communications standards used especially by industrial and high-tech companies.
Newest blog posts
Prosys OPC UA SDK for Java allows publishing OPC UA data to Azure using the MQTT protocol.
The blog post describes step-by-step TalentLMS sign-up and course payment process
Updates to the blog post on importing Information Models from NodeSet files