knxd/knxd

Knxd can't connect because ipt sends UDP tunnel request, knx device accepts TCP

pfloros20 opened this issue · 2 comments

Hello, sorry in advance as this might not be an issue per-say, it could be ignorance on my part or just not supported functionality.

I am trying to connect to a knx device with knxd using the following configuration (real ip has been replaced with 1.2.3.4):

[B.ip]
driver = ipt
filters = single
ip-address = 1.2.3.4
dest-port = 3671
nat = true
nat-ip = 1.2.3.4
data-port = 3671
[main]
addr = 0.0.1
client-addrs = 0.0.2:10
connections = server,B.ip
[server]
server = knxd_tcp

Knxd provides no output and after a few seconds (probably timeout), it outputs F00000105: [ 8:B.ip] Link down, terminating.
I believe this is happening because knxd sends a udp request but the device expects a tcp request, so there is no response and knxd times-out the request. Is there a way to choose between udp and tcp for this situation but I have misunderstood or missed it? Or is it just something that's not supported?

Thanks for your time.

I believe this is happening because knxd sends a udp request but the device expects a tcp request

There is no commonly-accepted specification for knx-over-TCP and even if there was one, knxd doesn't implement it, so no.

I see you're using NAT. NAT is absurdly easy to get wrong and in most if not all cases it's way easier to fix the infrastructure to not require it. As in, install knxd on the border machine and firewall it off appropriately.

I'm closing this as it's most likely not a bug; please discuss your specific network structure on the discussion list.