Skip to content

[Bug]: OPC-UA v0.13.0 struggles with servers without hostnames #1897

@hyslopc

Description

@hyslopc

What happened?

We connect to an OPC UA server via a WAN connection where the hostname of the server is not present in our DNS, so we connect to it via IP address. We had no problems connecting to this PLC using eg v0.12.0 however with v0.13.0 the connection is rejected, since the endpoints advertised on the server itself use the hostname (which is not visible in our network) instead of the IP address. This is easily addressed by adding configuration parameter endpoint-host= so now the URL (URL 1) looks like this:

opcua:tcp://10.3.1.13:4840?endpoint-host=ahostname
  • however that leads to a new problem: v0.13.0 tries to connect to the server using ahostname instead of using the IP address 10.3.1.13. This makes no sense: if we wanted to connect via hostname, we would use a much simpler URL (URL 2):
opcua:tcp://ahostname:4840

Thankfully, the code falls back to connecting via IP address, however it takes quite a bit of extra time, and a lot of errors and warnings are generated in the log. IMHO this is illogical: there is already a very simple way to connect to OPC UA servers via hostname (via URL 2). The only reason for the endpoint-host parameter that I am aware of is where the endpoint hostname and the connection address differ, with the point being to use the connection address (and not endpoint-host) to connect.

It should be possible to connect to an OPC UA server via IP address without any attempts to connect via hostname, ergo the format opcua:tcp://xxx?endpoint-host=hostname used by URL 1 above should connect using xxx and not hostname.

Version

v0.13.0

Programming Languages

  • plc4j
  • plc4go
  • plc4c
  • plc4net

Protocols

  • AB-Ethernet
  • ADS /AMS
  • BACnet/IP
  • CANopen
  • DeltaV
  • DF1
  • EtherNet/IP
  • Firmata
  • KNXnet/IP
  • Modbus
  • OPC-UA
  • S7

Metadata

Metadata

Assignees

Labels

OPC-UAhttps://plc4x.apache.org/users/protocols/opcua.htmljavaPull requests that update Java code

Type

No fields configured for Bug.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions