Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ChirpStack Gateway Bridge binds to udp6 only #235

Open
2 tasks done
soosp opened this issue May 9, 2024 · 4 comments
Open
2 tasks done

ChirpStack Gateway Bridge binds to udp6 only #235

soosp opened this issue May 9, 2024 · 4 comments

Comments

@soosp
Copy link

soosp commented May 9, 2024

  • The issue is present in the latest release.
  • I have searched the issues of this repository and believe that this is not a duplicate.

What happened?

If you have IPv6 configured and set

udp_bind = "0.0.0.0:1700"

in your /etc/chirpstack-gateway-bridge/chirpstack-gateway-bridge.toml file (this isthe default setting),
ChirpStack Gateway Bridge binds to ipv6 socket only:

# netstat -lnup | grep 1700
udp6       0      0 :::1700                 :::*                                4077/chirpstack-gat

If you set a valid IPv4 socket, it binds only to it as expected.

Tested with the latest precompiled Debian binaries.

What did you expect?

It binds only IPv4 socket or both IPv4 and IPv6.

Steps to reproduce this issue

Steps:

  1. Set up an IPv4 end IPv6 dual stack configuration with static adresses.
  2. Leave udp_bind parameter on the default 0.0.0.0:1700 value.
  3. See if it binds to the IPv4 socket.

Could you share your log output?

# chirpstack-gateway-bridge -c /etc/chirpstack-gateway-bridge/chirpstack-gateway-bridge.toml
INFO[0000] starting ChirpStack Gateway Bridge            docs="https://www.chirpstack.io/gateway-bridge/" version=4.0.11
INFO[0000] backend/semtechudp: starting gateway udp listener  addr="0.0.0.0:1700"
WARN[0000] [store]    memorystore wiped                  module=mqtt
INFO[0000] integration/mqtt: connected to mqtt broker

Your Environment

Component Version
Application Server
Network Server
Gateway Bridge v4.0.11
Chirpstack API
Geolocation
Concentratord
@brocaar
Copy link
Collaborator

brocaar commented May 10, 2024

Could you confirm if there is an actual issue? Are you unable to receive UDP data from IPv4 interfaces when binding to 0.0.0.0:1700? I don't think there is, see also this Go issue: golang/go#48723.

@soosp
Copy link
Author

soosp commented May 10, 2024

Yes, the ChirpStack Gateway Bridge started on a terminal:

# chirpstack-gateway-bridge -c /etc/chirpstack-gateway-bridge/chirpstack-gateway-bridge.toml
INFO[0000] starting ChirpStack Gateway Bridge            docs="https://www.chirpstack.io/gateway-bridge/" version=4.0.11
INFO[0000] backend/semtechudp: starting gateway udp listener  addr="0.0.0.0:1700"
WARN[0000] [store]    memorystore wiped                  module=mqtt
INFO[0000] integration/mqtt: connected to mqtt broker

Meanwhile I check the bindings on an another terminal:

# netstat -lun
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
udp6       0      0 :::1700                 :::*

@soosp
Copy link
Author

soosp commented May 10, 2024

A solution (workaround?) should be to add udp4_bind and udp6_bind options instead of udp_bind.

@brocaar
Copy link
Collaborator

brocaar commented May 10, 2024

But what is the actual problem? I can see that when I start the ChirpStack Gateway Bridge it will show as udp6 0 0 :::1700 :::* in netstat, but it accepts UDP data over IPv4 just fine.

From the Go documentation:

For UDP and IP networks, if the host in the address parameter is empty or a literal unspecified IP address, ListenPacket listens on all available IP addresses of the local system except multicast IP addresses.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants